セグメンテーション

分割は Google 広告の管理画面で個別のメニューとして使用でき、 Google Ads API に実装するには、クエリに適切なフィールドを追加するだけです。対象 たとえば、segments.device を デバイスとデバイスの組み合わせごとの行を含むレポートが作成されます。 FROMで指定されたリソースと、 統計値(インプレッション数、クリック数、コンバージョン数など)をそれらの値に分割します。

Google 広告の管理画面では、一度に使用できるセグメントは 1 つのみですが、 API では、同じクエリで複数のセグメントを指定できます。

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

このクエリを GoogleAdsService.SearchStream は次のような JSON 文字列になります。

{
  "results":[
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"10922"
      },
      "segments":{
        "device":"MOBILE"
      }
    },
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"28297"
      },
      "segments":{
        "device":"DESKTOP"
      }
    },
    ...
  ]
}

上記のサンプル結果では、1 番目と 2 番目の属性は オブジェクトは同じです。インプレッションはセグメント化され device で指定できるため、同じキャンペーンで 2 つ以上のオブジェクトが返される可能性があります。

暗黙的セグメント分割

どのレポートも最初に FROM で指定されたリソース別に分割されます。 句を使用します。FROM 句のリソースの resource_name フィールドは次のようになります。 resource_name フィールドが 1 つでなくても、指標が クエリに明示的に含まれていないからですたとえば、 FROM 句のリソースとして ad_group を指定し、 ad_group.resource_name のアクション 自動的にレポートが返され、そのエンティティに対して できます。

このクエリでは、

SELECT metrics.impressions
FROM ad_group

次のような JSON 文字列が得られます。

{
  "results":[
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/2222222222"
      },
      "metrics":{
        "impressions":"237"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/33333333333"
      },
      "metrics":{
        "impressions":"15"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/44444444444"
      },
      "metrics":{
        "impressions":"0"
      }
    }
  ]
}

なお、adGroupresource_name フィールドは常に返されます。 FROM 句でリソースとして ad_group が指定されている。

選択可能なセグメント フィールド

FROM 句の特定のリソースに対して、すべてのセグメント フィールドを選択できるわけではありません。 例として、引き続き ad_group からクエリを実行します。 リソースです。ad_group リソースからセグメント フィールドを選択できるようにするには、 このフィールドは、ad_group の Segments リストに存在している必要があります。Segments 使用可能なフィールドの表の黄色の部分です。 ad_group リソースのメタデータ ページ。

セグメントに関するリソース

一部のリソースから選択する際に、暗黙的に結合するオプションが 関連するリソースに対して、関連するリソースの FROM 句でリソースを宣言します。これらの関連リソースは FROM 句のメタデータにあるリソースに対する Attributed Resources リスト できます。ad_group リソースの場合、次のことがわかります。 campaign の リソースです。少なくとも次の値を持つ Attributed Resources の resource_name フィールド。 SELECT 句の 1 つのフィールドが自動的に返されます。これは、 resource_name フィールドがクエリに明示的に含まれていない。

Attributed Resource フィールドを選択する場合と同様に、 Segmenting Resource フィールド。特定のリソースに Segmenting Resources があるかどうか リストを表示し、リスト内のリソースのいずれかからフィールドを選択します。 返された resource_name でクエリがさらにセグメント化されます。 Segmenting Resource。例として、このスライドには、 campaign リソースが Segmenting Resource として表示されている (campaign_budget リソースに対して)いずれかを選択中 キャンペーン フィールド(campaign.name など)を campaign_budget リソースによって、campaign.name フィールドだけでなく 引き渡されることになりますが、 campaign.resource_name 個のフィールドを 表示されます

セグメントと指標の選択性

あるセグメント フィールドは、他の一部のセグメントと互換性がない可能性があります 一部の指標フィールドと組み合わせますどのセグメント フィールドが 互換性がある場合は、selectable_with リストで確認できます。 SELECT 句でセグメントの見直しを行います。

この例の場合、 ad_group リソースには、利用可能なセグメントが 50 以上あります。 選択できます。ただし、selectable_with リストは segments.hotel_check_in_date 互換性のあるセグメントの小さなセットですつまり、 segments.hotel_check_in_date フィールドを SELECT 句に追加すると、 これら 2 つのセグメントが交差する領域まで 残りの利用可能なセグメントが表示されます できます。

セグメントを追加すると、概要行の指標が低下することがあります
segments.keyword.info.match_type をクエリに追加すると、 FROM ad_group_ad の場合、そのセグメントは、次の行のみを取得するようにクエリに指示しています。 キーワードを含むデータを取得し、キーワードに関連付けられていない行をすべて削除します。 できます。この場合、すべての指標が除外されるため、指標の値は低くなります。 指標が含まれます。

WHERE 句のセグメントのルール

セグメントを WHERE 句に含める場合は、SELECT にも含める必要がある 句を使用します。このルールの例外となる次の日付セグメントは 主要な日付セグメントと呼ばれます。

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

主要な日付セグメント フィールドのルール

セグメント segments.datesegments.weeksegments.monthsegments.quartersegments.year は次のように機能します。

  • これらのセグメントは、出現せずに WHERE 句でフィルタできます。 SELECT 句の中で指定します。

  • これらのセグメントのいずれかが SELECT 句に含まれている場合、期間は有限 主要な日付セグメントで構成されたものは、WHERE 句で指定する必要があります (日付セグメントは、 SELECT)。

無効: segments.dateSELECT 句で、有限期間を segments.dateWHEREsegments.weeksegments.monthsegments.quarter または segments.year
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
有効: このクエリは、キャンペーン名と 期間中に発生したクリック数。なお、segments.dateSELECT 句に含める必要はありません。
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
有効: このクエリは、キャンペーン名と 期間内のすべての日について、日付別に分割されたクリック数。
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
有効: このクエリは、キャンペーン名と 期間内のすべての日のクリック数(月別)
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
有効: このクエリは、キャンペーン名と 四半期ごとに分割され、次に年のすべての月について月ごとに分割されたクリック数。
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2015
  AND segments.year < 2020

search_term_view

なお、 search_term_view リソースを使用する場合、 検索語句だけでなく広告グループ別に暗示的に分割され、 そのリソースの構造 できます。 広告グループも含まれますそのため、一部の Pod が 同じ検索語句の行に この場合、行はそれぞれ別の広告グループになります。

{
  "results":[
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"3"
      },
      "segments":{
        "date":"2015-06-15"
      }
    },
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"2"
      },
      "segments":{
        "date":"2015-06-15"
      }
    }
  ]
}

この例で返される 2 つのオブジェクトは重複しているように見えますが、 特に「広告グループ」で、リソース名が異なっています。 なります。「google フォト」という検索キーワードは2 つの Pod に 広告グループ(ID 222222222233333333333)を同じ日付(2015-06-15)に設定しました。 したがって、API は意図したとおりに機能し、 重複オブジェクトも認識されます