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 ordering, które są łączone w jedno żądanie.
Ogólnie rzecz biorąc, aby utworzyć zapytanie:
- Określ zasób, z którego mają być pobierane dane.
- Dodaj pola i wskaźniki, aby określić dane, które chcesz zwracać.
- Dodaj segmenty, aby pogrupować wyniki.
- Dodaj przypisane zasoby, aby niejawnie łączyć powiązane dane zasobów.
- Filtruj, porządkuj i ograniczaj wyniki.
klauzula SELECT
Klauzula SELECT
:
- Jest wymaganą klauzulą w zapytaniu.
- Określa zbiór pól do pobrania w żądaniu.
- Zajmuje rozdzielaną przecinkami listę pól zasobów, kolumn niestandardowych, niestandardowych Floodlight, pola segmentu i dane oraz zwraca wartości w polach .
To przykładowe zapytanie pokazuje, jak wybrać atrybuty atrybutu campaign
zasób:
SELECT
campaign.id,
campaign.name
FROM campaign
Wiele typów pól
W tym samym żądaniu możesz zgłosić żądanie różnych typów pól.
Przykładowe zapytanie poniżej przedstawia 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
Patrz: segmentacja. .
Pole głównego zasobu
Zwykle należy uwzględnić główne pole zasobów w polu SELECT
klauzuli. Jest to jednak opcjonalne (nie wymagane).
To przykładowe zapytanie używa głównego pola zasobu (ad_group.status
) tylko do filtrowania
wyniki.
SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED
Niestandardowe zmienne Floodlight
W klauzuli SELECT możesz uwzględnić niestandardowe zmienne Floodlight, używając ich ID
W tym przykładzie zapytanie zawiera zmienną niestandardową o identyfikatorze 123454321 dla parametru zasób kampanii.
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 kolumnę niestandardową o identyfikatorze 12345678, która wskazuje zasób kampanii.
SELECT
custom_columns.id[12345678]
FROM campaign
Dowiedz się, jak uzyskać identyfikatory kolumn niestandardowych.
Pola danych
Możesz wybrać pola wskaźników dla danego zasobu bez uwzględniania innych
z zasobu w klauzuli SELECT
.
To przykładowe zapytanie wybiera wskaźniki impressions
i clicks
dla: campaign
.
SELECT
metrics.impressions,
metrics.clicks
FROM campaign
Zobacz metrics
,
listę pól danych, których możesz używać w zapytaniach.
Pola segmentów
Możesz wybierać pola segmentów bez określania odpowiednich pól zasobów
ani wskaźników w klauzuli SELECT
.
To przykładowe zapytanie segmentuje wyniki według urządzenia.
SELECT segments.device
FROM campaign
Zobacz segments
,
listę pól segmentów, których możesz używać w zapytaniach.
Pola niedozwolone
W klauzuli SELECT
nie możesz używać tych pól:
- Pola, których nie można wybrać, tj. pola z metadanymi
Selectable
oznaczony jakofalse
. - Pola powtarzane, czyli pola z atrybutem metadanych
Repeated
oznaczono jakotrue
. - Pola, które są niedostępne w przypadku danego zasobu w klauzuli
FROM
. Atrybutów niektórych zasobów nie można wybrać razem. Tylko niektóre zasoby Podzbiór wszystkich danych i segmentów. - Niezgodne segmenty lub dane. Więcej informacji znajdziesz w sekcji Segmentacja. i informacjami o nich.
Zapoznaj się z dokumentacją: gdzie można znaleźć te informacje dotyczące każdego zasobu.
Klauzula FROM
Klauzula FROM
:
- Jest wymaganą klauzulą przy zapytaniach do
SearchAds360Service
. (metodySearch
iSearchStream
). - Nie powinien być uwzględniany w przypadku zapytań kierowanych do
SearchAds360FieldService
. - Określa główny zasób zwracany przez zapytanie.
- Możesz podać tylko jeden zasób.
- Definiuje pola, których możesz używać we wszystkich innych klauzulach w zapytaniu.
Przypisane zasoby
Jeśli przypisane zasoby są dostępne, są domyślnie połączone z
określonym w klauzuli FROM
. Wystarczy dodać ich atrybuty
do klauzuli SELECT
, aby zwrócić ich wartości.
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
resource_name
pole
Pole resource_name
głównego zasobu w klauzuli FROM
ma zawsze wartość
.
W tym przykładowym zapytaniu odpowiedź ad_group.resource_name
zostanie uwzględniona w odpowiedzi
chociaż nie jest ona wyraźnie wybrana w zapytaniu:
SELECT ad_group.id
FROM ad_group
Pole resource_name
przypisanego zasobu to
zwracany, gdy wybierzesz co najmniej jedno pole.
W tym przykładowym zapytaniu sekcja campaign.resource_name
zostanie uwzględniona w tagu
odpowiedź, bo 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 podziału danych na segmenty w żądaniu.
Warunki są zgodne z tym wzorcem:
FIELD_NAME
OPERATOR
VALUE
(oddzielone przez puste spacje). - Może zawierać wiele warunków rozdzielonych separatorem
AND
.
W tym przykładowym zapytaniu pokazujemy, jak użyć klauzuli WHERE
do zwrócenia wartości impressions
dane dla danego okresu:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Patrz: segmentacja. .
Więcej informacji o określaniu daty znajdziesz w sekcji Zakresy dat. zakresy zapytań.
Filtruj według pola resource_name
Za pomocą pola resource_name
możesz filtrować i porządkować dane.
To przykładowe zapytanie używa pola campaign.resource_name
do filtrowania wyników
przez daną kampanię:
SELECT
campaign.id,
campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'
Wiele warunków
Możesz łączyć wiele warunków, aby filtrować dane.
To przykładowe zapytanie prosi o liczbę danych typu clicks
we wszystkich kampaniach
z danymi impressions
z ostatnich 30 dni na urządzeniach mobilnych.
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
Patrz: segmentacja. .
Rozróżnianie wielkości liter
Podczas filtrowania według wartości ciągów znaków domyślnie uwzględniana jest wielkość liter każdego operatora odgrywa ważną rolę w prawidłowym filtrowaniu wyników.
W tabeli poniżej pokazujemy, jak domyślnie jest rozróżniana wielkość liter w przypadku poszczególnych operatorów.
Domyślne 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 |
Za pomocą modyfikatora (?i)
możesz zmienić domyślną czułość
Atrybuty REGEXP_MATCH
i NOT REGEXP_MATCH
nie uwzględniają wielkości liter, na przykład:
SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"
Pełną listę znajdziesz w sekcji Informacje o gramatyce w zapytaniach z operatorów, których możesz używać do filtrowania danych.
Podstawowe segmenty dat
Te pola segmentów są nazywane głównymi segmentami dat:
segments.date
, segments.week
, segments.month
, segments.quarter
i
segments.year
Do określenia daty lub godziny możesz użyć podstawowych segmentów dat w klauzuli WHERE
okresu przejściowego.
To przykładowe zapytanie określa pole DURING LAST_30_DAYS
dla pola segments.date
w klauzuli WHERE
:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Zobacz sekcję Segmentacja > Podstawowe segmenty dat informacje o korzystaniu z podstawowych segmentów dat.
Zabronione filtrowanie
Filtrowanie jest niedozwolone:
- w niewybranych polach segmentów (z wyjątkiem głównych segmentów dat),
- W polach dowolnego typu wiadomości oprócz elementów podstawowych (na przykład
Int64Value
,StringValue
itp.). - W przypadku atrybutów pól powtarzanych dowolnego typu wiadomości z wyjątkiem elementów podstawowych
(na przykład
Int64Value
,StringValue
itp.).
Klauzula ORDER BY
Klauzula ORDER BY
:
- Jest opcjonalną klauzulą w zapytaniu.
- Określa kolejność zwracania wyników. Zamówienie jest zgodne z tym
wzór:
FIELD_NAME
ORDERING_OPTION
(rozdzielone spacją). - Zezwala na 2 opcje:
ASC
(rosnąco) iDESC
(malejąco). Wartość domyślna to rosnąco.
W tym przykładzie 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ć większą liczbę pól, rozdzielając je przecinkami
z listy. Wyniki zostaną uporządkowane w takiej samej kolejności, jaka została określona w polu
zapytania.
To przykładowe zapytanie wybiera dane grupy reklam i porządkuje wyniki w kolejności rosnącej porządkuj je według nazwy kampanii, a potem malejąco według liczby wyświetleń, 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
Klauzuli ORDER BY
możesz używać w połączeniu z klauzulą LIMIT
, aby
zawęź wyniki.
To przykładowe zapytanie zwraca pięć kampanii z największą liczbą wyświetleń ostatnie 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
Zabronione zamówienia
Zamawianie jest niedozwolone:
- Według atrybutów niewybranych zasobów.
- Według niewybranych danych.
- Przez niewybrane segmenty.
- W przypadku tych typów pól:
MESSAGE
- Pola powtarzane
- Atrybuty pól powtarzanych.
Klauzula LIMIT
Klauzula LIMIT
:
- Jest opcjonalną klauzulą w zapytaniu.
- Umożliwia ograniczenie liczby wyników zwracanych przez zapytanie.
Ta klauzula jest przydatna, jeśli na przykład interesują Cię tylko próbki 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 dla żądania.
Uwzględnij wersje robocze
Parametr include_drafts
określa, czy wersje robocze elementów są uwzględniane w
wyniki. Wartość domyślna to false
. Aby uwzględnić elementy w wersji roboczej, ustaw wartość true
.
To przykładowe zapytanie zwraca zarówno robocze kampanie, jak i zwykłe kampanie:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
Pomiń niewybrane miejsce: resource_name
Parametr omit_unselected_resource_names
umożliwia wykluczenie parametru
resource_name
wszystkich zasobów, które nie są wymagane w
klauzulę SELECT
. Wartość domyślna to false
. Jeśli ustawisz ten parametr na true
,
zalecamy jawne żądanie nazwy zasobu podstawowego
i wszystkie przypisane zasoby w klauzuli SELECT
.
To przykładowe zapytanie nie zwraca campaign.resource_name
ani
customer.resource_name
, ponieważ nie znajdują się one w polu SELECT
klauzula:
SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
To przykładowe zapytanie zwraca pole campaign.resource_name
, ponieważ jest ono
wyraźnie wymagane 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
pozwala określić walutę, która ma być używana.
podczas obliczania danych uwzględnionych w klauzuli SELECT
.
Domyślnie na koncie używana jest waluta lokalna. Jeśli ustawisz tę opcję
użyj 3-znakowego kodu waluty w formacie ISO 4217.
np. USD, EUR.
To przykładowe zapytanie zwraca dane cost_micros w walucie lokalnej koncie.
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 dane 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"