Menu

Každý PPC špecialista, ktorý niekedy spravoval kampane s pevne daným rozpočtom, pozná ten boj o jeho dodržanie.

Miň všetko! Po Facebooku už aj Google káže.

Intenzita tohto boja sa ešte zvýšila potom, čo bola v Google AdWords zavedená nová politika, podľa ktorej môže kampaň prečerpať až dvojnásobok svojho denného rozpočtu. Pritom AdWords sľubuje, že neprekročí celkový mesačný rozpočet. Nemá zmysel meditovať nad dôvodmi. Ako to už dávno robí Facebook, Google chce minúť maximum toho, čo ste do AdWords ochotný investovať. Pre porovnanie, reklamný systém Facebook už dávno zvykol minúť váš rozpočet do posledného centu. Aj v prípade, že vám ostávalo 50 centov a v priemere stálo kliknutie 2 eurá.

V AdWords sa bežne stávalo, že ak ste aj deklarovali denný rozpočet na úrovni napr. 100 eur, kvôli slabším dňom ste za 30 dní minuli iba 2500 eur. Korunka ku korunke, tých 500 eur Googlu chýba :). 

Pomôž si skriptom a pusti rozpočty z hlavy

Aby sme udržali naše rozpočty pod kontrolou, naprogramovali sme skript, ktorý vám zašle e-mail, ak sa rozpočet AdWords účtu míňa príliš rýchlo, príliš pomaly alebo kampane nebežia.

Skript môžete nastaviť podľa vlastných potrieb. Ovláda sa z Google Spreadsheetu a odosiela tabuľku s výsledkami na  zadaný e-mail. V prípade potreby môžete uviesť ku každému účtu rôzny email. To je výhodou, ak máte pod jedným MCC účtom viacero účtov, ktoré majú na starosti rôzni PPC správcovia.

Ako AdWords skript funguje?

AdWords skript prechádza všetky účty uvedené v Google Spreadsheete podľa ID AdWords účtu. Na základe počtu zobrazení posudzuje či kampaň v deň spustenia skriptu beží. Podľa spotreby kreditu kampane v aktuálnom mesiaci vyhodnotí, koľko kreditu by mala kampaň minúť do konca mesiaca a porovná hodnotu s nastaveniami v tabuľke. Ak niektorý z účtov nebeží alebo jeho spotreba kreditu nespĺňa vami stanovené podmienky, skript vám zašle e-mail.

Inštrukcie krok za krokom

  1. Vytvorte si kópiu Google Spreadsheetu.
  2. Vyplňte ID AdWords účtu alebo účtov a stanovený Mesačný rozpočet. Názov účtu môžete, ale nemusíte vyplniť. Ak už tieto informácie máte zhrnuté v inej tabuľke, môžete ich jednoducho automaticky importovať pomocou Google Spreadsheet funkcie IMPORTRANGE (inštrukcie nájdete tu).
  3. V stĺpcoch Čerpanie pod % a Čerpanie nad % vyplňte percentuálnu hodnotu, pri prekročení ktorej vám skript zašle upozornenie. Ak nechcete v niektorom prípade zasielať upozornenie, napríklad vás nezaujíma, ak kampaň míňa menej, ako je stanovený rozpočet, napíšte do príslušného políčka jednoducho slovo ”NIE”. Do stĺpca Email zadajte e-maily, na ktoré má pri príslušnom účte chodiť výsledná tabuľka s upozornením.

    Príklad vyplnenia tabuľky

  4. Skript skopírujte a nasaďte na svoj MCC účet (účet správcu).
  5. Do skopírovaného skriptu (pod článkom) vložte namiesto SHEET_URL, adresu URL Google Spreadsheetu, ktorý ste v predošlom kroku vytvorili.
  6. Skript prechádza prvých 100 riadkov tabuľky. Ak je účtov, ktorých chcete sledovať viac, zmeňte v skripte časť A1:G100 na napr. A1:G300.
  7. Spúšťanie skriptu odporúčame nastaviť na každý deň v ranných hodinách.
  8. Výsledkom skriptu bude tabuľka, akú môžete vidieť v príklade na obrázku.

    Príklad výslednej tabuľky

