Отчет о потоковой передаче данных с использованием GoogleAdsService

Чтобы получить сущности API Google Ads и отчетные данные, используйте один из следующих методов:

Вот основные различия между этими двумя методами:

GoogleAdsService.SearchStream GoogleAdsService.Search
Подходит для производственного кода Да Да
Услуга GoogleAdsService GoogleAdsService
Сценарий Извлечение объектов и отчетов Извлечение объектов и отчетов
Ответ Поток объектов GoogleAdsRow Страницы объектов GoogleAdsRow
Поля ответа Только те, которые указаны в запросе Только те, которые указаны в запросе
Дневные лимиты Ежедневные лимиты на основе уровней доступа Ежедневные лимиты на основе уровней доступа

В то время как Search может отправлять несколько постраничных запросов для загрузки всего отчета, SearchStream отправляет один запрос и инициирует постоянное соединение с API Google Ads независимо от размера отчета.

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

Устраняя время кругового обмена данными по сети, необходимое для запроса каждой отдельной страницы ответа Search (в зависимости от вашего приложения), SearchStream может обеспечить более высокую производительность по сравнению с постраничным просмотром, особенно для больших отчетов.

Пример

В этом примере рассматривается отчёт, состоящий из 100,000 строк. В следующей таблице представлены различия в учёте между двумя методами.

SearchStream Поиск
Размер страницы Непригодный 10 000 строк на странице
Количество API-запросов 1 запрос 10 запросов
Количество ответов API 1 непрерывный поток 10 ответов

Факторы производительности

В большинстве случаев использования мы рекомендуем SearchStream вместо Search по следующим причинам:

  • Для одностраничных отчетов (менее 10 000 строк): существенных различий в производительности между двумя методами не обнаружено.

  • Для многостраничных отчетов: SearchStream обычно работает быстрее, поскольку избегает множественных циклов передачи данных, а чтение или запись из кэша диска играет меньшую роль.

Ограничения по скорости

Дневные лимиты для обоих методов соответствуют стандартным лимитам и уровням доступа вашего токена разработчика. Один запрос или отчёт считается одной операцией независимо от того, выводится ли результат на страницу или выводится потоком.