Vyberte stránku

Adwords skript pro kontrolu rozpočtu více účtů zároveň

Adwords skript pro kontrolu rozpočtu více účtů zároveň

Vedete účty několika klientů, které máte pod svým Klientským účtem, a potřebujete u nich sledovat čerpání rozpočtu v průběhu měsíce? Vyzkoušejte tento nový skript určený pro MCC Adwords účet, který zasílá výsledky v jednom jediném emailu

Pokud sledujete rozpočty na úrovni jednotlivých účtů, určitě se také potýkáte s tím, že máte denně zahlcenou emailovou schránky s reporty ohledně rozpočtu. MCC Adwords skript je řešením, neboť sledujete rozpočet požadovaných podúčtů z jednoho místa a výsledkem je jediný email ve vaší emailové schránce.

Jak skript implementovat?

Vysvětlení činnosti skriptu najdete v původním příspěvku věnovaném sledování rozpočtu na úrovni jednotlivých účtů. Zdrojový kód umístěný níže musíte vložit na úroveň vašeho MCC.

Implementace MCC Adwords skriptu

Ve zdrojovém kódu je potřeba upravit 2 věci:

  1. upravit emailovou adresu do proměnné email, na kterou bude výsledek skriptu chodit
  2. přidat volání funkce connect() s potřebnými parametry pro každý účet, jehož čerpání rozpočtu chcete sledovat (příklad najdete přímo ve skriptu)

Doufám, že vám tento skript ušetří nejen čas strávený přepočítáváním rozpočtů v Google Adwords, ale také zlepší přehlednost vaší emailové schránky.

/******************************************
* MCC Spend Check - Google Adwords
* Script checks the cost of your selected child accounts and informs you via email about daily budget adjustment needed to be done in those accounts in order to meet the maximum monthly spend
* Run the script every day
* Created By: Hana Kobzová
* hanakobzova.cz
******************************************/

  var email = "email@email.com";
  var html = [];
  
function main() {  

  html.push(
   "<html>",
    "<body>");
  
  //Set child accounts and their maximum monthly spend, one connect function per child account
  //connect(account id, maximum monthly spend);
  connect("000-000-0000", 10000);  
  connect("111-111-1111", 20000);  
  connect("222-222-2222", 30000);  
  
  html.push(
    "</body>",
   "</html>");
 
  //if ((day > 15) && (correctoryesterday > 0) ) { //send email only after the 15th day of the month in case of overspend
  MailApp.sendEmail(email, "Adwords - Spend Check", "", {htmlBody: html.join("\n")});
  // }
}  
  

function connect(id, maxspendpermonth) {
  
  var childAccounts = MccApp.accounts().withIds([id]).get();
  var childAccount = childAccounts.next();
  MccApp.select(childAccount);
  
  var date = new Date(Utilities.formatDate(new Date(), 
      AdWordsApp.currentAccount().getTimeZone(), "MMM dd,yyyy HH:mm:ss"));
  var day = date.getDate();
  var month = date.getMonth()+1;
  var year = date.getYear();
  var daysmonth = new Date(year, month, 0).getDate();
  var daysleft = daysmonth - day + 1; 

  
  var maxspendperday = maxspendpermonth/daysmonth;
  var realcostuntiltoday =  AdWordsApp.currentAccount().getStatsFor("THIS_MONTH").getCost() - AdWordsApp.currentAccount().getStatsFor("TODAY").getCost();

  var costrest = maxspendpermonth - realcostuntiltoday;
  var colorcostrest = "black";
  if (costrest > (maxspendpermonth*0,2)){colorcostrest = "green"}else{colorcostrest = "red"};
  var displaywarning = "";
  if (costrest > (maxspendpermonth*0,2)){displaywarning="none !important"} else {displaywarning="inline"};
  
  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 costyesterday = AdWordsApp.currentAccount().getStatsFor("YESTERDAY").getCost();
  var tendencytotalyesterday = realcostuntiltoday + (costyesterday * daysleft); 
  var tendencyyesterday = maxspendpermonth - tendencytotalyesterday ; 
  var correctoryesterday = dailycostdesiredyesterday - costyesterday; 
  var colortendencyyesterday = "black";
  if (tendencyyesterday>0){colortendencyyesterday = "green"}else{colortendencyyesterday = "red"};
  var colorcorrectoryesterday = "black";
  if (correctoryesterday>0){colorcorrectoryesterday = "green"}else{colorcorrectoryesterday = "red"};
  
  //Email
  html.push( 
    "<p>-------------</p>",
    "<p style='font-weight:bold;text-transform: uppercase;'>", childAccount.getName(), "</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.toFixed(0) + "</span></p>");
 }

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!

8 Komentáře(ů)

  1. Lukáš Mládek

    Zdravím Hanko,

    super script. Chtěl jsem se zeptat, jestli je možnost, že by byl script důkladnější, že by se zaměřoval na měsíční útratu klientských účtů celkově(což umí) a pak i konkrétních sítí účtů (vyhledávací síť, obsahová síť, Google nákupy a Videokampaně).

    Bylo by to super a myslím, že nejen mě by to ušetřilo spoustu času.

    Předem moc díky za odpověď
    Lukáš

    Odpovìdìt
  2. Radek Kupr

    Zdravím, nasadil jsem skript na naše MCC, ale hlásí mi:

    “annot retrieve the next object: iterator has reached the end. (line 41)”

    Odpovìdìt
    • Hana Kobzová

      Dobrý den, pošlete mi kód skriptu tak, jak jste si ho implementoval vy a kouknu na to.

      Odpovìdìt
  3. Jesús Del Águila

    Hola!

    No puedo hacer que el Script se ejecute todos los días, quisiera que el Script se ejecutara todos los dias. Como puedo lograr ello.

    Muchas gracias

    Odpovìdìt
    • Hana Kobzová

      Buenas tardes. Para que se ejecute el script todos los días, tiene que establecerlo a nivel de script en Google Ads en Herramientas => Secuencias de comando. No se hace dentro del código.

      Odpovìdìt
  4. Lukáš Kolovrat

    Zdravím Hanko,
    je script připraven i na nové prostředí Google Ads?
    Nebo jsou potřeba nějaké úpravy?
    Děkuji moc za info.

    Odpovìdìt
    • Hana Kobzová

      Ahoj, skript na nové prostředí připraven není a úpravy bude pravděpodobně potřebovat.

      Odpovìdìt

Vložit komentář

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