Copierea de continut din prezentul site este supusa regulilor precizate in Termeni si conditii! Click aici.
Prin utilizarea siteului sunteti de acord, in mod implicit cu Termenii si conditiile! Orice abatere de la acestea constituie incalcarea dreptului nostru de autor si va angajeaza raspunderea!
X

Construiti campanii Adwords? Spuneti adio cuvintelor cheie fara relevanta!

De la inceputul AdWords (in prezent Google Ads), scorurile scazute ale calitatii (quality score) continutului au fost durerea de cap a oricarui responsabil. Nu doar ca e un mister modul in care functioneaza in tot ansamblul sau Google Ads, ci este crunt sa corectezi toate erorile pentru a-ti imbunatati scorul.
Avand aceste lucruri in vedere, va prezentam un Google Ads Script care s-ar putea sa va faca viata mult mai usoara.
 

Ce este Quality Score si de ce conteaza?

Una dintre metodele prin care Google masoara relevanta publicitatii pe care o ofera pe diferite site-uri este prin acest Quality Score, un sistem prin care se ilustreaza cat de relevanta este publicitatea ta pentru utilizator.

Componentele Quality Score sunt:
  • istoria click-through-rate (CTR)
  • relevanta cuvantului cheie pentru publicitate
  • relevanta cuvantului cheie si a publicitatii pentru cautare
  • calitatea landing page-ului.

De ce este atat de important acest Quality Score? Ei bine, el iti determina pozitia in Ad Rank, care decide unde va aparea publicitatea in paginile generate de motorul de cautare (SERPs). SERPs sunt acele pagini web pe care le vede utilizatorul atunci cand cauta ceva online folosind un anumit motor de cautare. Fiecare SERPs e unic, chiar daca se efectueaza doua cautari pe aceleasi cuvinte cheie. Asta se datoreaza faptului ca toate motoarele de cautare customizeaza experienta utilizatorilor lor prin prezentarea rezultatelor cautarii bazata pe o intreaga gama de factor precum locatia, istoricul navigarii si setarile social media. Exista posibilitatea ca doua SERPs sa para la fel si sa contina multe din aceleasi informatii, insa cel mai des vor contine informatii diferite subtile. 

Rezumand, cu cat ai un Quality Score mai bun, cu atat mai bine. Google penalizeaza vanzatorii de publicitate care risca sa aiba un scor scazut prin a le arata foarte, foarte rar materialele publicitare. Asadar, daca ai un Quality Score mic, ar trebui sa cauti rapid metode prin care sa-l imbunatatesti.

Daca ai un cont Google Grants in administrare, ar fi bine sa stii ca iti poate fi suspendat intreg contul, asa ca ar fi bine sa pui Quality Score-ul printre prioritatile tale. 
 

Gasirea cuvintelor cheie care iti scad Quality Score-ul

Cu ajutorul scriptului de mai jos iti va fi mult mai usor sa gasesti acele cuvinte cheie care iti creaza probleme. Tot ce trebuie sa faci este sa setezi o limita sub care nu vrei sa ajunga al tau Quality Score, apoi scriptul iti va da un e-mail prin care-ti va arata care sunt cuvintele cheie ce-ti creeaza probleme. Poate, de asemenea, sa le si marcheze vizual pentru ca sa-ti fie tie mai usor sa le corectezi. Daca ceea ce-ti doresti este sa elimini orice cuvant cheie problema, atunci poti sa setezi acest script sa puna pauza pana reusesti sa faci modificarile necesare. Indiferent de ce hotarasti, asigura-te ca limita pe care o impui nu este prea mare.
 

Cum schimbi un Quality Score scazut?

Odata ce scriptul gaseste cuvintele cheie problematice, incepe munca grea. Este esential sa modifici sau sa scoti cu totul cuvintele cheie marcate de script pentru a le opri din a face mai mult rau contului tau. In ultima instanta, Quality Score-ul nu face decat sa arate relevanta materialelor tale, de aceea CTR (click-through-rate) este un indicator foarte bun. Un CTR scazut inseamna ca utilizatorilor publicitatea ta li se pare nepotrivita sau nu ii intereseaza deloc.

Avem cateva sugestii de imbunatatire a Quality Score-ului:
  • Schimba modalitatea de a introduce cuvinte cheie. Rescrie materialele publicitare care au un CTR scazut si asigura-te ca incluzi cuvinte cheie relevante.
  • Imbunatateste-ti landing page-ul. Verifica daca toate link-urile sunt corecte si daca timpul tau de incarcare a site-ului nu este prea mare, intrucat asta cantareste enorm in ochii Google. 
  • Schimba categoria materialului publicitar. Incearca sa separi in grupe cuvintele cheie pe care le folosesti pentru a vedea care performeaza cel mai bine, intrucat un cuvant cheie care genereaza un Quality Score mic s-ar putea sa apartina, pur si simplu, in alta grupa de interes. 

Folosirea scriptului

In Google Ads, mergi la Bulk Actions, apoi da click pe Scripts si mergi la pagina de Scripturi. Apasa pe "+" petru a crea unul nou si copie scriptul de mai jos.

Important! Nu uita sa editezi adresa de e-mail, limita (treshold), iar daca vrei marcare cuvintelor cheie problema seteaza LABEL_KEYWORDS ca adevarat (true) si pune numele in LOW_QS_LABEL_NAME. 

/**
 *
 * Low Quality Score Alert
 *
 * This script finds the low QS keywords (determined by a user defined threshold)
 * and sends an email listing them. Optionally it also labels and/or pauses the
 * keywords.
 *
 * Version: 1.0
 * Google AdWords Script maintained on brainlabsdigital.com
 *
 **/


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//Options

var EMAIL_ADDRESSES = ["alice@example.com", "bob@example.co.uk"];
// The address or addresses that will be emailed a list of low QS keywords
// eg ["alice@example.com", "bob@example.co.uk"] or ["eve@example.org"]

var QS_THRESHOLD = 3;
// Keywords with quality score less than or equal to this number are
// considered 'low QS'

var LABEL_KEYWORDS = true;
// If this is true, low QS keywords will be automatically labelled

var LOW_QS_LABEL_NAME = "Low QS Keyword";
// The name of the label applied to low QS keywords

var PAUSE_KEYWORDS = false;
// If this is true, low QS keywords will be automatically paused
// Set to false if you want them to stay active.



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// Functions

function main() {
  Logger.log("Pause Keywords: " + PAUSE_KEYWORDS);
  Logger.log("Label Keywords: " + LABEL_KEYWORDS);

  var keywords = findKeywordsWithQSBelow(QS_THRESHOLD);
  Logger.log("Found " + keywords.length + " keywords with low quality score");

  if (!labelExists(LOW_QS_LABEL_NAME)) {
    Logger.log(Utilities.formatString('Creating label: "%s"', LOW_QS_LABEL_NAME));
    AdWordsApp.createLabel(LOW_QS_LABEL_NAME, 'Automatically created by QS Alert', 'red');
  }

  var mutations = [
    {
      enabled: PAUSE_KEYWORDS, 
      callback: function (keyword) {
        keyword.pause();
      }
    },
    {
      enabled: LABEL_KEYWORDS,
      callback: function (keyword, currentLabels) {
        if (currentLabels.indexOf(LOW_QS_LABEL_NAME) === -1) {
          keyword.applyLabel(LOW_QS_LABEL_NAME);
        }
      }
    }
  ];

  var chunkSize = 10000; 
  var chunkedKeywords = chunkList(keywords, chunkSize);

  Logger.log("Making changes to keywords..");
  chunkedKeywords.forEach(function (keywordChunk) {
    mutateKeywords(keywordChunk, mutations);
  });

  if (keywords.length > 0) {
    sendEmail(keywords);
    Logger.log("Email sent.");
  } else {
    Logger.log("No email to send.");
  }
}

