生成定位提示

AdWords 网页界面中的关键字规划师基于现有关键字和网站提出新的关键字提示。然后,您可以获取关键字的历史统计信息(平均每次点击费用,每月搜索量等),帮助您决定是否要使用这些关键字提示。

而 AdWords API 中的 TargetingIdeaService 可让您从自己的工具/平台获取定位提示,自动进行帐户优化,从而实现类似目标。

使用案例

TargetingIdeaService 可用来基于以下一些输入获取新关键字提示:

例如,如果您要制作新的广告系列,或优化现有的广告系列,就可以使用 TargetingIdeaService,根据您现有的关键字分类获取候选关键字的列表。

使用此服务,您可以获得与关键字规划师中寻找新关键字并获取搜索量数据下的各项功能相似的结果:

估算流量一文介绍了关键字规划师的规划预算并获取预测数据功能。

获取关键字提示

TargetingIdeaService 的主要输入是 TargetingIdeaSelector。以下是使用几个种子关键字自 TargetingIdeaService 获取关键字提示的一个示例。

为请求做准备

首先,使用说明此请求的目的是为了获取关键字提示的参数,准备 TargetingIdeaSelector

Java

TargetingIdeaSelector selector = new TargetingIdeaSelector();
selector.setRequestType(RequestType.IDEAS);
selector.setIdeaType(IdeaType.KEYWORD);

CSharp

TargetingIdeaSelector selector = new TargetingIdeaSelector();
selector.requestType = RequestType.IDEAS;
selector.ideaType = IdeaType.KEYWORD;

Python

selector = {
    'ideaType': 'KEYWORD',
    'requestType': 'IDEAS'
}

PHP

$selector = new TargetingIdeaSelector();
$selector->setRequestType(RequestType::IDEAS);
$selector->setIdeaType(IdeaType::KEYWORD);

Perl

my $selector = Google::Ads::AdWords::v201802::TargetingIdeaSelector->new({
  requestType => "IDEAS",
  ideaType    => "KEYWORD"
});

Ruby

selector = {
  :idea_type => 'KEYWORD',
  :request_type => 'IDEAS'
}

VB.NET

Dim selector As New TargetingIdeaSelector()
selector.requestType = RequestType.IDEAS
selector.ideaType = IdeaType.KEYWORD

接下来,选择必须获取的属性。属性可以视为与关键字相关的各个列/字段:

Java

selector.setRequestedAttributeTypes(new AttributeType[] {
    AttributeType.KEYWORD_TEXT,
    AttributeType.SEARCH_VOLUME,
    AttributeType.AVERAGE_CPC,
    AttributeType.COMPETITION,
    AttributeType.CATEGORY_PRODUCTS_AND_SERVICES});

CSharp

selector.requestedAttributeTypes = new AttributeType[] {
  AttributeType.KEYWORD_TEXT,
  AttributeType.SEARCH_VOLUME,
  AttributeType.AVERAGE_CPC,
  AttributeType.COMPETITION,
  AttributeType.CATEGORY_PRODUCTS_AND_SERVICES
};

Python

selector['requestedAttributeTypes'] = [
    'KEYWORD_TEXT', 'SEARCH_VOLUME', 'CATEGORY_PRODUCTS_AND_SERVICES']

PHP

$selector->setRequestedAttributeTypes(
    [
        AttributeType::KEYWORD_TEXT,
        AttributeType::SEARCH_VOLUME,
        AttributeType::AVERAGE_CPC,
        AttributeType::COMPETITION,
        AttributeType::CATEGORY_PRODUCTS_AND_SERVICES
    ]
);

Perl

$selector->set_requestedAttributeTypes([
  "KEYWORD_TEXT", "SEARCH_VOLUME",
  "AVERAGE_CPC",  "COMPETITION",
  "CATEGORY_PRODUCTS_AND_SERVICES"
]);

Ruby

selector[:requested_attribute_types] = [
  'KEYWORD_TEXT',
  'SEARCH_VOLUME',
  'AVERAGE_CPC',
  'COMPETITION',
  'CATEGORY_PRODUCTS_AND_SERVICES',
]

VB.NET

selector.requestedAttributeTypes = New AttributeType() {
  AttributeType.KEYWORD_TEXT,
  AttributeType.SEARCH_VOLUME,
  AttributeType.CATEGORY_PRODUCTS_AND_SERVICES
}

