Skip to content

Latest commit

 

History

History
372 lines (278 loc) · 18 KB

File metadata and controls

372 lines (278 loc) · 18 KB

Google Ads Script Search Query Deduplicator 22.1 - DEUTSCH

English version: README.md

Beschreibung

Identifiziere mit diesem Google Ads Script alle Suchbegriffe, die nicht in der angedachten Anzeigengruppe matchen und schließe diese automatisch aus.

Übersicht


Installation

I. Google Ads Scripts einrichten

Öffne Dein Google Ads Konto oder Dein MCC und navigiere zu "Tools und Einstellungen > Bulk-Aktionen > Scripts".

Der Search Query Duplicator ist auf zwei Scripts aufgeteilt.

Script 1 - "SQ Deduplicator 22.1 Prepare Data"

Das erste Script bereitet die Daten zur Weiterarbeitung vor und schreibt sie in ein Google Sheet.

Einrichtung:

Erstelle ein neues Google Ads Script (Namensvorschlag: "SQ Deduplicator 22.1 Prepare Data") und überschreibe den Inhalt mit der passenden Code-Vorlage:

  • Einzelnes Konto: single_account_prepare_data.js
  • MCC-Version: mcc_version_prepare_data.js

Script 2 - "SQ Deduplicator 22.1 Process Data"

Das zweite Script verarbeitet die noch nicht verarbeiteten Zeilen aus dem Google Sheet und schreibt den Verarbeitungsstatus in die jeweilige Datenzeile zurück.

Einrichtung:

Erstelle ein neues Google Ads Script (Namensvorschlag: "SQ Deduplicator 22.1 Process Data") und überschreibe den Inhalt mit der passenden Code-Vorlage:

  • Einzelnes Konto: single_account_process_data.js
  • MCC-Version: mcc_version_process_data.js

II. Google Sheet aus Template erstellen

Für die Zwischenspeicherung und Weiterverarbeitung der Suchbegriffe wird ein Google Sheet verwendet. Die Vorlage kannst Du mit folgendem Google Drive Link kopieren: adtraffic Search Query Deduplicator Google Sheet Template

Füge die ID Deines neu erstellten Google Sheets in beiden Scripts an der Stelle "{{Search Query Deduplicator Google Sheet ID}}" ein.

[optional] III BatchService Response (MCC) bzw. "ocid"-Parameter (Single Account) hinterlegen

Um Direktlinks zu den Google Ads Anzeigengruppen zu generieren, wird die "ocid" zum jeweiligen Google Ads Konto benötigt.

III.a Google Ads "BatchService Response" (für MCC Version)

Diese "ocid" kann aus der Response des BatchService auf MCC-Ebene für alle untergeordneten Konten ausgelesen werden. Um die Response als Object im Script zur Verfügung zu stellen, gehe wie folgt vor:

  1. Öffne das betreffende MCC und navigiere zu "Konten > Leistung"
  2. Öffne die Entwicklertools des Browsers und wähle den Reiter "Network" aus
  3. Lade die Seite neu und filtere die Einträge mit "batch account"
  4. Klicke den Eintrag an, der mit "Batch?authuser=" beginnt und wähle rechts die "Response" aus
  5. Kopiere den kompletten Inhalt der Response und füge ihn im Script 1 - "SQ Deduplicator 22.1 Prepare Data" an der Stelle "{{BatchService Response}}" ein.

Alternativ:

Entferne die Stelle "{{BatchService Response}}", sodass folgender Inhalt in der Zeile stehen bleibt:

let batchAccountSnippet = new Object();

III.b Google Ads "ocid" (für Single Account Version)

Für Einzelkonten kann die "ocid" aus der Adressleiste abgelesen werden.

  1. Melde Dich in dem betreffenden Google Ads Konto an und kopiere die Ziffern hinter "ocid=" aus der Adressleiste Deines Browsers
  2. Füge die kopierten Ziffern im Script 1 - "SQ Deduplicator 22.1 Prepare Data" an der Stelle "{{ocid}}" ein.

Alternativ:

Entferne die Stelle "{{ocid}}", sodass folgender Inhalt in der Zeile stehen bleibt:

const ocid = '';

