Отслеживание изменений

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

Заново получать с сервера рекомендуется только фактически изменившиеся объекты. Для проверки наличия изменений следует использовать методы сервиса Changes:

  • checkDictionaries — сообщает о наличии изменений в справочниках;
  • checkCampaigns — сообщает о наличии изменений в кампаниях клиента;
  • check — сообщает о наличии изменений в кампаниях, группах и объявлениях клиента.
Примечание. Изменения в ключевых фразах считаются изменениями в группе.

Рекомендуется использовать методы следующим образом:

  1. При первом запуске приложения вызовите метод checkDictionaries без параметра Timestamp для синхронизации текущего времени.

    Метод возвращает параметр Timestamp — текущее время на сервере по UTC.

  2. При каждом последующем вызове методов укажите значение параметра Timestamp, полученное при предыдущем вызове. Это гарантирует непрерывность интервалов для проверки изменений вне зависимости от возможных задержек, а также разницы во времени сервера и приложения.

Если требуется проверить наличие изменений во всех кампаниях, группах и объявлениях клиента, то:

  1. С помощью метода checkCampaigns проверьте, в каких кампаниях произошли изменения.

    Метод возвращает идентификаторы кампаний, в которых произошли изменения. В параметре ChangesIn указывается, где произошли изменения:

    • SELF — в параметрах кампании;
    • CHILDREN — в дочерних объектах: группах, объявлениях, фразах;
    • STAT — корректировка статистики кампании (как правило, в связи с фильтрацией недобросовестных кликов).
  2. Если метод показал наличие изменений в дочерних объектах кампании (значение CHILDREN), получите идентификаторы изменившихся объектов с помощью метода check. Для этого во входном массиве CampaignIds укажите идентификатор кампании, а во входном массиве FieldNames — значения AdGroupIds и AdIds.

В случае получения ответа о наличии изменений актуальные данные можно получить с помощью метода get соответствующих сервисов — AdGroups или Ads.