接下来,配置选择器的 Paging 以限制每个请求返回的结果数量。PagingTargetingIdeaSelector 的一个必填字段。

Java

// Set selector paging (required for targeting idea service).
Paging paging = new Paging();
paging.setStartIndex(0);
paging.setNumberResults(10);
selector.setPaging(paging);

CSharp

// Set selector paging (required for targeting idea service).
Paging paging = Paging.Default;
selector.paging = paging;

Python

offset = 0
selector['paging'] = {
    'startIndex': str(offset),
    'numberResults': str(PAGE_SIZE)
}

PHP

$paging = new Paging();
$paging->setStartIndex(0);
$paging->setNumberResults(10);
$selector->setPaging($paging);

Perl

# Set selector paging (required for targeting idea service).
my $paging = Google::Ads::AdWords::v201802::Paging->new({
  startIndex    => 0,
  numberResults => 10
});
$selector->set_paging($paging);

Ruby

selector[:paging] = {
  :start_index => 0,
  :number_results => PAGE_SIZE
}

VB.NET

' Set selector paging (required for targeting idea service).
Dim paging As Paging = Paging.Default

最后,使用 RelatedToQuerySearchParameter 指定从中产生新提示的种子关键字列表:

Java

List<SearchParameter> searchParameters = new ArrayList<>();
// Create related to query search parameter.
RelatedToQuerySearchParameter relatedToQuerySearchParameter =
    new RelatedToQuerySearchParameter();
relatedToQuerySearchParameter.setQueries(new String[] {"bakery", "pastries", "birthday cake"});
searchParameters.add(relatedToQuerySearchParameter);

CSharp

// Create related to query search parameter.
RelatedToQuerySearchParameter relatedToQuerySearchParameter =
    new RelatedToQuerySearchParameter();
relatedToQuerySearchParameter.queries = new String[] {
  "bakery", "pastries", "birthday cake"
};
searchParameters.Add(relatedToQuerySearchParameter);

Python

selector['searchParameters'] = [{
    'xsi_type': 'RelatedToQuerySearchParameter',
    'queries': ['space cruise']
}]

PHP

$searchParameters = [];
// Create related to query search parameter.
$relatedToQuerySearchParameter = new RelatedToQuerySearchParameter();
$relatedToQuerySearchParameter->setQueries(
    [
        'bakery',
        'pastries',
        'birthday cake'
    ]
);
$searchParameters[] = $relatedToQuerySearchParameter;

Perl

# Create related to query search parameter.
my @search_parameters = ();
my $related_to_query_search_parameter =
  Google::Ads::AdWords::v201802::RelatedToQuerySearchParameter->new(
  {queries => ["bakery", "pastries", "birthday cake"]});
push @search_parameters, $related_to_query_search_parameter;

Ruby

search_parameters = []
search_parameters << {
    # The 'xsi_type' field allows you to specify the xsi:type of the object
    # being created. It's only necessary when you must provide an explicit
    # type that the client library can't infer.
    :xsi_type => 'RelatedToQuerySearchParameter',
    :queries => [keyword_text]
}

VB.NET

' Create related to query search parameter.
Dim relatedToQuerySearchParameter As New RelatedToQuerySearchParameter()
relatedToQuerySearchParameter.queries = New String() {
  "bakery", "pastries", "birthday cake"
}
searchParameters.Add(relatedToQuerySearchParameter)

配置了 TargetingIdeaSelector 之后,通过 get 操作进行发送,以获取关键字提示:

Java

// Get keyword ideas.
TargetingIdeaPage page = targetingIdeaService.get(selector);

CSharp

// Get related keywords.
page = targetingIdeaService.get(selector);

Python

page = targeting_idea_service.get(selector)

PHP

// Get keyword ideas.
$page = $targetingIdeaService->get($selector);

Perl

# Get keyword ideas.
my $page = $client->TargetingIdeaService()->get({selector => $selector});

Ruby

begin
  # Perform request. If this loop executes too many times in quick suggestion,
  # you may get a RateExceededError. See here for more info on handling these:
  # https://developers.google.com/adwords/api/docs/guides/rate-limits
  page = targeting_idea_srv.get(selector)
  results += page[:entries] if page and page[:entries]

  # Prepare next page request.
  offset += PAGE_SIZE
  selector[:paging][:start_index] = offset
