Struktura zapytania

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