Zobraziť kód skriptu

Autorka: Nina Varhaníková

/*****************************************************************************************
* Kontrola rozpoctov a bezania kampane - Google Adwords                                  *
* Skript odošle email, ak je cerpanie rozpoctu nizke, privysoke alebo kampan nebezi.     *
* Spustenie skriptu nastavte raz denne alebo podla potreby                               *
* Vytvorila: Nina Varhanikova                                                            *
* Spolocnost: PizzaSEO                                                                   *
******************************************************************************************/

//Do uvodzoviek umiestnite URL Google sheetu
var ss_config = SpreadsheetApp.openByUrl('SHEET_URL');

function main() {
ALERT();
}

function ALERT()
{

//Zistenie dnesneho dna a poctu dni v mesiaci
var teraz = new Date();
var den = teraz.getDate();
var mesiac = teraz.getMonth();
var rok = teraz.getFullYear();
var dni_v_mesiaci = new Date(rok, mesiac+1, 0).getDate();

//Vyber dat zo sheetu
var sheet = ss_config.getSheetByName("Rozpocet");

//Rozsah dat
var sheet_rozsah = sheet.getRange("A1:G100").getValues();

//Vyber emailov
var emaily = [];
emaily[0] = sheet_rozsah[1][6];
for (var y = 1; y < sheet_rozsah.length; y++)
{
  var zaznamenany_email = "false";
  for (var z = 0; z < emaily.length; z++)
  {
    if (emaily[z]==sheet_rozsah[y][6])
    {
      var zaznamenany_email = "true";
      break;
    }
  }
  if(zaznamenany_email == "false" && sheet_rozsah[y][6] != "")
  {
    emaily.push(sheet_rozsah[y][6]);
  }
}

//Vyber uctov podla emailu
for(var x = 0; x < emaily.length; x++)
{
  var kontrola_obsahu_emailu = "false";
  if(emaily[x] != "")
  {
    var obsah_emailu = '<html><head><style>table, th, td {border: 1px solid black; border-collapse: collapse;} th, td {padding: 5px;text-align: left;}</style></head><body><table style="width:40%"><thead><tr><th>Klient</th><th>Stav</th><th>Podčepranie/Prečerpanie</th></tr></thead>';
    //Vyber ID uctu
    var vyber_uctu = MccApp.accounts().get();
    while (vyber_uctu.hasNext())
    {
      var ucet = vyber_uctu.next();    
      MccApp.select(ucet);
      

      //Porovnavanie podla ID
      var IDuctu = ucet.getCustomerId();
      var nazov_emailu = "ALERT - Rozpocet + bezanie kampane";
      obsah_emailu = obsah_emailu + '<tbody>';
      for(var i = 0; i < sheet_rozsah.length; i++)
      {
        if(sheet_rozsah[i][6] == emaily[x])
        {
          if(sheet_rozsah[i][0] == IDuctu)
          {
            var nazov_uctu = AdWordsApp.currentAccount().getName();
            

            //Statistika uctu dnes
            var statistika_dnes = ucet.getStatsFor("TODAY");
            var zobrazenia_dnes = statistika_dnes.getImpressions();
            

            //Statistika uctu tento mesiac
            var statistika_mesiac = ucet.getStatsFor("THIS_MONTH");
            var cena_mesiac = statistika_mesiac.getCost();
            

            //Vypocet ceny za mesiac
            var precerpa_sa = cena_mesiac + ((cena_mesiac/den)*(dni_v_mesiaci-den));        
            var rozpocet = sheet_rozsah[i][3];
            var precerpanie_v_percentach = Math.round(100*(precerpa_sa-rozpocet)/rozpocet);
            var precerpanie = precerpanie_v_percentach + "%";
            

            //Vyber uctov, ktore nebezia
            var stav_kampane = "Kampaň beží";
            if(zobrazenia_dnes < 1)
            {
              stav_kampane = "Kampaň nebeží";
              kontrola_obsahu_emailu = "true";
              //DEFINOVANIE TABULKY
              //otvorenie riadka
              obsah_emailu = obsah_emailu + '<tr>';
              //vkladanie do buniek v riadku
              obsah_emailu = obsah_emailu + '<td>'+nazov_uctu+'</td>'+ '<td style="background-color:rgba(255, 200, 51, 0.5)">'+stav_kampane+'</td>'+'<td>'+precerpanie+'</td>';
            }
            
            

            //Vyber uctov nesplnajucich rozpocet
            if(sheet_rozsah[i][4] != "NIE" && stav_kampane != "Kampaň nebeží")
            {
              var povolene_podcerpanie = -sheet_rozsah[i][4];
              if(precerpanie_v_percentach <= povolene_podcerpanie)
              {
                obsah_emailu = obsah_emailu + '<tr>';
                obsah_emailu = obsah_emailu + '<td>'+nazov_uctu+'</td>'+ '<td>'+stav_kampane+'</td>'+'<td style="background-color:rgba(0, 204, 102, 0.3)">'+precerpanie+'</td>';
                kontrola_obsahu_emailu = "true";
              }
            }
            if(sheet_rozsah[i][5] != "NIE" && stav_kampane != "Kampaň nebeží")
            {
              if(precerpanie_v_percentach >= sheet_rozsah[i][5])
              {
                obsah_emailu = obsah_emailu + '<tr>';
                obsah_emailu = obsah_emailu + '<td>'+nazov_uctu+'</td>'+ '<td>'+stav_kampane+'</td>'+'<td style="background-color:rgba(255, 0, 0, 0.3)">'+precerpanie+'</td>';
                kontrola_obsahu_emailu = "true";
              }
              obsah_emailu = obsah_emailu + '</tr>';
            }
          }
        }
      }
    }
    obsah_emailu = obsah_emailu + '</tbody></table>';
    Logger.log(kontrola_obsahu_emailu);
    

    //Odoslanie emailu
    if(kontrola_obsahu_emailu == "true")
      
    {
      MailApp.sendEmail(emaily[x], nazov_emailu, obsah_emailu,{'htmlBody':obsah_emailu});
    }  
  }
}
}