end while offset < page[:total_num_entries]

VB.NET

' Get related keywords.
page = targetingIdeaService.get(selector)

处理响应

响应由一个列出了 TargetingIdea 对象的列表组成。每个 TargetingIdea 对象都包含与 Attribute 相关联的 AttributeType 的映射。将每个 TargetingIdea 对象看作数据行,每个 AttributeType 看作行的字段/列,相应的 Attribute 看作该数据单元格中的值,理解起来更容易。

Java

// Display keyword ideas.
for (TargetingIdea targetingIdea : page.getEntries()) {
  Map<AttributeType, Attribute> data = Maps.toMap(targetingIdea.getData());
  StringAttribute keyword = (StringAttribute) data.get(AttributeType.KEYWORD_TEXT);

  IntegerSetAttribute categories =
      (IntegerSetAttribute) data.get(AttributeType.CATEGORY_PRODUCTS_AND_SERVICES);
  String categoriesString = "(none)";
  if (categories != null && categories.getValue() != null) {
    categoriesString = Joiner.on(", ").join(Ints.asList(categories.getValue()));
  }
  Long averageMonthlySearches =
      ((LongAttribute) data.get(AttributeType.SEARCH_VOLUME))
          .getValue();
  Money averageCpc =
      ((MoneyAttribute) data.get(AttributeType.AVERAGE_CPC)).getValue();
  Double competition =
      ((DoubleAttribute) data.get(AttributeType.COMPETITION)).getValue();
  System.out.printf("Keyword with text '%s', average monthly search volume %d, "
      + "average CPC %d, and competition %.2f "
      + "was found with categories: %s%n", keyword.getValue(), averageMonthlySearches,
      averageCpc.getMicroAmount(), competition,
      categoriesString);
}

CSharp

// Display related keywords.
if (page.entries != null && page.entries.Length > 0) {
  foreach (TargetingIdea targetingIdea in page.entries) {
    Dictionary<AttributeType, Google.Api.Ads.AdWords.v201802.Attribute> ideas =
        targetingIdea.data.ToDict();

    string keyword = (ideas[AttributeType.KEYWORD_TEXT] as StringAttribute).value;
    IntegerSetAttribute categorySet =
        ideas[AttributeType.CATEGORY_PRODUCTS_AND_SERVICES] as IntegerSetAttribute;

    string categories = "";

    if (categorySet != null && categorySet.value != null) {
      categories = string.Join(", ", categorySet.value);
    }

    long averageMonthlySearches =
        (ideas[AttributeType.SEARCH_VOLUME] as LongAttribute).value;

    Money averageCpc = (ideas[AttributeType.AVERAGE_CPC] as MoneyAttribute).value;
    double competition = (ideas[AttributeType.COMPETITION] as DoubleAttribute).value;
    Console.WriteLine("Keyword with text '{0}', average monthly search " +
        "volume {1}, average CPC {2}, and competition {3:F2} was found with " +
        "categories: {4}", keyword, averageMonthlySearches, averageCpc?.microAmount,
        competition, categories);

    Console.WriteLine("Keyword with text '{0}', and average monthly search volume " +
        "'{1}' was found with categories: {2}", keyword, averageMonthlySearches,
        categories);
    i++;
  }
}

Python

for result in page['entries']:
  attributes = {}
  for attribute in result['data']:
    attributes[attribute['key']] = getattr(
        attribute['value'], 'value', '0')
  print ('Keyword with "%s" text and average monthly search volume '
         '"%s" was found with Products and Services categories: %s.'
         % (attributes['KEYWORD_TEXT'],
            attributes['SEARCH_VOLUME'],
            attributes['CATEGORY_PRODUCTS_AND_SERVICES']))

PHP

