Bidding

  • Learn how to retrieve all bidding strategies or filter them by name.

  • Understand how to set various campaign bidding strategies, including standard and flexible options, with or without additional arguments.

  • Find out how to set default CPC bids at the ad group level and specific CPC bids for keywords.

Get bidding strategies

function getBiddingStrategies() {  const bidStrategyIterator = AdsApp.biddingStrategies().get();  return bidStrategyIterator; }

Get bidding strategies by name

function getBiddingStrategyIteratorByName(biddingStrategyName) {  const biddingStrategiesIterator = AdsApp.biddingStrategies()  .withCondition(`bidding_strategy.name = '${biddingStrategyName}'`)  .get();  return biddingStrategiesIterator; }

Set campaign bidding strategy

function setVariousBiddingStrategies() {  // This example snippet assumes the user has a campaign named "Online Sales".  const campaignName = 'Online Sales';  const campaignIterator =  AdsApp.campaigns()  .withCondition(`campaign.name = '${campaignName}'`)  .get();  if (!campaignIterator.hasNext()) {  throw new Error(`No Campaign found with name "${campaignName}"`);  }  if (campaignIterator.totalNumEntities() > 1) {  console.warn(  `Found ${campaignIterator.totalNumEntities()} Campaigns with name "${  campaignName}", using just one of them`);  }  const campaign = campaignIterator.next();  // Set the campaign's bidding strategy to Manual CPC.  campaign.bidding().setStrategy('MANUAL_CPC');  // By default, the Manual CPC strategy enables Enhanced CPC bidding. The user  // can disable ECPC when setting the strategy by providing an extra argument.  campaign.bidding().setStrategy('MANUAL_CPC', {enhancedCpcEnabled: false});  // Some standard bidding strategies, such as Target Return on Ad Spend,  // require additional arguments when setting the strategy. Setting the  // strategy to Target Return on Ad Spend without providing the required  // additional arguments will fail.  campaign.bidding().setStrategy('TARGET_ROAS', {targetRoas: 1.3});  // Extra arguments can also be specified through the BiddingStrategyArgsBuilder.  const args =  campaign.bidding.argsBuilder().withTargetRoas(1.3).withCpcBidCeiling(2.5);  campaign.bidding().setStrategy('TARGET_ROAS', args);  // If the user has defined a flexible bidding strategy for the campaign, then  // this is also valid for `setStrategy`. For this example, assume the user  // has a flexible bidding strategy named "My Shared Bidding Strategy".  const strategyName = 'My Shared Bidding Strategy';  const strategy =  AdsApp.biddingStrategies()  .withCondition(`bidding_strategy.name = '${strategyName}'`)  .get()  .next();  campaign.bidding().setStrategy(strategy); }

Set an ad group's default CPC bid

function setAdGroupDefaultCpcBid(campaignName, adGroupName){  const adGroup = AdsApp.adGroups()  .withCondition(`campaign.name = '${campaignName}'`)  .withCondition(`ad_group.name = '${adGroupName}'`)  .get()  .next();  // This bid will only be used for auction if a corresponding cpc  // bidding strategy is set to the ad group. E.g.  //  // adGroup.bidding().setStrategy('MANUAL_CPC');  adGroup.bidding().setCpc(3.0); }

Set a keyword's CPC bid

function setKeywordCpcBid(campaignName, adGroupName, keywordText, keywordMaxCpcBid) {  const keyword = AdsApp.keywords()  .withCondition(`campaign.name = '${campaignName}'`)  .withCondition(`ad_group.name = '${adGroupName}'`)  .withCondition(`ad_group_criterion.keyword.text = '${keywordText}'`)  .get()  .next();  // This bid will only be used for auction if a corresponding cpc  // bidding strategy is set to the parent ad group. E.g.  //  // adGroup.bidding().setStrategy('MANUAL_CPC');  keyword.bidding().setCpc(keywordMaxCpcBid); }