Vyberte stránku

Google Ads skript pro kontrolu rozpočtu

Google Ads skript pro kontrolu rozpočtu

Znáte to, když vám klient řekne, že si přeje měsíčně utratit za kampaně pouze X Kč? Jak to pohlídat a moc se u toho nezapotit? Vyzkoušejte tento skript na hlídání rozpočtu pro Google Ads!

Skripty pro Google Ads jsem začala psát asi ve stejnou dobu, kdy jsem pronikla do tajů samotného systému. Rozhodla jsem se s vámi sdílet jeden z těch prvních, které jsem napsala, a také jeden z nejužitečnějších, neboť s jeho výstupem pracuji každý den.

Představte si situaci, kdy vám klient stanoví maximální rozpočet, který je ochotný za reklamu utratit. U menších klientů jde o běžnou situaci. V takovém případě máte možnost nastavit maximální denní rozpočet například pomocí sdíleného rozpočtu na přesnou denní proporci měsíčního rozpočtu, ale tento přístup nebere v potaz peníze ušetřené např. o víkendu, kdy objem hledání upadá, a maximální měsíční rozpočet tak nebude vyčerpán. Rovněž se chceme vyhnout také přečerpání rozpočtu při volnějším nastavení rozpočtů.

Úkolem tohoto skriptu, kterému říkám Spend Check, je informovat vás skrze email jak upravit současný denní rozpočet, ať už navýšit či snížit, aby byl maximální rozpočet  do konce měsíce využit. Pro správný běh je potřeba vyplnit tři parametry, které se nacházejí na začátku skriptu:

  1. maxspendpermonth – maximální rozpočet, který je možné v daném měsíci utratit
  2. email – emailová adresa, na kterou budou chodit výsledky skriptu
  3. subject – předmět emailu, kde je dobré uvést i název účtu/klienta

Nastavte denní spouštění skriptu. Já osobně ho spouštím v noci v 5 hodin, abych hned ráno mohla udělat případné úpravy rozpočtů, a zároveň v takovou hodinu už by měla být data za předchozí den kompletní.

Pokud vám denní maily přijdou otravné, můžete odstranit komentář u řádku č. 75 a 77 a budou vám chodit pouze v druhé půlce měsíce v případě, kdy dojde k potencionálnímu přečerpání rozpočtu na konci měsíce a denní rozpočet je tedy nyní potřeba snížit.

Při každodenní optimalizaci kampaní je nejdůležitější poslední řádek emailu “Upravit denní rozpočet o:”, který informuje, jakou úpravu je potřeba s denními rozpočty provést:

  • vidíte-li červené číslo se znaménkem mínus, je potřeba denní útratu snížit
  • je-li tam zelené číslo, denní rozpočet o příslušnou částku navyšte

Ostatní metriky slouží pro pochopení průběhu utrácení rozpočtu a jsou vám tak k dispozici při zásadnějších změnách v rozpočtech kampaní. Hodí se například odhad měsíčního rozpočtu při aktuální útratě, kdy můžete klientovi navrhnout, zda by stanovený rozpočet nezvýšil.

Skript je poměrně jednoduchý a určitě jej lze dále upravovat a zlepšovat, každopádně svůj úkol plní a šetří mi spoustu času. Pokud ho budete chtít adaptovat na vaše konkrétní potřeby, můžete se na mě obrátit.

Staráte-li se o více účtů, bude se vám hodit MCC verze skriptu a pokud se věnujete i Skliku, koukněte na verzi skriptu pro Sklik.

Výsledky skriptu

Zdrojový kód skriptu

/******************************************
* Spend Check - Google Ads
* Script checks the cost of an entire account and informs you via email about daily budget adjustment needed to be done in the account in order to meet the maximum monthly spend
* Run the script every day
* Created By: Hana Kobzová
* HanaKobzova.cz
******************************************/

  var maxspendpermonth = 10000;  
  var email = "email@email.com";
  var subject = "Google Ads - Spend Check - Název účtu"

