Struktura zapytania

Zapytania dotyczące pól danych i segmentów można wysyłać za pomocą metody reports.search. Aby utworzyć zapytanie w języku zapytań Merchant Center, musisz najpierw napisać zapytanie, korzystając z gramatyki języka. Zapytanie składa się z kilku klauzul:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT

Klauzule używają 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ą interfejsu Google Content API for Shopping. Przyjrzyjmy się, jak można używać poszczególnych klauzul.

Klauzule

WYBIERZ

Klauzula SELECT określa zestaw pól do pobrania w żądaniu. SELECT przyjmuje listę pól segmentów i danych oddzielonych przecinkami i zwraca wartości w odpowiedzi. Klauzula SELECT jest wymagana w zapytaniu.

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
  • Dane

    • metrics.impressions
    • metrics.clicks

Niektóre pola są niedozwolone w klauzuli SELECT z powodu tego ograniczenia:

  • Wysyłanie zapytań o pola segmentu bez co najmniej 1 pola wskaźnika.

Informacje związane z powyższym warunkiem znajdziesz w naszej dokumentacji referencyjnej.

FROM

Klauzula FROM określa tabelę, z której mają być pobierane dane w żądaniu. Tabela w klauzuli FROM określa, których pól mogą używać wszystkie inne klauzule w danym zapytaniu. W klauzuli FROM można określić tylko jedną 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 mają być stosowane podczas filtrowania danych na potrzeby żądania. W przypadku klauzuli WHERE można określić co najmniej 1 warunek, rozdzielając je znakiem AND. Każdy warunek powinien być zgodny ze wzorcem field_name Operator value. W klauzuli WHERE można używać dowolnego pola segmentów, ale pola danych muszą być określone w klauzuli SELECT, aby można było ich używać w klauzuli WHERE. Klauzula WHERE jest wymagana w zapytaniu, ponieważ zawsze musisz określić zakres dat, dla którego chcesz uzyskać dane o skuteczności.

Oto przykład użycia WHERE do zwracania danych z określonego 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. Ten przykład zwróci liczbę kliknięć danej oferty w programie REKLAMY_ZAKUPOWE, w którym liczba kliknięć jest większa niż 100 w danym 30-dniowym okresie.

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 tym zapytaniu zauważysz, że wybrano segments.date. Niezależnie od tego, czy wybierzesz segments.date, w klauzuli WHERE zawsze musisz 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 pamiętaj o tym, czy operator uwzględnia wielkość liter.

Pełną listę operatorów znajdziesz w gramatyce języka.

ORDER BY

Klauzula ORDER BY określa kolejność, w jakiej mają być zwracane wyniki. Dzięki temu możesz uporządkować dane w porządku rosnącym lub malejącym na podstawie nazwy pola. Każde uporządkowanie jest określone jako field_name, a następnie ASC lub DESC. Jeśli nie określisz wartości ASC ani DESC, zamówienie domyślnie przyjmie wartość ASC. W klauzuli ORDER BY można używać tylko pól określonych w klauzuli SELECT. Klauzula ORDER BY jest w zapytaniu 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 określić wiele pól, używając listy rozdzielonej przecinkami. Kolejność będzie taka sama jak w zapytaniu. Na przykład w tym zapytaniu wyniki będą sortowane w kolejności rosnącej według wartości offer_id, następnie w kolejności malejącej według liczby wyświetleń, a potem w kolejności malejącej 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, jeśli interesuje Cię tylko podsumowanie.

Na przykład parametru LIMIT można użyć, aby ograniczyć łączną liczbę wyników w przypadku 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