1.6K anunciantes en línea
1.6K anunciantes en línea
Bienvenidos a la Comunidad Oficial de Google AdWords
favorite_border

Personalizando Scripts (II): Agregando nuevas métricas a nuestro informe

Toca el turno de ampliar con unas nuevas métricas el informe que creamos en el capítulo anterior.

 

El artículo al que me refiero lo podemos encontrar en este enlace que os dejo:

https://www.es.advertisercommunity.com/t5/Articulos-de-Usuarios/Personalizando-Scripts-Envio-de-info...

 

Agregando nuevas métricas

 

Como vimos en el script, utilizamos el siguiente código para rescatar los datos de la campaña. En él, hacemos una llamada al método report() de AdWordsApp con una consulta AWQL (AdWords Query Language).

 

  var report = AdWordsApp.report(
      'SELECT CampaignName, Clicks, Impressions, Cost ' +
      'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
      'WHERE  Impressions < 10 ' +
      'DURING LAST_30_DAYS');

 

En la consulta tenemos 4 partes diferenciables: SELECT, FROM, WHERE y DURING.

 

En este ejemplo, vamos a ampliar métricas de la misma tabla que utilizamos por lo que vamos a continuar con la tabla CAMPAIGN_PERFORMANCE_REPORT, tal y como vemos en el ejemplo, por lo que dejaremos en mismo FROM, pero agregaremos más campos en el SELECT.

 

¿Cómo sabemos que más métricas se pueden consultar?

 

Podemos consultarla en la página de Developers de Google para cada uno de los reportes.

 

En el caso del ejemplo debemos consultar Campaign Performance Report. Para adelantar el trabajo adjunto el link específico para dicha tabla:

https://developers.google.com/adwords/api/docs/appendix/reports/campaign-performance-report

 

En ella vemos el campo, una pequeña descripción de que nos devuelve y como nos lo devuelve.

 

En el caso de querer agregar, por ejemplo, CTR, Conversiones, Coste por Conversión y Posición Media deberemos agregar a nuestro SELECT los siguientes campos: Ctr, Conversions, CostPerAllConversion y AveragePosition.

 

Por último, vamos a filtrar por otro campo, por ejemplo, queremos listar las campañas que al menos tenga una conversión en los últimos 14 días, por lo tanto deberemos cambiar el campo en nuestro WHERE por Conversions > 0  y nuestro DURING por LAST_14_DAYS.

 

Para encontrar más información sobre la formación de una consulta podemos entrar en: https://developers.google.com/adwords/api/docs/guides/awql

 

Una vez realizadas estas modificaciones tendremos el siguiente código:

 

  var report = AdWordsApp.report(
      'SELECT CampaignName, Clicks, Impressions, Ctr, AveragePosition, Conversions, CostPerAllConversion, Cost ' +
      'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
      'WHERE  Conversions > 0 ' +
      'DURING LAST_14_DAYS');

 

Montando los datos en la tabla

 

Una vez la modificada la consulta, solamente nos queda modificar nuestra tabla HTML para mostrar los datos nuevos.

 

Por lo tanto, agregamos las nuevas columnas en la cabecera como vemos a continuación.

 

var email = '<html><body>Resumen de últimos 14 días';
    email += '<table border="1" width="95%" style="border-collapse:collapse;">';
    email += '<tr>';
    email += '<td align="left"><b>Campaña</b></td>';
    email += '<td align="center"><b>Clics</b></td>';
    email += '<td align="center"><b>Impresiones</b></td>';
    email += '<td align="center"><b>CTR</b></td>';
    email += '<td align="center"><b>P. Media</b></td>';
    email += '<td align="center"><b>Conversiones</b></td>';
    email += '<td align="center"><b>Coste/Conv</b></td>';
    email += '<td align="center"><b>Coste</b></td>';
    email += '</tr>';      // AQUÍ VAMOS A COLOCAR LOS DATOS DE CADA FILA //      email += '</table>';    email += '</body></html>';  

  

Y agregamos las nuevas columnas en el bucle para ir imprimiendo los valores de cada fila. Volvemos a coger el ejemplo anterior y completamos de la siguiente manera.

 

 

while (rows.hasNext()) {
    var row = rows.next();
    email += '<tr>';
    email += '<td align="left">'+ row['CampaignName'] +'</td>';
    email += '<td align="center">'+ row['Clicks'] +'</td>';
    email += '<td align="center">'+ row['Impressions'] +'</td>';
    email += '<td align="center">'+ row['Ctr'] +'</td>';
    email += '<td align="center">'+ row['AveragePosition'] +'</td>';
    email += '<td align="center">'+ row['Conversions'] +'</td>';
    email += '<td align="center">'+ row['CostPerAllConversion'] +'</td>';
    email += '<td align="center">'+ row['Cost'] +'</td>';
    email += '</tr>';
}

 

 

El resultado

 

Con estos cambios, ya tendríamos ampliado nuestro anterior script con nuevas métricas para recibir en el cuerpo de email que deseemos.

 

Como en el anterior artículo, vamos a juntar el script completo.

 

function main() {
   var report = AdWordsApp.report(                 'SELECT CampaignName, Clicks, Impressions, Ctr, AveragePosition, Conversions, CostPerAllConversion, Cost ' +       'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +       'WHERE  Conversions > 0 ' +       'DURING LAST_14_DAYS');
  var rows = report.rows();    
var email = '<html><body>Resumen de últimos 14 días';     email += '<table border="1" width="95%" style="border-collapse:collapse;">';     email += '<tr>';     email += '<td align="left"><b>Campaña</b></td>';     email += '<td align="center"><b>Clics</b></td>';     email += '<td align="center"><b>Impresiones</b></td>';      email += '<td align="center"><b>CTR</b></td>';     email += '<td align="center"><b>P. Media</b></td>';     email += '<td align="center"><b>Conversiones</b></td>';     email += '<td align="center"><b>Coste/Conv</b></td>';     email += '<td align="center"><b>Coste</b></td>';     email += '</tr>';    
while (rows.hasNext()) {     var row = rows.next();     email += '<tr>';     email += '<td align="left">'+ row['CampaignName'] +'</td>';     email += '<td align="center">'+ row['Clicks'] +'</td>';     email += '<td align="center">'+ row['Impressions'] +'</td>';     email += '<td align="center">'+ row['Ctr'] +'</td>';      email += '<td align="center">'+ row['AveragePosition'] +'</td>';     email += '<td align="center">'+ row['Conversions'] +'</td>';     email += '<td align="center">'+ row['CostPerAllConversion'] +'</td>';     email += '<td align="center">'+ row['Cost'] +'</td>';     email += '</tr>';   }
   email += '</table>';    email += '</body></html>';
   var recipient = 'email@midominio.com';   var subject = 'Informe AdWords';   var body = email;   var options = { htmlBody : email };
   MailApp.sendEmail(recipient, subject, body, options); }

 

En el próximo artículo comentaremos como agregar información de otras tablas, por ejemplo, grupos de anuncios, a nuestro informe automático enviado por email.

 

Espero que os haya resultado útil.

Un saludo.

Acerca de Dave Medina

Ingeniero Informático y profesional en Marketing Digital. Centrado en dar soluciones y automatizar todo el proceso comercial, desde la captación de clientes potenciales a la venta final, con el claro objetivo de aumentar el volumen de negocio sin descuidar la rentabilidad.