// Print out some information for each targeting idea.
$entries = $page->getEntries();
if ($entries !== null) {
    foreach ($entries as $targetingIdea) {
        $data = MapEntries::toAssociativeArray($targetingIdea->getData());
        $keyword = $data[AttributeType::KEYWORD_TEXT]->getValue();
        $searchVolume = ($data[AttributeType::SEARCH_VOLUME]->getValue() !== null)
            ? $data[AttributeType::SEARCH_VOLUME]->getValue() : 0;
        $averageCpc = $data[AttributeType::AVERAGE_CPC]->getValue();
        $competition = $data[AttributeType::COMPETITION]->getValue();
        $categoryIds = ($data[AttributeType::CATEGORY_PRODUCTS_AND_SERVICES]->getValue() === null)
            ? $categoryIds = ''
            : implode(
                ', ',
                $data[AttributeType::CATEGORY_PRODUCTS_AND_SERVICES]->getValue()
            );
        printf(
            "Keyword with text '%s', average monthly search volume %d, "
            . "average CPC %d, and competition %.2f was found with categories: %s\n",
            $keyword,
            $searchVolume,
            ($averageCpc === null) ? 0 : $averageCpc->getMicroAmount(),
            $competition,
            $categoryIds
        );
    }
}

Perl

foreach my $targeting_idea (@{$page->get_entries()}) {
  my $data =
    Google::Ads::Common::MapUtils::get_map($targeting_idea->get_data());
  my $keyword = $data->{"KEYWORD_TEXT"}->get_value();
  my $search_volume =
      $data->{"SEARCH_VOLUME"}->get_value()
    ? $data->{"SEARCH_VOLUME"}->get_value()
    : 0;
  my $categories =
      $data->{"CATEGORY_PRODUCTS_AND_SERVICES"}->get_value()
    ? $data->{"CATEGORY_PRODUCTS_AND_SERVICES"}->get_value()
    : [];
  my $average_cpc =
    $data->{"AVERAGE_CPC"}->get_value()->get_microAmount();
  my $competition = $data->{"COMPETITION"}->get_value();
  printf "Keyword with text '%s', monthly search volume %d, average CPC" .
    " %d, and competition %.2f was found with categories: '%s'\n", $keyword,
    $search_volume, $average_cpc, $competition, join(", ", @{$categories});
}

Ruby

# Display results.
results.each do |result|
  data = result[:data]
  keyword = data['KEYWORD_TEXT'][:value]
  average_cpc = data['AVERAGE_CPC'][:value]
  competition = data['COMPETITION'][:value]
  products_and_services = data['CATEGORY_PRODUCTS_AND_SERVICES'][:value]
  average_monthly_searches = data['SEARCH_VOLUME'][:value]
  puts ("Keyword with text '%s', average monthly search volume %d, " +
      "average CPC %d, and competition %.2f was found with categories: %s") %
      [
        keyword,
        average_monthly_searches,
        average_cpc[:micro_amount],
        competition,
        products_and_services
      ]
end

VB.NET

            'Display the results.
            If Not page.entries Is Nothing AndAlso page.entries.Length > 0 Then
              For Each targetingIdea As TargetingIdea In page.entries
                For Each entry As Type_AttributeMapEntry In targetingIdea.data
                  ' Preferred: Use targetingIdea.data.ToDict() if you are not on Mono.
                  Dim ideas As Dictionary(Of AttributeType, Attribute) =
                      MapEntryExtensions.ToDict(Of AttributeType, Attribute)(
                          targetingIdea.data)

                  Dim keyword As String =
                    DirectCast(ideas(AttributeType.KEYWORD_TEXT), StringAttribute).value
                  Dim categorySet As IntegerSetAttribute =
                  DirectCast(ideas(AttributeType.CATEGORY_PRODUCTS_AND_SERVICES),
                      IntegerSetAttribute)

                  Dim categories As String = ""

                  If (Not categorySet Is Nothing) AndAlso (Not categorySet.value Is Nothing) Then
                    categories = String.Join(", ", categorySet.value)
                  End If

                  Dim averageMonthlySearches As Long =
                  DirectCast(ideas(AttributeType.SEARCH_VOLUME), LongAttribute).value

                  Dim averageCpcMoney As Money = DirectCast(ideas(AttributeType.AVERAGE_CPC),
                    MoneyAttribute).value
                  Dim averageCpc As Long
                  If (Not averageCpcMoney Is Nothing) Then
                    averageCpc = averageCpcMoney.microAmount
                  End If

                  Dim competition As Double = DirectCast(ideas(AttributeType.COMPETITION),
                    DoubleAttribute).value
                  Console.WriteLine("Keyword with text '{0}', average monthly search " +
                  "volume {1}, average CPC {2}, and competition {3:F2} was found with " +
                  "categories: {4}", keyword, averageMonthlySearches, averageCpc,
                  competition, categories)
                Next
                i = i + 1
              Next
            End If
            selector.paging.IncreaseOffset()
          Loop While (selector.paging.startIndex < page.totalNumEntries)
          Console.WriteLine("Number of related keywords found: {0}", page.totalNumEntries)
        Catch e As Exception
          Throw New System.ApplicationException("Failed to retrieve related keywords.", e)
        End Try
      End Using
    End Sub

  End Class

