出价

AdWords 为您提供了多种广告出价方式,具体使用哪种方式取决于对您和您的业务而言什么最重要。

在 AdWords API 中,所有出价参数都通过下面的一个或两个对象加以管理:

对于任一对象,您可以使用其 biddingStrategyType 字段、biddingScheme 字段或同时使用这两者来指定出价类型。借助 biddingScheme,您可以设置某种出价类型所特有的更多参数。如果同时指定这两个字段,它们的类型必须匹配。

策略类型

在下表中,有效上下文列指示给定的 BiddingStrategyType 和关联的 BiddingScheme 类型是否可以在上述一个或两个上下文中使用:

  • BiddingStrategyConfiguration 对象表示的标准策略。
  • SharedBiddingStrategy 对象表示的组合策略。
BiddingStrategyType BiddingScheme 描述性名称 有效上下文
BUDGET_OPTIMIZER

已停用。请改用 TARGET_SPEND

BudgetOptimizerBiddingScheme 预算优化工具 标准策略
CONVERSION_OPTIMIZER

已停用。请改用 TARGET_CPA

ConversionOptimizerBiddingScheme 关注转化 - 使用每次转化费用出价 标准策略
ENHANCED_CPC EnhancedCpcBiddingScheme 智能点击付费 组合策略
MANUAL_CPC ManualCpcBiddingScheme 关注点击 - 使用每次点击费用的最高出价 标准策略
MANUAL_CPM ManualCpmBiddingScheme 关注展示次数 标准策略
PAGE_ONE_PROMOTED PageOnePromotedBiddingScheme 目标搜索页位置 组合策略
TARGET_CPA TargetCpaBiddingScheme 目标每次转化费用 (CPA) - 必须满足资格要求 组合策略
标准策略
TARGET_OUTRANK_SHARE TargetOutrankShareBiddingScheme 排名胜出率目标 组合策略
TARGET_ROAS TargetRoasBiddingScheme 目标广告支出回报率 - 必须符合资格要求 组合策略
TARGET_SPEND TargetSpendBiddingScheme 尽可能争取更多点击次数 组合策略
标准策略

如果您尝试在错误的上下文中使用 BiddingStrategyTypeBiddingScheme,则会导致错误:

  • 在标准策略的上下文中使用纯组合类型或方案会产生 BiddingErrors 错误,原因为 INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE
  • 在组合策略的上下文中使用纯标准类型或方案会产生 BiddingErrors 错误,原因为 BIDDING_STRATEGY_NOT_SUPPORTED

设置出价

可以在广告组和广告组条件一级设置出价。条件一级的出价将会覆盖广告组一级的出价。

可以在单个策略中同时设置不同类型的多个出价(例如,CpcBidCpmBid),但只会使用与所选 biddingStrategyType 匹配的出价。

报告也只会返回当前有效的出价。如果您改为其他出价类型,则会使用相应的出价。

以下代码示例使用 mutate 调用在广告组级别添加每次点击费用出价。

// Create ad group bid.
BiddingStrategyConfiguration biddingStrategyConfiguration =
    new BiddingStrategyConfiguration();
CpcBid bid = new CpcBid();
bid.setBid(new Money(null, 10000000L));

// You can optionally provide this field.
bid.setContentBid(new Money(null, 20000000L));

biddingStrategyConfiguration.setBids(new Bids[] {bid});
adGroup.setBiddingStrategyConfiguration(biddingStrategyConfiguration);

// Create operation.
AdGroupOperation operation = new AdGroupOperation();
operation.setOperand(adGroup);
operation.setOperator(Operator.SET);
AdGroupOperation[] operations = new AdGroupOperation[] {operation};

// Update ad group.
AdGroupReturnValue result = adGroupService.mutate(operations);

移除出价

要从 BiddingStrategyConfiguration 中移除出价,请将其 bid 字段更新为 Money 对象,将 microAmount 设置为 0

变换出价策略

要更改出价策略,请向相应服务发出一个包含已更新策略字段的 mutate() 调用。下面的示例演示了如何通过设置不同的 biddingScheme 来更改广告系列的出价类型:

// Create a new local Campaign object.
Campaign campaign = new Campaign();
campaign.setId(campaignId);

// Create a new biddingStrategyConfiguration.
BiddingStrategyConfiguration biddingStrategyConfiguration =
    new BiddingStrategyConfiguration();

// You can specify either type or scheme, or both.
biddingStrategyConfiguration.setBiddingScheme(new ManualCpcBiddingScheme());
campaign.setBiddingStrategyConfiguration(biddingStrategyConfiguration);

// Create SET operation.
CampaignOperation operation = new CampaignOperation();
operation.setOperand(campaign);
operation.setOperator(Operator.SET);
CampaignOperation[] operations = new CampaignOperation[] {operation};

// Update the campaign.
CampaignReturnValue result = campaignService.mutate(operations);