function main() {
  var date = new Date(Utilities.formatDate(new Date(), 
      AdsApp.currentAccount().getTimeZone(), "MMM dd,yyyy HH:mm:ss"));
  var day = date.getDate()-1;
  var month = date.getMonth()+1;
  var year = date.getYear();
  var daysmonth = new Date(year, month, 0).getDate();
  var daysleft = daysmonth - day; 
  

  var realcostuntiltoday =  AdsApp.currentAccount().getStatsFor("THIS_MONTH").getCost() - AdsApp.currentAccount().getStatsFor("TODAY").getCost();
  var costyesterday = AdsApp.currentAccount().getStatsFor("YESTERDAY").getCost();
  
  var maxspendperday = maxspendpermonth/daysmonth;
  var costrest = maxspendpermonth - realcostuntiltoday;
  var colorcostrest = "black";
  if (costrest > (maxspendpermonth*0,2)){colorcostrest = "green"} else {colorcostrest = "red"};
  
  var tendency = maxspendpermonth - (realcostuntiltoday/day*daysmonth);
  var colortendency = "black";
  if (tendency >0){colortendency = "green"} else {colortendency = "red"};
 
  var dailycostreal = realcostuntiltoday/day;
  var tendencytotal = dailycostreal * daysmonth;
  var dailycostdesired = maxspendpermonth/daysmonth;
  
  var corrector = dailycostdesired - dailycostreal;
  var colorcorrector = "black";
  if (corrector>0){colorcorrector = "green"} else {colorcorrector = "red"};
  
  var dailycostdesiredyesterday = costrest/daysleft;
  var tendencytotalyesterday = realcostuntiltoday + (costyesterday * daysleft); 
  var tendencyyesterday = maxspendpermonth - tendencytotalyesterday ; 
  var correctoryesterday = dailycostdesiredyesterday - costyesterday; 
  correctoryesterday = correctoryesterday.toFixed(0);
  var colortendencyyesterday = "black";
  if (tendencyyesterday>0){colortendencyyesterday = "green"}else{colortendencyyesterday = "red"};
  var colorcorrectoryesterday = "black";
  if (correctoryesterday>0){colorcorrectoryesterday = "green";} else {colorcorrectoryesterday = "red";}
  if (costrest<0){correctoryesterday = "příliš pozdě, měsíční rozpočet byl přečerpán"};
  
  //Email
  var html = [];
  html.push(
   "<html>",
    "<body>", 
     "<p>" + subject.toUpperCase() + "</p>",
     "<p>-------------</p>",
     "<p>TENTO MĚSÍC (1"+"."+month+"."+year+"-"+day+"."+month+"."+year+")</p>",
     "<p>Stanovený měsíční rozpočet: ", maxspendpermonth.toFixed(0) ,"</p>",
     "<p>Průměrný denní rozpočet: ", maxspendperday.toFixed(0) ,"</p>",
     "<p>Utraceno tento měsíc: ", realcostuntiltoday.toFixed(0) ,"</p>",
     "<p>Z rozpočtu zbývá do konce měsíce: <span style='color: " + colorcostrest + "'> " +  costrest.toFixed(0), "</span></p>",
     "<p>-------------</p>",
     "<p>VČERA ("+day+"."+month+"."+year+")</p>",
     "<p>Utraceno včera: ", costyesterday.toFixed(0) ,"</p>",
     "<p>Optimální denní rozpočet do konce měsíce: ", dailycostdesiredyesterday.toFixed(0) ,"</p>",
     "<p>Tendence při současném nastavení: <span style='color: " + colortendencyyesterday + "'> " +  tendencyyesterday.toFixed(0) + " (" + tendencytotalyesterday.toFixed(0) +")</span></p>",
     "<p>Upravit denní rozpočet o: <span style='color: " + colorcorrectoryesterday + "'> " + correctoryesterday + "</span></p>", 
    "</body>",
   "</html>");
 
  //if ((day > 15) && (correctoryesterday > 0) ) { //odeslat email pouze od 15. dne v měsíci a pokud utrácíme více, než by se mělo
  MailApp.sendEmail(email, subject, "", {htmlBody: html.join("\n")});
 // }
}

První verze skriptu zde byla zveřejněna 24.1.2016.

Jsem online marketérka na volné noze. Specializuji se na PPC reklamu v Google Ads a Sklik. Baví mě přemýšlet nad efektivitou mé práce, proto často objevím nějaký trik či vychytávku, jak zefektivnit práci na PPC kampaních nebo si sem tam naprogramuji užitečný skript, aby mi šla práce lépe od ruky. Hledáte PPC specialistu? Zjistěte o mě více nebo mi rovnou napište!

Vložit komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *