分割は 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"
}
}
]
}
なお、adGroup
の resource_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.date
、segments.week
、segments.month
、
segments.quarter
、segments.year
は次のように機能します。
これらのセグメントは、出現せずに
WHERE
句でフィルタできます。SELECT
句の中で指定します。これらのセグメントのいずれかが
SELECT
句に含まれている場合、期間は有限 主要な日付セグメントで構成されたものは、WHERE
句で指定する必要があります (日付セグメントは、SELECT
)。
例
無効: segments.date は
SELECT 句で、有限期間を
segments.date の WHERE 句
segments.week 、segments.month 、
segments.quarter または segments.year 。
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
有効: このクエリは、キャンペーン名と
期間中に発生したクリック数。なお、segments.date は
SELECT 句に含める必要はありません。
|
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 2222222222
と 33333333333
)を同じ日付(2015-06-15)に設定しました。
したがって、API は意図したとおりに機能し、
重複オブジェクトも認識されます