End Namespace

这个示例请求选择了四个属性,所以示例响应可能如下所示:

KEYWORD_TEXT SEARCH_VOLUME AVERAGE_CPC COMPETITION
蛋糕店 170 0.485384 0.41
西饼故事 390 0.069918 0.12
... ...

获取关键字统计信息

获取关键字的历史统计信息与获取关键字提示非常相似。唯一的区别是,RequestType 必须设置为 STATS

将广告组 ID 用作种子

如果您已经有现成的广告系列和广告组,可以使用 SeedAdGroupIdSearchParameter 提供广告组 ID 来获取定位提示。

Java

SeedAdGroupIdSearchParameter seedAdGroupIdSearchParameter =
    new SeedAdGroupIdSearchParameter();
seedAdGroupIdSearchParameter.setAdGroupId(adGroupId);
searchParameters.add(seedAdGroupIdSearchParameter);

CSharp

SeedAdGroupIdSearchParameter seedAdGroupIdSearchParameter =
    new SeedAdGroupIdSearchParameter();
seedAdGroupIdSearchParameter.adGroupId = adGroupId.Value;
searchParameters.Add(seedAdGroupIdSearchParameter);

Python

# Use an existing ad group to generate ideas (optional)
if ad_group_id is not None:
  selector['searchParameters'].append({
      'xsi_type': 'SeedAdGroupIdSearchParameter',
      'adGroupId': ad_group_id
  })

PHP

$seedAdGroupIdSearchParameter = new SeedAdGroupIdSearchParameter();
$seedAdGroupIdSearchParameter->setAdGroupId($adGroupId);
$searchParameters[] = $seedAdGroupIdSearchParameter;

Perl

my $seed_ad_group_id_search_parameter =
  Google::Ads::AdWords::v201802::SeedAdGroupIdSearchParameter->new({
    adGroupId => $ad_group_id
  });
push @search_parameters, $seed_ad_group_id_search_parameter;

Ruby

search_parameters << {
  :xsi_type => 'SeedAdGroupIdSearchParameter',
  :ad_group_id => ad_group_id
}

VB.NET

Dim seedAdGroupIdSearchParameter As New SeedAdGroupIdSearchParameter()
seedAdGroupIdSearchParameter.adGroupId = adGroupId.Value
searchParameters.Add(seedAdGroupIdSearchParameter)

与关键字规划师的对照

关于 TargetingIdeaService 最常见的其中一个问题是:“为什么 TargetingIdeaService 与关键字规划师工具所得结果不同?”

其原因是,TargetingIdeaSelector 可以使用多个不同的 SearchParameter 进行配置,而使用不同的 SearchParameter 时返回的结果可能明显不同。

选择正确的投放网络

最常见的错误之一是不指定 NetworkSearchParameter。例如,关键字规划师可能只搜索 Google 搜索网络的关键字提示,但不能用于其他投放网络。在这种情况下,一定要在 TargetingIdeaSelector 中设置 NetworkSearchParameter。例如,如果只希望获取搜索网络的提示,请按以下方式设置 NetworkSearchParameter

Java

// Create network search parameter (optional).
NetworkSetting networkSetting = new NetworkSetting();
networkSetting.setTargetGoogleSearch(true);
networkSetting.setTargetSearchNetwork(false);
networkSetting.setTargetContentNetwork(false);
networkSetting.setTargetPartnerSearchNetwork(false);

NetworkSearchParameter networkSearchParameter = new NetworkSearchParameter();
networkSearchParameter.setNetworkSetting(networkSetting);
searchParameters.add(networkSearchParameter);

CSharp

// Add network search parameter (optional).
NetworkSetting networkSetting = new NetworkSetting();
networkSetting.targetGoogleSearch = true;
networkSetting.targetSearchNetwork = false;
networkSetting.targetContentNetwork = false;
networkSetting.targetPartnerSearchNetwork = false;

