ROAS – Return On Ad Spent : Définition, Calcul et Limites

Faire des campagnes marketing, c’est bien. Savoir si elles sont rentables, c’est mieux ! C’est justement là qu’intervient le ROAS (ou RoaS), acronyme de Return On Ad Spent. Il s’agit d’un indicateur marketing qui vous aide à évaluer l’efficacité de vos campagnes publicitaires (Facebook Ads, Google Ads, et autres). En lisant cet article, vous allez non seulement découvrir la définition de ROAS, mais aussi comment calculer la rentabilité d’une campagne marketing.

ROAS - Savoir calculer le Return On Ad Spent

Découvrez ce qui se cache derrière l’indicateur ROAS

Quelle est la définition de ROAS ?

ROAS est l’acronyme de Return On Ad Spent. En marketing, cela désigne la mesure du retour sur investissement pour une dépense publicitaire. Autrement dit, le ROAS est un indicateur qui sert à déterminer si le canal marketing utilisé est profitable ou non. Il est généralement exprimé en termes de pourcentage ou de chiffre d’affaires.

Comment dit-on Return On Ad Spent en français ?

Le terme Return On Ad Spent peut être traduit en français par “retour d’investissement sur les dépenses en publicité”. Comme bien souvent avec les acronymes en marketing, c’est l’appellation anglophone qui est la plus utilisée.

ROAS : un peu d’histoire marketing

Réussir à évaluer précisément la rentabilité d’une campagne marketing (potentielle ou déjà effectuée) est tout à fait légitime. Pendant trop longtemps, dans la publicité média et à l’exclusion du Marketing Direct, les campagnes marketing furent mesurées de façon intuitive, si bien que le calcul de leur rentabilité était plutôt hasardeux. Depuis l’apparition du marketing digital en 1994 (via les bannières publicitaires sur les sites web), l’évaluation de la rentabilité des campagnes publicitaires a été facilitée par les outils numériques.

La mesurabilité des campagnes publicitaires est peu à peu devenue une norme : le terme de ROAS s’est alors popularisé. Aujourd’hui, le calcul du Return On Ad Spent est utilisé aussi bien par les annonceurs en interne que par les prestataires marketing. Le but est de mesurer la rentabilité des campagnes publicitaires et/ou de montrer l’efficacité d’un outil de marketing promotionnel. Plus globalement, le ROAS s’inscrit dans une démarche de marketing data-driven.

Comment calculer le ROAS ?

La plupart du temps, la formule du calcul du ROAS est la suivante :

ROAS = CA généré par la campagne marketing / Dépenses engagées dans cette même campagne

Par exemple, si vous avez dépensé 20 000 euros dans une campagne publicitaire sur Facebook ayant généré 40 000 euros de chiffre d’affaires, votre ROAS est de 2 euros (1 euro investi dans ce canal vous en rapporte 2). Exprimé en pourcentage, votre ROAS s’élève à 200 % (vous avez fait x2).

Ce ROAS est-il satisfaisant pour autant ? Votre campagne a-t-elle vraiment été rentable ? Pour savoir si votre ROAS est bon, il faut également prendre en compte la marge réalisée sur votre chiffre d’affaires. En effet, un même ROAS peut ne pas avoir la même signification selon la marge réalisée par l’entreprise en question. Car plus votre marge est importante, moins votre ROAS a besoin d’être élevé (et vice versa). C’est pourquoi le calcul du ROAS d’une campagne publicitaire est indissociable de celui du ROI.

ROAS ou ROI ?

À la différence du ROAS, qui vous permet de savoir combien vous rapporte 1 euro investi dans une campagne publicitaire, le ROI (Return On Investment) est l’indicateur évaluant le bénéfice ou la marge réalisé pour cette même campagne. Le ROI se calcule schématiquement de cette façon :

ROI = Retour / Investissement = Marge générée par la campagne marketing / Total des Dépenses engagées 

Si le ROI est positif, la campagne marketing a été rentable. S‘il est négatif, la campagne n’a pas été rentable. Pour évaluer précisément la rentabilité d’une campagne publicitaire, vous avez tout intérêt à faire les deux calculs. Car si votre ROAS est élevé, mais que votre ROI est négatif, cela signifie que votre campagne n’a pas été rentable : vos dépenses engagées sont plus élevées que la marge finalement générée. Les indicateurs ROAS et ROI sont donc complémentaires.

