

U bent al bekend met de pijn als u Performance Max- of brede zoekwoordcampagnes uitvoert. Google verbergt de echte zoekopdrachten. Dit script brengt ze terug. Het maakt rechtstreeks verbinding met uw Mijn Klantencentrum, pakt de geconverteerde zoekopdrachten op en plaatst ze in een Google Spreadsheet met berekende CPA en conversieratio.
Ons script, "Hoe u de best presterende Google Ads-zoektermen kunt exporteren naar Google Spreadsheets met behulp van Apps Script", is perfect voor bureaus die meerdere klanten beheren of voor marketeers die niet langer willen gokken.
Laten we het eens nader bekijken.

In het gedeelte Scripts worden alle bulkautomatiseringsinstellingen binnen Google Ads MCC ingesteld.
1. Meld u aan bij uw MCC (Manager Account) en ga naar Extra > Bulkacties > Scripts
2. Klik op de blauwe plusknop (+) om een nieuw script te maken
Hiermee open je de scripteditor. Maak je geen zorgen, je hoeft niet helemaal opnieuw te coderen. Je plakt een script dat al geschreven is. Door op deze knop te klikken, wordt een lege scriptcontainer voor je automatisering aangemaakt.

Het geven van een naam aan uw script is essentieel voor het beheer en de planning op de lange termijn.
3. Geef het script een naam zodat het later gemakkelijk te herkennen is
Bovenaan het scripteditorvenster ziet u een veld waarin u een naam kunt invoeren. Gebruik iets duidelijks, zoals 'Rapport best presterende zoektermen'. Zo herkent u het script later gemakkelijker wanneer u meerdere scripts of accounts beheert.
Je kunt het een naam geven Best presterende actuele zoektermen en voeg het script toe (onderaan dit bericht).

Geef het script een naam
4. Plak het volledige script in de 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));
}
Het script bevat verschillende gemarkeerde instellingen die u kunt aanpassen voordat u het uitvoert. Deze bevinden zich allemaal in de opmerkingenblokken van het script en zijn bedoeld om te worden gewijzigd op basis van uw specifieke doelen, rapportagebereik of opmaakvoorkeuren.
Hieronder vindt u een overzicht van wat u kunt wijzigen en waarom:
1. Spreadsheet-URL
var spreadsheetUrl = 'https://docs.google.com/spreadsheets/d/xxxxx/edit';
Wat het doet:
Dit is waar het script je gegevens naartoe stuurt. Vervang de tijdelijke URL door de link naar je Google Sheet. Als je meerdere e-mailadressen gebruikt, zorg er dan voor dat de Sheet wordt gedeeld met het Google-account dat aan je Mijn Klantencentrum is gekoppeld.
2. Datumbereikinstellingen
var startDate = '20230315';
var endDate = '20240915';
Wat het doet:
Hiermee bepaalt u het rapportagevenster. Datums moeten worden genoteerd als JJJJMMDD. U kunt deze aanpassen aan het tijdsbestek dat u analyseert: de afgelopen 30 dagen, de afgelopen 90 dagen, aangepaste kwartaalbereiken, enzovoort.
3. Bladnaamgedrag
var sheetName = accountName + ' - Top presterende termen PC 90 dagen';
Wat het doet:
Deze regel geeft het tabblad Sheet een dynamische naam op basis van het account waarop het script wordt uitgevoerd. U kunt het tekstgedeelte ('—Top Performing Terms PC 90 Days') wijzigen als u rapporten een ander label wilt geven. Dit is handig wanneer u rapporten met meerdere merken of subaccounts uitvoert.
4. Filteren van merktermen
if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('endeavor schools')) {
continue;
}
Wat het doet:
In deze sectie worden alle merkgerelateerde termen uit uw rapport uitgesloten. U kunt deze lijst bijwerken door .includes()-voorwaarden toe te voegen of te verwijderen. Als u bijvoorbeeld "MijnMerk" wilt uitsluiten, voegt u het volgende toe:
|| zoekterm.includes('mijnmerk')
Gebruik consequent kleine letters, aangezien het script alle zoekopdrachten naar kleine letters omzet.
5. Filteren van generieke termen
if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}
Wat het doet:
Dit optionele filter filtert termen die niet merkspecifiek zijn, maar de data toch vertroebelen, zoals 'leren' of 'creatief'. Je kunt hier filters toevoegen of verwijderen op basis van wat je als ruis beschouwt.
6. Prestatiedrempel
als (conversies < 1) doorgaan;
Wat het doet:
Deze regel verwijdert zoekopdrachten zonder conversies. U kunt deze drempelwaarde desgewenst verhogen, alleen voor beter presterende termen. Wijzig bijvoorbeeld in:
als (conversies < 3) doorgaan;
...om alleen zoektermen met 3+ conversies in het datumbereik op te nemen.
7. Opmaak van werkbladuitvoer
sheet.getRange(rowNumber, 6).setValue('$' + cpa);
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%');
Wat het doet:
Hiermee bepaalt u hoe de CPA en het conversiepercentage op het werkblad worden weergegeven. U kunt de tekenreekstoevoegingen bewerken of verwijderen om symbolen (bijvoorbeeld $ of %) te verwijderen.
Zodra het script succesvol is uitgevoerd, wordt je Google Sheet gevuld met een gestructureerde tabel. Elke rij vertegenwoordigt een zoekterm die binnen het opgegeven datumbereik ten minste één conversie heeft opgeleverd.

