广告概述

本指南从一个典型的使用案例出发,概括介绍了此 API 提供的各种广告类型和功能。

情景

比方说,您是“星际吉他店”的老板,很为自己的业绩自豪,您希望推出一个广告系列来吸引新客户。以下各节介绍可用来实现这一目标的不同广告类型和功能。

您希望广告在何处展示?

AdWords 广告可以在两个投放网络中展示

  • 搜索网络 - Google 搜索结果页、其他 Google 网站(如地图和购物),以及搜索网络合作伙伴网站。
  • 展示广告网络 - YouTube、Blogger 和 Gmail 等 Google 网站,以及互联网上成千上万的合作伙伴网站。

假设您希望在这两个投放网络中都投放广告,但不想分开管理搜索广告系列和展示广告系列。为此,您可以在单个广告组中制作搜索网络和精选展示广告网络广告系列。

有关详情,请参阅您的客户端库的 basic operations 示例文件夹中的 AddCampaigns 代码示例。

您想要何种广告类型?

您已经了解了广告将会展示在何处,现在应该来选择最能满足您需求的广告类型。AdWords API 提供以下广告类型:

类型 搜索网络 展示广告网络 说明
ExpandedTextAd AdWords 文字广告的新标准,包括两个标题、对您的产品或服务的描述、导航路径以及所生成的显示网址。
TextAd 标准 AdWords 文字广告,包括一个指向您的网站的链接以及一段说明或宣传您的产品或服务的文字,将被加大型文字广告替代。
ProductAd 产品广告(在 AdWords 界面中也称为购物广告),内容取决于与购物广告系列关联的 Merchant Center 帐户中的产品数据。
DynamicSearchAd 基于网站内容动态生成的搜索广告。
CallOnlyAd 用于点击通话专用广告系列的广告。
ImageAd 1 包含业务宣传图片的广告。
ResponsiveDisplayAd 包含一张营销图片、一个短标题、一个长标题、一条广告内容描述以及可选的广告客户名称和徽标。
TemplateAd 2 2 基于预定义模板的广告。

1 搜索网络中的 ImageAd 只会展示在 Google 搜索网络合作伙伴网站上,而不会展示在 Google 搜索中。

2 请参阅 TemplateAd 模板列表以及模板广告指南了解详情,包括每个模板 ID 所支持的广告网络。

在此情景中,假设您决定从最常见的广告类型 ExpandedTextAd 入手,并且您将在搜索网络和展示广告网络中投放同一个 ExpandedTextAd

加大型文字广告设置

ExpandedTextAd 是一个比较简单的对象,您只需要指定以下属性即可:

  • HeadlinePart1 - 标题的第一部分。
  • HeadlinePart2 - 标题的第二部分。
  • Description - 广告的描述性文字。
  • FinalUrls - 用户点击广告后到达的您网站页面的网址。

宣传吉他店的 ExpandedTextAd 代码可能如下所示:

ExpandedTextAd textAd = new ExpandedTextAd();
textAd.setHeadlinePart1("Intergalactic Guitar Shop");
textAd.setHeadlinePart2("Large selection of guitars");
textAd.setDescription("Weekly specials on accessories");
textAd.setFinalUrls(new String[]{
    "http://www.example.com/intergalacticguitars/products"});

有关完整示例,请参阅您的客户端库的 basic operations 示例文件夹中的 AddExpandedTextAds 示例。

添加广告附加信息

开始时,您可以在广告组中使用基本的 ExpandedTextAd,但您可能已经注意到,搜索网络和展示广告网络中的其他广告会包含更多的信息、链接和操作按钮。

这些补充信息来自广告附加信息。大多数广告附加信息通过 AdWords API 中的 Feed 服务来管理。您可以使用以下广告附加信息来改善广告:

  • 附加链接 - 显示指向您网站上的特定网页的附加链接。
  • 附加地址信息 - 随广告文字一起显示您的商家地址、电话号码和地图标记,而在移动设备上,会显示指向您的商家路线的链接。
  • 附加应用信息 - 显示指向您的手机应用或平板电脑应用的链接。
  • 附加宣传信息 - 显示有关您的商家的其他详细信息,包括您提供的产品和服务。
  • 附加评价信息 - 在您的 Google 搜索广告下方额外添加一行文字,显示正面的评价、褒奖或第三方排名。

作为“星际吉他店”的店主,您希望人们知道这家店:

  • 提供维修服务。
  • 同时提供原声吉他和电吉他。
  • 提供吉他课程。

要展示这些信息,使用附加链接是理想之选!

要设置附加链接,请参阅附加信息设置服务指南中的说明,其中包含指向每个客户端库的完整代码示例的链接。

添加附加地址信息

您的广告已经投放并会显示指向您网站上不同区域的链接,但现在您希望用户能够轻松找到您的店铺所在位置,特别是当他们在移动设备上观看您的广告时。

