Struktura zapytania

Zapytania o pola danych i segmentów można wysyłać do reports.search metody. Aby utworzyć zapytanie w języku zapytań Merchant Center, musisz najpierw napisać je zgodnie z gramatyką tego 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. Zobaczmy, jak można używać poszczególnych klauzul.

Klauzule

SELECT

Klauzula SELECT określa zestaw pól, które mają zostać pobrane w żądaniu. Klauzula 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 segmentów

    • 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 segmentów bez co najmniej 1 pola danych.

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

FROM

Klauzula FROM określa tabelę, z której mają zostać pobrane dane w żądaniu. Tabela w klauzuli FROM określa, które pola mogą być używane przez wszystkie inne klauzule w danym zapytaniu. 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 mają być stosowane podczas filtrowania danych w żądaniu. Gdy używasz klauzuli WHERE, możesz określić co najmniej 1 warunek, oddzielając je za pomocą operatora AND. Każdy warunek powinien mieć postać field_name Operator value. W klauzuli WHERE można używać dowolnych pól 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 klauzuli 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

Możesz połączyć kilka warunków, aby filtrować dane. Ten przykład zwróci liczbę kliknięć każdej 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 poniższym zapytaniu zauważysz, że wybrano segments.date. Niezależnie od tego, czy wybierzesz segments.date, aby pobrać dane o skuteczności, zawsze musisz podać skończony zakres dat w klauzuli WHERE.

SELECT
  segments.date,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31

Podczas filtrowania ważne jest, aby pamiętać o rozróżnianiu wielkości liter przez operatora.

Podczas wysyłania zapytań o metadane za pomocą ciągu zapytania opisanego w gramatyce języka pamiętaj o tych kwestiach.

ORDER BY

Klauzula ORDER BY określa kolejność, w jakiej mają być zwracane wyniki. Umożliwia to uporządkowanie danych w kolejności rosnącej lub malejącej na podstawie nazwy pola. Każda kolejność jest określana jako field_name z dopiskiem ASC lub DESC. Jeśli nie określono ani ASC, ani DESC, domyślnie używana jest kolejność ASC. W klauzuli ORDER BY można używać tylko pól określonych w klauzuli SELECT. Klauzula ORDER BY jest opcjonalna w zapytaniu.

Poniższe 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 offer_id, a następnie w kolejności malejącej według liczby wyświetleń i 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, które mają zostać zwrócone. Jest to przydatne, jeśli interesuje Cię tylko podsumowanie.

Na przykład klauzuli LIMIT można użyć do ograniczenia łącznej liczby 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