Ak narazíte na problém pri nasadzovaní skriptu, alebo máte návrh na jeho vylepšenie, neváhajte nás kontaktovať, alebo nám napíšte komentár pod článkom.

Páčil sa Vám článok?

Nenechajte si újsť raz mesačne naše najdôležitejšie novinky!
  • Toto pole je pre validačné účely a mal by zostať nezmenený.
  • Marian Hlinka

    ked ho skusam nahodit tak hlasi chybu:

    ReferenceError: „MccApp“ is not defined. (line 60)

    • Nina Varhanikova

      Skript treba nasadiť na MCC účet a nie na konkrétny účet klienta. V tom by mal byť problém. Ďakujem za komentár, do inštrukcií sme doplnili tento krok.

      • Marian Hlinka

        Ano..to bol problem…dakujem

        No hned sa objavil aj dalsi…skusil som to na jednom klientovi, ktory ma na november planovany spend €1,053…do dnes sa minulo €212. Dnes som budget aktualizoval aby bol denny spend €42…spustil som skript a prisiel mi alert ze spend je -39% ..co ale nesedi. Cize on neberie v uvahu nastaveny denny spend?

        • Nina Varhanikova

          Skript počíta na základe celkového minutého kreditu za daný mesiac predpoveď na celý mesiac. Keďže vy ste míňali v priemere 21,2€ na deň, predpoveď celkového míňania rozpočtu je stále o 39% nižšie číslo ako hodnota mesačného rozpočtu, ktorý má účet dosiahnuť. Skript nezohľadňuje momentálne nastavenie rozpočtu vašich kampaní, pretože nastavenie na 42€ neznamená, že sa toľko reálne minie.
          Skript slúži na odhalenie problémov pri rozpočtoch ako upozornenie, odporúčam vám nastaviť teraz hodnotu podčerpania na pár dni na nižšie číslo (napríklad 40%), a hodnotu prečerpania naopak, na číslo nízke (napríklad 5%). Po takom zvýšení rozpočtu predpokladám, že vaša kampaň môže začať prečerpávať predpokladaný celkový rozpočet.
          Dúfam, že som pomohla.

          • Marian Hlinka

            ano…dakujem za vysvetlenie