// Copyright 2013 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package v201309;
import com.google.api.adwords.lib.AdWordsService;
import com.google.api.adwords.lib.AdWordsServiceLogger;
import com.google.api.adwords.lib.AdWordsUser;
import com.google.api.adwords.v201309.cm.AdGroup;
import com.google.api.adwords.v201309.cm.AdGroupOperation;
import com.google.api.adwords.v201309.cm.AdGroupReturnValue;
import com.google.api.adwords.v201309.cm.AdGroupServiceInterface;
import com.google.api.adwords.v201309.cm.AdGroupStatus;
import com.google.api.adwords.v201309.cm.BiddingStrategyConfiguration;
import com.google.api.adwords.v201309.cm.Bids;
import com.google.api.adwords.v201309.cm.CpmBid;
import com.google.api.adwords.v201309.cm.CriterionTypeGroup;
import com.google.api.adwords.v201309.cm.Money;
import com.google.api.adwords.v201309.cm.Operator;
import com.google.api.adwords.v201309.cm.Setting;
import com.google.api.adwords.v201309.cm.TargetingSetting;
import com.google.api.adwords.v201309.cm.TargetingSettingDetail;
/**
* This example adds an ad group to a campaign. To get campaigns, run GetAllCampaigns.java.
*
* Tags: AdGroupService.mutate
*
* @author thagikura@google.com (Takeshi Hagikura)
*/
public class AddAdGroup {
public static void main(String[] args) {
try {
// Log SOAP XML request and response.
AdWordsServiceLogger.log();
// 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 \""
+ adGroupResult.getId() + "\" was added.");
}
} else {
System.out.println("No ad groups were added.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}