[optional] IV. Account IDs definieren (für MCC-Version)

Füge die Account IDs der zu verarbeitenden Konten als kommagetrennte Strings in beiden Scripts an der Stelle "{{Accound IDs Array}}" ein.

Beispielsyntax: '123-456-7890','456-123-7890','654-321-7890','321-654-7890'

Alternativ:

Entferne die Stelle "{{Accound IDs Array}}", sodass folgender Inhalt in der Zeile stehen bleibt:

let accountIds = [];

Erste Ausführung / Übersicht der Spalten im Sheet

nach oben

Bei der ersten Ausführung des Script 1 - "SQ Deduplicator 22.1 Prepare Data" wird im Google Sheet für jedes verarbeitete Konto ein neues Tabellenblatt mit der jeweiligen Account ID als Tabellenblattname mit elf Spalten angelegt:

  • searchTerm
  • matchType
  • campaignId
  • adgroupId
  • campaignName
  • adGroupName
  • deepLink
  • impressions
  • clicks
  • conversions
  • processed

Die ersten sechs Spalten sind selbsterklärend.

Die Spalte "deepLink" enthält einen direkten Link zur Anzeigengruppe des jeweiligen Suchbegriffs (sofern die "ocid" verfügbar ist - siehe Installation Schritt III). Die Spalten "impressions", "clicks" und "conversions" enthalten die jeweiligen Werte für den abgefragten Zeitraum (standardmäßig die letzten 30 Tage).

Die letzte Spalte "processed" kann nach der Ausführung des Script 2 - "SQ Deduplicator 22.1 Process Data" sechs verschiedene Rückgabewerte enthalten:

Rückgabewerte aus Script 2

nach oben

Wert  Bedeutung
Term skipped  Der Suchbegriff entspricht keinem aktiv gebuchten Keyword im Konto. Es wurde kein auszuschließendes Keyword angelegt.
Campaign Negative added  Der Suchbegriff entspricht einem aktiv gebuchten Keyword in einer anderen Kampagne. Es wurde ein auszuschließendes Keyword in der Kampagne des gefundenen Suchbegriffs angelegt. (*)
Campaign Negative skipped  Der Suchbegriff entspricht einem aktiv gebuchten Keyword in einer anderen Kampagne. Es wurde aber kein auszuschließendes Keyword in der Kampagne des gefundenen Suchbegriffs angelegt, weil dort bereits ein entsprechendes auszuschließendes Keyword gebucht ist.
AdGroup Negative added  Der Suchbegriff entspricht einem aktiv gebuchten Keyword in einer anderen Anzeigengruppe derselben Kampagne. Es wurde ein auszuschließendes Keyword in der Anzeigengruppe des gefundenen Suchbegriffs angelegt. (*)
AdGroup Negative skipped  Der Suchbegriff entspricht einem aktiv gebuchten Keyword in einer anderen Anzeigengruppe derselben Kampagne. Es wurde aber kein auszuschließendes Keyword in der Anzeigengruppe des gefundenen Suchbegriffs angelegt, weil dort bereits ein entsprechendes auszuschließendes Keyword gebucht ist.
Comparison failed  Bei der Verarbeitung der Daten aus dem Sheet wurde zwar mindestens ein Duplikat gefunden, allerdings ist beim Abgleich der campaignId ein Fehler aufgetreten.

(*) Wird das Script im Vorschaumodus ausgeführt, werden keine auszuschließenden Keywords angelegt. Im Script-Editor unter "Änderungen" sieht man, in welchen Kampagnen oder Anzeigengruppen auszuschließende Keywords gebucht werden würden.


Planung / regelmäßige Ausführung

nach oben

Durch die Ausführung des Script 1 - "SQ Deduplicator 22.1 Prepare Data" werden alle Daten im Google Sheet überschrieben. Für die meisten Konten sollte es ausreichen, das Script wöchentlich auszuführen. Bei großen Konten mit täglich mehreren Hundert neu identifizierten Suchanfragen macht eine tägliche Ausführung durchaus Sinn.