NetworkSearchParameter networkSearchParameter = new NetworkSearchParameter();
networkSearchParameter.networkSetting = networkSetting;
searchParameters.Add(networkSearchParameter);

Python

# Network search parameter (optional)
selector['searchParameters'].append({
    'xsi_type': 'NetworkSearchParameter',
    'networkSetting': {
        'targetGoogleSearch': True,
        'targetSearchNetwork': False,
        'targetContentNetwork': False,
        'targetPartnerSearchNetwork': False
    }
})

PHP

// Create network search parameter (optional).
$networkSetting = new NetworkSetting();
$networkSetting->setTargetGoogleSearch(true);
$networkSetting->setTargetSearchNetwork(false);
$networkSetting->setTargetContentNetwork(false);
$networkSetting->setTargetPartnerSearchNetwork(false);

$networkSearchParameter = new NetworkSearchParameter();
$networkSearchParameter->setNetworkSetting($networkSetting);
$searchParameters[] = $networkSearchParameter;

Perl

# Create network search paramter (optional).
my $network_setting = Google::Ads::AdWords::v201802::NetworkSetting->new({
  targetGoogleSearch         => 1,
  targetSearchNetwork        => 0,
  targetContentNetwork       => 0,
  targetPartnerSearchNetwork => 0
});
my $network_setting_parameter =
  Google::Ads::AdWords::v201802::NetworkSearchParameter->new(
  {networkSetting => $network_setting});
push @search_parameters, $network_setting_parameter;

Ruby

search_parameters << {
  # Network search parameter (optional).
  :xsi_type => 'NetworkSearchParameter',
  :network_setting => {
    :target_google_search => true,
    :target_search_network => false,
    :target_content_network => false,
    :target_partner_search_network => false
  }
}

VB.NET

' Add network search parameter (optional).
Dim networkSetting As New NetworkSetting()
networkSetting.targetGoogleSearch = True
networkSetting.targetSearchNetwork = False
networkSetting.targetContentNetwork = False
networkSetting.targetPartnerSearchNetwork = False

Dim networkSearchParameter As New NetworkSearchParameter()
networkSearchParameter.networkSetting = networkSetting
searchParameters.Add(networkSearchParameter)

NetworkSearchParameter 的配置方式要与潜在广告系列的配置方式一致,这一点很重要。

使用某个词组、网站或类别搜索新关键字

要实现与此关键字规划师功能类似的功能,每个输入字段都可以映射到相应的 TargetingIdeaSelector 配置(如 SearchParameter):

关键字规划师 AdWords API
您的产品或服务 RelatedToQuerySearchParameter
您的着陆页 RelatedToUrlSearchParameter
您的产品类别 CategoryProductsAndServicesSearchParameter(请参考我们的产品和服务类别分类或 ID)
定位 - 地理位置 LocationSearchParameter
定位 - 语言 LanguageSearchParameter
定位 - 投放网络 NetworkSearchParameter
日期范围(每月搜索量) 选择 AttributeType.TARGETED_MONTHLY_SEARCHES
关键字过滤条件 - 平均每月搜索量 SearchVolumeSearchParameter
关键字过滤条件 - 竞争程度 CompetitionSearchParameter
包含/排除关键字 IdeaTextFilterSearchParameter
ExcludedKeywordSearchParameter

最后,将 TargetingIdeaSelector.requestType 设置为 IDEAS

参数映射类似于其他此类功能:

关键字规划师 AdWords API
输入关键字 RelatedToQuerySearchParameter
定位 - 地理位置 LocationSearchParameter
定位 - 投放网络 NetworkSearchParameter
日期范围(每月搜索量) 选择 AttributeType.TARGETED_MONTHLY_SEARCHES

最后,将 TargetingIdeaSelector.requestType 设置为 STATS

组合多个关键字列表以获取新关键字提示

AdWords API 不会自动计算关键字组合。为了实现同样的功能,您需要以编程方式确定合并的关键字列表,然后相应地设置 TargetingIdeaSelector

关键字规划师 AdWords API
列表 1 和列表 2 采用编程方式合并两个列表,然后使用 RelatedToQuerySearchParameter
定位 - 地理位置 LocationSearchParameter
定位 - 投放网络 NetworkSearchParameter

代码示例

每个客户端库都在 Optimization 文件夹中包含了一个完整代码示例:

发送以下问题的反馈:

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