组合出价策略

您可以对广告系列、广告组或关键字使用组合出价策略

您可以使用 BiddingStrategyService 创建 SharedBiddingStrategy 并设置其参数。例如,要为广告系列使用现有的组合出价策略,请使用策略的 ID 更新广告系列的 biddingStrategyConfiguration

BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();
biddingStrategyConfiguration.setBiddingStrategyId(strategyId);

campaign.setBiddingStrategyConfiguration(biddingStrategyConfiguration);

展示广告网络的条件维度

对于投放在展示广告网络上的广告,您可以针对一些不同维度设置广告组出价。如果在不同维度中设置了多个出价,则 contentBidCriterionTypeGroup 字段可用于指定应当用于绝对出价的维度。搜索网络上的广告会始终使用关键字出价。

您还可以设置出价调整,当条件不在绝对出价维度中时将会用到所设的出价调整。您可以通过 BiddableAdGroupCriterionbidModifier 字段来获取出价调整。

出价系数

广告系列和广告组级出价调整可让您针对特定条件上下调整出价,从而更好地控制 AdWords 广告系列中的出价。

在 AdWords API 中,您可以通过 CampaignCriterionService 访问广告系列级的调整,通过 AdGroupBidModifierService 访问广告组级的调整。

提取出价调整

要提取现有出价调整,请使用 CampaignCriterionServiceAdGroupBidModifierServiceget()query() 方法。与其他服务类似,get() 方法接受通用的选择器,允许您选择响应字段并过滤结果集。

以下代码从所有广告系列中提取前 10 个现有广告系列级平台条件:

// Get the CampaignCriterionService.
CampaignCriterionServiceInterface campaignCriterionService =
    adWordsServices.get(session, CampaignCriterionServiceInterface.class);

// Create a selector that limits to the first 10 platform criteria found.
Selector selector =
    new SelectorBuilder()
        .fields(
            CampaignCriterionField.CampaignId,
            CampaignCriterionField.Id,
            CampaignCriterionField.CriteriaType,
            CampaignCriterionField.BidModifier)
        .equals(CampaignCriterionField.CriteriaType, "PLATFORM")
        .equals(CampaignCriterionField.IsNegative, "false")
        .limit(10)
        .build();

// Make a 'get' request.
CampaignCriterionPage campaignCriterionPage = campaignCriterionService.get(selector);

// Display the results.
if (campaignCriterionPage.getEntries() != null) {
  for (CampaignCriterion campaignCriterion : campaignCriterionPage.getEntries()) {
    String value =
        campaignCriterion.getBidModifier() == null
            ? "unset"
            : String.format("%.2f", campaignCriterion.getBidModifier());
    System.out.printf(
        "Campaign ID %d, criterion ID %d has campaign level bid modifier %s.%n",
        campaignCriterion.getCampaignId(), campaignCriterion.getCriterion().getId(), value);
  }
} else {
  System.out.println("No campaign criteria found.");
}

添加、更新和移除出价调整

使用 CampaignCriterionServiceAdGroupBidModifierServicemutate() 方法可添加或修改出价调整。

  • 要添加新的出价系数,请使用 ADD 运算符。
  • 要将现有出价覆盖更新为新值,请使用 SET 运算符。
  • 要移除出价系数覆盖,请使用 REMOVE 运算符。

下面的示例演示了如何添加新的广告系列级移动设备出价调整:

// Get the CampaignCriterionService.
CampaignCriterionServiceInterface campaignCriterionService =
    adWordsServices.get(session, CampaignCriterionServiceInterface.class);

// Create mobile platform. The ID can be found in the documentation.
// https://developers.google.com/adwords/api/docs/appendix/platforms
Platform mobile = new Platform();
mobile.setId(30001L);

// Create criterion with modified bid.
CampaignCriterion campaignCriterion = new CampaignCriterion();
campaignCriterion.setCampaignId(campaignId);
campaignCriterion.setCriterion(mobile);
campaignCriterion.setBidModifier(BID_MODIFIER);

// Create SET operation.
CampaignCriterionOperation operation = new CampaignCriterionOperation();
operation.setOperand(campaignCriterion);
operation.setOperator(Operator.SET);

// Update campaign criterion.
CampaignCriterionReturnValue result =
    campaignCriterionService.mutate(new CampaignCriterionOperation[] {operation});
for (CampaignCriterion campaignCriterionResult : result.getValue()) {
  System.out.printf("Campaign criterion with campaign ID %d, criterion ID %d, "
      + "and type '%s' was modified with bid %.4f.%n",
      campaignCriterionResult.getCampaignId(),
      campaignCriterionResult.getCriterion().getId(),
      campaignCriterionResult.getCriterion().getType(),
      campaignCriterionResult.getBidModifier());
}

发送以下问题的反馈:

此网页
AdWords API
AdWords API
需要帮助?请访问我们的支持页面