Zapytania dotyczące pól danych i segmentów można wysyłać do metody reports.search
. Aby utworzyć zapytanie w języku zapytań Merchant Center, musisz najpierw napisać je przy użyciu gramatyki języka. Zapytanie składa się z szeregu klauzul:
SELECT
FROM
WHERE
ORDER BY
LIMIT
Klauzule korzystają z nazw pól, nazw tabel, operatorów, warunków i kolejności, aby pomóc Ci wybrać odpowiednie dane. Po połączeniu w jedno zapytanie można wysłać żądanie za pomocą Google Content API for Shopping. Przyjrzyjmy się wykorzystaniu każdej z tych klauzul.
Klauzule
SELECT
Klauzula SELECT
określa zestaw pól do pobrania w żądaniu. SELECT
pobiera rozdzielaną przecinkami listę pól segmentu i danych, zwracając wartości w odpowiedzi. Klauzula SELECT
jest wymagana w zapytaniu.
Oto przykładowe zapytanie, w którym wybierane są dane o kliknięciach z danej tabeli:
SELECT
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Możesz też wysyłać zapytania o różne typy pól w ramach jednego żądania:
SELECT
segments.date,
segments.program,
metrics.impressions,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Pola segmentów
segments.date
segments.program
Wskaźniki
metrics.impressions
metrics.clicks
Niektóre pola są niedozwolone w klauzuli SELECT
z powodu tego ograniczenia:
- Zapytanie obejmujące pola segmentów bez co najmniej jednego pola danych.
Informacje dotyczące powyższego warunku znajdziesz w dokumentacji referencyjnej.
FROM
Klauzula FROM
określa tabelę, z której mają być pobierane dane w żądaniu. Tabela w klauzuli FROM
określa, które pola mogą być używane we wszystkich pozostałych klauzulach w przypadku danego zapytania. W klauzuli FROM
można podać tylko 1 tabelę. Obecnie obsługiwana jest tylko tabela MerchantPerformanceView.
Klauzula FROM
jest wymagana w zapytaniu wysyłanym do metody search
w usłudze reports
.
WHERE
Klauzula WHERE
określa warunki, które mają być stosowane podczas filtrowania danych na potrzeby żądania. W przypadku klauzuli WHERE
1 lub więcej warunków możesz rozdzielić za pomocą AND
. Każdy warunek powinien być zgodny ze wzorcem field_name Operator value
. W klauzuli WHERE
możesz używać dowolnych pól segmentów, ale aby można było użyć ich w klauzuli WHERE
, pola danych muszą być określone w klauzuli SELECT
. Klauzula WHERE
jest wymagana w zapytaniu, ponieważ zawsze musisz określić zakres dat, w którym chcesz zwrócić dane o skuteczności.
Ten przykład użycia funkcji WHERE
do zwracania danych z danego okresu:
SELECT
segments.offer_id,
metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Aby filtrować dane, możesz połączyć kilka warunków. W tym przykładzie zostanie podana liczba kliknięć oferty w programie SHOPPING_ADS, w przypadku których liczba kliknięć przekroczyła 100 w ciągu danego 30-dniowego okresu.
SELECT
segments.offer_id,
segments.program,
metrics.clicks
FROM MerchantPerformanceView
WHERE metrics.clicks > 100
AND segments.program = SHOPPING_ADS
AND segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’;
W poniższym zapytaniu zauważysz, że wybrano segments.date
.
Niezależnie od tego, czy wybierzesz segments.date
, w klauzuli WHERE
musisz zawsze podać ograniczony zakres dat, aby pobrać dane o skuteczności.
SELECT
segments.date,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Podczas filtrowania musisz pamiętać o rozróżnianiu wielkości liter operatora.
Pełną listę operatorów znajdziesz w gramatykach poszczególnych języków.
ORDER BY
Klauzula ORDER BY
określa kolejność, w jakiej mają zostać zwrócone wyniki. Pozwala to uporządkować dane w kolejności rosnącej lub malejącej na podstawie nazwy pola. Każda kolejność jest określona za pomocą symbolu field_name
, po którym następuje ASC
lub DESC
. Jeśli nie określono żadnej wartości (ASC
ani DESC
), domyślna wartość w kolejności to ASC
. W klauzuli ORDER BY
można używać tylko pól określonych w klauzuli SELECT
. Klauzula ORDER BY
w zapytaniu jest opcjonalna.
To zapytanie porządkuje zwrócone wiersze według liczby kliknięć od największej do najmniejszej:
SELECT
segments.offer_id,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY metrics.clicks DESC
W klauzuli ORDER BY
możesz podać wiele pól za pomocą listy rozdzielanej przecinkami. Kolejność będzie taka sama jak w zapytaniu.
Na przykład w tym zapytaniu wyniki zostaną posortowane w kolejności rosnącej według liczby kliknięć: offer_id
, następnie malejąco według liczby wyświetleń, a następnie malejąco według liczby kliknięć:
SELECT
segments.offer_id,
metrics.impressions,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY
segments.offer_id,
metrics.impressions DESC,
metrics.clicks DESC
LIMIT
Klauzula LIMIT
umożliwia określenie liczby wyników do zwrócenia.
Jest to przydatne, gdy interesuje Cię tylko podsumowanie.
Dzięki LIMIT
można na przykład ograniczyć łączną liczbę wyników dla tego zapytania:
SELECT
segments.program,
segments.offer_id,
metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY metrics.impressions DESC
LIMIT 50