Comment mieux gérer ses budgets journaliers - Ad's up
Fermer

Aidez-nous à préparer notre rendez-vous

    Votre nom*
    Votre prénom
    Votre adresse email*
    Votre numéro de téléphone
    Votre site internet
    Votre société*
    Projet, leviers à développer, ambitions ,objectifs, historique

    Les données saisies ci-dessus seront traitées par Ad’s up Consulting aux fins d’analyser votre demande et d’y répondre. Les champs marqués d’un * sont obligatoires. Vous disposez d’un droit d’accès, de rectification, d’effacement, d’opposition, consultez notre Politique de confidentialité ici pour en savoir plus.

    Ce site est protégé par reCAPTCHA et les Règles de confidentialité (https://policies.google.com/privacy) et les Conditions d'utilisation (https://policies.google.com/terms) de Google s'appliquent.

    Fermer Menu
    ×
    Home / Publications / SEA / Google Ads

    Comment mieux gérer ses budgets journaliers

    En savoir plus sur notre expertise Agence Google Ads 22/11/2016 4 min. de lecture Jordan

    Aujourd’hui Ad’s up vous donne une petite astuce pour mieux gérer ses budgets AdWords grâce à un script très pratique ! Le script en question permet d’être averti directement par mail lorsque 85% du budget journalier est atteint. 85% étant le paramètre par défaut mais vous pouvez l’ajuster à votre convenance. En quoi est-ce utile ?

    Cela permet, par exemple, d’être très réactif lorsqu’une campagne rentable atteint la limite du budget alloué, vous pourrez ainsi ajuster le budget de votre campagne à la hausse et ne pas manquer de ventes potentielles.

    Les étapes d’implémentation

    1/ Pour mettre en place ce script rendez-vous dans l’onglet « opération groupées »

    2/ puis Script

    3/ Cliquez sur le bouton rouge « +SCRIPT »

    4/ Collez le script dans l’espace prévu à cet effet puis remplacez les parties en rouge par l’adresse mail de destination des mails d’alertes ainsi que le nom du client ou de l’entreprise

    5/ Cliquez sur le bouton « Autoriser maintenant » en haut de la fenêtre du script

    6/ Entrez le nom du script

    Script mail budget adwords

    7/ Enregistrez

    8/ Cliquez sur « Créer un calendrier » au niveau du nouveau script

    9/ Définissez la fréquence sur « Toutes les heures »

    fréquence-script

    10/ Et voilà, c’est terminé. Fini les problèmes de budgets !

    /****************************
    
    // Début du script
    var thresholdPercentage = <span style="color: #ff0000;">0.85</span> // Définissez ici le seuil de dépenses qui déclenche l'envoi d'un email
    var toEmail = '<span style="color: #ff0000;">mcc@ads-up.fr</span>'; // Indiquez l'adresse mail sur laquelle vous souhaitez recevoir les alertes
    var clientName = '<span style="color: #ff0000;">Nom du client/span>'; // Indiquez le nom du client afin que le titre du mail soit personnalisé
    function getTodaysSpend(campaign)
    {
    var stats = campaign.getStatsFor('TODAY');
    return stats.getCost();
    }
    function getTodaysStats(campaign)
    {
    var stats = campaign.getStatsFor('TODAY');
    return stats;
    }
    function main()
    {
    var account = AdWordsApp.currentAccount();
    var subject = 'Les campagnes du compte '+account.getCustomerId()+' ('+clientName+') ont atteint' + (thresholdPercentage * 100) + '% de leur budget quotidien'; // Personnalisez l'objet du mail
    var outMatrix = [];
    outMatrix.push(['Account', 'Campaign', 'Daily Budget', 'Spend so far today', 'Exhausted %', 'Impressions', 'Clicks', 'Converted Clicks', 'CPC', 'CPA' ]);
    var externalCID = account.getCustomerId();
    var campaignIterator = AdWordsApp.campaigns().get();
    var shoppingCampaignIterator = AdWordsApp.shoppingCampaigns().get();
    while (shoppingCampaignIterator.hasNext())
    {
    var campaign = shoppingCampaignIterator.next();
    var currBudget = campaign.getBudget().getAmount();
    var campaignName = campaign.getName();
    var todaysStats = getTodaysStats(campaign);
    var todaysSpend = todaysStats.getCost();
    var todaysImpressions = todaysStats.getImpressions();
    var todaysClicks = todaysStats.getClicks();
    var todaysConvertedClicks = todaysStats.getConvertedClicks();
    var todaysCPA = (todaysConvertedClicks != 0) ? (todaysSpend / todaysConvertedClicks).toFixed(2) : 'N/A';
    var todaysCPC = (todaysClicks != 0 ) ? (todaysSpend / todaysClicks).toFixed(2) : 'N/A';
    var exhaustedPercentage = (todaysSpend / currBudget).toFixed(1) + '%';
    var thresholdSpend = thresholdPercentage * currBudget;
    Logger.log('\nCampaign: '+campaign.getName()+'\nTodays Spend: '+todaysSpend+'\nThreshold Spend: '+thresholdSpend);
    if ( todaysSpend >= thresholdSpend )
    {
    outMatrix.push([ externalCID, campaignName, currBudget, todaysSpend, exhaustedPercentage, todaysImpressions, todaysClicks, todaysConvertedClicks, todaysCPC, todaysCPA ]);
    }
    }
    while (campaignIterator.hasNext())
    {
    var campaign = campaignIterator.next();
    var currBudget = campaign.getBudget().getAmount();
    var campaignName = campaign.getName();
    var todaysStats = getTodaysStats(campaign);
    var todaysSpend = todaysStats.getCost();
    var todaysImpressions = todaysStats.getImpressions();
    var todaysClicks = todaysStats.getClicks();
    var todaysConvertedClicks = todaysStats.getConvertedClicks();
    var todaysCPA = (todaysConvertedClicks != 0) ? (todaysSpend / todaysConvertedClicks).toFixed(2) : 'N/A';
    var todaysCPC = (todaysClicks != 0 ) ? (todaysSpend / todaysClicks).toFixed(2) : 'N/A';
    var exhaustedPercentage = (todaysSpend / currBudget * 100).toFixed(1) + '%';
    var thresholdSpend = thresholdPercentage * currBudget;
    if ( todaysSpend >= thresholdSpend )
    {
    outMatrix.push([ externalCID, campaignName, currBudget, todaysSpend, exhaustedPercentage, todaysImpressions, todaysClicks, todaysConvertedClicks, todaysCPC, todaysCPA ]);
    }
    }
    var csvOutput = matrixToCSV(outMatrix);
    var blobOutput = Utilities.newBlob(csvOutput);
    blobOutput.setName('campaign_stats.csv');
    MailApp.sendEmail(toEmail, subject, 'Ceci est un mail automatique.', {
    name: 'Stats Emailer',
    attachments: [blobOutput.getAs(MimeType.CSV)]
    });
    }
    function matrixToCSV(matrix)
    {
    csv = new csvWriter(',', '"');
    csvOutput = csv.arrayToCSV(matrix)
    return csvOutput;
    }
    function csvWriter(del, enc)
    {
    this.del = del || ','; // CSV Delimiter
    this.enc = enc || '"'; // CSV Enclosure
    
    // Convert Object to CSV column
    this.escapeCol = function (col) {
    if(isNaN(col)) {
    // is not boolean or numeric
    if (!col) {
    // is null or undefined
    col = '';
    } else {
    // is string or object
    col = String(col);
    if (col.length > 0) {
    // use regex to test for del, enc, \r or \n
    // if(new RegExp( '[' + this.del + this.enc + '\r\n]' ).test(col)) {
    // escape inline enclosure
    col = col.split( this.enc ).join( this.enc + this.enc );
    // wrap with enclosure
    col = this.enc + col + this.enc;
    }
    }
    }
    return col;
    };
    // Convert an Array of columns into an escaped CSV row
    this.arrayToRow = function (arr) {
    var arr2 = arr.slice(0);
    var i, ii = arr2.length;
    for(i = 0; i < ii; i++) {
    arr2[i] = this.escapeCol(arr2[i]);
    }
    return arr2.join(this.del);
    };
    // Convert a two-dimensional Array into an escaped multi-row CSV
    this.arrayToCSV = function (arr) {
    var arr2 = arr.slice(0);
    var i, ii = arr2.length;
    for(i = 0; i < ii; i++) {
    arr2[i] = this.arrayToRow(arr2[i]);
    }
    return arr2.join("\r\n");
    };
    }
    // Fin du script
    

    Pour toute problématique concernant la mise en place de scripts ou tout autre sujet lié au SEA n’hésitez pas à contacter Ad’s up !

    À propos de l'auteur

    Jordan
    Consultant SEA
    Passionné par la publicité en ligne et son évolution, je suis spécialiste agréé sur Google AdWords et en veille permanente sur l'évolution des différents leviers marketing.