Ce script Adwords s’adresse aux gestionnaires de compte qui gèrent de nombreux comptes via leur centre multi-comptes MCC.

Je l’ai écrit pour un besoin précis : envoyer tous les mois à certains clients un email avec leur dépense du mois passé. Même si je fais un reporting Adwords mensuel (avec SunnyReports), je ne l’envoie parfois pas dès les premiers jours du mois. Certains clients ayant besoin de leurs dépenses rapidement, ce script leur envoie le budget Adwords dépensé dès le 1er de chaque mois.

Le code

// Fonction pour créer et lister les comptes clients à parser
function compte(nom, id, email) {
  this.id = id;
  this.email = email;
  this.nom = nom;
}

// Tableau clients
var comptes = new Array(3);
comptes[0] = new compte("Name0", "XXX-XXX-XXXX", "client1@monclient.com");
comptes[1] = new compte("Name1", "YYY-YYY-YYYY", "client2@monclient2.com,client3@monclient2.com");
comptes[2] = new compte("Name2", "ZZZ-ZZZ-ZZZZ", "client@clientXX.com");

function main() {
  for (var i = 0; i < comptes.length; i++) {
    var currentAccountId = "'" + comptes[i].id + "'";
    var childAccounts = MccApp.accounts().withIds([currentAccountId]).get();
    var childAccount = childAccounts.next();

    MccApp.select(childAccount);

    var currentAccount = AdWordsApp.currentAccount();
    var stats = currentAccount.getStatsFor('LAST_MONTH');

    Logger.log(stats.getCost());

    var message = "Bonjour,<br /><br />";
    message += "Le budget dépensé le mois dernier est de : " + stats.getCost() + "€<br /><br />";
    message += "Bonne journée,<br />Bien cordialement,<br /><br />Bastien";

    MailApp.sendEmail({
      to: comptes[i].email,
      subject: "Campagne Adwords : budget dépensé",
      htmlBody: message,
      name: 'Bastien [jabiroo]'
    });
  }
}

Ce script permet d’automatiser une tâche qui ne présente aucune valeur ajoutée en soi, mais qui est bien utile pour les clients.

Astuce

Si vous utilisez l’objet Report dans vos scripts, testez vos requêtes AWQL avec AWQL.me, une console AWQL gratuite avec autocomplétion et aide en ligne. Vous gagnerez du temps pour débugger vos requêtes.

var spreadsheet = SpreadsheetApp.create("Report output");
var report = AdWordsApp.report(
  "SELECT Clicks, Impressions, AverageCpc, HourOfDay " +
  "FROM ACCOUNT_PERFORMANCE_REPORT " +
  "DURING LAST_MONTH"
);
report.exportToSheet(spreadsheet.getActiveSheet());
Logger.log("Report available at " + spreadsheet.getUrl());