So exportieren Sie die leistungsstärksten Google Ads-Suchbegriffe in Google Tabellen
So exportieren Sie die leistungsstärksten Google Ads-Suchbegriffe in Google Tabellen
So exportieren Sie die leistungsstärksten Google Ads-Suchbegriffe in Google Tabellen

So exportieren Sie die leistungsstärksten Google Ads-Suchbegriffe mithilfe von Apps Script in Google Tabellen

Gefällt Ihnen dieser Artikel?
Share it on social media!
Inhalt

Sie kennen das Problem bereits, wenn Sie Kampagnen mit maximaler Performance oder weitgehend passender Suchbegriffe durchführen. Google verbirgt die echten Suchanfragen. Dieses Skript holt sie zurück. Es verbindet sich direkt mit Ihrem Kundencenter, erfasst die konvertierten Suchanfragen und fügt sie in ein Google-Tabellenblatt mit berechnetem CPA und Conversion-Rate ein.

Unser Skript „So exportieren Sie leistungsstarke Google Ads-Suchbegriffe mithilfe von Apps Script in Google Tabellen“ ist ideal für Agenturen, die mehrere Kunden betreuen, oder für Vermarkter, die nicht mehr raten möchten.

Let’s break it down.

What Export Top Performing Google Ads Search Terms Script Does

  • Ruft Abfragedaten aus allen Kampagnen für 6 Monate ab
  • Filtert Müll heraus: Markenbegriffe und Rauschen mit geringer Konvertierung
  • Berechnet die Kosten pro Konvertierung und die Konvertierungsrate
  • Legt alles in ein leeres Google Sheet ab, eine Registerkarte pro Konto

So fügen Sie ein Google Ads-Skript hinzu

Im Abschnitt „Skripte“ wird die gesamte Massenautomatisierung innerhalb von Google Ads MCC eingerichtet.

1. Log in to your MCC (Manager Account) and go to Tools > Bulk Actions > Scripts

2. Click the blue plus (+) button to create a new script

Dadurch wird der Skript-Editor geöffnet. Keine Sorge, Sie programmieren nicht von Grund auf neu. Sie fügen ein bereits geschriebenes Skript ein. Durch Klicken auf diese Schaltfläche wird ein leerer Skript-Container für Ihre Automatisierung erstellt.

Benennen Sie Ihr Skript

Die Benennung Ihres Skripts ist für die langfristige Verwaltung und Planung von entscheidender Bedeutung.

3. Name the script so it’s easy to identify later

Oben im Skript-Editor-Fenster sehen Sie ein Feld, in das Sie einen Namen eingeben können. Verwenden Sie einen eindeutigen Namen wie „Bericht mit den leistungsstärksten Suchbegriffen“. So erkennen Sie das Skript später leichter wieder, wenn Sie mehrere Skripte oder Konten verwalten.

You can name it Top Performing Actual Search Terms and drop in the script (included at the bottom of this post).

Benennen Sie Ihr Skript

Benennen Sie das Skript

4. Paste the entire script into the editor

function main() {
// Set the destination Google Sheet URL
var spreadsheetUrl = 'Paste Your Google Sheet URL Here';

// Get the account name to dynamically name the sheet
var accountName = AdsApp.currentAccount().getName();

// Use the account name to label the tab inside the spreadsheet
var sheetName = accountName + ' - Top Performing Terms PC 90 Days';

// Open the spreadsheet by URL
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);

// Get the sheet by name, or create it if it doesn't exist
var sheet = spreadsheet.getSheetByName(sheetName) || spreadsheet.insertSheet(sheetName);

// Clear any existing data from the sheet
sheet.clear();

// Write header row to the spreadsheet
sheet.getRange('A1').setValue('Campaign Name');
sheet.getRange('B1').setValue('Ad Group Name');
sheet.getRange('C1').setValue('Search Term');
sheet.getRange('D1').setValue('Conversions');
sheet.getRange('E1').setValue('Conversion Value');
sheet.getRange('F1').setValue('Cost Per Conversion (CPA)');
sheet.getRange('G1').setValue('Conversion Rate (%)');

// Set the custom date range for reporting (format: YYYYMMDD)
var startDate = '20230315';
var endDate = '20240915';

// Build the query from the Search Query Performance Report
var report = AdsApp.report(
"SELECT CampaignName, AdGroupName, Query, Conversions, ConversionValue, Cost, Clicks " +
"FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE Conversions > 0 " +
"DURING " + startDate + "," + endDate
);

// Get report rows and set starting row for data insertion
var rows = report.rows();
var rowNumber = 2;

// Iterate through each row of the report
while (rows.hasNext()) {
var row = rows.next();

// Lowercase the search term for consistent brand filtering
var searchTerm = row['Query'].toLowerCase();
var conversions = parseFloat(row['Conversions']);

// Skip rows with less than 1 conversion
if (conversions < 1) continue;

// Exclude branded terms to avoid polluting the report
if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('endeavor schools')) {
continue;
}

// Optional generic filter - add or remove terms here
if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}

// Extract cost and click values to calculate performance
var cost = parseFloat(row['Cost']);
var clicks = parseFloat(row['Clicks']);

// Calculate cost per conversion (CPA)
var cpa = conversions > 0 ? cost / conversions : 0;

// Calculate conversion rate
var conversionRate = clicks > 0 ? (conversions / clicks) * 100 : 0;

// Format values
cpa = cpa.toFixed(2);
conversionRate = conversionRate.toFixed(2);

// Write the row to the spreadsheet
sheet.getRange(rowNumber, 1).setValue(row['CampaignName']);
sheet.getRange(rowNumber, 2).setValue(row['AdGroupName']);
sheet.getRange(rowNumber, 3).setValue(row['Query']);
sheet.getRange(rowNumber, 4).setValue(conversions);
sheet.getRange(rowNumber, 5).setValue(row['ConversionValue']);
sheet.getRange(rowNumber, 6).setValue('$' + cpa); // Include dollar sign for CPA
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%'); // Add percentage symbol

// Move to the next row in the sheet
rowNumber++;
}

// Log how many rows were processed
Logger.log('Export completed. Total rows processed: ' + (rowNumber - 2));
}

Was Sie im Skript anpassen können

The script includes several marked settings you can adjust before running it. These are all inside the script's comment blocks and are meant to be changed based on your specific goals, reporting range, or formatting preferences.

Here’s a breakdown of what you can modify and why:

1. Spreadsheet URL

var spreadsheetUrl = 'https://docs.google.com/spreadsheets/d/xxxxx/edit';

What it does:
This is where the script sends your data. Replace the placeholder URL with the link to your Google Sheet. If you're using multiple email addresses, ensure the Sheet is shared with the Google account tied to your MCC.

2. Date Range Settings

var startDate = '20230315';
var endDate = '20240915';

What it does:
This controls the reporting window. Dates must be formatted as YYYYMMDD. You can adjust these to match whatever time frame you're analyzing, the last 30 days, the last 90 days, custom quarterly ranges, etc.

3. Sheet Name Behavior

var sheetName = accountName + ' - Top Performing Terms PC 90 Days';

What it does:
This line dynamically names the Sheet tab based on the account running the script. You can change the text string portion ('—Top Performing Terms PC 90 Days') if you want to label reports differently. This is useful when running across multiple brands or sub-accounts.

4. Branded Term Filtering

if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('endeavor schools')) {
continue;
}

What it does:
This section excludes any branded terms from your report. You can update this list by adding or removing .includes() conditions. For example, if you want to exclude “MyBrand,” just add:

|| searchTerm.includes('mybrand')

Verwenden Sie durchgängig Kleinbuchstaben, da das Skript alle Abfragen in Kleinbuchstaben umwandelt.

5. Generic Term Filtering

if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}

What it does:
This optional filter weeds out terms that aren’t brand-specific but still muddy the data, like “learning” or “creative.” You can add or remove filters here based on what you consider noise.

6. Performance Threshold

if (conversions < 1) continue;

What it does:
This line removes queries with no conversions. You can increase this threshold if you want, only for higher-performing terms. For example, change to:

if (conversions < 3) continue;
...to include only search terms with 3+ conversions in the date range.

7. Sheet Output Formatting

sheet.getRange(rowNumber, 6).setValue('$' + cpa);
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%');

What it does:
This controls how CPA and conversion rate are written on the sheet. You can edit or delete the string additions to remove symbols (e.g., $ or %).

Ausgabefelder

Sobald das Skript erfolgreich ausgeführt wurde, wird Ihr Google Sheet mit einer strukturierten Tabelle gefüllt. Jede Zeile stellt einen Suchbegriff dar, der innerhalb des angegebenen Datumsbereichs mindestens eine Conversion ausgelöst hat.

Nahaufnahme von Google Sheet mit sauberer Formatierung der Leistungskennzahlen der leistungsstärksten Keywords

Das Google Sheet-Beispiel

Ausgabefelder

