动态搜索广告

借助动态搜索广告,您可以定位整个网站或其中的某些部分,而不需要为所有可能的匹配创建关键字和广告文案。只要出现相关用户搜索,系统即会动态地生成广告,其中广告标题基于具体的查询,广告文字则基于最相关的着陆页。这些广告将进入竞价,正常参与竞争。因此,您无需对现有关键字广告系列做出任何更改,就能向更广泛的受众展示更多有库存的产品,进而取得更理想的效果。

除了让您更广泛地定位到整个网站或网域,动态搜索广告还可以作为您现有广告系列和关键字的很好的补充或备用选项。您可以按照目前所用的方式设置关键字、广告组和广告文案,然后添加动态搜索广告,以尽可能收集与现有广告系列设置不匹配的查询。

本指南介绍如何使用 AdWords API 创建和使用动态搜索广告。所有的例子都采用 Java 语言编写,但可以很方便地转换成其他语言和客户端库

创建动态搜索广告

在 AdWords API 中使用动态搜索广告需要三个基本步骤:

  1. 设置广告系列,并指定其网域。
  2. 创建一个或多个动态搜索广告。
  3. 在广告系列中指定展示动态搜索广告的一个或多个条件。

指定网域

要告知 AdWords 您要在广告系列中使用动态搜索广告,首先需要指定要投放动态搜索广告的网域。通过在 Campaign 对象的 settings 属性中设置 DynamicSearchAdsSetting 对象,可达到这一目的。

以下例子会创建一个带 GeoTargetTypeSettingDynamicSearchAdsSetting 值的广告系列:

// Create campaign.
Campaign campaign = new Campaign();

// ... Set up general campaign parameters ...

// Set up DynamicSearchAdsSetting object.
DynamicSearchAdsSetting dsas = new DynamicSearchAdsSetting();
dsas.domainName = "example.org";
dsas.languageCode = "en";

// Set geo match option.
GeoTargetTypeSetting geoTarget = new GeoTargetTypeSetting();
geoTarget
 .setPositiveGeoTargetType(GeoTargetTypeSettingPositiveGeoTargetType.DONT_CARE);

// Add these to the campaign.
campaign.setSettings(new Setting[] { geoTarget, dsas });

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

// Add campaigns.
CampaignReturnValue result = campaignService.mutate(operations);

在广告系列中停用动态搜索广告

要在广告系列一级关闭动态搜索广告,无需暂停整个广告系列,只需更新 DynamicSearchAdsSetting 的值并将 domainName 设置为 "-" 即可。您仍需要指定语言代码。

// Turn off DSAs for campaign with id = campaignId.
Campaign campaign = new Campaign();
campaign.setId(campaignId);

// Disable DSAs.
DynamicSearchAdsSetting dsas = new DynamicSearchAdsSetting();
dsas.domainName = "-";
dsas.languageCode = "en";

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

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

创建动态搜索广告

下一步是创建一个 DynamicSearchAd 对象。Google 会基于任何给定用户的搜索查询为您提供广告标题,但您仍需要填写 description1description2displayUrl 字段。

// Create DSA. somewhere above we got adGroupId for our ad group.
DynamicSearchAd dsa = new DynamicSearchAd();
dsa.setDescription1("Visit the Red Planet in style.");
dsa.setDescription2("Low-gravity fun for everyone!");
dsa.setDisplayUrl("www.example.org/marscruise");

// Create ad group ad.
AdGroupAd adGroupAd = new AdGroupAd();
adGroupAd.setAdGroupId(adGroupId);
adGroupAd.setAd(dsa);
adGroupAd.setStatus(AdGroupAdStatus.PAUSED);

// Create operation.
AdGroupAdOperation adGroupAdOperation = new AdGroupAdOperation();
adGroupAdOperation.setOperand(adGroupAd);
adGroupAdOperation.setOperator(Operator.ADD);
AdGroupAdOperation[] operations = new AdGroupAdOperation[] { adGroupAdOperation };

// Add the ad.
AdGroupAdReturnValue result = adGroupAdService.mutate(operations);

