Zapytania o pola danych i segmentów mogą być wysyłane do metody reports.search
. Aby utworzyć zapytanie w języku zapytań w Merchant Center, musisz najpierw utworzyć zapytanie, stosując gramatykę języka. Zapytanie składa się z wielu klauzul:
SELECT
FROM
WHERE
ORDER BY
LIMIT
Aby ułatwić sobie wybór odpowiednich danych, w klauzulach są używane nazwy pól, nazwy tabel, operatory, warunki i kolejność. Żądanie połączone w jedno zapytanie można wysłać za pomocą interfejsu Google Content API for Shopping. Przyjrzyjmy się teraz możliwości zastosowania każdej klauzuli.
Klauzule
SELECT
Klauzula SELECT
określa zbiór pól do pobrania w żądaniu. SELECT
pobiera rozdzieloną przecinkami listę pól segmentu i danych, zwracając wartości w odpowiedzi. W zapytaniu wymagana jest klauzula SELECT
.
Oto przykładowe zapytanie, które wybiera dane o kliknięciach z danej tabeli:
SELECT
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
W jednym żądaniu możesz też wysyłać zapytania o różne typy pól:
SELECT
segments.date,
segments.program,
metrics.impressions,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Pola segmentu
segments.date
segments.program
Wskaźniki
metrics.impressions
metrics.clicks
Niektóre pola są niedozwolone w klauzuli SELECT
z powodu tego ograniczenia:
- Zapytanie o pola segmentu, które nie zawierają co najmniej jednego pola danych.
Informacje dotyczące powyższego stanu można znaleźć w naszych dokumentach referencyjnych.
FROM
Klauzula FROM
określa tabelę, z której mają zostać pobrane dane w żądaniu. Tabela w klauzuli FROM
określa, których pól mogą używać wszystkie inne klauzule w przypadku danego zapytania. W klauzuli FROM
można określić tylko 1 tabelę. Obecnie obsługiwana jest tylko tabela MerchantPerformanceView
Klauzula FROM
jest wymagana w zapytaniu do metody search
w usłudze reports
.
WHERE
Klauzula WHERE
określa warunki, które należy stosować podczas filtrowania danych w żądaniu. Jeśli używasz klauzuli WHERE
, możesz określić co najmniej 1 warunek za pomocą funkcji AND
, aby je rozdzielić. Każdy warunek powinien mieć postać field_name Operator value
. W klauzuli WHERE
można użyć dowolnego pola segmentów, ale pola danych należy określić w klauzuli SELECT
, aby można było jej użyć w klauzuli WHERE
. Klauzula WHERE
jest wymagana w zapytaniu, ponieważ zawsze musisz określić zakres dat, w którym mają być zwracane dane o skuteczności.
Poniżej znajdziesz przykład użycia funkcji WHERE
do zwrócenia danych z wybranego okresu:
SELECT
segments.offer_id,
metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Możesz łączyć kilka warunków, aby filtrować dane. Ten przykład zwróci liczbę kliknięć na ofertę w programie SHOPPING_ADS, gdzie liczba kliknięć w ciągu 30 dni przekracza 100.
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 zobaczysz, że wybrano pole segments.date
.
Niezależnie od tego, czy wybierzesz segments.date
, pobieranie danych o skuteczności wymaga zawsze podania ograniczonego zakresu dat w klauzuli WHERE
.
SELECT
segments.date,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Podczas filtrowania należy pamiętać, że wielkość liter w operatorze jest rozróżniana.
Pełną listę operatorów znajdziesz w sekcji gramatyki języka.
ORDER BY
Klauzula ORDER BY
określa kolejność zwracania wyników. Pozwala to uporządkować dane w kolejności rosnącej lub malejącej na podstawie nazwy pola. Każde zamówienie ma postać field_name
, po której następuje znak ASC
lub DESC
. Jeśli nie podasz ani ASC
, ani DESC
, kolejność zostanie domyślnie ustawiona na ASC
. W klauzuli ORDER BY
można używać tylko pól określonych w klauzuli SELECT
. Klauzula ORDER BY
jest opcjonalna w zapytaniu.
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 określić wiele pól, rozdzielając je przecinkami. Kolejność wyświetlania reklam będzie wykonywana w takiej samej kolejności jak w zapytaniu.
Na przykład w tym zapytaniu wyniki zostaną posortowane w kolejności rosnącej według liczby kliknięć (offer_id
), a następnie w kolejności malejącej według liczby wyświetleń:
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.
Przydaje się to, jeśli interesuje Cię tylko podsumowanie.
Na przykład LIMIT
można użyć, aby 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