Das Skript generiert eine Reihe von Performance-Spalten in Ihrem Google Sheet und bietet so einen klaren Überblick über den Beitrag jedes Suchbegriffs. Dazu gehören die Kampagnen- und Anzeigengruppennamen, um zu verfolgen, wo der Begriff ausgelöst wurde, der vom Nutzer eingegebene Suchbegriff, die Anzahl der erzielten Conversions, der Gesamt-Conversion-Wert, die durchschnittlichen Kosten pro Conversion und die Gesamt-Conversion-Rate. Jedes Feld ist entscheidend, um zu verstehen, was funktioniert und was verschwendet wird.

  • Campaign Name
    Name of the campaign where the ad was triggered

  • Ad Group Name
    An ad group that matched the search term

  • Search Term
    The exact phrase the user typed into Google

  • Conversions
    Number of tracked conversions from that term

  • Conversion Value
    The total value of those conversions, based on your account settings

  • Cost Per Conversion (CPA)
    The average cost to generate one conversion from that search term

  • Conversion Rate (%)
    Percentage of clicks that resulted in a conversion

Wie dieses Skript verbessert werden könnte

This script is a solid foundation, but it can go further depending on how deep you want your reporting to go. If you manage multiple brands or accounts under one MCC, adding campaign labels or filters can help isolate data by brand or business unit. Scheduling the script to run automatically on a weekly or monthly basis saves time and ensures consistent reports. You can build logic to send alerts when key metrics, such as CPA or conversion rate, cross certain thresholds. For more granular analysis, you can combine this with other reports  KEYWORDS_PERFORMANCE_REPORT to get match-type breakdowns. Inside the Sheet, adding pivot tables or conditional formatting can surface insights faster. And if you want to go visual, the data can be pulled into Looker Studio for dashboards your clients can understand.

  • Fügen Sie Kampagnenbezeichnungen oder Filter auf Kontoebene hinzu, um Daten über große Kundencenter hinweg zu segmentieren

  • Verwenden Sie die integrierte Planung, um Berichte wöchentlich oder monatlich zu automatisieren

  • Lösen Sie E-Mail-Benachrichtigungen aus, wenn der CPA einen bestimmten Wert überschreitet oder die Conversion-Rate unter einen Schwellenwert fällt

  • Kombinieren Sie Daten aus anderen Berichten, wie etwa KEYWORDS_PERFORMANCE_REPORT, um Übereinstimmungstypen aufzuschlüsseln

  • Fügen Sie grundlegende Pivot-Zusammenfassungen oder bedingte Formatierungen direkt in Tabellen hinzu

  • Verbinden Sie die Ausgabe mit Looker Studio für visuelle Leistungs-Dashboards

Abschließende Gedanken: Angetrieben von Bright Vessel

Bei Bright Vessel entwickeln wir maßgeschneiderte Automatisierungstools wie dieses für Kunden, die klare Einblicke in die Performance unübersichtlicher Werbeumgebungen benötigen. Wenn Sie es satt haben, sich durch dürftige Dashboards zu wühlen oder fünf manuelle Exporte durchzuführen, um die benötigten Daten zu erhalten, ist dieses Skript nur eine von vielen Möglichkeiten, wie wir den Prozess optimieren.

Sehen Sie sich unsere zugehörige Anleitung zum Thema „So überwachen Sie den Zielstatus von Google Ads über alle Kundencenter-Konten hinweg mithilfe von Google Sheets und Apps Script“ an, um eine weitere Methode zur Automatisierung der Nachverfolgung im großen Maßstab zu erfahren.

Need a version of this that integrates with Slack, builds Looker dashboards, or connects multiple ad accounts into a master sheet? We can make it. Lass uns reden.

    Holen Sie sich Ihr kostenloses SEO-Audit

    Kostenloses SEO-Audit-Formular

    "*" indicates required fields

    Dieses Feld dient Validierungszwecken und sollte unverändert bleiben.
    Inhalt
    Gefällt Ihnen dieser Artikel?
    Share it on social media!
    Holen Sie sich Ihr kostenloses SEO-Audit

    Kostenloses SEO-Audit-Formular

    "*" indicates required fields

    Dieses Feld dient Validierungszwecken und sollte unverändert bleiben.
    Holen Sie sich Ihr kostenloses SEO-Audit

    Kostenloses SEO-Audit-Formular

    "*" indicates required fields

    Dieses Feld dient Validierungszwecken und sollte unverändert bleiben.
    Hat Ihnen dieser Artikel gefallen?
    Share it on social media!

    Schauen Sie sich einen anderen Blogbeitrag an!

    Zurück zu allen Blogbeiträgen
    © 2024 Bright Vessel. Alle Rechte vorbehalten.
    Chevron nach untenPfeil nach links