E-Mail Kontakt - Tel: 02192 / 91 89 921
    Impressum | Datenschutz

Google Ads Scripts Label-Manager

Der größte Vorteil unseres LabelManager ist, dass man sich keine Gedanken mehr machen braucht, ob ein Label existiert oder nicht. Bei Bedarf wird ein Label erstellt und doppelte Zuweisungen oder vergebliche Löschversuche führen nicht mehr zu hässlichen Fehlermeldungen.
Dazu gibt es noch ein paar Komfort- und Statistikfunktionen.

 Beispiele, wie der LabelManager verwendet werden kann

Beispielprogramm: Labels zuweisen, Labels entfernen, Labels löschen

function main() {
  // ## load the LabelManager or add the code manually
  var url = "http://tools.internet-marketing-inside.de/adwords-scripts-label-manager.js";
  eval(UrlFetchApp.fetch(url).getContentText());
 
  // ## LabelManager caches all labels in the account to work efficient.
  // ## => Don't use label.remove() or AdWordsApp.createLabel() when using the LabelManager.
  // ## - Instead of label.remove() use LabelManager.removeFromAccount(label.getName());
  // ## - Instead of AdWordsApp.createLabel("label name") use LabelManager.create("label name")
  // ##
  // ## Examples
  var campaignIterator = AdWordsApp.campaigns().get();
  if (campaignIterator.hasNext() === true) {
    var campain1 = campaignIterator.next();
    
    // ## add 2 labels to the campaign1. They are created automatically if necessary!
    LabelManager.apply("LabelManager first", campain1, true);
    LabelManager.apply("LabelManager second", campain1, true);
 
    // ## add label "LabelManager first" again with _bCheckIfAlreadyExists = true
    // ##   => no error in log because LabelManager checks if the element has got this label already
    LabelManager.apply("LabelManager first", campain1, true);
 
    // ## try to remove "LabelManager dummy" again with _bCheckIfAlreadyExists = true
    // ##   => no error in change list because LabelManager checks if the element has got this label already
    LabelManager.remove("LabelManager dummy", campain1, true);
 
    // ## add label "LabelManager third" and remove label "LabelManager first"
    LabelManager.applyOrRemove({"LabelManager third":true, "LabelManager first":false}, campain1, true);
 
    
    // ## some statistics (only correct if _bCheckIfAlreadyExists was always set true
    Logger.log("label applied: "+JSON.stringify(LabelManager.getLabelAppliedPerLabel()));
    Logger.log("label removed: "+JSON.stringify(LabelManager.getLabelRemovedPerLabel()));
    Logger.log("label applied total: "+LabelManager.getLabelAppliedTotal()+
               " (requested applies: "+LabelManager.getLabelApplyRequested()+")");
    Logger.log("label removed total: "+LabelManager.getLabelRemovedTotal()+
               " (requested removes: "+LabelManager.getLabelRemoveRequested()+")");
    // ## Output:
    // ## label applied: {"LabelManager first":1,"LabelManager second":1,"LabelManager third":1}
    // ## label removed: {"LabelManager first":1}
    // ## label applied total: 3 (requested applies: 4)
    // ## label removed total: 1 (requested removes: 1)
 
    // ## add label "LabelManager second" now with _bCheckIfAlreadyExists = false
    // ##   => error in log because LabelManager does NOT check if the element has got this label already
    // ## Set _bCheckIfAlreadyExists = false only if performance is critical
    LabelManager.apply("LabelManager second", campain1, false);
 
    // ## get a label object
    LabelManager.getOrCreate("LabelManager second").setDescription("just a test");
    
    // ## remove all created labels from account again
    LabelManager.removeFromAccount("LabelManager first", "LabelManager second", "LabelManager third");
  }
}

Ausgabe unter "Änderungen"

LabelManager Änderungen

Ausgabe unter "Protokolle"

LabelManager Protokolle

 Hinweise zur Verwendung

  • Die Funktionen apply, applyOrRemove und remove haben als dritten Parameter _bCheckIfAlreadyExists
    true: Die Ausführung ist langsamer, aber dafür erscheint keine Fehlermeldung, falls ein label doppelt zugewiesen wurde oder versucht wurde ein Label zu entfernen, das gar nicht zugewisen war.
    false: Hat nur den Vorteil, dass die Ausführung schneller ist, weil die Überprüfung entfällt - dafür erscheinen ggf. Fehlermeldungen in den Protokollen, die aber keinen Einfluss auf die Ausführung haben.
  • Bitte label.remove() or AdWordsApp.createLabel() nicht gleichzeitig mit dem LabelManager verwenden. Dieser hat dafür eigene Funktionen, die zudem noch mächtiger sind.
  • Die Statistikfunktionen geben nur dann zuverlässige Werte, wenn immer _bCheckIfAlreadyExists=true gesetzt wurde.

 LabelManager Script

Der Label-Manager kann entweder so in Ihren Google Ads Scripts-Code eingebunden werden

function main() {
  // ## load the LabelManager this way to get updates automatically
  var url = "http://tools.internet-marketing-inside.de/adwords-scripts-label-manager.js";
  eval(UrlFetchApp.fetch(url).getContentText());

oder man fügt den Code komplett ein, den man unter https://tools.internet-marketing-inside.de/adwords-scripts-label-manager.js findet.

Nachteil dieser Methode ist, dass Updates nicht automatisch installiert werden, wenn wir den Code aktualiseren. Google ändert gerne mal die API, weshalb Scripte dann plötzlich nicht mehr funktionieren.

Spendenaufruf - WWF Naturschutz

Mögen Sie unsere kostenlosen Tools?

Motivieren Sie uns und unterstützen Sie unsere WWF-Spendenaktion

"Freie Software für freie Tiere"

WWF Spendenaktion Zahlweisen

(mit Spendenbescheinigung, d.h. steuerlich absetzbar)

Zu unserer Spendenaktion

Hinweis:

Nach 'Spende sicher übermitteln' kann man auswählen, welche Infos öffentlich gemacht werden:
Betrag&Name, Nur Name, Nur Betrag

Und man kann noch eine öffentliche Nachricht auf der Spendenseite hinterlassen.

Copyright und Haftungsausschluss

Diese Google Ads Scripts lib kann von jedem kostenfrei genutzt werden. Die Nutzung erfolgt ohne Gewähr und ohne Haftung. Die Veröffentlichung des Codes - auch in modifizierter Form - ist mit Quellverweis und Link auf diese Webseite gestattet.
This Google Ads Scripts lib can be used by anyone at no charge. Use is granted without guarantee or liability. Redistribution of this code or derived code is allowed if you refer with a link to this webpage.