Vyberte stránku

Google Ads skript pro nalezení sestav bez RSA

Google Ads skript pro nalezení sestav bez RSA

V loňském roce Google upozornil na to, že podpora rozšířených textových reklam skončí k 30. červnu 2022. Responzivní textové reklamy (RSA) se tak stanou jediným podporovaným formátem pro standardní kampaně ve vyhledávání.

Od tohoto data rozšířené textové reklamy nebude možné vytvářet, budou se ale zatím ještě vydávat a bude také možné je pozastavit nebo opětovně spustit.

Toto rozhodnutí Google znovu potvrdil 2. března 2022 a doporučuje mít v každé reklamní sestavě alespoň jednu responzivní textovou reklamu. Rovněž nám tuto změnu připomíná přímo v rozhraní Google Ads.

A připomínka nechybí ani v sekci Doporučení.

Pokud spravujete více účtů, je časově náročné procházet všechny aktivní sestavy a kontrolovat, zda v nich RSA již existuje nebo nikoliv. Za tímto účelem jsem vytvořila tento Google Ads skript, který odešle email se seznamem aktivních reklamních sestav, kde RSA chybí.

Implementace skriptu

Jedná se o skript určený pro implementaci na úrovni MCC v rozhraní Google Ads v sekci Nástroje a nastavení => Hromadné akce => Skripty.

Na prvním řádku skriptu vyplňte Váš email do proměnné EMAIL, kde má být notifikační email doručen. Na druhém řádku můžete případně upravit předmět emailu SUBJECT, ale toto není nutné.

Skript nabízí tři možnosti určení, které účty chcete zkontrolovat.

  1. Kontrola všech účtů v MCC (s alespoň 1 zobrazením za posledních 30 dní),
  2. Kontrola účtů na základě seznamu ID (vyplňte ID účtů dle uvedeného příkladu),
  3. Kontrola účtů na základě štítku, kterým byly požadované účty předem označeny (název štítku uvěďte do proměnné ACCOUNT_LABEL).

Výchozím způsobem kontroly je 1. přístup, tedy kontrola všech účtů. Chcete-li zvolit jiný způsob, zakomentujte řádky u prvního přístupu pomocí dvou lomítek // a odstraňte lomítka na začátku řádků kódu zvoleného přístupu.

Následně skript uložte a autorizujte. Můžete ho spouštět manuálně dle potřeby nebo si třeba nastavit spouštění jednou za týden a RSA implementovat postupně.

Nastavení skriptu pro 2. přístup na základě seznamu ID účtů

Výsledek skriptu

Po úspěšném dokončení běhu skriptu dorazí email se seznamem všech reklamních sestav (vč. názvu účtu a kampaně), kde RSA schází.

Zdrojový kód skriptu

/******************************************
* Google Ads MCC Script - RSA Missing
* MCC script that emails a list of active ad groups without an active responsive search ad
* Configuration: Update EMAIL variable with your email address
* Created By: Hana Kobzová
* HanaKobzova.cz
******************************************/


var EMAIL = "email@email.com";
var SUBJECT = "Google Ads - Ad Groups without RSA";


function main() {

  //1ST APPROACH - CHECK ALL MCC ACCOUNT
  var accountSelector = AdsManagerApp.accounts().withCondition("Impressions > 0").forDateRange("LAST_30_DAYS");
  
  //2ND APPROACH - CHECK ACCOUNTS BY ID
  //var ids = ["XXX-XXX-XXXX", "YYY-YYY-YYYY"];
  //var accountSelector = AdsManagerApp.accounts().withIds(ids);
  
  //3RD APPROACH - CHECK ACCOUNTS BY PREVIOUSLY APPLIED LABEL ON ACCOUNT LEVEL
  //var ACCOUNT_LABEL = "Label_Name";
  //var accountSelector = AdsManagerApp.accounts().withCondition("LabelNames CONTAINS '"+ACCOUNT_LABEL+"'");
  
  accountSelector.executeInParallel("getAnalysis","sendEmail"); 
  
}

function getAnalysis() { 
  var adGroupIds = [];
  var adIds = [];
  var output = "";
  
   var adGroupReport = AdsApp.report(
      'SELECT AdGroupId, AdGroupName' +
      ' FROM ADGROUP_PERFORMANCE_REPORT ' +
      ' WHERE CampaignStatus = "ENABLED" AND AdGroupStatus = "ENABLED" AND AdNetworkType1 = "SEARCH" AND AdGroupType = "SEARCH_STANDARD"' +
      ' DURING LAST_30_DAYS');
    
    var rows = adGroupReport.rows();
    while (rows.hasNext()) {
      var row = rows.next();
      adGroupIds.push(row['AdGroupId']);
    }
  
   var adReport = AdsApp.report(
      'SELECT Id, AdGroupId, AdGroupName' +
      ' FROM AD_PERFORMANCE_REPORT ' +
      ' WHERE AdType = "RESPONSIVE_SEARCH_AD" AND Status = "ENABLED" AND CampaignStatus = "ENABLED" AND AdNetworkType1 = "SEARCH" AND CampaignName DOES_NOT_CONTAIN_IGNORE_CASE "DSA" AND AdGroupName DOES_NOT_CONTAIN_IGNORE_CASE "DSA" ' +
      ' DURING LAST_30_DAYS');
    
    var rows2 = adReport.rows();
    while (rows2.hasNext()) {
      var row2 = rows2.next();
      adIds.push(row2['AdGroupId']);
    }
  
  for (var i = 0; i < adGroupIds.length; i++){ 
    if (adIds.indexOf(adGroupIds[i]) === -1){
       var adGroupSelector = AdsApp.adGroups().withIds([adGroupIds[i]]);
       var adGroupIterator = adGroupSelector.get();
       while (adGroupIterator.hasNext()) {
         var adGroup = adGroupIterator.next();
         var adgroupName = adGroup.getName();
         var campaignName = adGroup.getCampaign().getName();
         output += "<p>" + AdsApp.currentAccount().getName() + " => " +  campaignName + " => " + adgroupName + "</p>"; 
        } //while
    } //if
  }  //for
  
  return output;
}


function sendEmail(results) {
  var sendAlert = false;
  var html = [];
  html.push(
   "<html>",
    "<body>",
    "<p>" + SUBJECT + "</p>", 
    "<p>No active RSA in the following ad groups:</p>"
  );
  
  for (var i = 0; i < results.length; i++) {
    var result = results[i].getReturnValue();
    if (result.length > 0) {
      sendAlert = true;
      html.push("<p>-------------</p>");
      html.push(result);
    }
  }
  
  html.push(
    "</body>",
   "</html>");
  
  if (sendAlert == true) {
    MailApp.sendEmail(EMAIL, SUBJECT, "", {htmlBody: html.join("\n")});
  }
}

Pokud se skriptem budete mít nějaký problém, neváhejte se ozvat.

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.