Das Script 2 - "SQ Deduplicator 22.1 Process Data" verarbeitet nur Zeilen ohne Wert in der Spalte "processed". Damit das Script bei sehr großen Mengen an zu verarbeitenten Suchbegriffen nicht in einen Timeout läuft, kann ein Limit für die maximal zu verarbeitenden Zeilen definiert werden (standardmäßig: 1.000 Zeilen). Bei der Planung des Script 2 sollte berücksichtigt werden, dass es ausreichend oft ausgeführt wird, um alle identifizierten Suchbegriffe zu verarbeiten.


Funktionsbeschreibungen

nach oben

Script 1 - "SQ Deduplicator 22.1 Prepare Data"

main()

MCC-Version: Lädt die zu verarbeitenden Konten und startet die parallele Ausführung des Scripts.

Single-Account-Version: Entspricht im Grunde der MCC-Funktion processAccount()

processAccount()

Führt die Vorbereitung des Google Sheets aus, lädt dann die aktiven Suchbegriffe und startet den Schreibvorgang der aggregierten Suchbegriffe ins Google Sheet.

prepareSheet()

Legt im Google Sheet ein neues Tabellenblatt für das zu verarbeitende Konto an oder löscht die darin enthaltenen Daten, sofern bereits ein Tabellenblatt für das jeweilige Konto vorhanden ist.

getActiveSearchTerms()

Ruft alle Suchbegriffe ab, die im gegebenen Zeitraum (standardmäßig 30 Tage) nicht mit Match Type EXACT oder NEAR EXACT gematcht haben und eine Mindestanzahl an Impressionen (standardmäßig 30) generiert haben.

writeData()

Schreibt die vorbereiteten Daten ins Google Sheet.


Script 2 - "SQ Deduplicator 22.1 Process Data"

nach oben

main()

MCC-Version: Lädt die zu verarbeitenden Konten und startet die parallele Ausführung des Scripts.

Single-Account-Version: Entspricht im Grunde der MCC-Funktion processAccount()

processAccount()

Führt die Vorbereitung des Google Sheets aus, lädt dann die aktiven Suchbegriffe und startet den Schreibvorgang der aggregierten Suchbegriffe ins Google Sheet.

checkForDuplicates()

Sucht ausgehend vom jeweils verarbeiteten Suchbegriff in allen anderen Anzeigengruppen nach aktiven Keywords, die genau mit dem jeweiligen Suchbegriff übereinstimmen, initiiert im Falle eines Fundes die Erstellung eines auszuschließenden Keywords und lässt dasErgebnis der Verarbeitung ins Google Sheet zurückschreiben.

createCampaignNegative()

Erstellt auf Kampagnenebene ein genau passend auszuschließendes Keyword mit dem jeweils verarbeiteten Suchbegriff als Keyword-Text.

createAdGroupNegative()

Erstellt auf Anzeigengruppenebene ein genau passend auszuschließendes Keyword mit dem jeweils verarbeiteten Suchbegriff als Keyword-Text.

readSheet()

Liest die Daten ohne Kopfzeile aus dem Google Sheet in ein Array.

updateData()

Schreibt (je Suchbegriff) das Ergebnis der Verarbeitung ins Google Sheet in die Spalte "processed" der jeweiligen Zeile.


Funktionsparameter

nach oben

Script 1 - "SQ Deduplicator 22.1 Prepare Data"

global ⇒

Parameter Typ Beschreibung
sheetFileId String Die ID des zu verwendenden Google Sheets.
batchAccountSnippet
(nur in MCC-Version)
Object Der Inhalt der "Batch Service Response". (Wird zur automatischen Ermittlung der ocid benötigt.)

main() ⇒

MCC-Version nachfolgend.
Single-Account-Version siehe processAccount()

Parameter Typ Beschreibung
accountIds  Array Beinhaltet die Account IDs der zu verarbeitenden Google Ads Konten.

processAccount() ⇒

MCC-Version nachfolgend.
Wird in Single-Account-Version als main() ausgeführt

Parameter Typ Beschreibung
accountId  String Die Account ID des verarbeiteten Kontos.
ocid String  Die zum verarbeiteten Konto passende ocid. (Wird benötigt für die Erstellung von Google Ads Deeplinks.)
sheetStatus Integer 2 = neues Tabellenblatt wurde angelegt.
1 = Inhalte wurden aus bestehendem Tabellenblatt entfernt.
activeSearchTerms  Array  Rückgabewerte aus getActiveSearchTerms()

