Struktura zapytania

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