Możesz używać GoogleAdsFieldService do dynamicznego wysyłania żądań dotyczących katalogu zasobów, pól zasobów, kluczy segmentacji i danych dostępnych w metodach GoogleAdsService Search i SearchStream. Katalog zawiera metadane, których klienci interfejsu Google Ads API mogą używać do weryfikowania i tworzenia instrukcji w języku zapytań Google Ads.
Przykładowe żądanie i odpowiedź HTTP
Żądanie składa się z HTTP GET do serwera interfejsu Google Ads API pod tym adresem URL:
https://googleads.googleapis.com/v22/googleAdsFields/{resource_or_field}
Poniższy przykład przedstawia żądanie, a następnie odpowiedź zwróconą przez GoogleAdsFieldService dla zasobu ad_group:
Żądanie
https://googleads.googleapis.com/v22/googleAdsFields/ad_group
Odpowiedź
{
  "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",
    ...
  ]
}
W tym przykładzie ważne tablice to:
- attributeResources
- Zasoby, które można niejawnie połączyć z zasobem w klauzuli FROM.
- metrics
- Rodzaje danych, które można wybrać w przypadku zasobu w klauzuli FROM. Informacja podawana tylko w przypadku pól, w których wartośćcategorytoRESOURCE.
- segments
- Klucze segmentu, które można wybrać za pomocą zasobu w klauzuli FROM. Segmentują one dane określone w zapytaniu. Wartość podawana tylko w przypadku pól, w którychcategoryma wartośćRESOURCE.
- selectableWith
- 
  
- Atrybut - selectableWithw polu zasobu lub segmentu określa inne zasoby, segmenty lub rodzaje danych, które można wybrać w tym samym zapytaniu GAQL. Ten atrybut jest kluczowy, gdy chcesz uwzględnić pola z zasobu lub segmentu, które nie są określone w klauzuli- FROM.
- Podczas tworzenia zapytania GAQL: -  Zasób w klauzuli FROMjest podmiotem głównym. Z tego zasobu zawsze możesz wybierać pola.
- Możesz też wybrać zgodne dane i segmenty dostępne w przypadku podmiotu głównego.
-  Jeśli uwzględnisz pola z dowolnego zasobu lub segmentu poza klauzulą FROM, musisz się upewnić, że ten zasób lub segment niebędącyFROMjest zgodny ze wszystkimi innymi polami, segmentami i rodzajami danych wybranymi w zapytaniu.
 
-  Zasób w klauzuli 
- Lista - selectableWithdla konkretnego zasobu (nazwijmy go Zasób A) zawiera wszystkie inne zasoby, segmenty i rodzaje danych, które można wybrać razem z polami z zasobu A, gdy zasób A nie jest głównym elementem.
- Przykład: 
- Rozważ to przykładowe zapytanie: - SELECT ad_group.id, segments.date, campaign.name FROM ad_group- Klauzula - FROMokreśla- ad_group.
- To zapytanie wybiera - ad_group.id(z zasobu- FROM),- segments.datei- campaign.name.
- Ponieważ wybrano - campaign.name, ale- campaignnie występuje w- FROM, musisz sprawdzić jego zgodność z innymi wybranymi elementami.
- Aby to zapytanie było prawidłowe, zasób - campaignmusi być zgodny z zasobem- segments.date(wybranym innym polem). Dlatego musisz sprawdzić atrybut- selectableWithw przypadku zasobu- campaign. Jeśli- segments.dateznajduje się na liście- selectableWithw- campaign, zapytanie jest prawidłowe.
 - Jeśli wybierzesz pola z zasobu, którego nie ma w klauzuli - FROM, lista- selectableWithtego zasobu musi zawierać wszystkie inne segmenty i zasoby występujące w klauzuli- SELECT.
Szczegóły metadanych
Możesz poprosić o katalog, klikając GoogleAdsFieldService na tych poziomach:
- Zasób
- Na przykład googleAdsFields/campaign.
- Pole zasobu
- Na przykład googleAdsFields/campaign.name.
- Pole segmentacji
- Na przykład googleAdsFields/segments.ad_network_type.
- Dane
- Na przykład googleAdsFields/metrics.clicks.