Иногда невозможно получить всю необходимую информацию из одного отчета, например, если у вас несовместимые параметры и показатели или если вы хотите агрегировать данные разными способами.
В таких ситуациях вам потребуется запустить несколько отчетов.
Кроме того, пакетная обработка — это эффективный способ повысить производительность вашего приложения за счет сокращения количества запросов.
Проблема с выполнением нескольких независимых запросов
Хотя это простое решение, выполнение нескольких запросов API за короткий промежуток времени может привести к тому, что вы столкнетесь с ограничениями квоты.
Лучшее решение — вообще избегать параллельных запросов и вместо этого создавать пакетные запросы.
Пакетная обработка отчетов
В примере приложения, управляемого пользователем, первым подходом будет объединение как можно большего количества независимых запросов в один пакетный запрос.
Отчет 1: Топ-10 стран за август
Отчет 2: значения для тех же 10 стран в июле, для сравнения.
Отчет 3: Топ-10 каналов за август
Отчет 4: Значения для тех же 10 каналов в июле, для сравнения.
В приведенном выше примере отчеты 1 и 3 независимы, но их нельзя объединить в один отчет, поскольку они предлагают разную разбивку данных. Однако их можно объединить вместе.
Отчеты 2 и 4 можно запустить только после получения результатов первого пакета, так как нам необходимо настроить в запросе соответствующий фильтр. Их можно запустить как второй пакет, как только будут получены результаты первого.
Другой вариант, который позволит объединить все запросы в один пакет, — просто вернуть все значения за июль (а не только первые 10) и, возможно, также за август. Это может быть разумным вариантом в зависимости от размера рассматриваемой учетной записи AdSense и объема памяти, доступной вашему приложению.
Как это сделано
В каждой клиентской библиотеке пакетная обработка осуществляется по-разному, поэтому вам следует проверить ее документацию, чтобы узнать подробности. Вот несколько ссылок на соответствующую документацию в нескольких клиентских библиотеках: