[Script] Détecter le trafic dirigé vers des pages 404
Comme vous le savez sûrement, vous avez la possibilité dans l’interface AdWords de mettre en place différents scripts pour vous aider dans la gestion quotidienne de vos campagnes.
Le script que l’on va vous présenter aujourd’hui est particulièrement intéressant si vous êtes e-commerçants.
Selon l’étendue de votre catalogue produits, vous êtes rapidement amené à gérer des annonces qui redirigent vers des milliers de pages de destinations différentes. Dans ce cas, il est difficile d’avoir un compte 100% clean, et il y a fort à parier que vous redirigiez certaines annonces vers des pages qui n’existent plus ou qui ne sont plus fonctionnelles. Si le problème n’est pas détecté et réglé rapidement, cela peut rapidement engendrer des coûts importants.
Vous trouverez ci-dessous un script qui permet de vous remonter l’information des mots-clés et des annonces qui redirigent vers des pages 404. Sur la ligne « var BAD_CODES = [404]; » vous pouvez compléter avec d’autres codes HTTP. Il peut être intéressant d’y ajouter les erreurs 500, 301 ou 302 par exemple.
/**************************** * Script permettant de détecter les URL 404 d'un compte * Crée par: Russ Savage (FreeAdWordsScripts.com) * Adapté par: Guillaume Neyret (ads-up.fr) ****************************/ function main() { // Liste des codes HTTP: http://fr.wikipedia.org/wiki/Liste_des_codes_HTTP var BAD_CODES = [404]; var TO = ['guillaume@ads-up.fr'/*,'adresse_email2@example.com'*/]; var SUBJECT = 'NOM DU CLIENT - SCRIPT URL 404/500 - ' + _getDateString(); var HTTP_OPTIONS = { muteHttpExceptions:true }; var iters = [ //Check des urls au niveau des annonces AdWordsApp.ads() .withCondition("Status = 'ENABLED'") .withCondition("AdGroupStatus = 'ENABLED'") .withCondition("CampaignStatus = 'ENABLED'") .withCondition("Type = 'TEXT_AD'") .get(), //Et au niveau des mots-clés AdWordsApp.keywords() .withCondition("Status = 'ENABLED'") .withCondition("DestinationUrl != ''") .withCondition("AdGroupStatus = 'ENABLED'") .withCondition("CampaignStatus = 'ENABLED'") .get() ]; var already_checked = {}; var bad_entities = []; for(var x in iters) { var iter = iters[x]; while(iter.hasNext()) { var entity = iter.next(); if(entity.getDestinationUrl() == null) { continue; } var url = entity.getDestinationUrl(); if(url.indexOf('{') >= 0) { //Suppression des paramètres de tracking url = url.replace(/{[0-9a-zA-Z]+}/g,''); } if(already_checked[url]) { continue; } var response_code; try { Logger.log("Testing url: "+url); response_code = UrlFetchApp.fetch(url, HTTP_OPTIONS).getResponseCode(); } catch(e) { bad_entities.push({e : entity, code : -1}); } if(BAD_CODES.indexOf(response_code) >= 0) { bad_entities.push({e : entity, code : response_code}); } already_checked[url] = true; } } var column_names = ['Type','CampaignName','AdGroupName','Id','Headline/KeywordText','ResponseCode','DestUrl']; var attachment = column_names.join(",")+"n"; for(var i in bad_entities) { attachment += _formatResults(bad_entities[i],","); } if(bad_entities.length > 0) { var options = { attachments: [Utilities.newBlob(attachment, 'text/csv', 'bad_urls_'+_getDateString()+'.csv')] }; var email_body = "Le script a détecté" + bad_entities.length + " urls qui ne sont plus valides. Voir détails dans le fichier en PJ."; for(var i in TO) { MailApp.sendEmail(TO[i], SUBJECT, email_body, options); } } } function _formatResults(entity,SEP) { var e = entity.e; if(typeof(e['getHeadline']) != "undefined") { return ["Ad", e.getCampaign().getName(), e.getAdGroup().getName(), e.getId(), e.getHeadline(), entity.code, e.getDestinationUrl() ].join(SEP)+"n"; } else { return ["Keyword", e.getCampaign().getName(), e.getAdGroup().getName(), e.getId(), e.getText(), entity.code, e.getDestinationUrl() ].join(SEP)+"n"; } } //Format de la date function _getDateString() { return Utilities.formatDate((new Date()), AdWordsApp.currentAccount().getTimeZone(), "yyyy-MM-dd"); }
Je vous invite à tester et mettre en place ce script sur votre compte Google AdWords. Une fois mis en place, et selon vos paramétrages de planification d’exécution, vous recevrez un email contenant en pièce-jointe le détail des KW et annonces redirigeant vers des pages 404 (ou autres selon vos modifications).
Vous êtes à l’aise avec les scripts ? Consultez le site de Russ Savage (www.freeadwordsscripts.com) vous en découvrirez encore bien d’autres !