Партия

Иногда невозможно получить всю необходимую информацию из одного отчета, например, если у вас несовместимые параметры и показатели или если вы хотите агрегировать данные разными способами.

В таких ситуациях вам потребуется запустить несколько отчетов.

Кроме того, пакетная обработка — это эффективный способ повысить производительность вашего приложения за счет сокращения количества запросов.

Проблема с выполнением нескольких независимых запросов

Хотя это простое решение, выполнение нескольких запросов API за короткий промежуток времени может привести к тому, что вы столкнетесь с ограничениями квоты.

Квота обычно ограничивается одним запросом на пользователя в секунду. Это значение можно настроить в консоли Google API , но лучшее решение — вообще избегать параллельных запросов и вместо этого создавать пакетные запросы.

Пакетная обработка отчетов

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

Отчет 1: Топ-10 стран за август
Отчет 2: значения для тех же 10 стран в июле, для сравнения.
Отчет 3: Топ-10 каналов за август
Отчет 4: Значения для тех же 10 каналов в июле, для сравнения.

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

Отчеты 2 и 4 можно запустить только после получения результатов первого пакета, так как нам необходимо настроить в запросе соответствующий фильтр. Их можно запустить как второй пакет, как только будут получены результаты первого.

Другой вариант, который позволит объединить все запросы в один пакет, — просто вернуть все значения за июль (а не только первые 10) и, возможно, также за август. Это может быть разумным вариантом в зависимости от размера рассматриваемой учетной записи AdSense и объема памяти, доступной вашему приложению.

Как это сделано

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

Следующие шаги