Les limites du Return On Ad Spent

Comme nous l’avons vu en comparant simplement ROI et ROAS, le Return On Ad Spent n’est pas à lui seul un indicateur réellement efficace pour mesurer le retour sur investissement (qui induit une notion de rentabilité). En fait, voyez plutôt le ROAS comme un indicateur d’impact sur l’activité d’une campagne marketing.

L’intérêt du ROAS est sa facilité de calcul. Il est un indicateur instantané, aisément configurable dans les outils de type Analytics, Suivi de Performances.

Le calcul du ROAS a pour principale limite de ne pas tenir compte de la marge commerciale réalisée, ni des effets de la Customer Lifetime Value (la somme des gains nets que génèrent vos clients).

Qu’est-ce qu’un bon ROAS malgré tout ? Il n’y a pas de réponse unanime, tant les variables peuvent être nombreuses selon les campagnes et les secteurs d’activité considérés. Si on ne tient pas compte des variables annexes, un bon ROAS doit idéalement avoir un ratio de 4:1 minimum (c’est-à-dire que 1 euro dépensé dans la campagne doit générer au moins 4 euros de chiffre d’affaires). 

Bien évidemment, tout dépend de vos taux de marge, de vos coûts d’exploitation et de la part de votre activité consacrée à l’investissement publicitaire.

Pour exemple, la marge brute des clients CustUp oscille de 20 à 80%. Les attentes en matière de ROAS sont donc structurellement différentes.

Pour résumer, le ROAS est un indicateur utile pour évaluer l’efficacité d’une campagne marketing, mais il est peu significatif à lui tout seul. Il faut aussi prendre en compte d’autres éléments, tels que la rentabilité nette, le secteur d’activité, et plus globalement le business model de l’entreprise en question. Quoi qu’il en soit, la généralisation du ROAS témoigne du fait que le marketing a aujourd’hui une vocation ROIste. Si vous ne le calculez pas, comment faites-vous pour savoir si vos canaux marketing sont véritablement efficaces ?

Partager :
Créateur de CustUp, Antoine Coubray est un grand habitué des acronymes et des indicateurs utilisés en marketing client. Dans cette

Créateur de CustUp, Antoine Coubray est un grand habitué des acronymes et des indicateurs utilisés en marketing client. Dans cette série d’articles, il vous aide à les comprendre afin que vous puissiez les utiliser au mieux dans votre propre business.