动态搜索广告中的 finalUrls 字段由 AdWords 系统在创建动态搜索广告时计算。因此,创建动态搜索广告时不能设置此字段。要使用网址跟踪软件,您可以使用 trackingUrlTemplate 字段指定需要的其他跟踪参数或重定向。指定此字段时必须包括下列参数之一,以便 AdWords 系统加入匹配到的最终到达网址:

参数 说明
{unescapedlpurl}

非转义的着陆页网址,用于将某些内容添加到末尾,例如:

{unescapedlpurl}?dsa=true

{escapedlpurl}

转义的(网址编码)着陆页网址,用于重定向至某个跟踪器,例如:

http://tracking.com/lp={escapedurl}

{lpurlpath}

只包含来自所计算网址的路径和查询参数,例如:

http://tracking.com.com/track/{lpurlpath}

{lpurl}

对着陆页网址中的 ?= 进行编码,以搜索查询内容结尾。如果位于 trackingUrlTemplate 字段的开头,将被实际替换为 {unescapedurl} 值,例如:

http://tracking.com/redir.php?tracking=xyz&url={lpurl}

例如:

DynamicSearchAd dsa = new DynamicSearchAd();
dsa.setDescription1("Visit the Red Planet in style.");
dsa.setDescription2("Low-gravity fun for everyone!");
dsa.setDisplayUrl("www.example.org/marscruise");
dsa.setTrackingUrlTemplate("http://example.org/traveltracker/{escapedlpurl}");

指定动态搜索广告的条件

最后,您要设置一些触发动态搜索广告投放的条件,通过 Webpage 条件对象可实现这一目的。

对于 Webpage 条件,您要添加 WebpageParameter 对象,其中包含 1 到 3 个 WebpageConditions。通过这些对象,您可以确切指定要在广告系列设置先前指定的网域中过滤或搜索的内容。

可以依据四项条件来过滤网域内的内容:

WebPageConditionOperand 说明
URL 与网页网址的部分内容匹配的字符串。
CATEGORY 要精确匹配的类别字符串。
PAGE_TITLE 与网页标题的部分内容匹配的字符串。
PAGE_CONTENT 与已编入索引的任一给定网页的部分内容匹配的字符串。

举个例子,我们将创建一个网页条件,以在火星度假网站的 /children 分支上搜索任意内容,但搜索范围仅限于标题中有“Special Offer”的网页:

// Assumes the existence of adGroupId.
WebpageCondition cond1 = new WebpageCondition();
WebpageCondition cond2 = new WebpageCondition();

cond1.operand = WebpageCondition.URL;
cond1.argument = "/marscruise/children";
cond2.operand = WebpageCondition.PAGE_TITLE;
cond2.argument = "Special Offer";

WebpageParameter param = new WebpageParameter();
param.criterionName = "Special offers for children";
param.conditions = new WebpageCondition[] { cond1, cond2 };

Webpage webpage = new Webpage();
webpage.parameter = param;

// Create biddable ad group criterion.
BiddableAdGroupCriterion bagc = new BiddableAdGroupCriterion();
bagc.setAdGroupId(adGroupId);
bagc.setCriterion(webpage);
bagc.setUserStatus(UserStatus.PAUSED);
BiddingStrategyConfiguration bsc = new BiddingStrategyConfiguration();
CpcBid bid = new CpcBid();
bid.setBid(new Money(null, 10000000L));
bsc.setBids(new Bids[] { bid });
bagc.setBiddingStrategyConfiguration(bsc);

// Create operations.
AdGroupCriterionOperation operation = new AdGroupCriterionOperation();
operation.setOperator(Operator.ADD);
operation.setOperand(bagc);
AdGroupCriterionOperation[] operations =
  new AdGroupCriterionOperation[] { operation };

AdGroupCriterionReturnValue result = AdGroupCriterionService.mutate(operations);

了解自己的网站类别

您可以使用 DataService 获取 Google 认为适用于您的网站的类别列表。可以依据网域或广告系列进行过滤。作为示例,以下代码在特定广告系列中获取适用于我们网站的类别列表:

DataServiceInterface dataService =
  adWordsServices.get(session, DataServiceInterface.class);