Het Google Sheet-voorbeeld
Het script genereert een set prestatiekolommen in je Google Sheet, die een duidelijk beeld geven van hoe elke zoekterm bijdraagt. Deze kolommen omvatten de namen van de campagnes en advertentiegroepen om bij te houden waar de term is geactiveerd, de zoekterm die de gebruiker daadwerkelijk heeft ingetypt, het aantal conversies dat het heeft opgeleverd, de totale conversiewaarde, de gemiddelde kosten per conversie en het algehele conversiepercentage. Elk veld is cruciaal om te begrijpen wat werkt en welke verspillingen er plaatsvinden.
Campagnenaam
Naam van de campagne waarin de advertentie werd geactiveerd
Naam van advertentiegroep
Een advertentiegroep die overeenkwam met de zoekterm
Zoekterm
De exacte zin die de gebruiker in Google heeft getypt
Conversies
Aantal bijgehouden conversies van die term
Conversiewaarde
De totale waarde van deze conversies, gebaseerd op uw accountinstellingen
Kosten per conversie (CPA)
De gemiddelde kosten om één conversie te genereren via die zoekterm
Conversiepercentage (%)
Percentage klikken dat resulteerde in een conversie
Dit script vormt een solide basis, maar kan verder gaan, afhankelijk van hoe diep u uw rapportage wilt laten gaan. Als u meerdere merken of accounts onder één MCC beheert, kunt u campagnelabels of filters toevoegen om gegevens te isoleren per merk of bedrijfseenheid. Door het script automatisch wekelijks of maandelijks te laten uitvoeren, bespaart u tijd en zorgt u voor consistente rapporten. U kunt logica ontwikkelen om meldingen te versturen wanneer belangrijke statistieken, zoals CPA of conversieratio, bepaalde drempelwaarden overschrijden. Voor een meer gedetailleerde analyse kunt u dit combineren met andere rapporten. TREFWOORDEN_PRESTATIERAPPORT om uitsplitsingen per matchtype te krijgen. Binnen het werkblad kun je met draaitabellen of voorwaardelijke opmaak sneller inzicht krijgen. En als je het visueel wilt maken, kun je de gegevens in Looker Studio importeren voor dashboards die je klanten kunnen begrijpen.
Voeg campagnelabels of filters op accountniveau toe om gegevens te segmenteren over grote MCC's
Gebruik de ingebouwde planning om wekelijks of maandelijks rapporten te automatiseren
Activeer e-mailwaarschuwingen wanneer de CPA een bepaalde waarde overschrijdt of het conversiepercentage onder een drempelwaarde daalt
Voeg gegevens uit andere rapporten samen, zoals KEYWORDS_PERFORMANCE_REPORT, om de matchtypen te splitsen
Voeg basis draaitabelsamenvattingen of voorwaardelijke opmaak rechtstreeks in Sheets toe
Verbind de uitvoer met Looker Studio voor visuele prestatiedashboards
Bij Bright Vessel bouwen we automatiseringstools op maat zoals deze voor klanten die duidelijke prestatie-inzichten nodig hebben in overvolle advertentieomgevingen. Bent u het zat om door onvolledige dashboards te spitten of vijf handmatige exports uit te voeren om de benodigde gegevens te verkrijgen? Dit script is slechts een van de vele manieren waarop we het proces stroomlijnen.
Bekijk onze gerelateerde walkthrough over "Google Ads-doelstatus controleren in MCC-accounts met behulp van Google Sheets en Apps Script" voor een andere methode om tracking op grote schaal te automatiseren.
Heb je een versie nodig die integreert met Slack, Looker-dashboards bouwt of meerdere advertentieaccounts verbindt tot één hoofdblad? Wij kunnen het maken. Laten we praten .

"*" geeft verplichte velden aan

"*" geeft verplichte velden aan

"*" geeft verplichte velden aan