Автообновление дедлайна акций в Яндекс.Директе

в 16:31, , рубрики: php, Песочница, яндекс.директ, метки: ,

Передо мной и моими знакомыми не раз вставала задача ежедневно обновлять даты в объявлениях Яндекс.Директа. В объявлении пишется «Успей до 21 мая», если сегодня 20 мая. И так каждый день выставляется следующий день. Почему-то все они делали это вручную, хотя задача прекрасно и удобно автоматизируется с помощью предоставленного этим сервисом API.

Я эту задачу автоматизировал и хочу поделиться с уже готовым скриптом. К тому же, он послужит примером для работы в подобных ситуациях, его несложно адаптировать под другие подобные задачи.

Скрипт был написан под кампании моего партнера, для других возможно потребуются какие-нибудь изменения. Для меня было важно упростить работу с скриптом, поэтому вариант «залью шаблоны всех объявлений на сервер и буду обновлять каждый день» не подошел — так при изменении или добавлении объявлений их нужно было настраивать и на сервере.

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

Принцип работы скрипта следующий:

  • Скачиваются все объявления из заданных кампаний.
  • В фразах вида «до 11.22», числа заменяются на нужную дату.
    Например, «до 01.05» заменится на «до 21.05», если сегодня 20 мая.
    Текущие даты в объявлении могут быть любые, лишь бы цифры было по две и для дня, и для месяца (правильно:
    09.05, неправильно: 9.05, 9.5, 09.5)
  • В фразах вида «до 2 мая», число и месяц заменяются на нужные.
    Фразы вроде «до 20 процентов» игнорируются, в качестве последнего слова может быть только название месяца.

Чтобы начать работать с API, нужно:

  • В интерфейсе Яндекс.Директ включить использование API, прочитав и согласившись с правилами.
  • Создать сертификат и скачать его.

Далее, закачать все файлы из архива с сертификатом в директорию с скриптом на сервере.

В скрипт нужно внести следующие параметры (в первых двух строках):

  • Список идентификаторов рекламных кампаний (по аналогии с тем, что написано в строке).
  • Количество дней, которые прибавить к текущему (по умолчанию — 1 день).

Далее, добавить вызов этого скрипта в cron ночью, с 0 до 9 часов (9:00 — время начала работы модерации). Осталось только получать утром уведомления о прошедших модерациях.

Документация по Яндекс.Директ API: http://api.yandex.ru/direct/
Сам скрипт: https://github.com/gepo/ecommerce-tools

Автор: gepo


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js