Пролистывание результатов

GoogleAdsService.Search поддерживает разбивку по страницам, указав в запросе page_size . При этом набор результатов запроса разбивается на несколько ответов, каждый из которых содержит количество объектов до page_size . Если page_size не указан, для него автоматически устанавливается максимум в 10 000 строк.

Например, для следующего запроса:

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

Если ваша учетная запись содержит 50 000 ключевых слов и для page_size установлено значение 1,000 , набор результатов будет содержать 1000 объектов GoogleAdsRow в первом ответе, а также next_page_token .

Чтобы получить следующую тысячу строк, отправьте запрос еще раз с тем же размером страницы, но обновите page_token запроса на next_page_token ответа. Значение page_size в последующих запросах может каждый раз быть разным. Обратите внимание, что next_page_token не заполняется в ответе, содержащем последний пакет строк.

Наши клиентские библиотеки автоматически обрабатывают подкачку. Вам нужно только перебирать строки ответа. Когда все строки на текущей странице возвращены, клиентская библиотека автоматически извлекает новую страницу строк от вашего имени, пока не будет получен весь набор данных. Если вы используете REST вместо gRPC, вы должны явно запрашивать каждую новую страницу.

Google Ads API внутренне кэширует весь набор данных, поэтому последующие запросы выполняются быстрее, чем первоначальный. В зависимости от вашего варианта использования вы можете установить для page_size любое значение от 1 до 10 000. В общем, для повышения общей производительности используйте больший page_size для меньшего количества циклов.

Ваш запрос должен оставаться неизменным в последующих запросах, чтобы можно было использовать преимущества кэшированных данных; запросы не будут способствовать увеличению вашей квоты, особенно для базового доступа . Если запрос отличается и отправляется вместе с тем же токеном страницы, возвращается ошибка.