如果您已经在 Google 我的商家帐户中输入了这些信息,那么您很幸运:您只需将您的“Google 我的商家”帐户关联到您的 AdWords 帐户,AdWords 就会在广告中显示地点信息。

请访问附加地址信息指南,查看分步说明和代码示例。

其他广告附加信息

现在,您的广告系列已经设置了附加链接和附加地址信息。添加附加应用信息、附加宣传信息或附加评价信息等其他附加信息的步骤也基本相同。唯一的区别在于,附加信息设置服务所使用的 ExtensionFeedItem 类型不同。

附加信息设置服务指南提供了每种附加信息类型的示例。

广告投放时间设置

与生活中的许多事情类似,投放广告最讲究的就是时机。很多商家在一天的特定时间有特殊的广告需求,他们希望在特定时间吸引客户。在广告系列中加入广告投放时间设置,可使您的广告在最有效的时间展示,从而实现针对性更强的定位,获得更高的回报。

有了广告投放时间设置,您可以采用编程方式决定何时投放广告,而无需手动进行启用和停用。

投放时间设置针对的是广告系列级别,所以它适用于其中正在投放的所有广告组和广告。此功能由 CampaignCriterionService 及其条件类型之一 AdSchedule 进行处理。

每个 AdScheduleCriterion 都允许您定义星期几、开始时间、结束时间以及出价系数(原来通过 CampaignTargetService 的 bid_multiplier 处理)等属性。借助于出价系数,可以提高或降低特定时间的出价。

代码示例

要确保广告主要在营业时间内投放,请将投放广告的开始时间设置为稍早于开门时间,结束时间设置为稍早于打烊时间:

// Obtain a campaignId you want to configure
Long campaignId =  Long.valueOf("INSERT_CAMPAIGN_ID_HERE");

// Closed on Sunday, so we don't configure an AdSchedule for Sunday.
DayOfWeek[] days = new DayOfWeek[] {DayOfWeek.MONDAY,
    DayOfWeek.TUESDAY,
    DayOfWeek.WEDNESDAY,
    DayOfWeek.THURSDAY,
    DayOfWeek.FRIDAY,
    DayOfWeek.SATURDAY};

List operations = new ArrayList();
for (int i = 0; i < 6; i++) {
  AdSchedule schedule = new AdSchedule();
  schedule.setDayOfWeek(days[i]);
  // Start at 8:45 am...
  schedule.setStartHour(8);
  schedule.setStartMinute(MinuteOfHour.FORTY_FIVE);
  // ... and end at 7:45 pm
  schedule.setEndHour(19);
  schedule.setEndMinute(MinuteOfHour.FORTY_FIVE);
  CampaignCriterionOperation operation = new CampaignCriterionOperation();
  CampaignCriterion campaignCriterion = new CampaignCriterion();

  campaignCriterion.setCampaignId(campaignId);
  campaignCriterion.setCriterion(schedule);
  // Run at normal bid rates
  campaignCriterion.setBidModifier(1.0);
  operation.setOperand(campaignCriterion);
  operation.setOperator(Operator.ADD);
  operations.add(operation);
}

CampaignCriterionReturnValue result =
    campaignCriterionService.mutate(operations
        .toArray(new CampaignCriterionOperation[operations.size()]));

要就午间特惠向客户发出合理预告,请在早晨尽早开始投放广告,并在推广时间大幅提高出价:

// Obtain a campaignId you want to configure
Long campaignId = Long.valueOf("INSERT_CAMPAIGN_ID_HERE");

List operations = new ArrayList();
AdSchedule early = new AdSchedule();
AdSchedule peak = new AdSchedule();
CampaignCriterionOperation operationEarly = new CampaignCriterionOperation();
CampaignCriterion campaignCriterionEarly = new CampaignCriterion();
CampaignCriterionOperation operationPeak = new CampaignCriterionOperation();
CampaignCriterion campaignCriterionPeak = new CampaignCriterion();

// Sample schedule for Monday
early.setDayOfWeek(DayOfWeek.MONDAY);
peak.setDayOfWeek(DayOfWeek.MONDAY);
// Start at 8:00 am...
early.setStartHour(8);
early.setStartMinute(MinuteOfHour.ZERO);
// ... and run until promotion starts
early.setEndHour(12);
early.setEndMinute(MinuteOfHour.ZERO);
// Run at normal bid rates
campaignCriterionEarly.setBidModifier(1.0);

// Start higher bidding at noon...
peak.setStartHour(12);
peak.setStartMinute(MinuteOfHour.ZERO);
// ... and run until promotion ends...
peak.setEndHour(14);
peak.setEndMinute(MinuteOfHour.ZERO);
// ... at double the bid!
campaignCriterionPeak.setBidModifier(2.0);

campaignCriterionEarly.setCampaignId(campaignId);
campaignCriterionEarly.setCriterion(early);
campaignCriterionPeak.setCampaignId(campaignId);
campaignCriterionPeak.setCriterion(peak);

