Możesz przeglądać wyniki pobrane za pomocą funkcji GoogleAdsService.Search, zamiast pobierać cały zestaw wyników naraz. Omówienie raportowania za pomocą interfejsu Google Ads API znajdziesz w artykule Omówienie raportowania.
Search zwraca stałe strony zawierające maksymalnie 10 tys. wierszy. Ustawienie page_size w SearchGoogleAdsRequest zostało wycofane i zwraca błąd RequestError.PAGE_SIZE_NOT_SUPPORTED.
Przykładowe zapytanie i stronicowanie
Rozważmy to zapytanie:
SELECT
ad_group.id,
ad_group_criterion.type,
ad_group_criterion.criterion_id,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type
FROM ad_group_criterion
WHERE ad_group_criterion.type = KEYWORD
Jeśli Twoje konto zawiera 50 tys. słów kluczowych, pierwszy zestaw wyników będzie zawierać 10 tys. GoogleAdsRow obiektów wraz z next_page_token.
Aby pobrać kolejne 10 tys. wierszy, ponownie wyślij żądanie, ale zaktualizuj page_token w żądaniu na next_page_token w odpowiedzi:
{
"query": "SELECT ad_group.id, ad_group_criterion.type, ad_group_criterion.criterion_id, ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type FROM ad_group_criterion WHERE ad_group_criterion.type = KEYWORD",
"pageToken": "CN3q9...example_token..."
}
Pamiętaj, że w odpowiedzi zawierającej ostatnią partię wierszy pole next_page_token nie jest wypełnione.
Nasze biblioteki klienta automatycznie obsługują stronicowanie. Wystarczy iterować po wierszach odpowiedzi. Gdy wszystkie wiersze na bieżącej stronie zostaną zwrócone, biblioteka klienta automatycznie pobierze nową stronę wierszy w Twoim imieniu, dopóki nie zostanie pobrany cały zbiór danych. Jeśli zamiast gRPC używasz REST, musisz wysłać osobne żądanie dla każdej nowej strony.
Buforowanie i wygasanie tokena strony
Interfejs Google Ads API wewnętrznie przechowuje w pamięci podręcznej zbiór danych, dzięki czemu kolejne żądania stron są szybsze niż pierwsze żądanie. Pamiętaj, że wartości next_page_token mają ograniczony czas życia (TTL) i wygasają, jeśli nie zostaną użyte w krótkim czasie (około 2 godzin). Jeśli token strony wygaśnie, interfejs API zwróci błąd i musisz rozpocząć nowe zapytanie.
Aby skorzystać z danych w pamięci podręcznej, kolejne żądania muszą być identyczne. Kolejne żądania podzielone na strony nie są liczone jako dodatkowe operacje w ramach dziennego limitu operacji dla dostępu eksploratora i dostępu podstawowego. Jeśli zapytanie jest inne i zostanie wysłane z tym samym tokenem strony, zwracany jest błąd.