{"id":127,"date":"2014-11-20T22:29:52","date_gmt":"2014-11-20T21:29:52","guid":{"rendered":"http:\/\/lalloue.fr\/blog\/?p=127"},"modified":"2014-11-20T22:35:16","modified_gmt":"2014-11-20T21:35:16","slug":"utiliser-ad-mediation-dans-une-applie-windows-phone-8-1","status":"publish","type":"post","link":"http:\/\/lalloue.fr\/blog\/utiliser-ad-mediation-dans-une-applie-windows-phone-8-1\/","title":{"rendered":"Utiliser Ad Mediation dans une applie Windows Phone 8(.1)"},"content":{"rendered":"<p><a href=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/Ad-mediation-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-128\" src=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/Ad-mediation-1-300x108.png\" alt=\"Ad-mediation-1\" width=\"277\" height=\"100\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/Ad-mediation-1-300x108.png 300w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/Ad-mediation-1.png 861w\" sizes=\"(max-width: 277px) 100vw, 277px\" \/><\/a><\/p>\n<p>Quand vous int\u00e9grez de la pub dans votre application celle-ci ne s&#8217;affiche pas forcement \u00e0 chaque ouverture de votre application. La raison peut \u00eatre qu&#8217;il n&#8217;y a pas de pub disponible \u00e0 ce moment l\u00e0, qu&#8217;elle n&#8217;a pas eut le temps de se charger, etc&#8230;<br \/>\nEt qui dit <strong>pub non affich\u00e9e, dit argent en moins.<\/strong><\/p>\n<p>&#8220;Ad Mediation&#8221; a \u00e9t\u00e9 mis en place par Microsoft pour optimiser l&#8217;affichage des publicit\u00e9s de votre application en faisant en sorte de toujours montrer une annonce quoi qu&#8217;il arrive.<br \/>\nLe principe est simple, si l&#8217;annonce n&#8217;est pas disponible on va en chercher une autre aupr\u00e8s d&#8217;un autre fournisseur (comme le sch\u00e9ma ci-dessus).<br \/>\nAvec cette solution on approche des 100% d&#8217;affichage \u00e0 chaque ouverture de votre application, et donc 100% de revenu, autant en profiter dans ce cas \ud83d\ude09<\/p>\n<p>Voici donc comment utiliser cet outils &#8220;Ad Mediation&#8221; :<\/p>\n<p><!--more--><\/p>\n<h3>T\u00e9l\u00e9charger Ad Mediation :<\/h3>\n<p>Tout d&#8217;abord, t\u00e9l\u00e9chargez Ad Mediation disponible sur le site de Microsoft :<br \/>\n<a href=\"https:\/\/visualstudiogallery.msdn.microsoft.com\/401703a0-263e-4949-8f0f-738305d6ef4b\">lien de t\u00e9l\u00e9chargement<\/a><\/p>\n<p>Une fois t\u00e9l\u00e9charg\u00e9, lancer votre projet avec Visual Studio<\/p>\n<p>Pensez \u00e0 supprimer toutes les r\u00e9f\u00e9rences aux fournisseurs d&#8217;annonces d\u00e9j\u00e0 mis en place.<\/p>\n<h3><strong>Ajouter le contr\u00f4le dans votre page :<\/strong><\/h3>\n<p>Ensuite, depuis la &#8220;boite \u00e0 outils&#8221;, le petit onglet en haut \u00e0 droite, s\u00e9lectionnez &#8220;AdMediatorControl&#8221; :<br \/>\n<a href=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/toolbox1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-131\" src=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/toolbox1-255x300.png\" alt=\"toolbox\" width=\"166\" height=\"217\" \/><\/a><br \/>\nPuis glissez le dans la vue &#8220;design&#8221; (et pas dans le code xaml) de l&#8217;\u00e9cran dans lequel vous voulez l\u2019ins\u00e9rer.<br \/>\nLe code XAML va ainsi \u00eatre automatiquement cr\u00e9\u00e9.<br \/>\nPour une application Windows Phone 8.1 XAML pour moi \u00e7a donne \u00e7a :<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;WindowsPhone81:AdMediatorControl\r\n        x:Name=&quot;AdMediator_678g67&quot;\r\n        HorizontalAlignment=&quot;Left&quot;\r\n        Height=&quot;70&quot;\r\n        Id=&quot;AdMediator-Id-FHF67GTY-FFF6-VB78-FH78-FHJ89KUIH3&quot;\r\n        VerticalAlignment=&quot;Top&quot;\r\n        Width=&quot;391&quot;\/&gt;\r\n<\/pre>\n<p><em>(le x:Name et l&#8217;Id sont \u00e9videmment des exemples que j&#8217;ai modifi\u00e9.)<\/em><\/p>\n<h3>Configuration :<\/h3>\n<p>Une fois que vous avez ajout\u00e9 tous les Contr\u00f4les que vous souhaitez, vous \u00eates pr\u00eats \u00e0 les configurer via &#8220;Connected Services&#8221;.<\/p>\n<p>Notez que si vous ajoutez un autre &#8220;AdMediatorControl&#8221; par la suite il vous faudra \u00e0 nouveau reconfigurer les contr\u00f4les via &#8220;Connected Services&#8221;.<\/p>\n<p>Donc&#8230;pour lancer la configuration :<\/p>\n<ul>\n<li>Cliquez droit sur le nom du projet dans l&#8217;explorateur de solution.<\/li>\n<li>Cliquez ensuite sur &#8220;ajouter&#8221;<\/li>\n<li>Puis cliquez sur &#8220;Connected Services&#8221; (services connect\u00e9s en fran\u00e7ais)<\/li>\n<\/ul>\n<p>Par d\u00e9faut, les DLLs de Microsoft Advertising vont \u00eatre ajout\u00e9es mais vous pouvez les supprimer dans l&#8217;\u00e9tape suivante si vous n&#8217;utilisez pas ce service.<\/p>\n<h3>Ajouter et supprimer des fournisseurs d&#8217;annonce<\/h3>\n<p>Pour ajouter ou supprimer un annonceur, cliquez sur &#8220;Select ad networks&#8221;.<br \/>\nvous allez voir une liste de tous les annonceurs disponibles pour votre projet.<br \/>\nPour ma part (projet WP 8.1 XAML), je n&#8217;ai que 3 choix : Microsoft Advertising, adDuplex et Smaato, mais pour les applications silverlight la liste est beaucoup plus longue.<br \/>\nS\u00e9lectionnez donc ceux que vous voulez, puis cliquez sur OK et l&#8217;installation va se lancer (ou la d\u00e9sinstallation).<\/p>\n<p><strong>Note<\/strong> : si vous avez des erreurs \u00e0 ce point, je vous conseille de lire la doc (en anglais) fournie par Microsoft <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/apps\/xaml\/dn864355.aspx\">ici<\/a>.<\/p>\n<p>Maintenant vous devriez voir la liste de vos annonceurs. Notez la colonne &#8220;Required capabilities&#8221;.<br \/>\nCela indique les capacit\u00e9s que vous devez activer sur votre projet dans le fichier &#8220;Package.appxmanifest&#8221; pour que les annonceurs fonctionnent correctement.<\/p>\n<p>Ensuite il va vous falloir configurer chaque annonceur avec les infos demand\u00e9es tel que ci-dessous.<br \/>\nPar exemple, pour Microsoft Advertising, vous trouverez les informations sur\u00a0<a href=\"http:\/\/go.microsoft.com\/fwlink\/p\/?LinkId=518027\">http:\/\/pubcenter.microsoft.com<\/a>.<\/p>\n<p>Pour avoir l&#8217;ensemble des informations n\u00e9cessaires \u00e0 chaque annonceur, je vous invite \u00e0 aller sur ce lien :\u00a0<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/apps\/xaml\/dn864356.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/apps\/xaml\/dn864356.aspx<\/a><\/p>\n<p>Une fois que la fen\u00eatre s&#8217;est ouverte, cliquez sur &#8220;Ad Mediator&#8221;, puis sur la ligne &#8220;Microsoft Advertising&#8221; puis &#8220;configurer&#8221; pour configurer votre annonceur &#8220;Microsoft Advertising par d\u00e9faut.<br \/>\n<a href=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/admediator1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-147\" src=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/admediator1.png\" alt=\"admediator\" width=\"535\" height=\"320\" \/><\/a><\/p>\n<h3>Catcher les erreurs de Ad Networks<\/h3>\n<p>Durant mes tests je me suis rendu compte qu&#8217;un certain nombre de &#8220;unhandled exceptions&#8221; (exceptions non catch\u00e9es) provenaient de Ad Networks.<br \/>\nPour \u00e9viter de faire planter l&#8217;application \u00e0 cause de \u00e7a je vous conseille d&#8217;ajout le code suivant dans votre fichier &#8220;App.xaml.cs&#8221;.<\/p>\n<p>Si vous d\u00e9veloppez une application WP8.1 XAML (ou universal app pour les intimes), prenez le code ci-dessous :<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ In App.xaml.cs file, register with the UnhandledException event handler.\r\nUnhandledException += App_UnhandledException;\r\n\r\nvoid App_UnhandledException(object sender, UnhandledExceptionEventArgs e)\r\n   {\r\n      if (e != null)\r\n      {\r\n         Exception exception = e.Exception;\r\n         if (exception is NullReferenceException &amp;&amp; exception.ToString().ToUpper().Contains(&quot;SOMA&quot;))\r\n         {\r\n            Debug.WriteLine(&quot;Handled Smaato null reference exception {0}&quot;, exception);\r\n            e.Handled = true;\r\n            return;\r\n         }\r\n      }\r\n\/\/ APP SPECIFIC HANDLING HERE\r\n\r\n   if (Debugger.IsAttached)\r\n      {\r\n         \/\/ An unhandled exception has occurred; break into the debugger\r\n         Debugger.Break();\r\n      }\r\n   }\r\n<\/pre>\n<p>Si vous d\u00e9veloppez une application WP 8(.1) Silverlight, prenez le code suivant :<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ In App.xaml.cs file, register with the UnhandledException event handler.\r\nUnhandledException += Application_UnhandledException;\r\n\r\n\/\/ Code to execute on unhandled exceptions\r\nprivate void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)\r\n{\r\n    if (e != null)\r\n   {\r\n       Exception exception = e.ExceptionObject;\r\n       if ((exception is XmlException || exception is NullReferenceException) &amp;&amp; exception.ToString().ToUpper().Contains(&quot;INNERACTIVE&quot;))\r\n       {\r\n           Debug.WriteLine(&quot;Handled Inneractive exception {0}&quot;, exception);\r\n           e.Handled = true;\r\n           return;\r\n       }\r\n       else if (exception is NullReferenceException &amp;&amp; exception.ToString().ToUpper().Contains(&quot;SOMA&quot;))\r\n       {\r\n           Debug.WriteLine(&quot;Handled Smaato null reference exception {0}&quot;, exception);\r\n           e.Handled = true;\r\n           return;\r\n       }\r\n       else if ((exception is System.IO.IOException || exception is NullReferenceException) &amp;&amp; exception.ToString().ToUpper().Contains(&quot;GOOGLE&quot;))\r\n      {\r\n          Debug.WriteLine(&quot;Handled Google exception {0}&quot;, exception);\r\n          e.Handled = true;\r\n          return;\r\n       }\r\n       else if (exception is ObjectDisposedException &amp;&amp; exception.ToString().ToUpper().Contains(&quot;MOBFOX&quot;))\r\n       {\r\n           Debug.WriteLine(&quot;Handled Mobfox exception {0}&quot;, exception);\r\n           e.Handled = true;\r\n           return;\r\n       }\r\n       else if ((exception is NullReferenceException) &amp;&amp; exception.ToString().ToUpper().Contains(&quot;MICROSOFT.ADVERTISING&quot;))\r\n       {\r\n           Debug.WriteLine(&quot;Handled Microsoft.Advertising exception {0}&quot;, exception);\r\n           e.Handled = true;\r\n           return;\r\n       }\r\n\r\n   }\r\n\/\/ APP SPECIFIC HANDLING HERE\r\n\r\nif (Debugger.IsAttached)\r\n   {\r\n       \/\/ An unhandled exception has occurred; break into the debugger\r\n       Debugger.Break();\r\n   }\r\n   \/\/e.Handled = true;\r\n}\r\n<\/pre>\n<h3>Testez votre application :<\/h3>\n<p>Vous pouvez tester le bon fonctionnement de Ad Mediation directement dans votre \u00e9mulateur pr\u00e9f\u00e9r\u00e9.<br \/>\nL&#8217;\u00e9mulateur de Visual Studio va afficher tous les annonceurs que vous avez s\u00e9lectionn\u00e9s, les uns apr\u00e8s les autres et pour une dur\u00e9e \u00e9gale (ce qui ne sera pas le cas en vrai).<br \/>\n<a href=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi6.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-148\" src=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi6.png\" alt=\"110814_0544_UsingAdMedi6\" width=\"209\" height=\"384\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi6.png 209w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi6-163x300.png 163w\" sizes=\"(max-width: 209px) 100vw, 209px\" \/><\/a><\/p>\n<h3>Soumettre votre application et configurer Ad Mediation<\/h3>\n<p>On arrive \u00e0 la partie int\u00e9ressante de Ad Mediation (enfin !).<\/p>\n<p>Quand votre application est pr\u00eate \u00e0 \u00eatre publi\u00e9e sur le store, vous allez \u00a0avoir une petite \u00e9tape suppl\u00e9mentaire \u00e0 param\u00e9trer sur le Windows Phone dev center.<br \/>\nLe dev center va d\u00e9tecter automatiquement que vous utilisez Ad Mediation et quels annonceurs vous avez s\u00e9lectionn\u00e9s.<br \/>\nVous allez ainsi voir sur la page de t\u00e9l\u00e9chargement du package une section de configuration de Ad Mediation tel que l&#8217;\u00e9cran ci-dessous.<br \/>\nVous n&#8217;aurez besoin de le faire qu&#8217;une seule fois.<br \/>\nEt le gros avantage, c&#8217;est que si vous souhaitez mettre \u00e0 jour ces param\u00e8tres (pour diminuer l&#8217;affichage d&#8217;un annonceur par exemple), vous n&#8217;aurez pas besoin de modifier le code, mais juste d&#8217;aller dans le WP Dev Center et d&#8217;effectuer vos modifications. C&#8217;est pas g\u00e9nial \u00e7a?<br \/>\n<a href=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi7.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-149\" src=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi7.png\" alt=\"110814_0544_UsingAdMedi7\" width=\"780\" height=\"608\" srcset=\"http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi7.png 780w, http:\/\/lalloue.fr\/blog\/wp-content\/uploads\/2014\/11\/110814_0544_UsingAdMedi7-300x233.png 300w\" sizes=\"(max-width: 780px) 100vw, 780px\" \/><\/a><br \/>\nMaintenant que toutes vos annonces sont param\u00e9tr\u00e9es, \u00e0 vous la richesse \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quand vous int\u00e9grez de la pub dans votre application celle-ci ne s&#8217;affiche pas forcement \u00e0 chaque ouverture de votre application. La raison peut \u00eatre qu&#8217;il n&#8217;y a pas de pub disponible \u00e0 ce moment l\u00e0, qu&#8217;elle n&#8217;a pas eut le temps de se charger, etc&#8230; Et qui dit pub non affich\u00e9e, dit argent en moins. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/lalloue.fr\/blog\/utiliser-ad-mediation-dans-une-applie-windows-phone-8-1\/\" class=\"more-link\">Continuer la lecture <span class=\"screen-reader-text\"> \u00ab\u00a0Utiliser Ad Mediation dans une applie Windows Phone 8(.1)\u00a0\u00bb<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,4],"tags":[7],"_links":{"self":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/127"}],"collection":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/comments?post=127"}],"version-history":[{"count":17,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/127\/revisions"}],"predecessor-version":[{"id":154,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/posts\/127\/revisions\/154"}],"wp:attachment":[{"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/media?parent=127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/categories?post=127"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/lalloue.fr\/blog\/wp-json\/wp\/v2\/tags?post=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}