GoogleAdsFieldService を使用すると、GoogleAdsService Search メソッドと SearchStream メソッドで使用可能なリソース、リソースのフィールド、セグメンテーション キー、指標のカタログを動的にリクエストできます。このカタログによって、Google Ads API クライアントが Google 広告クエリ言語ステートメントの検証や作成に使用できるメタデータが提供されます。
HTTP リクエストとレスポンスのサンプル
リクエストは、次の URL にある Google Ads API サーバーへの HTTP GET で構成されています。
https://googleads.googleapis.com/v22/googleAdsFields/{resource_or_field}
次の例は、リクエストと、ad_group リソースに対して GoogleAdsFieldService から返されるレスポンスを示しています。
リクエスト
https://googleads.googleapis.com/v22/googleAdsFields/ad_group
レスポンス
{
  "resourceName": "googleAdsFields/ad_group",
  "name": "ad_group",
  "category": "RESOURCE",
  "selectable": false,
  "filterable": false,
  "sortable": false,
  "selectableWith": [
    "campaign",
    "customer",
    "metrics.average_cpc",
    "segments.device",
    ...
  ],
  "attributeResources": [
    "customer",
    "campaign"
  ],
  "metrics": [
    "metrics.conversions",
    "metrics.search_budget_lost_impression_share",
    "metrics.average_cost",
    "metrics.clicks",
    ...
  ],
  "segments": [
    "segments.date",
    "segments.ad_network_type",
    "segments.device",
    ...
  ]
}
このサンプルでは、重要な配列は次のとおりです。
- attributeResources
- FROM句のリソースに無条件で結合できるリソース。
- metrics
- FROM句のリソースで選択可能な指標。- categoryが- RESOURCEのフィールドにのみ入力されます。
- segments
- FROM句のリソースで選択できるセグメントキー。これらは、クエリで指定された指標をセグメント化します。- categoryが- RESOURCEのフィールドにのみ入力されます。
- selectableWith
- 
  
- リソースまたはセグメント フィールドの - selectableWith属性は、同じ GAQL クエリで選択できる他のリソース、セグメント、指標を指定します。この属性は、- FROM句で指定されていないリソースまたはセグメントのフィールドを含める場合に重要です。
- GAQL クエリを作成する際は、次の点に注意してください。 - FROM句のリソースは、プライマリ エンティティです。このリソースからフィールドをいつでも選択できます。
- また、メイン エンティティで使用可能な互換性のある指標とセグメントを選択することもできます。
- FROM句以外のリソースまたはセグメントのフィールドを含める場合は、この- FROM以外のリソースまたはセグメントが、クエリで選択されている他のすべてのフィールド、セグメント、指標と互換性があることを確認する必要があります。
 
- 特定のリソース(リソース A とします)の - selectableWithリストには、リソース A がプライマリ エンティティでない場合に、リソース A のフィールドとともに選択できる他のすべてのリソース、セグメント、指標が含まれます。
- 例: 
- 次のクエリの例を考えてみましょう。 - SELECT ad_group.id, segments.date, campaign.name FROM ad_group- FROM句は- ad_groupを指定します。
- このクエリは、 - ad_group.id(- FROMリソースから)、- segments.date、- campaign.nameを選択します。
- campaign.nameが選択されているにもかかわらず、- campaignが- FROM句に含まれていないため、他の選択された要素との互換性を確認する必要があります。
- このクエリが有効であることを確認するには、 - campaignリソースが- segments.date(選択されている別のフィールド)と互換性がある必要があります。したがって、- campaignリソースの- selectableWith属性を確認する必要があります。- campaignの- selectableWithリストに- segments.dateが存在する場合、クエリは有効です。
 - FROM句にないリソースからフィールドを選択する場合、そのリソースの- selectableWithリストには、- SELECT句に存在する他のすべてのセグメントとリソースを含める必要があります。
メタデータの詳細
GoogleAdsFieldService を使用して、次の単位でカタログをリクエストできます。
- リソース
- 例: googleAdsFields/campaign。
- リソースのフィールド
- 例: googleAdsFields/campaign.name。
- セグメント フィールド
- 例: googleAdsFields/segments.ad_network_type。
- 指標
- 例: googleAdsFields/metrics.clicks。