Отслеживание изменений
Полученные с сервера параметры кампаний, групп, объявлений, ключевых фраз, а также справочники регионов и часовых поясов следует сохранять в кэше (в локальной базе данных, в памяти, в файлах на диске и т. д.).
Заново получать с сервера рекомендуется только фактически изменившиеся объекты. Для проверки наличия изменений следует использовать методы сервиса Changes:
- CheckDictionaries — сообщает о наличии изменений в справочниках;
- CheckCampaings — сообщает о наличии изменений в кампаниях клиента;
- check — сообщает о наличии изменений в кампаниях, группах и объявлениях клиента.
Примечание
Изменения в ключевых фразах считаются изменениями в группе.
Рекомендуется использовать методы следующим образом:
-
При первом запуске приложения вызовите метод CheckDictionaries без параметра
Timestamp
для синхронизации текущего времени.Метод возвращает параметр
Timestamp
— текущее время на сервере по UTC. -
При каждом последующем вызове методов укажите значение параметра
Timestamp
, полученное при предыдущем вызове. Это гарантирует непрерывность интервалов для проверки изменений вне зависимости от возможных задержек, а также разницы во времени сервера и приложения.
Если требуется проверить наличие изменений во всех кампаниях, группах и объявлениях клиента, то:
-
С помощью метода CheckCampaings проверьте, в каких кампаниях произошли изменения.
Метод возвращает идентификаторы кампаний, в которых произошли изменения. В параметре
ChangesIn
указывается, где произошли изменения:SELF
— в параметрах кампании;CHILDREN
— в дочерних объектах: группах, объявлениях, фразах;STAT
— корректировка статистики кампании (как правило, в связи с фильтрацией недобросовестных кликов).
-
Если метод показал наличие изменений в дочерних объектах кампании (значение CHILDREN), получите идентификаторы изменившихся объектов с помощью метода check. Для этого во входном массиве
CampaignIds
укажите идентификатор кампании, а во входном массивеFieldNames
— значения AdGroupIds и AdIds.
В случае получения ответа о наличии изменений актуальные данные можно получить с помощью метода get
соответствующих сервисов — AdGroups или Ads.