So überwachen Sie den Status von Google Ads-Zielen über MCC-Konten hinweg
So überwachen Sie den Status von Google Ads-Zielen über MCC-Konten hinweg

Überwachen des Google Ads-Zielstatus über MCC-Konten hinweg mit Google Sheets

Gefällt Ihnen dieser Artikel?
Teilen Sie es in den sozialen Medien!
Inhalt

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.

Überwachen Sie den Google Ads-Zielstatus für alle MCC-Konten

Was dieses Skript tut

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.

  • Verbindet sich mit Ihrem MCC und durchläuft jedes verknüpfte Konto
  • Skips accounts you've blocklisted (excluded)
  • Abruf der Konversionsleistung auf Kampagnenebene über einen bestimmten Zeitraum
  • Bewertet den Zustand der einzelnen Konversionsziele
  • Protokollierung der Ergebnisse in einem Google Sheet, wobei der Status mit Hintergrundfarben versehen wird
  • Sendet eine Zusammenfassung nur problematischer Konten oder Ziele per E-Mail

E-Mail-Benachrichtigungen

There will be two email notifications: one for accounts needing attention and the other for all good accounts.

Beispiel:

problematische Konten oder Ziele
Nachrichten:

Got it, your script needs two distinct email outputs:

  1. ✅ E-Mail "Alles gut" (wenn keine Probleme gefunden werden)

  2. ⚠️ 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

Anforderungen

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.

  • Google Ads MCC-Konto
  • Google Spreadsheet (muss manuell erstellt werden)

Das Originaldrehbuch

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');

}

Skriptaufteilung nach Abschnitten

KONFIGURATION

  • SHEET_ID: Ziel von Google Sheets für alle Ausgaben
  • RÜCKBLICK_DAYS: Berichtsfenster in Tagen
  • AUSGESCHLOSSENE_KONTEN_IDS: Zu überspringende Kundenkonten
  • EMPFÄNGER_E-MAILS: Wer wird bei einem Problem per E-Mail benachrichtigt?

main() Funktion

  • Öffnet das Blatt, leert es und richtet Kopfzeilen ein
  • Berechnet den Datumsbereich
  • Schleifen durch alle MCC-Unterkonten
  • Skips any that are blocklisted
  • Verwendet CAMPAIGN_PERFORMANCE_REPORT zum Abrufen aller Zieldaten
  • Für jedes Ziel:
    • Aggregierte Gesamtumsätze
    • Weist einen Status zu:
      • Aktiv: Umsätze > 0
      • Inaktiv: Testziel oder nicht gesetzt
      • Braucht Aufmerksamkeit: Null Umsetzungen, kein Test
      • Keine letzten Umsätze: keine Zieldaten zurückgegeben
  • Hängt Daten an das Blatt an
  • Ruft setStatusColumnColor() auf, um jede Zeile zu markieren
  • Erstellt eine Liste mit Markierungen und sendet E-Mails, wenn ein Problem gefunden wird

setStatusColumnColor(Blatt, Zeile, Status)

  • Wendet eine Hintergrundfarbe auf Spalte E an, die vom Zielstatus abhängt:
    • Grün für aktiv
    • Rot für inaktiv
    • Gelb für Aufmerksamkeit erforderlich
    • Lila für keine Aktivität

Termin-Helfer

  • getTodayDate() gibt das heutige Datum in der richtigen Zeitzone zurück
  • getDateXDaysAgo() gibt das Datum vor X Tagen zurück

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.

Schritt 1: Erstellen Sie das Google Sheet

Beginnen Sie damit, das Ausgabeziel festzulegen.

  1. Zu Google Sheets gehen
  2. Klicken Sie auf "Leer", um ein neues Arbeitsblatt zu erstellen.
  3. Please give it a name like Goal Monitor
  4. Der Teil in der Mitte ist Ihre Blatt-ID
  5. Fügen Sie die ID in Ihr Skript ein, wo es heißt const SHEET_ID = '...'.

Schritt 2: Öffnen Sie das Google Ads Scripts Panel

