

Este tutorial documenta un script que audita la actividad de los objetivos de conversión en todas las cuentas de tu MCC. Guarda los resultados en una Hoja de Cálculo de Google, etiqueta el estado de cada objetivo, codifica el estado con colores y envía un resumen por correo electrónico solo cuando se detecta un problema.
No hay herramientas innecesarias ni paneles de terceros, solo control puro y visibilidad completa.
Este script audita todas las cuentas de Google Ads de tu MCC y evalúa el estado de cada objetivo de conversión durante un periodo retrospectivo definido. En lugar de adivinar qué objetivos están activos o inactivos, este sistema te ofrece una visión general en tiempo real en una Hoja de Cálculo de Google y solo te avisa cuando algo requiere tu atención.
Habrá dos notificaciones por correo electrónico: una para las cuentas que necesitan atención y la otra para todas las cuentas en buen estado.
Ejemplo:
Mensajes:
Lo entiendo, tu guión necesita dos salidas de correo electrónico distintas :
✅ Correo electrónico “Todo bien” (si No hay problemas se encuentran)
⚠️ Correo electrónico “Requiere atención” (si cualquier Los objetivos están inactivos, faltan o tienen un bajo rendimiento)
Así es exactamente como deberían verse ambas versiones, usando los datos de muestra y la lógica actual:
Mensaje #1
Todos los objetivos de conversión monitoreados informan la actividad de los últimos 60 días.
No se encontraron problemas en ninguna cuenta.
Ver el informe completo:
https://docs.google.com/spreadsheets/d/yoursheetid
Mensaje #2
Es posible que sea necesario revisar los siguientes objetivos de conversión (por ejemplo, no hay conversiones recientes o están inactivos):
Bright Widgets Inc (123-456-789) - Envío de formulario de contacto (Requiere atención)
Acme Corp (987-654-321) - Programar llamada (Inactivo)
Acme Corp (987-654-321) - Prueba gratuita (Requiere atención)
Rocket Leads (456-789-123) - (configurado, sin actividad) (Sin conversiones recientes)
Grupo de Prueba Beta (321-654-987) - (no configurado) (Inactivo)
Zebra Analytics (999-111-222): Descarga del informe técnico (Requiere atención)
Ver el informe completo:
https://docs.google.com/spreadsheets/d/yoursheetid
Antes de implementar el script, asegúrese de que su entorno esté configurado correctamente. Este script está diseñado para ejecutarse en un contexto de MCC de Google Ads para escribir datos y enviar alertas.
Este es el script completo y sin editar. Todos los comentarios, el formato y la lógica son exactamente como se escribieron originalmente. No lo modifiques si planeas seguir el desglose más adelante en este tutorial.
// ========== 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'); }
Esta guía muestra cómo configurar el verificador de estado de los objetivos de conversión para tu cuenta de MCC de Google Ads. Sigue cada paso para poner en marcha el sistema, escribir en Hojas de Cálculo de Google y enviar alertas cuando algo falle.
Comience configurando el destino de salida.
Implementarás este script dentro de tu cuenta MCC.
La primera vez que utilice el script, deberá autorizarlo.
Debe completar este paso o el script no podrá ejecutarse.
Dentro del script, revise y modifique lo siguiente:
Puedes dejar el resto del guión exactamente como está.
Ejecútelo una vez manualmente para asegurarse de que todo funcione.
Para que esto sea automático, configúrelo para que se ejecute según una programación recurrente.
El script se ejecutará automáticamente y sólo te avisará cuando algo ande mal.
Al ejecutarse el script, se comprueban todos los objetivos de conversión. Si alguno está inactivo o no se activa, recibirás un correo electrónico.
Este script no es solo un volcado de datos. Es un sistema de vigilancia para cada objetivo de conversión en todo tu MCC de Google Ads. Recibes alertas cuando algo falla, se detiene o deja de rastrearse silenciosamente. Cuando todo está bien, recibes silencio.
Revisa cada cuenta que administras, marca los objetivos inactivos o de bajo rendimiento y te envía un informe filtrado y preciso directamente a tu bandeja de entrada. Google Sheet te ofrece una vista en tiempo real del estado de los objetivos por cuenta, nombre del objetivo y volumen de conversión, con indicaciones visuales integradas.
No estás buscando en las interfaces. No estás esperando a fin de mes para darte cuenta de que has estado a ciegas. Tienes el control antes de que se convierta en un problema.
Consulta publicaciones similares:
Consulta publicaciones similares:
Si Si administra varias cuentas, no se pierda nuestra guía sobre Seguimiento de problemas con GA4 en numerosas propiedades o exportador Términos de búsqueda reales de alto rendimiento con un script liviano para refinar su segmentación.
¿Cansado de dudar sobre el funcionamiento de tu sistema de seguimiento? ¿Quieres un equipo que cree sistemas en lugar de solo informes?
Bright Vessel no solo gestiona Google Ads; diseñamos la visibilidad del rendimiento a escala. Ya sea que necesite ayuda para implementar este script, integrarlo en una plataforma de automatización más amplia o crear una capa de análisis personalizada que le proporcione información, estamos listos.
Hable con el equipo que construye lo que otras agencias falsifican.

"*" indica campos obligatorios

"*" indica campos obligatorios

"*" indica campos obligatorios