ターゲット候補を生成する

AdWords 管理画面のキーワード プランナーを使うと、既存のキーワードやウェブサイトに基づく新しいキーワード候補を確認できます。さらに、キーワードの過去の統計情報(平均クリック単価、月間検索ボリュームなど)から、キーワード候補を使用するかどうかを判断できます。

AdWords API で同様の目的を達成するには、TargetingIdeaService を使います。これを使って自分のツールやプラットフォームからターゲット候補を取得して、アカウントの改善を自動化できます。

使用例

TargetingIdeaService を使うと、次のようなさまざまな要素に基づく新しいキーワード候補を取得できます。

  • ベース キーワード
  • ベース広告グループ ID
  • 対象のウェブサイト
  • 地域
  • 言語
  • 商品とサービスのカテゴリ
  • その他

たとえば、新しいキャンペーンを作成する際や既存のキャンペーンを改善する際は、TargetingIdeaService を使って、既存のキーワードの分類に基づくキーワード候補のリストを取得できます。

このサービスを使って、キーワード プランナーの [新しいキーワードの選択と検索ボリュームの取得] にある機能と同様の結果を得ることができます。

キーワード プランナーの機能である [予算の計画と予測データの取得] については、トラフィックの見積もりをご覧ください。

キーワード候補を取得する

TargetingIdeaService がベースとする主な要素は、TargetingIdeaSelector です。 次の例では、ベース キーワードをいくつか使って、TargetingIdeaService からキーワード候補を取得する方法を示しています。

リクエストを作成する

まず、TargetingIdeaSelector を作成して、リクエストの目的がキーワード候補の取得であることを示すパラメータを設定します。

Java

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

C#

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

C#

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

C#

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

C#

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

C#

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

C#

// 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

このリクエストの例では 4 つの属性が選択されているため、レスポンスは次のようになります。

KEYWORD_TEXT SEARCH_VOLUME AVERAGE_CPC COMPETITION
ケーキ ベーカリー 170 0.485384 0.41
ベーカリー ストーリー 390 0.069918 0.12
... ... ... ...

キーワードの統計情報を取得する

キーワードの過去の統計情報を取得する方法は、キーワード候補を取得する方法と同様です。RequestTypeSTATS に設定する必要がある点のみが異なります。

広告グループ ID をベースにする

すでにキャンペーンと広告グループを設定している場合は、広告グループ ID を SeedAdGroupIdSearchParameter に指定して、ターゲット候補を取得できます。

Java

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

C#

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 に関するよくある質問の 1 つに、「なぜ TargetingIdeaService の結果はキーワード プランナーの結果と異なるのか」というものがあります。

これは、TargetingIdeaSelector の設定に複数の SearchParameter を使用でき、異なる SearchParameter を使った場合に返される結果が大きく異なる場合があるためです。

適切なネットワークを選ぶ

よくある間違いの 1 つは、NetworkSearchParameter を指定しないことです。たとえば、キーワード プランナーは、Google 検索ネットワーク向けの(他のネットワーク向けではない)唯一の検索キーワード候補となる場合があります。そのような場合、必ず NetworkSearchParameterTargetingIdeaSelector に設定します。 たとえば、検索ネットワーク専用のキーワード候補を取得するには、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);

C#

// 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.requestTypeIDEAS に設定します。

パラメータ マッピングは、このような種類のその他の機能と同様です。

キーワード プランナー AdWords API
キーワードを入力 RelatedToQuerySearchParameter
ターゲット設定 - 地域 LocationSearchParameter
ターゲット設定 - ネットワーク NetworkSearchParameter
期間(月間検索ボリューム) 選択: AttributeType.TARGETED_MONTHLY_SEARCHES

最後に、TargetingIdeaSelector.requestTypeSTATS に設定します。

キーワードのリストを組み合わせて新しいキーワードを取得する

AdWords API が自動的にキーワードの組み合わせを計算することはありません。自動的に計算するには、組み合わせたキーワードのリストをプログラムで決定して、その結果に応じて TargetingIdeaSelector を設定する必要があります。

キーワード プランナー AdWords API
リスト 1 およびリスト 2 プログラムで 2 つのリストを組み合わせて、RelatedToQuerySearchParameter を使う
ターゲット設定 - 地域 LocationSearchParameter
ターゲット設定 - ネットワーク NetworkSearchParameter

コードサンプル

各クライアント ライブラリの Optimization フォルダに、コードサンプルの全文があります。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。