Sie werden dieses Skript innerhalb Ihres MCC-Kontos einsetzen.

  1. Melden Sie sich bei Ihrem Google Ads MCC-Konto an.
  2. Klicken Sie in der oberen Navigation auf "Tools und Einstellungen".
  3. Under "Bulk Actions," select "Scripts."
  4. Klicken Sie auf das Pluszeichen (+), um ein neues Skript hinzuzufügen
  5. Fügen Sie das gesamte Skript genau so, wie es geschrieben wurde, in den Code-Editor ein

Schritt 3: Autorisierung des Skripts

Wenn Sie das Skript zum ersten Mal verwenden, müssen Sie es autorisieren.

  1. Klicken Sie oben rechts auf "Autorisieren".
  2. Wählen Sie Ihr Google-Konto
  3. Genehmigen Sie alle beantragten Genehmigungen

Sie müssen diesen Schritt abschließen, sonst wird das Skript nicht ausgeführt.

Schritt 4: Einstellen der Skriptkonfiguration

Überprüfen und ändern Sie innerhalb des Skripts Folgendes:

  • SHEET_ID: Fügen Sie die kopierte Blatt-ID ein.
  • LOOKBACK_DAYS: Bei Bedarf ändern (Standard ist 60)
  • AUSGENOMMENE_KONTEN_IDS: Fügen Sie alle Konten hinzu, die Sie nicht gescannt haben möchten.
  • EMPFÄNGER_E-MAILS: Fügen Sie die E-Mail-Adresse(n) hinzu, die Warnberichte erhalten sollen.

Den Rest des Skripts können Sie so belassen, wie er ist.

Schritt 5: Führen Sie einen manuellen Test durch

Führen Sie es einmal manuell aus, um sicherzustellen, dass alles funktioniert.

  1. Klicken Sie oben in der Navigation auf "Ausführen".
  2. Warten Sie, bis die Ausführung abgeschlossen ist.
  3. Öffnen Sie das verbundene Google Sheet.
  4. Prüfen Sie das:
    • Kopfzeilen wurden erstellt
    • Die Daten wurden für jedes aktive Konto geschrieben.
    • Status und Farben werden in Spalte E korrekt angewendet.

Schritt 6: Planen Sie das Skript (optional)

Um dies zu automatisieren, legen Sie einen wiederkehrenden Zeitplan fest.

  1. Klicken Sie im Skript-Editor auf "Zeitplan erstellen".
  2. Wählen Sie eine Häufigkeit (täglich wird empfohlen)
  3. Legen Sie die Startzeit fest (ideal ist der frühe Morgen)
  4. Speichern und schließen

Das Skript wird automatisch ausgeführt und alarmiert Sie nur, wenn etwas nicht stimmt.

Schritt 7: Überprüfung der Warnungen

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.

Zusammenfassung

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.

Kontakt

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.

Kontakt zu Bright Vessel

Erhalten Sie Ihr kostenloses SEO-Audit

Kostenloses SEO-Audit-Formular

"*" kennzeichnet Pflichtfelder

Dieses Feld dient der Validierung und sollte unverändert bleiben.
Inhalt
Gefällt Ihnen dieser Artikel?
Teilen Sie es in den sozialen Medien!
Erhalten Sie Ihr kostenloses SEO-Audit

Kostenloses SEO-Audit-Formular

"*" kennzeichnet Pflichtfelder

Dieses Feld dient der Validierung und sollte unverändert bleiben.
Erhalten Sie Ihr kostenloses SEO-Audit

Kostenloses SEO-Audit-Formular

"*" kennzeichnet Pflichtfelder

Dieses Feld dient der Validierung und sollte unverändert bleiben.
Hat Ihnen dieser Artikel gefallen?
Teilen Sie es in den sozialen Medien!

Sehen Sie sich einen anderen Blogbeitrag an!

Zurück zu allen Blogbeiträgen

Lassen Sie uns zusammenarbeiten!

© 2024 Bright Vessel. Alle Rechte vorbehalten.
KreuzMenüChevron-Downpfeil-links