operationEarly.setOperand(campaignCriterionEarly);
operationEarly.setOperator(Operator.ADD);
operationPeak.setOperand(campaignCriterionPeak);
operationPeak.setOperator(Operator.ADD);
operations.add(operationEarly);
operations.add(operationPeak);

CampaignCriterionReturnValue result =
    campaignCriterionService.mutate(operations
        .toArray(new CampaignCriterionOperation[operations.size()]));

以下例子说明了如何在指定日期停止展示广告。您需要使用现有 AdSchedule 的同一 Id 发送 AdSchedule

// Suppose you already have a schedule of 8:45 am to 7:45 pm for Monday to Saturday

// Obtain the campaignId and criterionId you want to configure
Long campaignId = Long.valueOf("INSERT_CAMPAIGN_ID_HERE");
Long criterionIdForSaturday = Long.valueOf("INSERT_CRITERION_ID_HERE");

List removeOperations = new ArrayList();

// Remove a schedule for Saturday
AdSchedule removeScheduleForSaturday = new AdSchedule();
removeScheduleForSaturday.setId(criterionIdForSaturday);

CampaignCriterionOperation removeOperation = new CampaignCriterionOperation();
CampaignCriterion removeCampaignCriterion = new CampaignCriterion();

removeCampaignCriterion.setCampaignId(campaignId);
removeCampaignCriterion.setCriterion(removeScheduleForSaturday);

removeOperation.setOperand(removeCampaignCriterion);
removeOperation.setOperator(Operator.REMOVE);
removeOperations.add(removeOperation);

CampaignCriterionReturnValue removeResult = campaignCriterionService.mutate(
    removeOperations.toArray(new CampaignCriterionOperation[removeOperations.size()]));

以下例子说明了如何更改广告展示的时间。您需要先移除现有的 AdSchedule,然后发送新的设置。

// Suppose you already have a schedule of 8:45 am to 7:45 pm for Monday to Saturday
// Obtain the campaignId and criterionId you want to configure
Long campaignId = Long.valueOf("INSERT_CAMPAIGN_ID_HERE");
Long criterionIdForFriday = Long.valueOf("INSERT_CRITERION_ID_HERE");

List operations = new ArrayList();

// Remove a schedule for Friday first
AdSchedule removeScheduleForFriday = new AdSchedule();
removeScheduleForFriday.setId(criterionIdForFriday);

CampaignCriterionOperation removeOperationForFriday = new CampaignCriterionOperation();
CampaignCriterion removeCampaignCriterionForFriday = new CampaignCriterion();

removeCampaignCriterionForFriday.setCampaignId(campaignId);
removeCampaignCriterionForFriday.setCriterion(removeScheduleForFriday);

removeOperationForFriday.setOperand(removeCampaignCriterionForFriday);
removeOperationForFriday.setOperator(Operator.REMOVE);
operations.add(removeOperationForFriday);

// Create a new schedule for Friday
AdSchedule addScheduleForFriday = new AdSchedule();
addScheduleForFriday.setDayOfWeek(DayOfWeek.FRIDAY);
// Start at 3:00 pm...
addScheduleForFriday.setStartHour(15);
addScheduleForFriday.setStartMinute(MinuteOfHour.ZERO);
// ... and end at 7:45 pm
addScheduleForFriday.setEndHour(19);
addScheduleForFriday.setEndMinute(MinuteOfHour.FORTY_FIVE);
CampaignCriterionOperation addOperationForFriday = new CampaignCriterionOperation();
CampaignCriterion campaignAddCriterionForFriday = new CampaignCriterion();

campaignAddCriterionForFriday.setCampaignId(campaignId);
campaignAddCriterionForFriday.setCriterion(addScheduleForFriday);
// Run at normal bid rates
campaignAddCriterionForFriday.setBidModifier(1.0);
addOperationForFriday.setOperand(campaignAddCriterionForFriday);
addOperationForFriday.setOperator(Operator.ADD);
operations.add(addOperationForFriday);

CampaignCriterionReturnValue result = campaignCriterionService.mutate(
    removeOperations.toArray(new CampaignCriterionOperation[operations.size()]));

请参考下列代码示例,了解如何使用 CampaignCriterionService 将目标添加到现有广告系列:

衡量广告效果

现在,您已经设置了一个广告系列、一个广告组、一个文字广告以及多项广告附加信息。接下来,您希望了解自己的广告系列、广告和附加信息的效果。这正是报告功能的用武之地。

您可以从不同角度了解广告系列的效果,从而解答您的主要疑问。请展开下面的每个使用案例,查看相关的报告和字段以及 AWQL 报告请求示例。

以上问题重点关注一些常见使用案例和功能。要了解其他更多报告选项,请查看报告类型完整列表

后续步骤

在分析完报告后,您可能需要:

发送以下问题的反馈:

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