Vous avez développé, débogué, testé, re-débogué votre application, qui est impeccable. Vous choisissez déjà la voiture que vous allez acheter avec les recettes de votre application… mais en attendant, vous êtes le seul à l'utiliser sur un émulateur ou sur votre téléphone. C'est pourquoi nous allons parler d'une étape indispensable, celle pour laquelle vous avez tant travaillé : nous allons voir comment publier votre application !
Avant que vous puissiez distribuer votre application, je vais vous apprendre comment la préparer en vue de la distribuer, puis nous verrons ensuite les différentes manières de financer votre travail. Enfin, nous terminerons sur les supports qui permettent de mettre à disposition des autres votre application, en portant une attention particulière sur Google Play.
- Préparez votre application à une distribution
- Les moyens de distribution
- Rentabilisez votre application
Préparez votre application à une distribution
Déjà, il faut que vous sachiez comment exporter votre application sous la forme d'un .apk
. Un APK est un format de fichier qui permet de distribuer et d'installer des applications Android. Un APK est en fait une archive (comme les ZIP ou les RAR) qui contient tous les fichiers nécessaires organisés d'une certaine manière. Pour exporter un de vos projets, il suffit de faire un clic droit dessus dans votre explorateur de fichiers, puis de cliquer sur Android Tools > Export Unsigned Application Package…
La différence entre cette méthode de compilation et celle que nous utilisons d'habitude est que l'application générée sera en version release, alors qu'en temps normal l'application générée est en version debug. Vous trouverez plus de détails sur ces termes dans les paragraphes qui suivent.
Modifications et vérifications d'usage
Effectuez des tests exhaustifs
Avant toute chose, avez-vous bien testé à fond votre application ? Et sur tous les types de support ? L'idéal serait bien entendu de pouvoir tester sur une grande variété de périphériques réels, mais je doute que tout le monde ait les moyens de posséder autant de terminaux. Une solution alternative plus raisonnable est d'utiliser l'AVD, puisqu'il permet d'émuler de nombreux matériels différents, alors n'hésitez pas à en abuser pour être certains que tout fonctionne correctement. Le plus important étant surtout de supporter le plus d'écrans possible.
Attention au nom du package
Ensuite, il vous faut faire attention au package dans lequel vous allez publier votre application. Il jouera un rôle d'identifiant pour votre application à chaque fois que vous la soumettrez, il doit donc être unique et ne pas changer entre deux soumissions. Si vous mettez à jour votre application, ce sera toujours dans le même package. Une technique efficace consiste à nommer le package comme est nommé votre site web, mais à l'envers. Par exemple, les applications Google sont dans le package com.google
.
Arrêtez la journalisation
Supprimez toutes les sorties vers le Logcat de votre application (toutes les instructions du genre Log.d
ou Log.i
par exemple), ou au moins essayez de les minimiser. Alors bien entendu, enlever directement toutes les sorties vers le Logcat serait contre-productif puisqu'il faudrait les remettre dès qu'on en aurait besoin pour déboguer… Alors comment faire ?
Le plus pratique serait de les activer uniquement quand l'application est une version debug. Cependant, comment détecter que notre application est en version debug ou en version release ? C'est simple, il existe une variable qui change en fonction de la version. Elle est connue sous le nom de BuildConfig.DEBUG
et se trouve dans le fichier BuildConfig.java
, lui-même situé dans le répertoire gen
. Vous pouvez par exemple entourer chaque instance de Log
ainsi :
1 2 3 4 5 | if(BuildConfig.DEBUG) { //Si on se trouve en version debug, alors on affiche des messages dans le Logcat Log.d(...); } |
Désactivez le débogage
N'oubliez pas non plus de désactiver le débogage de votre application ! Ainsi, si vous aviez inséré l'attribut android:debuggable
dans votre Manifest, n'oubliez pas de l'enlever (il vaut false
par défaut) ou d'insérer la valeur false
à la place de true
.
Nettoyez votre projet
Il se peut que vous ayez créé des fichiers qui ne sont pas nécessaires pour la version finale, qui ne feront qu'alourdir votre application, voire la rendre instable. Je pense par exemple à des jeux de test particuliers ou des éléments graphiques temporaires. Ainsi, les répertoires les plus susceptibles de contenir des déchets sont les répertoires res/
ou encore assets/
.
Faire attention au numéro de version
Le numéro de version est une information capitale, autant pour vous que pour l'utilisateur. Pour ce dernier, il permet de lui faire savoir que votre application a été mise à jour, et le rassure quant à l'intérêt d'un achat qu'il a effectué si l'application est régulièrement mise à jour. Pour vous, il vous permet de tracer les progrès de votre application, de vous placer des jalons et ainsi de mieux organiser le développement de votre projet.
Vous vous rappelez les attributs android:versionName
et android:versionCode
? Le premier permet de donner une valeur sous forme de chaîne de caractères à la version de votre application (par exemple « 1.0 alpha » ou « 2.8.1b »). Cet attribut sera celui qui est montré à l'utilisateur, à l'opposé de android:versionCode
qui ne sera pas montré à l'utilisateur et qui ne peut contenir que des nombres entiers. Ainsi, si votre ancien android:versionCode
était « 1 », il vous suffira d'insérer un nombre supérieur à « 1 » pour que le marché d'applications sache qu'il s'agit d'une version plus récente.
On peut par exemple passer de :
1 2 3 4 5 6 7 8 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sdz.monprojet" android:versionCode="5" android:versionName="1.1b" > … </manifest> |
… à :
1 2 3 4 5 6 7 8 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sdz.monprojet" android:versionCode="6" android:versionName="1.2" > … </manifest> |
Enfin, de manière générale, il existe une syntaxe à respecter pour choisir la version d'un projet. Il s'agit d'écrire des nombres séparés par des points, sachant que les nombres les plus à gauche sont ceux qui indiquent les plus gros changements, avec la majorité du temps soit deux, soit trois nombres. C'est un peu compliqué à comprendre, alors voici un exemple. On présente les numéros de version ainsi : <gros changement="">.<moins gros="" changement="">[.<encore plus="" petit="" changement="" qu'on="" n'indique="" pas="" forcément="">]</encore></moins></gros>. Si on avait une application en version 1.1 et que l'on a complètement changé l'interface graphique, on peut considérer passer en version 2.0. En revanche, si on est à la version 1.3.1 et qu'on a effectué deux corrections de bug, alors on pourrait passer en version 1.3.2. Il n'y a pas de démarche standard à ce sujet, alors je vous laisse juger vous-mêmes comment faire évoluer le numéro de version.
Manifestez-vous !
Le Manifest est susceptible de contenir des déchets que vous avez oublié de nettoyer. Vérifiez tout d'abord que les permissions que vous demandez ne sont pas trop abusives, car c'est une source de suspicions (justifiée) de la part des utilisateurs.
Indiquez aussi une version cohérente de android:minSdkVersion
de façon à cibler le plus d'utilisateurs possible et à ne pas rendre votre application disponible à des utilisateurs qui ne pourraient pas l'utiliser. En effet, n'oubliez pas que c'est cette valeur qui détermine à qui sera proposée l'application.
Gérez les serveurs de test
Si vous utilisez des serveurs de test, vérifiez bien que vous changez les URL pour faire appel aux serveurs de production, sinon vos utilisateurs risquent d'avoir de grosses surprises. Et pas des bonnes. De plus, vérifiez que vos serveurs sont configurés pour une entrée en production et qu'ils sont sécurisés. Ce n'est cependant pas l'objet de ce cours, je ne vais pas vous donner de conseils à ce niveau-là.
Dessinez une icône attractive
Le succès de votre application pourrait dépendre de certains détails particuliers ! Votre icône est-elle esthétique ? Est-elle définie pour toutes les résolutions d'écran, histoire qu'elle ne se résume pas à une bouillie de pixels ? Il s'agit quand même du premier contact de l'utilisateur avec votre application, c'est avec l'icône qu'il va la retrouver dans la liste des applications, sur le marché d'applications, etc.
Comme il est possible d'avoir une icône par activité, vous pouvez aussi envisager d'exploiter cette fonctionnalité pour aider vos utilisateurs à se repérer plus facilement dans votre application.
Google a concocté un guide de conduite pour vous aider à dessiner une icône correcte.
Protégez-vous légalement ainsi que votre travail
Si vous voulez vous protéger ou protéger vos projets, vous pouvez définir une licence de logiciel. Cette licence va définir comment peut être utilisée et redistribuée votre application. N'étant pas moi-même un expert dans le domaine, je vous invite à consulter un juriste pour qu'il vous renseigne sur les différentes opportunités qui s'offrent à vous.
Enfin, vous pouvez tout simplement ne pas instaurer de licence si c'est que vous désirez. De manière générale, on en trouve assez peu dans les applications mobiles, parce qu'elles sont pénibles à lire et ennuient l'utilisateur.
Signer l'application
Pour qu'une application puisse être installée sous Android, elle doit obligatoirement être signée. Signer une application signifie lui attribuer un certificat qui permet au système de l'authentifier. Vous allez me dire que jusqu'à maintenant vous n'avez jamais signé une application, puisque vous ignorez ce dont il s'agit, et que pourtant vos applications se sont toujours installées. Sauf qu'en fait Eclipse a toujours émis un certificat pour vous. Le problème est qu'il génère une clé de debug, et que ce type de clé, n'étant pas définie par un humain, n'est pas digne de confiance et n'est pas assez sûre pour être utilisée de manière professionnelle pour envoyer vos projets sur un marché d'applications. Si vous voulez publier votre application, il faudra générer une clé privée unique manuellement.
Pourquoi ?
Parce que cette procédure permet de sécuriser de manière fiable votre application, il s'agit donc d'une démarche importante. On peut considérer au moins deux avantages :
- Si plusieurs applications sont signées avec la même clé, alors elles peuvent communiquer et être traitées comme une seule et même application, c'est pourquoi il est conseillé d'utiliser toujours le même certificat pour toutes vos applications. Comme vous savez que ce sont vos applications, vous leur faites confiance, alors il n'y a pas de raison qu'une de ces applications exécute un contenu malicieux pour un autre de vos projets ou pour le système.
- Une application ne peut être mise à jour que si elle possède une signature qui provient du même certificat. Si vous utilisez deux clés différentes pour une version d'une application et sa mise à jour, alors le marché d'applications refusera d'exécuter la mise à jour.
C'est pourquoi il faut que vous fassiez attention à deux choses très importantes :
- Tout d'abord, ne perdez pas vos clés, sinon vous serez dans l'impossibilité de mettre à jour vos applications. Vous pourrez toujours créer une nouvelle page pour votre projet, mais cette page ne serait plus liée à l'ancienne et elle perdrait tous ses commentaires et statistiques. En plus, dire à vos utilisateurs actuels qu'ils doivent désinstaller leur version du programme pour télécharger une autre application qui est en fait une mise à jour de l'ancienne application est un véritable calvaire, rien qu'à expliquer.
- Ensuite, utilisez des mots de passe qui ne soient pas trop évidents et évitez de vous les faire voler. Si quelqu'un vous vole votre clé et qu'il remplace votre application par un contenu frauduleux, c'est vous qui serez dans l'embarras, cela pourrait aller jusqu'à des soucis juridiques.
Comme on n'est jamais trop prudent, n'hésitez pas à faire des sauvegardes de vos clés, afin de ne pas les perdre à cause d'un bête formatage. Il existe des solutions de stockage sécurisées gratuites qui vous permettront de mettre vos clés à l'abri des curieux.
La procédure
Il existe deux manières de faire. Sans Eclipse, nous avons besoin de deux outils qui sont fournis avec le JDK : Keytool afin de créer le certificat et Jarsigner pour signer l'APK (c'est-à-dire lui associer un certificat). Nous allons plutôt utiliser l'outil d'Eclipse pour créer nos certificats et signer nos applications. Pour cela, faites un clic droit sur un projet et allez dans le menu que nous avons utilisé précédemment pour faire un APK, sauf que cette fois nous allons le signer grâce à Android Tools > Export Signed Application Package…
Cette action ouvrira l'écran visible à la figure suivante. La première chose à faire est de choisir un projet qu'il vous faudra signer. Vous pouvez ensuite cliquer sur Next
.
Une nouvelle fenêtre, visible à la figure suivante, apparaît. Vous pouvez alors choisir soit un keystore existant déjà, soit en créer un nouveau. Le keystore est un fichier qui contiendra un ou plusieurs de vos certificats. Pour cela, vous aurez besoin d'un mot de passe qui soit assez sûr pour le protéger. Une fois votre choix fait, cliquez sur Next
.
La fenêtre visible à la figure suivante s'affiche. C'est seulement maintenant que nous allons créer une clé.
Il vous faut entrer des informations pour les quatre premiers champs :
- Un alias qui permettra d'identifier votre clé.
- Un mot de passe et sa confirmation.
- Une limite de validité en années, sachant que la clé doit être disponible jusqu'au 22 octobre 2033 au moins. De manière générale, utilisez une valeur supérieure ou égale à 25. Moi, j'utilise 50.
Pour les champs suivants, il vous faut en renseigner au moins un. Cliquez ensuite sur Next
. Une fenêtre s'ouvre (voir figure suivante). Choisissez l'emplacement où sera créé l'APK et terminez en cliquant sur Finish
.
Les moyens de distribution
Google Play
Les avantages d'utiliser Google Play sont plutôt nombreux. Déjà Google Play est énorme, il contient 600 000 applications en tout, et 1,5 milliard d'applications sont téléchargées tous les mois. Il vous permet de mettre à disposition d'un très grand nombre d'utilisateurs tous vos travaux, dans 190 pays et territoires, à moindre frais. En revanche, vous ne pourrez vendre vos applications que dans 132 pays et territoires, pour des raisons légales. De plus, Google Play dispose d'outils pour vous permettre d'analyser le comportement des consommateurs, de traquer les bugs qui traînent dans votre application et de gagner de l'argent en récompense de votre labeur.
La première chose à faire est d'avoir au moins un compte Google valide. Vous pouvez en créer un à partir de cette page. Ce site étant en français, j'imagine que vous vous débrouillerez comme des chefs durant les étapes de la création. Ensuite, il vous faut créer un compte développeur Android à cette adresse. On vous demandera :
- De créer un compte développeur.
- De signer virtuellement la charte de distribution des applications Android.
- Puis de payer la somme de 25\$ (vous aurez besoin d'une carte de crédit valide).
Une fois cela fait, vous pourrez publier autant d'applications que vous le souhaitez !
Une fois votre compte créé, le premier écran auquel vous vous trouverez confrontés est la console pour développeurs (voir figure suivante). C'est dans cet écran que tout se fait, vous pouvez :
- Ajouter un développeur avec qui vous travaillez en équipe. Vous pourrez déterminer les différentes parties auxquelles ont accès vos collègues. Tous les développeurs n'ont par exemple pas besoin de voir les revenus financiers de vos projets.
- Publier une application et avoir des informations dessus.
- Se constituer un compte Google marchand pour pouvoir vendre vos applications.
Les applications
Si vous cliquez sur Publier une application
, vous vous retrouverez confrontés à une deuxième fenêtre (voir figure suivante) qui vous permettra de sélectionner l'APK qui sera mis en ligne. Comme vous pouvez le voir, j'ai choisi de publier l'APK de ma superbe application qui dit salut aux Zéros et je m'apprête à l'importer.
Si votre application est un jeu, alors il y a des risques pour que l'APK fasse plus de 50 Mo avec les fichiers sonores et graphiques, et Google Play n'accepte que les archives qui font moins de 50 Mo. Il existe alors deux solutions, soit vous faites télécharger les fichiers supplémentaires sur un serveur distant — ce qui a un coût —, soit vous utilisez le bouton Ajouter un fichier
pour ajouter ces fichiers supplémentaires qui doivent être mis en ligne — ce qui est gratuit mais demande plus de travail. Le problème avec l'hébergement sur un serveur distant est que les utilisateurs sont rarement satisfaits d'avoir à télécharger 500 Mo au premier lancement de l'application, c'est pourquoi il est quand même préférable d'opter pour la seconde option.
Vous pourrez ajouter deux fichiers qui font jusqu'à 2 Go. Un de ces fichiers contient toutes les données indispensables au lancement de l'application, alors que le second est juste un patch afin de ne pas avoir à envoyer un APK complet sur le Store. De cette manière, les utilisateurs n'ont pas à télécharger encore une fois un gros fichier mais juste des modifications contenues dans ce fichier pendant une mise à jour. Vous trouverez plus d'information à ce sujet sur cette page.
Une fois votre APK importé, vous remarquerez que le site a réussi à extraire certaines informations depuis votre application, comme son nom et son icône, et tout cela à l'aide des informations contenues dans le Manifest.
C'est aussi à cet endroit que Google Play va vérifier la cohérence de ce que vous faites. En effet, si vous avez déjà une application qui a le même nom et que le numéro de version est identique ou inférieur à celui de l'application déjà en ligne, alors vous risquez bien de vous retrouver confrontés à un mur.
En cliquant sur l'autre onglet, vous vous retrouvez devant un grand nombre d'options, dont certaines sont obligatoires. Par exemple, il vous faut au moins deux captures d'écran de votre application ainsi qu'une icône en haute résolution, pour qu'elle soit affichée sur le Play Store.
L'encart suivant, visible à la figure suivante, est tout aussi important, il vous permet de donner des indications quant à votre application.
Comme j'ai traduit mon application en anglais, j'ai décidé d'ajouter une description en anglais en cliquant sur ajouter une langue
.
Si vous rajoutez un texte promotionnel, vous devrez aussi rajouter une image promotionnelle dans la partie précédente.
Enfin, la dernière partie vous permettra de régler certaines options relatives à la publication de votre application. L'une des sections les plus importantes ici étant la catégorie de contenu
, qui vous permet de dire aux utilisateurs à qui est destinée cette application. Comme mon application ne possède aucun contenu sensible, j'ai indiqué qu'elle était accessible à tout public. Vous en saurez plus à cette adresse. On vous demandera aussi si vous souhaitez activer une protection contre la copie, mais je ne le recommande pas, puisque cela alourdit votre application et que le processus va bientôt être abandonné.
C'est aussi à cet endroit que vous déterminerez le prix de votre application. Notez que, si vous déclarez que votre application est gratuite, alors elle devra le rester tout le temps. Enfin, si vous voulez faire payer pour votre application, alors il vous faudra un compte marchand dans Google Checkout, comme nous le verrons plus loin.
Voilà, maintenant que vous avez tout configuré, activez votre APK dans l'onglet Fichiers APK
et publiez votre application. Elle ne sera pas disponible immédiatement puisqu'il faut quand même qu'elle soit validée à un certain niveau (cela peut prendre quelques heures).
Plusieurs APK pour une application
Comme vous le savez, un APK n'est disponible que pour une configuration bien précise de terminal, par exemple tous ceux qui ont un écran large, moyen ou petit. Il se peut cependant que vous ayez un APK spécial pour les écrans très larges, si votre application est compatible avec Google TV. En ce cas, il est possible d'avoir plusieurs APK pour une même application. En fait, l'APK qui sera téléchargé par l'utilisateur dépendra de l'adéquation entre sa configuration matérielle et celle précisée dans le Manifest. Le problème avec cette pratique, c'est qu'elle est contraignante puisqu'il faut entretenir plusieurs APK pour une même application… En général, cette solution est adoptée uniquement quand un seul APK fait plus de 50 Mo.
Informations sur une application
Elles sont accessibles à partir de la liste de vos applications, comme le montre la figure suivante.
Cliquer sur le nom de votre application vous permettra de modifier les informations que nous avons définies juste avant, et permet de mettre à jour votre application. Vous pouvez aussi voir les commentaires que laissent les utilisateurs au sujet de vos applications, comme à la figure suivante.
Très souvent, les utilisateurs vous laissent des commentaires très constructifs que vous feriez bien de prendre en compte, ou alors ils vous demandent des fonctionnalités auxquelles vous n'aviez pas pensé et qui seraient une véritable plus-value pour votre produit. Ce sont les utilisateurs qui déterminent le succès de votre application, c'est donc eux qu'il faut contenter et prendre en considération. En plus, très bientôt il sera possible pour un éditeur de répondre à un utilisateur, afin d'approfondir encore plus la relation avec le client.
Un autre onglet vous permet de visualiser des statistiques détaillées sur les utilisateurs, la version de votre application qu'ils utilisent et leur terminal, comme le montre la figure suivante.
Ces informations vous permettent de déterminer les tendances, de manière à anticiper à quelles périodes faire des soldes ou des annonces. Une utilisation intéressante serait de regarder quels sont les pays les plus intéressés par votre projet afin de faire des efforts de traduction. Il est aussi possible d'exporter les données afin de les exploiter même hors ligne.
Il existe d'autres solutions d'analyses, qui fournissent d'autres renseignements sur les manières d'utiliser vos applications, quelle activité est visitée à quelle fréquence, quel est le comportement typique d'un utilisateur, etc. Je ne citerai que Google Analytics, Mint ou Piwik, qui sont gratuits et puissants.
De plus, il existe un service qui récolte les erreurs et plantages que rencontrent vos utilisateurs afin que vous puissiez facilement y avoir accès et les corriger. Corriger des erreurs augmente le taux de satisfaction des utilisateurs et par conséquent le succès de votre application.
Enfin, vous pouvez demander à ce que vos applications soient incluses dans les publicités sur AdMob, mais attention, il s'agit bien entendu d'un service payant.
Les autres types de distribution
Les autres marchés d'applications
Il existe d'autres marchés d'applications qui vous permettent de mettre vos application à disposition, par exemple AndroidPit, l'Appstore d'Amazon ou encore AppsLib qui est lui plutôt destiné aux applications pour tablettes. Je ne vais pas les détailler, ils ont chacun leurs pratiques et leurs services, à vous de les découvrir.
Distribuer par e-mail
Cela semble un peu fou, mais Google a tout à fait anticipé ce cas de figure en incluant un module qui détecte si un e-mail contient un APK en fichier joint. Le problème, c'est qu'il faut quand même que l'utilisateur accepte les applications qui proviennent de sources inconnues, ce qui est assez contraignant.
Enfin, le problème ici est que la distribution par e-mail n'est pratique que pour un public très restreint et qu'il est très facile de pirater une application de cette manière. En fait, je vous conseille de n'utiliser la distribution par e-mail que pour des personnes en qui vous avez confiance.
Sur votre propre site
Solution qui permet de toucher un plus large public : il vous suffit de mettre l'APK de votre application à disposition sur votre site, gratuitement ou contre une certaine somme, et l'utilisateur pourra l'installer. Cette méthode souffre des mêmes défauts que la distribution par e-mail, puisque l'utilisateur devra accepter les applications provenant de sources inconnues et que le risque de piratage est toujours aussi élevé.
Rentabilisez votre application
Il existe au moins quatre façons de vous faire de l'argent en exploitant les solutions proposées par Google. La première question à vous poser est : « quelle solution est la plus adaptée à mon application afin de la rentabiliser ? ». Il faut donc vous poser les bonnes questions afin d'obtenir les bonnes réponses, mais quelles sont ces questions ? On peut voir les choses d'une manière un peu simplifiée à l'aide du schéma proposé à la figure suivante.
L'une des plus grandes décisions à prendre est de savoir si vous allez continuer à ajouter du contenu à l'application. Si non, alors faites payer une fois l'utilisateur tout en continuant les mises à jour. Si oui, alors il existe trois façons d'envisager une rémunération.
Le guide suivant suppose que vous avez distribué votre application sous Google Play. La première chose à faire est de créer un compte marchand pour Google Checkout de manière à pouvoir recevoir des revenus de la part de Google.
Créer un compte marchand pour Google Checkout
Si vous voulez faire de l'argent avec les moyens que met à disposition Google, alors vous devrez tout d'abord vous créer un compte Google marchand. Pour cela, il faut cliquer sur le lien Ouvrir un compte marchand
dans la console de votre compte développeur Android. Remplissez bien toutes les informations, il s'agit d'une affaire de légalité. Quand on vous demandera votre raison sociale, indiquez si vous êtes un particulier, une association ou une entreprise. L'inscription est très rapide et se fait sur un écran. Il faut ensuite associer un compte bancaire à votre compte afin que Google puisse vous transmettre les paiements.
Faire payer l'application
Le moyen le plus simple est de faire en sorte que les utilisateurs payent afin de télécharger votre application sur Google Play. L'un des principaux avantages des applications payantes est qu'elles permettent de se débarrasser des publicités qui encombrent beaucoup d'applications.
Une question qui reviendra souvent est de savoir si les gens seraient prêts à payer pour les fonctionnalités que met à leur disposition votre application. Un moyen simple de vérifier est de regarder ce que font vos concurrents sur le Store. S'ils font payer pour un contenu similaire ou de qualité inférieure, alors pourquoi pas vous ?
Vient ensuite la question du prix. Encore une fois, c'est le marché qui va déterminer le meilleur prix pour votre application. Pour la majorité des applications, on parle de « biens typiques », c'est-à-dire que la demande des consommateurs diminue quand le prix augmente. En revanche, pour certaines autres applications, on parle plutôt de « biens atypiques », c'est-à-dire que la demande augmente quand le prix augmente (dans une certaine proportion, bien entendu). C'est le cas des applications pour lesquelles les utilisateurs souhaitent s'assurer de la qualité, et pour lesquelles ils évaluent la qualité du produit en fonction de son tarif. C'est un raisonnement très courant, plus un produit est cher, plus on pense qu'il est de qualité. D'ailleurs, si vous mettez à disposition plusieurs versions de votre projet, il y a des chances pour que la version ayant le plus de qualités soit aussi la plus chère.
Vous pouvez aussi envisager d'avoir deux versions de votre application, une gratuite et une payante, la première servant de fonction d'évaluation. Si l'application plaît à un utilisateur, il pourrait acheter la version complète pour pouvoir exploiter toutes ses fonctionnalités.
Sachez que 30% des revenus seront reversés à Google.
Attention cependant, le piratage des applications Android est un fléau puisqu'il est très facile à réaliser. Une technique pour éviter de perdre de l'argent à cause du piratage serait de créer un certificat pour l'utilisateur sur cette machine et de faire vérifier à un serveur distant si ce certificat est correct. S'il l'est, alors on accorde à l'utilisateur l'accès à l'application. Il y a des risques pour que les pirates aient toujours une longueur d'avance sur vous. Il vous est aussi possible de faire en sorte que votre application vérifie auprès de Google Store que l'utilisateur a bien acheté ce produit, à l'aide d'une licence.
Ajouter de la publicité
Ajouter un ou plusieurs bandeaux publicitaires, voire une publicité interstitielle de temps à autre, de manière à ce qu'un annonceur vous rémunère pour chaque clic, est possible. L'avantage est que l'application reste gratuite et que les consommateurs adorent ce qui est gratuit.
Un bandeau publicitaire est un simple ruban qui se place sur les bords de votre application et qui affiche des publicités. Une publicité interstitielle prend tout l'écran et empêche l'utilisateur de continuer à utiliser votre application tant qu'elle n'a pas disparu.
Ici, je vous parlerai d'AdMob, qui est une régie qui fait le lien entre les développeurs et les annonceurs. Avec Google Play, vous pouvez être développeurs comme d'habitude, mais aussi annonceurs comme nous l'avons vu précédemment.
L'important quand on développe une application avec des publicités, c'est de penser à l'interface graphique en incluant cette publicité. Il faut lui réserver des emplacements cohérents, sinon le résultat n'est pas vraiment bon.
Il existe également un lien et un temps pour les publicités. Faire surgir des publicités en plein milieu d'un niveau risque d'en énerver plus d'un, alors qu'à la fin d'un niveau sur l'écran des scores, pourquoi pas ?
Dernière chose, essayez de faire en sorte que l'utilisateur clique intentionnellement sur vos pubs. Si c'est accidentel ou caché, il risque d'être vraiment énervé et de vous laisser une mauvaise note. Il vaut mieux qu'un utilisateur ne clique jamais sur une publicité plutôt qu'il clique une fois dessus par mégarde et supprime votre application en pestant dans les commentaires. En plus, le système réagira si vous obligez vos utilisateurs à cliquer sur les publicités, et la valeur d'un clic diminuera et vous serez au final moins rémunéré.
La première chose à faire est de créer un compte sur AdMob. Il y a un gros bouton pour cela sur la page d'accueil. Encore une fois, l'inscription est simple puisqu'il suffit d'entrer vos coordonnées personnelles. Notez juste qu'on vous demande si vous êtes un éditeur ou un annonceur. Un éditeur est quelqu'un qui intégrera les publicités dans son produit, alors qu'un annonceur veut qu'on fasse de la publicité pour son produit.
Une fois votre compte validé, on vous demandera si vous souhaitez commencer à faire de la publicité ou monétiser vos applications pour mobile. Je ne vais bien sûr présenter que la seconde option. On vous demandera encore des informations, remplissez-les (vous pouvez voir votre numéro IBAN et le numéro SWIFT — on l'appelle parfois code BIC — sur un RIB).
Cliquez ensuite sur Application Android
puisque c'est ce que nous faisons. Vous devrez alors décrire votre application afin qu'AdMob puisse déterminer les pubs les plus adaptées à vos utilisateurs. Enfin si vous n'aviez pas téléchargé le SDK auparavant, le site vous proposera de le faire dans la page suivante.
Au niveau technique, la première chose à faire sera d'inclure une bibliothèque dans votre projet. Pour cela, faites un clic droit sur votre projet et cliquez sur Properties
. Ensuite, cliquez sur Java Build Path
, puis sur l'onglet Libraries
et enfin sur Add External JARs…
Naviguez ensuite à l'endroit où vous avez installé le SDK AdMob pour ajouter le fichier GoogleAdMobAdsSdk-6.0.1.jar
.
Il nous faut ensuite ajouter une activité dans notre Manifest, qui contient ces informations :
1 2 | <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> |
Ensuite, vous aurez besoin d'au moins deux permissions pour votre application : une pour accéder à internet et une autre pour connaître l'état du réseau :
1 2 | <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> |
Et voilà, il vous suffit maintenant d'ajouter la vue qui contiendra la pub, c'est-à-dire l'AdView
en XML ou en Java.
En XML, il faut rajouter le namespace xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
afin de pouvoir utiliser les attributs particuliers de la vue. Vous aurez besoin de :
- Préciser un format pour la publicité à l'aide de
ads:adSize
, par exempleads:adSize="BANNER"
pour insérer une bannière. - Spécifier votre référence éditeur AdMob à l'aide de
ads:adUnitId
. - Déclarer si vous souhaitez que la publicité se charge maintenant ou plus tard avec
ads:loadAdOnCreate
.
En phase de tests, vous risquez de vous faire désactiver votre compte si vous cliquez sur les publicités puisque vos clics fausseraient les résultats. Pour demander des publicités de test, utilisez l'attribut XML ads:testDevices
et donnez-lui l'identifiant unique de votre téléphone de test. L'identifiant unique de votre téléphone vous sera donné par le SDK dans le Logcat.
Voici un exemple bien complet :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.google.ads.AdView android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" ads:adUnitId="VOTRE_ID_EDITEUR" ads:adSize="BANNER" ads:testDevices="TEST_EMULATOR, ID_DE_VOTRE_APPAREIL" ads:loadAdOnCreate="true"/> </LinearLayout> |
En Java, il est possible de recharger une publicité avec la méthode void loadAd(AdRequest)
. Il vous est aussi possible de personnaliser les couleurs de vos bannières à l'aide d'extras
, comme pour les intents :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Map<String, Object> extras = new HashMap<String, Object>(); // Couleur de l'arrière-plan extras.put("color_bg", "ABCDEF"); // Couleur du dégradé de l'arrière-plan (à partir du plafond) extras.put("color_bg_top", "000000"); // Couleur des contours extras.put("color_border", "FF0123"); // Couleur des liens extras.put("color_link", "ABCCCC"); // Couleur du texte extras.put("color_text", "FFFFFF"); // Couleur de l'URL extras.put("color_url", "CCCCCC"); AdRequest adRequest = new AdRequest(); adRequest.setExtras(extras); adView.loadAd(adRequest); //On aurait aussi pu mettre adView.loadAd(new AdRequest()) si on ne voulait pas d'une publicité personnalisée |
Il existe d'autre personnalisations possibles pour un AdRequest
, dont le sexe de l'utilisateur (setGender(AdRequest.Gender.MALE)
pour un homme et setGender(AdRequest.Gender.FEMALE)
pour une femme), sa date d'anniversaire (attention, au format US : par exemple, pour quelqu'un né le 25/07/1989, on aura setBirthday("19890725")
) ou la localisation géographique de l'utilisateur avec la méthode void setLocation(Location location)
.
De plus, si vous faites implémenter l'interface AdListener
, vous pourrez exploiter cinq fonctions de callback :
- La méthode
void onReceiveAd(Ad ad)
se déclenche dès qu'une publicité est reçue correctement. - La méthode
void onFailedToReceiveAd(Ad ad, AdRequest.ErrorCode error)
se déclenche dès qu'une pub n'a pas été reçue correctement. - La méthode
void onPresentScreen(Ad ad)
est déclenchée quand le clic sur une publicité affiche une activité dédiée à la publicité en plein écran. - La méthode
void onDismissScreen(Ad ad)
est déclenchée dès que l'utilisateur quitte l'activité lancée paronPresentScreen
. - Enfin, la méthode
void onLeaveApplication(Ad ad)
est déclenchée dès que l'utilisateur clique sur une publicité et qu'il quitte l'application.
Enfin, vous pouvez aussi insérer une publicité interstitielle avec l'objet InterstitielAd
, qui s'utilise comme un AdView
.
Freemium : abonnement ou vente de produits intégrés
Cette technique suppose que l'application est gratuite et exploite l'In-App Billing. Il existe deux types de ventes en freemium :
- L'abonnement, où les prélèvements d'argent se font à intervalles réguliers.
- La vente de produits intégrés, où le prélèvement ne se fait qu'une fois. Elle permet l'achat de contenu virtuel, comme par exemple l'achat d'armes pour un jeu, de véhicules, ou autres mises à jour de contenu.
L'avantage de l'In-App Billing, c'est qu'il exploite les mêmes fonctions que le Play Store et que par conséquent ce n'est pas votre application qui gère la transaction, mais bien Google. Le désavantage, c'est que Google garde 30% des revenus. L'In-App Billing est en fait une API qui vous permet de vendre du contenu directement à l'intérieur de l'application.
Bien entendu, ce type de paiement n'est pas adapté à toutes les applications. Il fonctionne très bien dans les jeux, mais n'imaginez pas faire de même dans les applications professionnelles.
Un moyen de mieux vendre ce type de contenu est d'ajouter une monnaie dans le jeu, qu'il est possible de gagner naturellement en jouant, mais de manière lente, ou bien en convertissant de l'argent réel en monnaie virtuelle, ce qui est plus rapide pour l'utilisateur. Une idée intéressante à ce sujet est d'avoir une monnaie virtuelle similaire pour tous vos produits, afin que l'utilisateur soit plus enclin à acheter de la monnaie et surtout à utiliser vos autres produits.
Ce qui est important quand on vend des produits intégrés, c'est d'être sûr que l'utilisateur retrouvera ces produits s'il change de terminal. Il n'y a rien de plus frustrant que de gâcher de l'argent parce que l'éditeur n'a pas été capable de faire en sorte que le contenu soit lié au compte de l'utilisateur. Ainsi, il existe deux types de paiement pour les produits intégrés :
- Managed : Google Play retient les transactions qui ont été effectuées.
- Unmanaged : c'est à vous de retenir le statut des transactions.
Sachez aussi qu'encore une fois 30% des revenus seront reversés à Google.
Vous trouverez plus de détails ici.