// Create selector.
SelectorBuilder builder = new SelectorBuilder();
Selector selector = builder
    .fields("DomainName", "Category", "IsoLanguage")
    .equals("DomainName", "example.org")
    .equals("CampaignId", campaignId)
    .limit(PAGE_SIZE)
    .build();

DomainCategoryPage page = dataService.getDomainCategory(selector);

排除网站的某些部分

还可以使用 AdGroupCriterionService 设置 Webpage 排除条件。例如,您可以使用此方法排除要通过另一个广告系列或广告组管理的带特定标题的网页。

// Assumes the existence of adGroupId.
WebpageCondition cond = new WebpageCondition();
cond.operand = WebpageCondition.PAGE_TITLE;
cond.argument = "Limited Time";

WebpageParameter param = new WebpageParameter();
param.criterionName = "Exclude Limited time pages";
param.conditions = new WebpageCondition[] { cond };

Webpage webpage = new Webpage();
webpage.parameter = param;

// Create biddable ad group criterion.
NegativeAdGroupCriterion nagc = new NegativeAdGroupCriterion();
nagc.setAdGroupId(adGroupId);
nagc.setCriterion(webpage);

// Create operations.
AdGroupCriterionOperation operation = new AdGroupCriterionOperation();
operation.setOperator(Operator.ADD);
operation.setOperand(nagc);
AdGroupCriterionOperation[] operations =
  new AdGroupCriterionOperation[] { operation };

AdGroupCriterionReturnValue result = AdGroupCriterionService.mutate(operations);

其他条件

采用动态搜索广告的广告系列和广告组并非局限于仅使用 Webpage 条件,您可以继续使用其他类型的条件,以进一步优化和提高广告的质量。不过,使用附加条件时应该有明智的判断,因为添加太多条件会降低您通过动态搜索广告进行自动定位的有效性。

报告

您可以针对动态搜索广告下载三种不同的报告。

条件效果报告

如果条件对象的类型是 WebpageCriterion,此报告中的 ParameterDynamic ad target 字段会加入与此对象相关联的 WebpageParameter 的名称。请注意,这是一个“属性”类型字段,也就是说它包含固定数据,在本例中即是与效果数据相关联的 WebpageParameter

不含关键字的类别报告

按类别汇总动态搜索广告的统计信息时,不含关键字的类别效果报告会将不含关键字的广告纳入统计范围。此报告不会返回展示次数为零的行Category0Category1Category2 字段包含有关结果的类别和子类别信息。

顶级类别 第一级子类别 第二级子类别 点击次数 展示次数 日期 总费用
观光和旅游 外星球 火星 1 71 6/20/2014 0.05
观光和旅游 探险旅行 0 279 6/21/2014 0

不含关键字的查询报告

基于搜索字词统计动态搜索广告的相关信息时,不含关键字的查询效果报告会将不含关键字的广告纳入统计范围。此报告不会返回展示次数为零的行Query 字段会包含生成结果的所有匹配查询。

搜索字词 点击次数 展示次数 日期 总费用 网址
火星豪华 0 20 6/20/2014 0 http://example.org/LuxuryMarsCruises
火星豪华 0 14 6/21/2014 0 http://example.org/LuxuryMarsCruises
低成本火星 0 24 6/20/2014 0 http://example.org/MarsOnABudget
低成本火星 0 18 6/21/2014 0 http://example.org/MarsOnABudget
火星地标 0 130 6/21/2014 0 http://example.org/MajorTouristSpots
火星鬼脸 0 44 6/21/2014 0 http://example.org/MajorTouristSpots
太空旅行安全 1 3 6/20/2014 0.05 http://example.org/ButIsItSafe
火星出发点 0 11 6/21/2014 0 http://example.org/HowToGetToMars
火星沙滩 0 24 6/20/2014 0 http://example.org/MarsBeachVacations
火星沙滩 0 39 6/21/2014 0 http://example.org/MarsBeachVacations
火星峡谷 0 23 6/21/2014 0 http://example.org/DayTripsAndActivities
合计 1 350 -- 0.05 --

发送以下问题的反馈:

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