出價

取得出價策略

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

按名稱取得出價策略

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

設定廣告活動出價策略

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);
}

設定廣告群組預設單次點擊出價

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);
}

設定關鍵字單次點擊出價

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);
}