Dieses Tutorial dokumentiert ein Skript, das die Aktivität von Konversionszielen in allen Konten unter Ihrem MCC prüft. Es schreibt die Ergebnisse in ein Google Sheet, kennzeichnet den Zustand jedes Ziels, kodiert den Status farblich und sendet nur dann eine Zusammenfassung per E-Mail, wenn ein Problem vorliegt.
Es gibt keine unnötigen Tools oder Dashboards von Drittanbietern, sondern nur die reine Kontrolle und vollständige Transparenz.
Dieses Skript prüft jedes Google Ads-Konto unter Ihrem MCC und bewertet den Status jedes Conversion-Ziels über einen definierten Rückblickszeitraum. Anstatt zu raten, welche Ziele aktiv oder defekt sind, gibt Ihnen dieses System einen Echtzeit-Schnappschuss in einem Google Sheet und alarmiert Sie nur, wenn etwas Ihre Aufmerksamkeit erfordert.
There will be two email notifications: one for accounts needing attention and the other for all good accounts.
Beispiel:
Nachrichten:
Got it, your script needs two distinct email outputs:
✅ E-Mail "Alles gut" (wenn keine Probleme gefunden werden)
⚠️ Needs Attention"-E-Mail (wenn irgendwelche Ziele inaktiv sind, fehlen oder schlecht abschneiden)
Hier sehen Sie genau, wie beide Versionen unter Verwendung Ihrer Beispieldaten und der aktuellen Logik aussehen sollten:
Nachricht #1
Alle überwachten Konversionsziele berichten über die Aktivitäten der letzten 60 Tage.
In allen Konten wurden keine Probleme festgestellt.
Sehen Sie sich den vollständigen Bericht an:
https://docs.google.com/spreadsheets/d/yoursheetid
Nachricht #2
Die folgenden Umstellungsziele müssen möglicherweise überprüft werden (z. B. keine kürzlichen Umstellungen oder inaktiv):
Bright Widgets Inc (123-456-789) - Übermittlung eines Kontaktformulars (muss beachtet werden)
Acme Corp (987-654-321) - Anruf vereinbaren (inaktiv)
Acme Corp (987-654-321) - Anmeldung für kostenlose Testversion (muss beachtet werden)
Rocket Leads (456-789-123) - (konfiguriert, keine Aktivität) (keine aktuellen Konversionen)
Beta Test Group (321-654-987) - (nicht eingestellt) (inaktiv)
Zebra Analytics (999-111-222) - Whitepaper-Download (muss beachtet werden)
Sehen Sie sich den vollständigen Bericht an:
https://docs.google.com/spreadsheets/d/yoursheetid
Vergewissern Sie sich vor der Bereitstellung des Skripts, dass Ihre Umgebung korrekt konfiguriert ist. Dieses Skript ist so konzipiert, dass es in einem Google Ads MCC-Kontext ausgeführt wird, um Daten zu schreiben und Warnungen zu senden.
Dies ist das Skript in seiner vollständigen, unbearbeiteten Form. Alle Kommentare, Formatierungen und die Logik sind genau so, wie sie ursprünglich geschrieben wurden. Ändern Sie dieses Skript nicht, wenn Sie die Aufschlüsselung später in diesem Lernprogramm nachvollziehen wollen.
// ========== 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'); }
This walkthrough shows how to set up the conversion goal health checker for your Google Ads MCC account. Follow each step to get the system running, write to Google Sheets, and send alerts when something breaks.
Beginnen Sie damit, das Ausgabeziel festzulegen.
Sie werden dieses Skript innerhalb Ihres MCC-Kontos einsetzen.
Wenn Sie das Skript zum ersten Mal verwenden, müssen Sie es autorisieren.
Sie müssen diesen Schritt abschließen, sonst wird das Skript nicht ausgeführt.
Überprüfen und ändern Sie innerhalb des Skripts Folgendes:
Den Rest des Skripts können Sie so belassen, wie er ist.
Führen Sie es einmal manuell aus, um sicherzustellen, dass alles funktioniert.
Um dies zu automatisieren, legen Sie einen wiederkehrenden Zeitplan fest.
Das Skript wird automatisch ausgeführt und alarmiert Sie nur, wenn etwas nicht stimmt.
Wenn das Skript ausgeführt wird, überprüft es alle Konversionsziele. Wenn eines inaktiv ist oder nicht ausgelöst wird, erhalten Sie eine E-Mail.
Dieses Skript ist nicht nur ein Datendump. Es ist ein Wachhund für jedes Conversion-Ziel in Ihrem gesamten Google Ads MCC. Sie werden benachrichtigt, wenn etwas unterbrochen wird, ins Stocken gerät oder die Verfolgung still und leise eingestellt wird. Wenn alles in Ordnung ist, erhalten Sie Ruhe.
Es überprüft jedes von Ihnen verwaltete Konto, markiert inaktive oder leistungsschwache Ziele und liefert einen gefilterten, geräuschlosen Bericht direkt an Ihren Posteingang. Das Google Sheet bietet Ihnen eine Live-Ansicht des Zielstatus nach Konto, Zielname und Konversionsvolumen, mit integrierten visuellen Hinweisen.
Sie wühlen sich nicht durch Schnittstellen. Sie warten nicht bis zum Ende des Monats, um festzustellen, dass Sie blind waren. Sie haben die Kontrolle, bevor es zu einem Problem wird.
Sehen Sie sich ähnliche Beiträge an:
Sehen Sie sich ähnliche Beiträge an:
If you manage multiple accounts, don’t miss our guide on tracking GA4 issues from numerous properties or exporting top-performing actual search terms with a lightweight script to refine your targeting.
Haben Sie es satt, zu raten, ob Ihr Tracking funktioniert? Wünschen Sie sich ein Team, das Systeme aufbaut und nicht nur Berichte erstellt?
Bright Vessel doesn’t just manage Google Ads; we engineer performance visibility at scale. Whether you need help deploying this script, integrating it into a larger automation stack, or building a custom analytics layer that tells you something, we’re ready.
Sprechen Sie mit dem Team, das baut, was andere Agenturen fälschen.
"*" kennzeichnet Pflichtfelder
"*" kennzeichnet Pflichtfelder
"*" kennzeichnet Pflichtfelder