// Get AdWordsUser from "~/adwords.properties".
AdWordsUser user = new AdWordsUser();
// Get the AdGroupService.
AdGroupServiceInterface adGroupService =
user.getService(AdWordsService.V201309.ADGROUP_SERVICE);
long campaignId = Long.parseLong("INSERT_CAMPAIGN_ID_HERE");
// Create ad group.
AdGroup adGroup = new AdGroup();
adGroup.setName("Earth to Mars Cruises #" + System.currentTimeMillis());
adGroup.setStatus(AdGroupStatus.ENABLED);
adGroup.setCampaignId(campaignId);
// Optional settings.
// Targeting restriction settings - these settings only affect serving
// for the Display Network.
TargetingSetting targeting = new TargetingSetting();
TargetingSettingDetail placements = new TargetingSettingDetail();
placements.setCriterionTypeGroup(CriterionTypeGroup.PLACEMENT);
placements.setTargetAll(Boolean.TRUE);
TargetingSettingDetail verticals = new TargetingSettingDetail();
verticals.setCriterionTypeGroup(CriterionTypeGroup.VERTICAL);
verticals.setTargetAll(Boolean.FALSE);
targeting.setDetails(new TargetingSettingDetail[] {placements, verticals});
adGroup.setSettings(new Setting[] {targeting});
BiddingStrategyConfiguration biddingConfig = new BiddingStrategyConfiguration();
CpmBid cpmBid = new CpmBid();
cpmBid.setBid(new Money(null, 1000000L));
biddingConfig.setBids(new Bids[] {cpmBid});
adGroup.setBiddingStrategyConfiguration(biddingConfig);
// Create operations.
AdGroupOperation operation = new AdGroupOperation();
operation.setOperand(adGroup);
operation.setOperator(Operator.ADD);
AdGroupOperation[] operations = new AdGroupOperation[] {operation};
// Add ad group.
AdGroupReturnValue result = adGroupService.mutate(operations);
// Display new ad groups.
if (result != null && result.getValue() != null) {
for (AdGroup adGroupResult : result.getValue()) {
System.out.println("Ad group with name \"" + adGroupResult.getName() + "\" and id \""