Vyberte stránku

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

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

Pokud jste vyzkoušeli můj Sklik skript pro kontrolu rozpočtu a zároveň jste ho použili u více účtů, určitě vám každodenní záplava emailů není příliš příjemná. Vyzkoušejte tento nový skript, který reportuje všechny požadované účty v jednom emailu!

Již zveřejněný skript jsem upravila tak, aby chodil pouze jeden email, ve kterém najdete stejné informace, jako v původním skriptu.

Jak skript implementovat?

Návod na implementaci skriptu najdete v původním článku. Ve zdrojovém kódu je potřeba upravit 2 věci:

  1. přidat 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 Skliku, ale také zlepší přehlednost vaší emailové schránky.

function main() {
  var email = "email@email.com";
  
  //Email
  var html = [];
  html.push(
   "<html>",
    "<body>");
  
  //Jaké účty sledovat nastavíte vložením tohoto řádku pro každý účet zvlášť pod sebe
  //connect(maximální rozpočet, "Sklik - Spend Check - Název účtu", "poducet@email.com", html);
  connect(10000, "Sklik - Spend Check - Klientský účet 1", "klientsky.ucet1@seznam.cz", html);
  connect(15000, "Sklik - Spend Check - Klientský účet 2", "klientsky.ucet2@seznam.cz", html);


  html.push(
    "</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, "Sklik - Spend Check", "", {htmlBody: html.join("\n")});
 // }
 
}

function get_date(daysBack) {
  var past = new Date();
  past.setHours(0);
  past.setMinutes(0);
  past.setSeconds(0);
  past.setMilliseconds(0);
  var originalOffset = past.getTimezoneOffset();
  var pastTime = past.getTime() - daysBack * 86400 * 1000;
  past.setTime(pastTime);
  var newOffset = past.getTimezoneOffset();
  var offsetDiff = newOffset - originalOffset;
  if (offsetDiff != 0) {
    pastTime += offsetDiff * 60 * 1000;
    past.setTime(pastTime);
  }
  return past;
}

function connect(maxspendpermonth, subject, account_username, html){
  var date = new Date(); 
  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 sklik = SklikAPI.Connect();
  sklik.loginFromProperties();
  if (account_username) {
    sklik.setUserIdByUsername(account_username);
  }
  
  var accountMonthStats = sklik.Client.stats({
      dateFrom: get_date(day),
      dateTo: get_date(1),
      granularity: "total"
    }).report;
  
  var accountData = [];
  for (var i = 0; i < accountMonthStats.length; i++) {
    var reportRow = accountMonthStats[i];
  }
  
  var accountYesterdayStats = sklik.Client.stats({
      dateFrom: get_date(1),
      dateTo: get_date(1),
      granularity: "total"
    }).report;
  
  var accountData2 = [];
  for (var i = 0; i < accountYesterdayStats.length; i++) {
    var reportRow2 = accountYesterdayStats[i];
  }
  
  var realcostuntiltoday =  reportRow.price/100; 
  var costyesterday = reportRow2.price/100;;
  sklik.Client.logout();
  
  
  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"};
  
  html.push(
     "<p>-------------</p>",
     "<p><strong>" + subject.toUpperCase() + "</strong></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>");
  
  return html;
  }

 

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 *