[custup_nom_silo]
[custup_form_optinmonster]
[custup_form_optinmonster]
[custup_form_blog_inline_optinmonster]
<script type="text/javascript"> jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#dj_envoyer_inscription-azWs4', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var email = jQuery('#dj_form_optinmonster-azWs4 input[name="email"]').val(); var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-azWs4 .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-azWs4 .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-azWs4 .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-azWs4 .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-azWs4 .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-azWs4 .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-azWs4 .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-azWs4 .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-azWs4 .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Blog-Inline", "eventAction": "clic", "eventLabel": "https://www.custup.com/roas-definition-calcul-limites/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-azWs4" class="form_inline"> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-7 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control form-inline" type="text" id="dj_email" name="email" placeholder="E-mail" /> </div> <div class="col-md-5 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-azWs4" class="dj_envoyer_inscription" type="submit">Je m'abonne !</button> </div> </div>
[le Nom du Silo]
[le Nom du Silo]
[custup_icon]
<img src="https://www.custup.com/wp-content/themes/custup/public/img/icon.png" alt="Merci pour votre visite" class="skip-lazy" width="28" height="27"/>
[custup_form_exit]
<script type="text/javascript"> jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; var email = ""; jQuery(document).delegate( '#emailb3h7p', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-exit-b3h7p', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); data.append( "exit", 1 ); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-exit-b3h7p .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-b3h7p .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-exit-b3h7p .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-exit-b3h7p .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-b3h7p .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-exit-b3h7p .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-exit-b3h7p .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-exit-b3h7p .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-exit-b3h7p .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Exit", "eventAction": "clic", "eventLabel": "https://www.custup.com/roas-definition-calcul-limites/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-exit-b3h7p" class="form_inline popin-exit"> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control" type="text" id="emailb3h7p" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-exit-b3h7p" class="dj_envoyer_inscription" type="submit">S'inscrire !</button> </div> </div>
[custup_scroll_nom_silo]
[custup_form_silo_scroll_optinmonster]
<script type="text/javascript"> var email = ""; jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#emailM1LFp', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-M1LFp', 'click', function(e){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); data.append( "id_article", 21722); var recaptcha_response = ""; grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_optinmonster-M1LFp .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-M1LFp .panel-primary").css('display', 'block'); jQuery("#dj_form_optinmonster-M1LFp .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_optinmonster-M1LFp .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-M1LFp .panel-danger span").html(result.alerte); jQuery("#dj_form_optinmonster-M1LFp .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_optinmonster-M1LFp .panel").css('display', 'none'); jQuery("#dj_form_optinmonster-M1LFp .panel-success span").html(result.message); jQuery("#dj_form_optinmonster-M1LFp .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Silo-XXX-Scroll", "eventAction": "clic", "eventLabel": "https://www.custup.com/roas-definition-calcul-limites/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_optinmonster-M1LFp"> <form> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group"> <input class="form-control" type="text" id="emailM1LFp" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group envoyer text-center "> <button id="dj_envoyer_inscription-M1LFp" class="dj_envoyer_inscription" value="xx" type="submit">S'inscrire</button> </div> </form> </div>
[custup_count_abonnes_liste_mailchimp]
3911
[custup_form_horizontal_optinmonster]
<script type="text/javascript"> var email = ""; jQuery(document).ready(function( $ ) { var dj_envoyer_inscription = true; jQuery(document).delegate( '#emailpx3eG', 'change', function(){ email = jQuery(this).val(); }); jQuery(document).delegate( '#dj_envoyer_inscription-px3eG', 'click', function(){ if(dj_envoyer_inscription){ dj_envoyer_inscription = false; var data = new FormData(); data.append( "action", "inscription_mailchimp"); data.append( "email", email); grecaptcha.ready(function () { grecaptcha.execute('6Lc5kLoUAAAAAD3ltaKWkySZa3ss4UzqzFYmCBxn', { action: 'inscription_mailchimp' }).then(function (token) { data.append( "recaptcha_response", token); jQuery("#dj_form_horizontal_optinmonster-px3eG .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-px3eG .panel-primary").css('display', 'block'); jQuery("#dj_form_horizontal_optinmonster-px3eG .panel-primary span").html( site.message_030 ); $.ajax({ url: site.ajax_url, type: 'post', dataType: 'JSON', processData: false, contentType: false, cache: false, data: data, success: function(result) { if(result.alerte){ jQuery("#dj_form_horizontal_optinmonster-px3eG .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-px3eG .panel-danger span").html(result.alerte); jQuery("#dj_form_horizontal_optinmonster-px3eG .panel-danger").css('display', 'block'); }else if(result.message){ jQuery("#dj_form_horizontal_optinmonster-px3eG .panel").css('display', 'none'); jQuery("#dj_form_horizontal_optinmonster-px3eG .panel-success span").html(result.message); jQuery("#dj_form_horizontal_optinmonster-px3eG .panel-success").css('display', 'block'); } if(result.status){ dataLayer.push({ "event": "gaEvent", "eventCategory": "Blog-Floating-Bar", "eventAction": "clic", "eventLabel": "https://www.custup.com/roas-definition-calcul-limites/", "eventValue": "", "eventNoninteraction": "true" }); } dj_envoyer_inscription = true; }, error: function(errorThrown){ dj_envoyer_inscription = true; } }); }); }); } return false; }); }); </script> <div id="dj_form_horizontal_optinmonster-px3eG" class="dj_form_horizontal_optinmonster"> <input type="hidden" name="recaptcha_response" value=""> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group dj_email_content"> <input class="form-control" type="text" id="emailpx3eG" name="email" placeholder="E-mail" /> </div> <div class="col-md-12 col-sm-12 col-xs-12 no-padding form-group text-center dj_email_envoyer"> <button id="dj_envoyer_inscription-px3eG" class="dj_envoyer_inscription" type="submit">Valider</button> </div> <div class="form-group col-md-12 col-sm-12 col-xs-12 no-padding m-5"> <div class="panel panel-primary m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-success m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> <div class="panel panel-danger m-0" style="display:none;"> <div class="panel-heading"> <span class="m-5"></span> </div> </div> </div> </div>