Wstrzymywanie kampanii AdWords po osiągnięciu limitu wydatków w danym miesiącu


Ilość ocen: 1535 Średnia ocena: 4.84/5

Jak automatycznie wstrzymywać kampanie AdWords po wydaniu określonej kwoty od początku miesiąca? W przypadku pojedynczej kampanii  możemy użyć reguł automatycznych, jednak gdy mamy bardziej rozbudowane konto, wiele kampanii i budżetów sprawa się komplikuje. Z pomocą przychodzą nam jednak skrypty AdWords.

Poniżej przykład prostego skryptu AdWords, który wstrzyma nam wszystkie kampanie AdWords oznaczone etykietą checkCost po przekroczeniu wydatków zdefiniowanych w parametrze maxCost w danym miesiącu.

Przed wdrożeniem skryptu musimy zaznaczyć kampanie, dla których chcemy by skrypt funkcjonował i nadać im etykietę checkCost, natomiast w samym skrypcie wystarczy określić kwotę wydatków miesięcznych po których nastąpi wstrzymanie kampanii jako parametr maxCost.

Każdego pierwszego dnia miesiąca skrypt wznowi wszystkie kampanie z etykietą checkCost dlatego należy pamiętać, by usunąć tą etykietę w kampaniach, które nie chcemy by były brane pod uwagę przez skrypt.

Po zapisaniu skryptu musimy ustawić harmonogram jego wykonywania zgodnie z naszymi preferencjami.

//etykieta kampanii, które będziemy sprawdzać
var label = "checkCost";
//maksymalna kwota wydatków w miesiącu na wszystkie kampanie z etykietą checkCost
var maxCost = 1000;

function main() {
  //sprawdzamy aktualny dzień miesiąca
  var today = new Date().getDate();

  //jeśli dzisiaj pierwszy to wznawiamy kampanie
  if(today == 1){
    Logger.log("wznawiamy kampanie");
    changeStatus("enable");
  }else{
    var sum = 0;
    var campaigns = AdWordsApp.campaigns().withCondition("LabelNames CONTAINS_ANY [" + label + "]").get();
    while(campaigns.hasNext()){
      campaign = campaigns.next();
      sum += campaign.getStatsFor("THIS_MONTH").getCost();
    }
    //jeśli suma wydatków w obecnym miesiącu przekracza zadany limit
    if(sum > maxCost){
      Logger.log("Wstrzymujemy kampanie");
      changeStatus("pause");
    }
  }
}

//funkcja pomocnicza, która wznawia lub wstrzymuje wszystkie kampanie na koncie z etykieta 'label'
function changeStatus(newStatus){
  var campaigns = AdWordsApp.campaigns().withCondition("LabelNames CONTAINS_ANY [" + label + "]").get();
  while (campaigns.hasNext()){
    campaign = campaigns.next();
    if(newStatus == "enable"){
      campaign.enable();
    }else if (newStatus == "pause"){
      campaign.pause();
    }
  }
}

UWAGA!!!
Zanim zastosujesz skrypt na koncie swoim lub klienta upewnij się, że wiesz dokładnie, co dany skrypt po kolei robi i jakie zmiany wprowadza na koncie. Korzystaj z opcji podglądu by przetestować skrypt przed jego zastosowaniem.

Jeżeli uważasz ten skrypt AdWords za przydatny poleć go swoim znajomym!