navbar

Скрипт остановки рекламных кампаний Google в праздники и выходные

1049

На протяжении года много государственных праздников и дополнительных выходных дней. Для части бизнесов не имеет смысла рекламироваться в такие дни. Особенно это касается тех, кто оказывает срочные услуги: аварийное вскрытие замков, услуги эвакуатора, ветклиники. Также это актуально для компаний с большой долей обращений по телефону.

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

Как пользоваться скриптом:

  1. Кампании, к которым должен применяться скрипт нужно присвоить ярлык (по-умолчанию это ярлык “active”);
  2. В скрипте надо в переменной daysOff указать даты выходных дней без пробелов и через запятую в формате “dd-mm-yyyy”, dd-дни, mm-месяц, yyyy-год;
  3. Установить в скрипте в переменной labelName свой ярлык, если используете какой-то другой, который отличается от “active”;
  4. Авторизовать работу скрипта и настроить расписание работы “Ежедневной ночью”.

Код скрипта:

/*******************************************************
* Скрипт останавливает кампании в доп.выходные дни и запускает на следующий рабочий день
* Version 1.2
* April 25, 2019
* Created By: Denys German
* CBRAND.agency
********************************************************/
var days_off = '28-04-2019,29-04-2019,30-04-2019,01-05-2019,09-05-2019';//задаем даты выходных дней, в которые кампании не должны работать без пробелов в формате dd-mm-yyyy
var labelName = 'active';//ярлык кампаний, к которым будет примеменяться скрипт
var statusSwitcher = 0;
 
function main() {
  //Подготовка списка дат
  var todayStr = new Date();
  var yesterdayStr = new Date();
  yesterdayStr.setDate(todayStr.getDate() - 1);
  var todayStrFromat = Utilities.formatDate(todayStr, AdsApp.currentAccount().getTimeZone(), 'dd-MM-yyyy');
  var yesterdayStrFromat = Utilities.formatDate(yesterdayStr, AdsApp.currentAccount().getTimeZone(), 'dd-MM-yyyy');
  var dataFormatArr = days_off.split(',');
  //Алгоритм определения того, что делать с кампаниями: включать, выключать, ничего не делать
  for (var i=0; i<dataFormatArr.length; i++)
  {
  	if(dataFormatArr[i]==todayStrFromat)
    {
      		statusSwitcher = 1;
  			break;
    }
    else if(dataFormatArr[i]==yesterdayStrFromat)
      		statusSwitcher = 2; 
  }
  //Блок включения/выключения кампаний
  switch (statusSwitcher) {
  case 1:
    pauseCampaign();
    break;
  case 2:
    enableCampaign();
    break;
   default:
    Logger.log('Никаких изменений');
  }
}
//Остановка кампаний
function pauseCampaign() {
var campaignIterator = AdsApp.campaigns()
  .withCondition("LabelNames CONTAINS_ANY ['" + labelName + "']")
  .get();
var shopingcampaignIterator = AdsApp.shoppingCampaigns()
  .withCondition("LabelNames CONTAINS_ANY ['" + labelName + "']")
  .get();
var videocampaignIterator = AdsApp.videoCampaigns()
  .withCondition("LabelNames CONTAINS_ANY ['" + labelName + "']")
  .get();
while(campaignIterator.hasNext()) {
  campaignIterator.next().pause();
}
while(shopingcampaignIterator.hasNext()) {
  shopingcampaignIterator.next().pause();
}
while(videocampaignIterator.hasNext()) {
  videocampaignIterator.next().pause();
}
   Logger.log("Кампании остановлены");
}

//Запуск кампаний
function enableCampaign() {
var campaignIterator = AdsApp.campaigns()
  .withCondition("LabelNames CONTAINS_ANY ['" + labelName + "']")
  .get();
var shopingcampaignIterator = AdsApp.shoppingCampaigns()
  .withCondition("LabelNames CONTAINS_ANY ['" + labelName + "']")
  .get();
var videocampaignIterator = AdsApp.videoCampaigns()
  .withCondition("LabelNames CONTAINS_ANY ['" + labelName + "']")
  .get();
while(campaignIterator.hasNext()) {
  campaignIterator.next().enable();
}
while(shopingcampaignIterator.hasNext()) {
  shopingcampaignIterator.next().enable();
}
while(videocampaignIterator.hasNext()) {
  videocampaignIterator.next().enable();
}
    Logger.log("Кампании запущены");
}

Также файл со скриптом можно скачать с Google Drive.

В сфере интернет-маркетинга работаю с 2009 года. Помогаю клиентам со всего мира развивать и продвигать их проекты.

Динамические UTM метки в Facebook Ads: как отслеживать максимум данных
Продвинутая сегментация торговых кампаний в Google Ads
Кейс: как продвинуть школу вокала с индивидуальными уроками
Эффективная работа с аудиториями в поисковых кампаниях Google Ads
Вверх
'
×