Vyberte stránku

Google Ads skript: Hlídání rozšíření o propagaci

Google Ads skript: Hlídání rozšíření o propagaci

V prosinci 2021 jsem zveřejnila postup, jak na hlídání propagací přes Google Sheety.

Rozšíření o propagace zatím stále nejsou dostupné přes Google Ads skripty, avšak díky nakopnutí Láďou Vitoušem jsem kontrolu rozšíření ještě více automatizovala pomocí skriptu.

Zatímco u předchozí verze bylo nutné sheet za účelem aktualizace údajů manuálně otevírat, tento skript kontrolu provádí automaticky každý den a o změnách informuje emailem.

Jak skript funguje?

Na základě připraveného sheetu skript zkontroluje slevu uvedenou na webu (scrapuje informaci o slevě). Následně ji porovná se slevou uvedenou v sheetu (a tedy i v rozšíření o propagaci). V případě, že se liší, odešle email.

Příprava Google Sheetu

Základem pro práci skriptu je i v tomto řešení tabulka v Google Sheets. Vytvořte si nový sheet a připravte jeho obsah dle následující popisu.

První 4 sloupce slouží k tomu, abychom skriptu řekli, jaký text má na webu kontrolovat.

Následující sloupce jsou pak zkopírovaná rozšíření o propagaci. To pak usnadňuje aktualizovaná rozšíření vložit zpět do Editoru.

Při vyplňování sheetu začněte nejdříve od sloupce E, do kterého zkopírujete všechna rozšíření o propagaci. Stačí jít do Google Ads Editoru, přejít na Rozšíření o propagaci ve Sdílené knihovně a rozšíření zkopírovat. Následně je vložte do tabulky do sloupce E.

Nyní pojďme na tu složitější část a to vyplnění prvních 4 sloupců. Bude potřeba pracovat se zdrojovým kódem a regexem.

Sloupec Test URL

Do sloupce Test URL uveďte url adresu stránky, kde budeme informaci kontrolovat. Může být:

  • stejná jako url rozšíření o propagaci (např. v případě akce u konkrétního produktu),
  • jiná v případě propagace pro určitou kategorii produktů (do Test URL zvolte url produktu s největší slevou, která je v rozšíření uvedena).

Sloupec START

Do sloupce START uveďte html kód, který předchází ve zdrojovém kódu informaci, kterou chceme sledovat. Kód musí být jednoznačný a měl by se ve zdrojovém kódu nacházet pouze jednou.

Používáte-li Shoptet, uveďte <span class=”price-save”>.

Sloupec END

Do sloupce END uveďte html kód, který se nachází ve zdrojovém kódu těsně za informací, kterou chceme sledovat. Kód v tomto případě již nemusí být jednoznačný.

Používáte-li Shoptet, uveďte </span>.

Sloupec REGEX

Skript najde text, který se ve zdrojovém kódu vyskytuje mezi částmi START a END a nyní ho díky regexu očistíme jen na formát, který potřebujeme pro rozšíření o propagaci.

Příklady potřebného výsledného formátu:

  • 10%
  • 14.9%
  • 14,9%
  • 14.99%
  • 14,90%

Znak procenta může nebo nemusí být odděleno mezerou.

Použitý regulární výraz závisí na formátu, který eshop používá pro zobrazení slevy. Zde najdete některé příklady regexů, které můžete odzkoušet, pokud s ním nemáte zkušenost.

  • \d+ (Shoptet)
  • \d+(?:.\d+){0,1}
  • \d+.\d %

Pokud se o regexu chcete dozvědět více, doporučuji školení od Mergada, které je zdarma.

Při běhu skriptu se regexem očistěný text se pak propíše do sloupce H, kde se nachází sleva vyjádřená v % pro rozšíření o propagaci.

Příprava skriptu

Vytvořte nový skript v MCC v Google Ads => Nástroje a nastavení => Skripty a tam si zkopírujte následující kód:

/*********************************************************************************************************
Skript:                                          MCC Skript na kontrolu rozšíření o propagaci pro Google Ads
Vytvořila:                                       Hana Kobzová [hanakobzova.cz]
/********************************************************************************************************/

//uveďte email, které chcete dostávat notifikace
var EMAIL = "email@email.cz";

var SUBJECT = "PROMOTION EXTENSION CHECKER";
var colorUpdate = "#FFC000";
var colorError = "#F3686D";

