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
functie main() {
// Stel de bestemmings-URL van de Google Sheet in
var spreadsheetUrl = 'Plak hier uw Google Sheet-URL';
// Haal de accountnaam op om de sheet dynamisch een naam te geven
var accountName = AdsApp.currentAccount().getName();
// Gebruik de accountnaam om het tabblad in de spreadsheet te labelen
var sheetName = accountName + ' - Top Presterende Termen PC 90 Dagen';
// Open de spreadsheet via URL
var spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl);
// Haal de sheet op via naam, of maak hem aan als hij niet bestaat
var sheet = spreadsheet.getSheetByName(sheetName) || spreadsheet.insertSheet(sheetName);
// Wis alle bestaande gegevens uit de sheet
sheet.clear();
// Schrijf de koptekstrij naar de spreadsheet
sheet.getRange('A1').setValue('Campagnenaam');
sheet.getRange('B1').setValue('Naam advertentiegroep');
sheet.getRange('C1').setValue('Zoekterm');
sheet.getRange('D1').setValue('Conversies');
sheet.getRange('E1').setValue('Conversiewaarde');
sheet.getRange('F1').setValue('Kosten per conversie (CPA)');
sheet.getRange('G1').setValue('Conversiepercentage (%)');
// Stel het aangepaste datumbereik voor rapportage in (notatie: JJJJMMDD)
var startDate = '20230315';
var endDate = '20240915';
// Bouw de query op vanuit het rapport 'Zoekopdrachtprestaties'
var report = AdsApp.report(
"SELECT CampaignName, AdGroupName, Query, Conversions, ConversionValue, Cost, Clicks " +
"FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE Conversions > 0 " +
"DURING " + startDate + "," + endDate
);
// Haal rapportrijen op en stel de beginrij voor gegevensinvoeging in
var rows = report.rows();
var rowNumber = 2;
// Loop door elke rij van het rapport
while (rows.hasNext()) {
var row = rows.next();
// Zet de zoekterm in kleine letters voor consistente merkfiltering
var searchTerm = row['Query'].toLowerCase();
var conversions = parseFloat(row['Conversions']);
// Sla rijen met minder dan 1 conversie over
if (conversions < 1) continue;
// Sluit merktermen uit om vervuiling van het rapport te voorkomen
if (searchTerm.includes('parker chase') || searchTerm.includes('parker-chase') || searchTerm.includes('endeavor schools')) {
continue;
}
// Optioneel generiek filter - voeg hier termen toe of verwijder ze
if (
searchTerm.includes('creative') ||
searchTerm.includes('learning') ||
searchTerm.includes('content')
) {
continue;
}
// Extraheer kosten- en klikwaarden om de prestaties te berekenen
var cost = parseFloat(row['Cost']);
var clicks = parseFloat(row['Clicks']);
// Bereken de kosten per conversie (CPA)
var cpa = conversies > 0 ? kosten / conversies : 0;
// Bereken het conversiepercentage
var conversionRate = klikken > 0 ? (conversies / klikken) * 100 : 0;
// Waarden opmaken
cpa = cpa.toFixed(2);
conversionRate = conversionRate.toFixed(2);
// Schrijf de rij naar de 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(conversies);
sheet.getRange(rowNumber, 5).setValue(row['ConversionValue']);
sheet.getRange(rowNumber, 6).setValue('$' + cpa); // Voeg een dollarteken toe voor CPA
sheet.getRange(rowNumber, 7).setValue(conversionRate + '%'); // Voeg een percentagesymbool toe
// Ga naar de volgende rij in het werkblad
rowNumber++;
}
// Registreer hoeveel rijen er zijn verwerkt
Logger.log('Export voltooid. Totaal aantal verwerkte rijen: ' + (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 startdatum = '20230315';
var einddatum = '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
als (zoekterm.includes('parker chase') || zoekterm.includes('parker-chase') || zoekterm.includes('endeavor schools')) {
verdergaan;
}
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
als (
zoekterm.includes('creatief') ||
zoekterm.includes('leren') ||
zoekterm.includes('inhoud')
) {
verdergaan;
}
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(rijnummer, 6).setValue('$' + cpa);
sheet.getRange(rijnummer, 7).setValue(conversiepercentage + '%');
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