function findKeywordsWithQSBelow(threshold) {
  var query = 'SELECT Id, AdGroupId, CampaignName, AdGroupName, Criteria, QualityScore, Labels'
    + ' FROM KEYWORDS_PERFORMANCE_REPORT WHERE Status = "ENABLED" AND CampaignStatus = "ENABLED" AND AdGroupStatus = "ENABLED"'
    + ' AND HasQualityScore = "TRUE" AND QualityScore <= ' + threshold;
  var report = AdWordsApp.report(query);      
  var rows = report.rows();    

  var lowQSKeywords = [];
  while (rows.hasNext()) {
    var row = rows.next();
    var lowQSKeyword = {
      campaignName: row['CampaignName'],
      adGroupName: row['AdGroupName'],
      keywordText: row['Criteria'],
      labels: (row['Labels'].trim() === '--') ? [] : JSON.parse(row['Labels']),
      uniqueId: [row['AdGroupId'], row['Id']],
      qualityScore: row['QualityScore']
    };
    lowQSKeywords.push(lowQSKeyword);
  } 
  return lowQSKeywords;
}

function labelExists(labelName) {
  var condition = Utilities.formatString('LabelName = "%s"', labelName);
  return AdWordsApp.labels().withCondition(condition).get().hasNext();
}

function chunkList(list, chunkSize) {
  var chunks = [];
  for (var i = 0; i < list.length; i += chunkSize) {
    chunks.push(list.slice(i, i + chunkSize));
  }
  return chunks;
}

function mutateKeywords(keywords, mutations) {
  var keywordIds = keywords.map(function (keyword) {
    return keyword['uniqueId'];
  });

  var mutationsToApply = getMutationsToApply(mutations);
  var adwordsKeywords = AdWordsApp.keywords().withIds(keywordIds).get(); 

  var i = 0;
  while (adwordsKeywords.hasNext()) {
    var currentKeywordLabels = keywords[i]['labels'];
    var adwordsKeyword = adwordsKeywords.next();

    mutationsToApply.forEach(function(mutate) {
      mutate(adwordsKeyword, currentKeywordLabels);
    });
    i++;
  }
}

function getMutationsToApply(mutations) {
  var enabledMutations = mutations.filter(function (mutation) {
    return mutation['enabled'];
  });  

  return enabledMutations.map(function (condition) {
      return condition['callback'];
  });
}

function sendEmail(keywords) {
  var subject = "Low Quality Keywords Paused";
  var htmlBody =
      "<p>Keywords with a quality score of less than " + QS_THRESHOLD + "found.<p>"
      + "<p>Actions Taken:<p>"
      + "<ul>"
      + "<li><b>Paused</b>: " + PAUSE_KEYWORDS + "</li>"
      + "<li><b>Labelled</b> with <code>" + LOW_QS_LABEL_NAME + "</code>: " + LABEL_KEYWORDS + "</li>"
      + "</ul>" 
      + renderTable(keywords);

  MailApp.sendEmail({
    to: EMAIL_ADDRESSES.join(","),
    subject: subject,
    htmlBody: htmlBody
  });
}

function renderTable(keywords) {
  var header = '<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">'
  + '<thead><tr>'
  + '<th>Campaign Name</th>'
  + '<th>Ad Group Name</th>'
  + '<th>Keyword Text</th>'
  + '<th>Quality Score</th>'
  + '</tr></thead><tbody>';

  var rows = keywords.reduce(function(accumulator, keyword) {
    return accumulator
      + '<tr><td>' + [
      keyword['campaignName'],
      keyword['adGroupName'],
      keyword['keywordText'],
      keyword['qualityScore']
    ].join('</td><td>')
      + '</td></tr>';
  }, "");

  var footer = '</tbody></table>';

  var table = header + rows + footer;
  return table;
}

 
Autor: Florin P. Amariei


Ti-a placut acest articol?
Recomanda-l prietenilor:
Cat de utila va este aceasta informatie?
Noteaza folosind stelele

Rating:


Nota: 4.75 din 5 - 2 voturi.

Newsletter zilnic GRATUIT

Comentarii 0 comentarii

Lasa un raspuns

Informatiile scrise aici sunt confidentiale.
Adresa de email data nu va fi publicata niciodata. De asemenea, toate informatiile furnizate nu vor fi partajate cu terte persoane.


Da, vreau informatii despre produsele Rentrop&Straton. Sunt de acord ca datele personale sa fie prelucrate conform Regulamentul UE 679/2016