Wstrzymywanie kampanii AdWords po osiągnięciu limitu wydatków w danym miesiącu
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!