function main() {
  
  //uveďte url adresu připraveného sheetu s rozšířeními o propagaci + název listu uvnitř tohoto sheetu
  getAnalysis("https://docs.google.com/spreadsheets/d/aaabbbccc","SKRIPT");
  
}

function getAnalysis(spreadsheetUrl, sheetName) {
  
  var email = false;
  var output = [];
  output.push();
  output.push("<p>"+SpreadsheetApp.openByUrl(spreadsheetUrl).getName()+"</p>");
  output.push("<p>"+spreadsheetUrl+"</p>");
  output.push("<p>------------------------------------------------------</p>");
  
  var urlFetchOptions = {muteHttpExceptions: true};
  var sheet = SpreadsheetApp.openByUrl(spreadsheetUrl).getSheetByName(sheetName);
  var last = sheet.getLastRow();
  
  var urls = sheet.getRange("A2:A"+last);
  var startValues = sheet.getRange("B2:B"+last);
  var endValues = sheet.getRange("C2:C"+last);
  var regexValues = sheet.getRange("D2:D"+last);
  var results = sheet.getRange("H2:H"+last);
  results.setBackground("#FFF");
    
  
  for (var x = 0; x < last-1; x++){ 
    if(!urls.getCell(x+1, 1).isBlank()){
      
      var url = urls.getCell(x+1, 1).getValue();
      var start = startValues.getCell(x+1, 1).getValue();
      var end = endValues.getCell(x+1, 1).getValue();
      var regex = new RegExp(regexValues.getCell(x+1, 1).getValue());
      var titles = sheet.getRange("E2:E"+last);
      var content = UrlFetchApp.fetch(url, urlFetchOptions).getContentText();
      
      
      if(content.indexOf(start)>-1){
        content = content.substring(content.indexOf(start));
        content = content.substring(0,content.indexOf(end));
        content = content.match(regex);  //aktuální hodnota propagace
        
        var oldValue = results.getCell(x+1, 1).getValue();

        if ((!content.toString().includes(".")) && (!content.toString().includes(","))) {
          content = content + ".00";
        } else if (!content.toString().match(/.\d{2}/)) {
          content = content + "0";
        }
        
        content = content + "%";
        
        if (content !== oldValue){
          results.getCell(x+1, 1).setValue(content);
          results.getCell(x+1, 1).setBackground(colorUpdate);
          output.push("<p>" + titles.getCell(x+1, 1).getValue() + ": " + oldValue + " => " + content + "</p>");
          email = true;
        }
      } else {
          results.getCell(x+1, 1).setValue("ERROR");
          results.getCell(x+1, 1).setBackground(colorError);
          email = true;
        } 
    }
    }
  if (email) sendEmail(output);
  }

function sendEmail(results) {
  var html = [];
  html.push(
   "<html>",
    "<body>"
  );
  
  html.push(results.join("\n"));
  
  html.push(
    "</body>",
   "</html>");
  
  MailApp.sendEmail(EMAIL, SUBJECT, "", {htmlBody: html.join("\n")}); 
}

Pro zjednodušení se všechny potřebné parametry uvádí přímo v sheetu.

Ve skriptu pak stačí upravit email, na který se mají notifikace posílat v parametru EMAIL. Dále pak je nutné upravit volání funkce getAnalytisis – doplnit url adresu sheetu a název listu, kde se data nachází.

Nastavte automatické spouštění skriptu a to na frekvenci jednou denně.

Skript běží a našel úpravy

Rozšíření můžete aktualizovat manuálně po jednom na základě přijaté emailu (změna je vidět také v tabulce, dokud neproběhne další běh skriptu následující den) nebo zkopírovat obsah sloupců E a dále a ty vložit přímo do Editoru. Tím se všechna rozšíření o propagaci aktualizují. Pokud ke změně nedošlo, zůstanou beze změny.

Co když chci přidat nové rozšíření o propagaci?

Google Sheet musíte udržovat aktualizovaný. To, co není v Google Sheetu, se nebude kontrolovat. Pokud tedy do účtu přidáváte nové rozšíření o propagaci, musíte ho přidat také do sheetu vč. testovací URL.

Podařilo se vám kontrolu rozšíření o propagace pomocí skriptu rozchodit? Pokud ne, ozvěte se, ráda poradím. A pokud máte nápad, jak kontrolu ještě více automatizovat (např. v případě slev u kategorií), rovněž dejte vědět.

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.