RequiredError.REQUIRED @ operations[0].operand.biddingStrategyConfiguration

603 views
Skip to first unread message

PS

unread,
Feb 24, 2017, 4:46:14 PM2/24/17
to AdWords API Forum
Hi,

I'm trying to create a shopping campaign with bidding strategy type ROAS and am getting this error when I try to add all products to the Ad Group. See my code below. Please let me know what I missed.

Thanks
Prashant




Campaign campaign = new Campaign();
campaign.setName(...);
campaign.setAdvertisingChannelType(AdvertisingChannelType.SHOPPING);
campaign.setBudget(..);

BiddingStrategyServiceInterface biddingStrategyService = adWordsServices.get(session, BiddingStrategyServiceInterface.class);

// Create a portfolio bidding strategy.
SharedBiddingStrategy portfolioBiddingStrategy = new SharedBiddingStrategy();
portfolioBiddingStrategy.setName(...);

TargetRoasBiddingScheme biddingScheme = new TargetRoasBiddingScheme();
biddingScheme.setTargetRoas(...);
portfolioBiddingStrategy.setBiddingScheme(biddingScheme);
BiddingStrategyOperation operation = new BiddingStrategyOperation();
operation.setOperand(portfolioBiddingStrategy);
operation.setOperator(Operator.ADD);

BiddingStrategyOperation[] operations = new BiddingStrategyOperation[] {operation};
BiddingStrategyReturnValue result = biddingStrategyService.mutate(operations);

SharedBiddingStrategy sharedBiddingStrategy = result.getValue(0);
BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();
biddingStrategyConfiguration.setBiddingStrategyId(sharedBiddingStrategy.getId());

campaign.setBiddingStrategyConfiguration(biddingStrategyConfiguration);
ShoppingSetting shoppingSetting = new ShoppingSetting();
shoppingSetting.setSalesCountry(countryOfSale);
shoppingSetting.setCampaignPriority(0);
shoppingSetting.setMerchantId(merchantId);

shoppingSetting.setEnableLocal(false);

campaign.setSettings(new Setting[] { shoppingSetting });
NetworkSetting networkSetting = new NetworkSetting();
networkSetting.setTargetContentNetwork(false);
networkSetting.setTargetGoogleSearch(true);
networkSetting.setTargetPartnerSearchNetwork(false);
networkSetting.setTargetSearchNetwork(false);

campaign.setNetworkSetting(networkSetting);
CampaignReturnValue campaignAddResult = setCampaignProperties(campaign, Operator.ADD);

campaign = campaignAddResult.getValue(0);

AdGroupServiceInterface adGroupService = adWordsServices.get(session, AdGroupServiceInterface.class);

// Create ad group.
AdGroup adGroup = new AdGroup();
adGroup.setCampaignId(campaign.getId());
adGroup.setName("Ad Group #" + System.currentTimeMillis());
// Create operation.
AdGroupOperation adGroupOperation = new AdGroupOperation();
adGroupOperation.setOperand(adGroup);
adGroupOperation.setOperator(Operator.ADD);

// Make the mutate request.
AdGroupReturnValue adGroupAddResult = adGroupService.mutate(new AdGroupOperation[] { adGroupOperation });

// Display result.
adGroup = adGroupAddResult.getValue(0);
// Create product ad.
AdGroupAdServiceInterface adGroupAdService = adWordsServices.get(session, AdGroupAdServiceInterface.class);
ProductAd productAd = new ProductAd();

// Create ad group ad.
AdGroupAd adGroupAd = new AdGroupAd();
adGroupAd.setAdGroupId(adGroup.getId());
adGroupAd.setAd(productAd);

// Create operation.
AdGroupAdOperation adGroupAdOperation = new AdGroupAdOperation();
adGroupAdOperation.setOperand(adGroupAd);
adGroupAdOperation.setOperator(Operator.ADD);

// Make the mutate request.
AdGroupAdReturnValue adGroupAdAddResult = adGroupAdService.mutate(new AdGroupAdOperation[] { adGroupAdOperation });

// Display result.
adGroupAd = adGroupAdAddResult.getValue(0);

ProductPartitionTree partitionTree = ProductPartitionTree.createAdGroupTree(adWordsServices, session, adGroup.getId()); 
 ProductPartitionNode rootNode = partitionTree.getRoot().removeAllChildren();
 rootNode = rootNode.asBiddableUnit(); 
 AdGroupCriterionServiceInterface adGroupCriterionService = adWordsServices.get(session, AdGroupCriterionServiceInterface.class);
 List<AdGroupCriterionOperation> mutateOperations = partitionTree.getMutateOperations();

 adGroupCriterionService.mutate(mutateOperations.toArray(new AdGroupCriterionOperation[0])); //ERROR OCCURS HERE


Peter Oliquino

unread,
Feb 26, 2017, 10:18:15 PM2/26/17
to AdWords API Forum
Hi Prashant,

To better investigate your concern, I would like to request if you could provide the complete SOAP request and response generated when you encountered this issue. Please reply using Reply privately to author.

Cheers,
Peter
AdWords API Team
Reply all
Reply to author
Forward
0 new messages