

Deze tutorial beschrijft een script dat de conversiedoelactiviteit in alle accounts onder uw Mijn Klantencentrum controleert. Het schrijft de resultaten naar een Google Spreadsheet, labelt de status van elk doel, geeft de status een kleurcode en verstuurt alleen een samenvatting per e-mail wanneer er een probleem is.
Er zijn geen onnodige hulpmiddelen of dashboards van derden; alleen pure controle en volledige zichtbaarheid.
Dit script controleert elk Google Ads-account onder uw Mijn Klantencentrum en evalueert de status van elk conversiedoel gedurende een bepaalde terugblikperiode. In plaats van te raden welke doelen actief of defect zijn, geeft dit systeem u een realtime momentopname in een Google Spreadsheet en waarschuwt u alleen wanneer iets uw aandacht vereist.
Er zijn twee e-mailmeldingen: één voor accounts die aandacht nodig hebben en de andere voor alle geldige accounts.
Voorbeeld:
Berichten:
Ik snap het, je script heeft nodig twee verschillende e-mailuitvoer :
✅ E-mail 'Alles goed' (als geen problemen worden gevonden)
⚠️ E-mail 'Aandacht vereist' (als elk doelen zijn inactief, ontbreken of presteren slecht)
Dit is precies hoe beide versies eruit zouden moeten zien, met behulp van uw voorbeeldgegevens en huidige logica:
Bericht #1
Alle gecontroleerde conversiedoelen rapporteren activiteiten van de afgelopen 60 dagen.
Er zijn geen problemen gevonden in accounts.
Bekijk het volledige rapport:
https://docs.google.com/spreadsheets/d/yoursheetid
Bericht #2
De volgende conversiedoelen moeten mogelijk worden herzien (bijvoorbeeld geen recente conversies of inactief):
Bright Widgets Inc (123-456-789) - Contactformulier indienen (aandacht vereist)
Acme Corp (987-654-321) - Plan een gesprek (inactief)
Acme Corp (987-654-321) - Aanmelden voor gratis proefperiode (aandacht vereist)
Rocket Leads (456-789-123) - (geconfigureerd, geen activiteit) (Geen recente conversies)
Beta Test Group (321-654-987) - (niet ingesteld) (inactief)
Zebra Analytics (999-111-222) - Whitepaper downloaden (aandacht vereist)
Bekijk het volledige rapport:
https://docs.google.com/spreadsheets/d/yoursheetid
Controleer voordat u het script implementeert of uw omgeving correct is geconfigureerd. Dit script is ontworpen om te worden uitgevoerd binnen een Google Ads MCC-context om gegevens te schrijven en waarschuwingen te verzenden.
Dit is het script in zijn volledige, onbewerkte vorm. Alle opmerkingen, opmaak en logica zijn exact zoals oorspronkelijk geschreven. Wijzig dit niet als u van plan bent de indeling later in deze tutorial te volgen.
// ========== CONFIGURATION ========== const SHEET_ID = '1PvpW3eUl5fqRwabBg0P7D8LKzW83MOTVX1KDBMB3ipA'; const LOOKBACK_DAYS = 60; const EXCLUDED_ACCOUNT_IDS = [ '000-000-000', '000-000-000', '000-000-000' ]; const RECIPIENT_EMAILS = '[email protected]'; // =================================== function main() { const sheet = SpreadsheetApp.openById(SHEET_ID).getSheets()[0]; sheet.clear(); sheet.appendRow(['Account Name', 'Account ID', 'Goal Name', 'Conversions', 'Status', 'Date Range']); const startDate = getDateXDaysAgo(LOOKBACK_DAYS); const endDate = getTodayDate(); const dateRangeLabel = `Last ${LOOKBACK_DAYS} days (${startDate} to ${endDate})`; const accounts = MccApp.accounts().get(); const flagged = []; let rowIndex = 2; while (accounts.hasNext()) { const account = accounts.next(); const accountId = account.getCustomerId(); const accountName = account.getName(); Logger.log(`⏳ Checking account: ${accountName} (${accountId})`); if (EXCLUDED_ACCOUNT_IDS.includes(accountId)) { Logger.log(`🚫 Skipping excluded account: ${accountName} (${accountId})`); continue; } try { MccApp.select(account); const query = ` SELECT ConversionTypeName, Conversions FROM CAMPAIGN_PERFORMANCE_REPORT DURING ${startDate},${endDate} `; const report = AdsApp.report(query); const rows = report.rows(); const goalMap = {}; while (rows.hasNext()) { const row = rows.next(); const goalName = row['ConversionTypeName'] || '(not set)'; const conversions = parseFloat(row['Conversions']) || 0; if (!goalMap[goalName]) { goalMap[goalName] = 0; } goalMap[goalName] += conversions; } if (Object.keys(goalMap).length === 0) { Logger.log(`⚠️ No conversion data returned for account: ${accountName} (${accountId})`); const status = 'No Recent Conversions'; sheet.appendRow([ accountName, accountId, '(configured, no activity)', 0, status, dateRangeLabel ]); setStatusColumnColor(sheet, rowIndex, status); flagged.push(`${accountName} (${accountId}) - no conversion goals triggered`); rowIndex++; continue; } for (const [goalName, totalConversions] of Object.entries(goalMap)) { let status; if (totalConversions > 0) { status = 'Active'; } else if (goalName.toLowerCase().includes('test') || goalName === '(not set)') { status = 'Inactive'; } else { status = 'Needs Attention'; } sheet.appendRow([ accountName, accountId, goalName, totalConversions, status, dateRangeLabel ]); setStatusColumnColor(sheet, rowIndex, status); if (status !== 'Active') { flagged.push(`${accountName} (${accountId}) - ${goalName} (${status})`); } rowIndex++; } } catch (e) { Logger.log(`❌ Error processing account: ${accountName} (${accountId}) - ${e.message}`); } } if (flagged.length > 0) { const subject = '⚠️ Conversion Goals Needing Attention'; const body = `The following conversion goals may need review (e.g., no recent conversions or inactive):\n\n` + flagged.join('\n') + `\n\nView the full report:\nhttps://docs.google.com/spreadsheets/d/${SHEET_ID}`; MailApp.sendEmail(RECIPIENT_EMAILS, subject, body); } else { Logger.log('✅ All goals are reporting conversions.'); } } // 🎨 Apply color to only the "Status" column (Column E) function setStatusColumnColor(sheet, row, status) { const range = sheet.getRange(row, 5); // Column E switch (status) { case 'Active': range.setBackground('#d9ead3'); // Light green break; case 'Inactive': range.setBackground('#f4cccc'); // Light red break; case 'Needs Attention': range.setBackground('#fff2cc'); // Light yellow break; case 'No Recent Conversions': range.setBackground('#e6e6fa'); // Light purple break; default: range.setBackground(null); } } // 🕒 Helpers function getTodayDate() { const date = new Date(); return Utilities.formatDate(date, AdsApp.currentAccount().getTimeZone(), 'yyyyMMdd'); } function getDateXDaysAgo(days) { const date = new Date(); date.setDate(date.getDate() - days); return Utilities.formatDate(date, AdsApp.currentAccount().getTimeZone(), 'yyyyMMdd'); }
Deze walkthrough laat zien hoe u de statuschecker voor conversiedoelen instelt voor uw Google Ads MCC-account. Volg elke stap om het systeem te laten werken, schrijf naar Google Spreadsheets en verstuur meldingen wanneer er iets misgaat.
Begin met het instellen van de uitvoerbestemming.
U implementeert dit script in uw MCC-account.
De eerste keer dat u het script gebruikt, moet u het autoriseren.
U moet deze stap voltooien, anders mislukt de uitvoering van het script.
Bekijk en wijzig het volgende in het script:
De rest van het script kunt u precies zo laten als het is.
Voer het handmatig een keer uit om te controleren of alles werkt.
Als u dit automatisch wilt laten verlopen, stelt u in dat dit volgens een terugkerend schema moet gebeuren.
Het script wordt automatisch uitgevoerd en waarschuwt u alleen als er iets niet klopt.
Wanneer het script draait, controleert het alle conversiedoelen. Als er doelen inactief zijn of niet worden geactiveerd, ontvang je een e-mail.
Dit script is niet zomaar een datadump. Het is een waakhond voor elk conversiedoel in uw volledige Google Ads MCC. U ontvangt een melding wanneer iets niet werkt, vastloopt of stilletjes stopt met meten. Als alles in orde is, krijgt u stilte.
Het controleert elk account dat je beheert, signaleert inactieve of ondermaats presterende doelen en stuurt een gefilterd, ruisvrij rapport rechtstreeks naar je inbox. Google Spreadsheet geeft je een live overzicht van de doelstatus per account, doelnaam en conversievolume, met ingebouwde visuele signalen.
Je graaft niet in interfaces. Je wacht niet tot het einde van de maand om te beseffen dat je blind bent geweest. Je hebt de controle voordat het een probleem wordt.
Bekijk vergelijkbare berichten:
Bekijk vergelijkbare berichten:
Als Als u meerdere accounts beheert, mis dan onze gids niet het volgen van GA4-problemen van talrijke eigendommen of exporteren best presterende actuele zoektermen met een lichtgewicht script om uw targeting te verfijnen.
Bent u het zat om te gissen of uw tracking werkt? Wilt u een team dat systemen bouwt in plaats van alleen rapporten?
Bright Vessel beheert niet alleen Google Ads; wij ontwikkelen prestatiezichtbaarheid op schaal. Of u nu hulp nodig heeft bij het implementeren van dit script, het integreren ervan in een grotere automatiseringsstack of het bouwen van een aangepaste analyselaag die u iets vertelt, wij staan voor u klaar.
Praat met het team dat de nepproducten van andere bureaus maakt.

"*" geeft verplichte velden aan

"*" geeft verplichte velden aan

"*" geeft verplichte velden aan