Zapytanie składa się z kilku klauzul: SELECT
, FROM
, WHERE
, ORDER BY
, LIMIT
i PARAMETERS
.
Klauzule używają nazw pól, nazw zasobów, operatorów, warunków i sortowania, które łączą się w jedno żądanie zapytania.
Ogólnie rzecz biorąc, aby utworzyć zapytanie:
- Określ zasób, z którego mają zostać pobrane dane.
- Dodaj pola i wskaźniki, aby zdefiniować dane, które chcesz zwracać.
- Dodaj segmenty, aby pogrupować wyniki.
- Dodaj przypisane zasoby, aby pośrednio złączyć powiązane dane zasobów.
- Filtruj, porządkuj i ograniczaj wyniki.
Klauzula SELECT
Klauzula SELECT
:
- Jest klauzulą wymaganą w zapytaniu.
- Określa zestaw pól do pobrania w żądaniu.
- Przyjmuje oddzieloną przecinkami listę pól zasobów, kolumn niestandardowych, niestandardowych zmiennych Floodlight, pól segmentów i danych, a następnie zwraca wartości w odpowiedzi.
To przykładowe zapytanie pokazuje, jak wybrać atrybuty zasobu campaign
:
SELECT
campaign.id,
campaign.name
FROM campaign
Wiele typów pól
W ramach tego samego żądania możesz poprosić o różne typy pól.
Przykładowe zapytanie poniżej pokazuje jedno zapytanie z kombinacją tych elementów:
- Pola zasobów:
campaign.id
,campaign.name
,bidding_strategy.id
ibidding_strategy.name
. - Pola segmentu:
segments.device
isegments.date
. - Pola danych:
metrics.impressions
imetrics.clicks
.
SELECT
campaign.id,
campaign.name,
bidding_strategy.id,
bidding_strategy.name,
segments.device,
segments.date,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Więcej informacji o segmentowaniu raportów wyszukiwania znajdziesz w artykule Segmentacja.
Pole głównego zasobu
Zwykle dodajesz główne pole zasobu w klauzuli SELECT
, ale jest to opcjonalne (nie jest to wymagane).
To przykładowe zapytanie używa pola zasobu głównego (ad_group.status
) tylko do filtrowania wyników.
SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED
Niestandardowe zmienne Floodlight
Niestandardowe zmienne Floodlight możesz umieścić w klauzuli SELECT, używając ich identyfikatorów.
W tym przykładzie zapytanie zawiera dla zasobu kampanii zmienną niestandardową o identyfikatorze 123454321.
SELECT
conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
conversion_custom_dimensions.id[123454321]
FROM campaign
Kolumny niestandardowe
W klauzuli SELECT możesz uwzględnić kolumny niestandardowe, używając ich identyfikatorów.
W tym przykładzie zapytanie zawiera dla zasobu kampanii kolumnę niestandardową o identyfikatorze 12345678.
SELECT
custom_columns.id[12345678]
FROM campaign
Sprawdź, jak uzyskać identyfikatory kolumn niestandardowych.
Pola danych
Możesz wybrać pola wskaźników dla danego zasobu, nie dodając żadnych innych pól z tego zasobu w klauzuli SELECT
.
To przykładowe zapytanie wybiera wskaźniki impressions
i clicks
dla zasobu campaign
.
SELECT
metrics.impressions,
metrics.clicks
FROM campaign
W sekcji metrics
znajdziesz listę pól danych, których możesz używać w zapytaniach.
Pola segmentów
Możesz wybierać pola segmentów bez określania powiązanych pól zasobów ani wskaźników w klauzuli SELECT
.
To przykładowe zapytanie dzieli wyniki na segmenty według urządzenia.
SELECT segments.device
FROM campaign
W sekcji segments
znajdziesz listę pól segmentów, których możesz używać w zapytaniach.
Zabronione pola
W klauzuli SELECT
nie możesz używać tych pól:
- Pola, których nie można wybrać, czyli pola z atrybutem metadanych
Selectable
oznaczonym jakofalse
. - Pola powtarzane, czyli pola z atrybutem metadanych
Repeated
oznaczonym jakotrue
. - Pola niedostępne w przypadku danego zasobu w klauzuli
FROM
. Atrybutów niektórych zasobów nie można wybrać razem. Niektóre zasoby udostępniają tylko podzbiór wszystkich wskaźników i segmentów. - Niezgodne segmenty lub dane. Więcej informacji znajdziesz w sekcji Segmentacja.
Informacje o tym, gdzie znaleźć te informacje o poszczególnych zasobach, znajdziesz w dokumentacji referencyjnej.
Klauzula FROM
Klauzula FROM
:
- Jest wymaganą klauzulą w przypadku zapytań kierowanych do
SearchAds360Service
(zarówno w metodachSearch
, jak iSearchStream
). - nie należy uwzględniać w przypadku zapytań kierowanych do usługi
SearchAds360FieldService
. - Określa główny zasób zwracany przez zapytanie.
- Możesz określić tylko jeden zasób.
- Określa pola, których możesz użyć we wszystkich innych klauzulach w zapytaniu.
Przypisane zasoby
Jeśli dostępne są przypisane zasoby, są niejawnie łączone z zasobem określonym w klauzuli FROM
. Aby zwrócić ich wartości, wystarczy dodać do klauzuli SELECT
ich atrybuty.
To przykładowe zapytanie zwraca zarówno identyfikator grupy reklam, jak i identyfikator kampanii, ponieważ campaign
jest przypisanym zasobem ad_group
.
SELECT
campaign.id,
ad_group.id
FROM ad_group
Pole resource_name
Pole resource_name
głównego zasobu w klauzuli FROM
jest zawsze zwracane.
W tym przykładowym zapytaniu zostanie uwzględniona odpowiedź ad_group.resource_name
, mimo że nie została bezpośrednio wybrana w zapytaniu:
SELECT ad_group.id
FROM ad_group
Pole resource_name
przypisanego zasobu jest zwracane, gdy wybrane jest co najmniej jedno pole.
W tym przykładowym zapytaniu odpowiedź zostanie uwzględniona w odpowiedzi campaign.resource_name
, ponieważ wybrano campaign.id
:
SELECT
campaign.id,
ad_group.id
FROM ad_group
Klauzula WHERE
Klauzula WHERE
:
- Jest opcjonalną klauzulą w zapytaniu.
- Określa warunki filtrowania i segmentowania danych dotyczących żądania.
Warunki są zgodne z tym wzorcem:
FIELD_NAME
OPERATOR
VALUE
(oddzielone spacjami). - Może zawierać wiele warunków rozdzielonych separatorem
AND
.
To przykładowe zapytanie pokazuje, jak użyć klauzuli WHERE
do zwrócenia danych impressions
dla danego okresu:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Więcej informacji o segmentowaniu raportów wyszukiwania znajdziesz w artykule Segmentacja.
Więcej informacji o określaniu zakresów dat w zapytaniach znajdziesz w sekcji Zakresy dat.
Filtruj według pola resource_name
Pole resource_name
umożliwia filtrowanie i sortowanie danych.
To przykładowe zapytanie używa pola campaign.resource_name
do filtrowania wyników według danej kampanii:
SELECT
campaign.id,
campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'
Wiele warunków
Aby filtrować dane, możesz połączyć kilka warunków.
To przykładowe zapytanie prosi o liczbę danych clicks
we wszystkich kampaniach z danymi impressions
na urządzeniach mobilnych z ostatnich 30 dni.
SELECT
campaign.id,
campaign.name,
segments.device,
metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
AND segments.device = MOBILE
AND segments.date DURING LAST_30_DAYS
Więcej informacji o segmentowaniu raportów znajdziesz w artykule Segmentacja.
Rozróżnianie wielkości liter
W przypadku filtrowania wartości ciągów domyślny rozróżnianie wielkości liter w poszczególnych operatorach odgrywa ważną rolę w prawidłowym filtrowaniu wyników.
Tabela poniżej zawiera domyślną rozróżnianie wielkości liter w poszczególnych operatorach.
Domyślna rozróżnianie wielkości liter | |
---|---|
=/!= |
Case sensitive |
IN/NOT IN |
Case sensitive |
LIKE/NOT LIKE |
Case insensitive |
CONTAINS (...) |
Case sensitive |
REGEXP_MATCH/NOT REGEXP_MATCH |
Case sensitive |
Możesz użyć modyfikatora (?i)
, aby zmienić domyślną czułość reagowania REGEXP_MATCH
i NOT REGEXP_MATCH
na wielkość liter, na przykład:
SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"
Pełną listę operatorów, których możesz używać do filtrowania danych, znajdziesz w sekcji Informacje o gramatyce zapytań.
Podstawowe segmenty dat
Te pola segmentów są nazywane głównymi segmentami dat: segments.date
, segments.week
, segments.month
, segments.quarter
i segments.year
.
Podstawowe segmenty daty możesz określić w klauzuli WHERE
, aby określić datę lub okres.
To przykładowe zapytanie określa wartość DURING LAST_30_DAYS
w polu segments.date
w klauzuli WHERE
:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Szczegółowe informacje o korzystaniu z podstawowych segmentów dat znajdziesz w sekcji Segmentacja > Podstawowe segmenty dat.
Niedozwolone filtrowanie
Filtrowanie jest niedozwolone:
- W niewybranych polach segmentów, z wyjątkiem podstawowych segmentów dat.
- W polach wiadomości dowolnego typu, z wyjątkiem elementów podstawowych (np.
Int64Value
,StringValue
itp.). - W atrybutach pól powtarzanych dowolnego typu wiadomości oprócz elementów podstawowych (np.
Int64Value
,StringValue
itp.).
Klauzula ORDER BY
Klauzula ORDER BY
:
- Jest opcjonalną klauzulą w zapytaniu.
- Określa kolejność zwracania wyników. Sposób sortowania jest zgodny z tym schematem:
FIELD_NAME
ORDERING_OPTION
(oddzielone spacją). - Pozwala na 2 opcje:
ASC
(rosnąco) iDESC
(malejąco). Domyślnie rosnąco.
To przykładowe zapytanie porządkuje kampanie według liczby kliknięć w kolejności malejącej (od najwyższej do najniższej):
SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC
Wiele zamówień
W klauzuli ORDER BY
możesz określić wiele pól za pomocą listy rozdzielanej przecinkami. Wyniki zostaną uporządkowane w takiej kolejności jak w zapytaniu.
To przykładowe zapytanie wybiera dane grupy reklam i porządkuje wyniki w kolejności rosnącej według nazwy kampanii, następnie w kolejności malejącej według liczby wyświetleń, a następnie w kolejności malejącej według liczby kliknięć:
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC
Łączenie kolejności i limitów
Aby zawęzić wyniki, możesz użyć klauzuli ORDER BY
w połączeniu z klauzulą LIMIT
.
To przykładowe zapytanie zwraca 5 kampanii o największej liczbie wyświetleń w ciągu ostatnich 30 dni:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5
Niedozwolone zamawianie
Zamówienie jest niedozwolone:
- Według atrybutów niewybranych zasobów.
- Według niewybranych danych.
- Na podstawie niewybranych segmentów.
- W przypadku tych typów pól:
MESSAGE
- Pola powtarzane
- Atrybuty pól powtarzanych.
Klauzula LIMIT
Klauzula LIMIT
:
- Jest opcjonalną klauzulą w zapytaniu.
- Pozwala ograniczyć liczbę wyników zwracanych przez zapytanie.
Ta klauzula jest przydatna, gdy na przykład interesuje Cię tylko próbka lub podsumowanie wyników.
To przykładowe zapytanie ogranicza łączną liczbę wyników do 50:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
Klauzula PARAMETERS
Klauzula PARAMETERS
umożliwia określenie metaparametrów żądania.
Uwzględnij wersje robocze
Parametr include_drafts
określa, czy w wynikach uwzględniane są wersje robocze elementów. Wartość domyślna to false
. Aby uwzględnić wersje robocze elementów, ustaw wartość true
.
To przykładowe zapytanie zwróci zarówno robocze wersje kampanii, jak i zwykłe kampanie:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
Pomiń odznaczone pole resource_name
Parametr omit_unselected_resource_names
umożliwia wykluczenie pola resource_name
w przypadku wszystkich zasobów, które nie są jawnie żądane w klauzuli SELECT
. Wartość domyślna to false
. Jeśli ustawisz ten parametr na true
, zalecamy jawne żądanie nazwy zasobu głównego i wszystkich przypisanych zasobów w klauzuli SELECT
.
To przykładowe zapytanie nie zwraca pola campaign.resource_name
ani pola customer.resource_name
, ponieważ nie występują one w klauzuli SELECT
:
SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
To przykładowe zapytanie zwraca pole campaign.resource_name
, ponieważ jego żądanie jest zawarte w klauzuli SELECT
:
SELECT
campaign.name,
campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true
Zmiana waluty używanej w danych
Parametr metrics_currency
umożliwia określenie waluty, która ma być używana przy obliczaniu danych uwzględnionych w klauzuli SELECT
.
Domyślnie na koncie jest używana waluta lokalna. Podczas ustawiania tego parametru musisz używać 3-znakowego kodu waluty zgodnego z normą ISO 4217.
Na przykład: PLN, EUR.
To przykładowe zapytanie zwraca dane cost_micros w walucie lokalnej konta.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
To przykładowe zapytanie zwraca wskaźnik cost_micros w peso chilijskich (CLP).
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"