prepareSheet() ⇒

Parameter Typ Beschreibung
sheetFileId String Die ID des zu verwendenden Google Sheets.
accountId  String Die Account ID des verarbeiteten Kontos.
ss  Spreadsheet Object Das zu verwendende Google Sheet 
templateSheet Sheet Object Die leere Tabellenblattvorlage innerhalb des verwendeten Google Sheets. (Wird für die Erstellung neuer Tabellenblätter für verarbeitete Konten verwendet.)

getActiveSearchTerms() ⇒

Parameter Typ Beschreibung
ocid String  Die zum verarbeiteten Konto passende ocid. (Wird benötigt für die Erstellung von Google Ads Deeplinks.)
 activeSearchTerms Array Rückgabewerte für processAccount()
query String GAQL Abfrage zur Ausführung der Suche nach aktiven Suchbegriffen mittels AdsApp.search()
 search  AdsApp.SearchRowIterator siehe AdsApp.SearchRowIterator
googleAdsDeeplink String Der Google Ads Deeplink zur Anzeigengruppe des jeweiligen Suchbegriffs

writeData() ⇒

Parameter Typ Beschreibung
data Array Die Rückgabewerte aus getActiveSearchTerms().
sheetFileId String Die ID des zu verwendenden Google Sheets.
sheetName  String Die Account ID des verarbeiteten Kontos.
sheet  Spreadsheet Object Das verwendete Google Sheet. 

Script 2 - "SQ Deduplicator 22.1 Process Data"

nach oben

global ⇒

Parameter Typ Beschreibung
sheetFileId String Die ID des zu verwendenden Google Sheets.

main() ⇒

MCC-Version nachfolgend.
Single-Account-Version siehe processAccount()

Parameter Typ Beschreibung
accountIds  Array Beinhaltet die Account IDs der zu verarbeitenden Google Ads Konten.

processAccount() ⇒

MCC-Version nachfolgend.
Wird in Single-Account-Version als main() ausgeführt

Parameter Typ Beschreibung
accountId  String Die Account ID des verarbeiteten Kontos.
sheet  Spreadsheet Object Das verwendete Google Sheet. 
 existingValues  Array Alle Datenzeilen (ohne Kopfzeile) des Tabellenblatts des verarbeiteten Kontos.
 filteredValues Array Gefilterte Zeilen aus existingValues ohne Werte in Spalte "processed".
count  Integer Hilfsvariable zur Zählung der bereits verarbeiteten Zeilen
status String Rückgabewert aus checkForDuplicates(). (Siehe Rückgabewerte aus Script 2)

checkForDuplicates() ⇒

Parameter Typ Beschreibung
rowData Array Eingabewerte aus processAccount(). (Die zu verarbeitende Zeile aus filteredValues.)
accountId  String Die Account ID des verarbeiteten Kontos.
query String GAQL Abfrage zur Ausführung der Suche nach bereits gebuchten Keyword in anderen Anzeigengruppen mittels AdsApp.search()
 search  AdsApp.SearchRowIterator siehe AdsApp.SearchRowIterator

createCampaignNegative() ⇒

Parameter Typ Beschreibung
term  String Keyword-Text zur Erstellung des auszuschließenden Keywords.
campaign  Integer ID der Kampagne, in der das auszuschließende Keyword erstellt werden soll.

createAdGroupNegative() ⇒

Parameter Typ Beschreibung
term  String Keyword-Text zur Erstellung des auszuschließenden Keywords.
adgroup  Integer ID der Anzeigengruppe, in der das auszuschließende Keyword erstellt werden soll.

readSheet() ⇒

Parameter Typ Beschreibung
sheet  Spreadsheet Object Das verwendete Google Sheet. 

updateData() ⇒

Parameter Typ Beschreibung
sheet  Spreadsheet Object Das verwendete Google Sheet. 
index  Integer Relative Zeilennummer des verarbeiteten Suchbegriffs im Tabellenblatt 
status String Rückgabewert aus checkForDuplicates(). (Siehe Rückgabewerte aus Script 2)