// Get the AdGroupService.
AdGroupServiceInterface adGroupService =
user.getService(AdWordsService.V201306.ADGROUP_SERVICE);
// Get the AdGroupCriterionService.
AdGroupCriterionServiceInterface adGroupCriterionService =
user.getService(AdWordsService.V201306.ADGROUP_CRITERION_SERVICE);
// Replace with valid values of your account.
long campaignId = Long.parseLong("INSERT_CAMPAIGN_ID_HERE");
long adGroupId = Long.parseLong("INSERT_AD_GROUP_ID_HERE");
long criterionId = Long.parseLong("INSERT_CRITERION_ID_HERE");
// Create experiment.
Experiment experiment = new Experiment();
experiment.setCampaignId(campaignId);
experiment.setName("Interplanetary Experiment #" + System.currentTimeMillis());
experiment.setQueryPercentage(10);
experiment.setStartDateTime(new SimpleDateFormat("yyyyMMdd HHmmss Z").format(new Date()));
// Create operation.
ExperimentOperation experimentOperation = new ExperimentOperation();
experimentOperation.setOperand(experiment);
experimentOperation.setOperator(Operator.ADD);
// Add experiment.
ExperimentReturnValue result =
experimentService.mutate(new ExperimentOperation[]{experimentOperation});
if (result.getValue() != null) {
for(Experiment experimentResult : result.getValue()) {
System.out.println("Experiment with name \"" + experimentResult.getName()
+ "\" and id \"" + experimentResult.getId() + "\" was added.");
}
} else {
System.out.println ("No experiments were added.");
return;
}
Long experimentId = result.getValue()[0].getId();
// Set ad group for the experiment.
AdGroup adGroup = new AdGroup();
adGroup.setId(adGroupId);
// Create experiment bid multiplier rule that will modify ad group bid for
// the experiment.
ManualCPCAdGroupExperimentBidMultipliers adGroupExperimentBidMultipliers =
new ManualCPCAdGroupExperimentBidMultipliers();
adGroupExperimentBidMultipliers.setMaxCpcMultiplier(new BidMultiplier(1.5, null));
// Set experiment data to the ad group.
AdGroupExperimentData adGroupExperimentData = new AdGroupExperimentData();
adGroupExperimentData.setExperimentId(experimentId);
adGroupExperimentData.setExperimentDeltaStatus(ExperimentDeltaStatus.MODIFIED);
adGroupExperimentData.setExperimentBidMultipliers(adGroupExperimentBidMultipliers);
adGroup.setExperimentData(adGroupExperimentData);
// Create operation.
AdGroupOperation adGroupOperation = new AdGroupOperation();
adGroupOperation.setOperand(adGroup);
adGroupOperation.setOperator(Operator.SET);
// Update ad group.
adGroup = adGroupService.mutate(new AdGroupOperation[]{adGroupOperation}).getValue()[0];
System.out.println("Ad group with name \"" + adGroup.getName() + "\" and id \""
+ adGroup.getId() + "\" was updated for the experiment.");
// Set ad group criterion for the experiment.
BiddableAdGroupCriterion adGroupCriterion = new BiddableAdGroupCriterion();
adGroupCriterion.setCriterion(new Criterion(criterionId, null, null));
adGroupCriterion.setAdGroupId(adGroupId);
// Create experiment bid multiplier rule that will modify ad group bid for
// the experiment.
ManualCPCAdGroupCriterionExperimentBidMultiplier adGroupCriterionExperimentBidMultiplier =
new ManualCPCAdGroupCriterionExperimentBidMultiplier();
adGroupCriterionExperimentBidMultiplier.setMaxCpcMultiplier(new BidMultiplier(1.5, null));
// Set experiment data to the ad group.
BiddableAdGroupCriterionExperimentData adGroupCriterionExperimentData =
new BiddableAdGroupCriterionExperimentData();
adGroupCriterionExperimentData.setExperimentId(experimentId);
adGroupCriterionExperimentData.setExperimentDeltaStatus(ExperimentDeltaStatus.MODIFIED);
adGroupCriterionExperimentData
.setExperimentBidMultiplier(adGroupCriterionExperimentBidMultiplier);
adGroupCriterion.setExperimentData(adGroupCriterionExperimentData);
// Create operation.
AdGroupCriterionOperation adGroupCriterionOperation = new AdGroupCriterionOperation();
adGroupCriterionOperation.setOperand(adGroupCriterion);
adGroupCriterionOperation.setOperator(Operator.SET);
// Update ad group criterion.
adGroupCriterion =
(BiddableAdGroupCriterion) adGroupCriterionService.mutate(
new AdGroupCriterionOperation[] {adGroupCriterionOperation}).getValue()[0];
System.out.println("Ad group criterion with ad group id \"" + adGroupCriterion.getAdGroupId()
+ "\" and criterion id \"" + adGroupCriterion.getCriterion().getId()
+ "\" was updated for the experiment.");