Correctement désactiver les annonces AdMob
Je suis intégration AdMob dans mon application et je me demande comment faire pour désactiver les Annonces correctement. Je veux donner à l'utilisateur la possibilité de les désactiver. Je ne veux pas avoir des problèmes avec AdMob en raison de mauvaises impressions. Est-il correct ou dois-je envisager quelque chose?
AdView ads = (AdView) findViewById(R.id.ad);
ads.setEnabled(false);
- Attendre. Vous faire de l'argent avec de la pub et vous permettez à l'utilisateur de désactiver si ils le souhaitent? Ou font-ils besoin de payer pour désactiver les annonces??
- Je ne veux pas faire de l'argent avec les Annonces. Mais je veux donner à l'utilisateur la possibilité de continuer à soutenir le développement d'une application en montrant les annonces.
Vous devez vous connecter pour publier un commentaire.
Dans votre fichier de mise en page (par exemple, main.xml) :
Puis dans votre code (par exemple, à l'intérieur d'un bloc "if")
Ce sera "définitivement" (pour le cycle de vie de l'application) supprimer les publicités de la layou, ce qui signifie qu'il n'y aura pas d'annonces demandé.
Je voulais également donner aux utilisateurs la possibilité de désactiver les annonces - pourquoi forcer les gens à les voir si ils ne veulent pas? et pourquoi devriez-vous attendre des gens à payer pour cette option?
De toute façon, j'ai expliqué comment je l'ai fait en cet article. L'article va plus dans le détail, mais voici les parties pertinentes:
Le code que j'utilise pour désactiver les annonces:
Et pour les réactiver (au cas où quelqu'un a été vous vous sentez généreux)
Malheureusement, le
setVisibility(View.GONE);
+setEnabled(false)
combo ne fonctionne pas universellement sur toutes les versions d'android /les appareils. Selon le moment de faire de vous l'appelez vous pouvez vous retrouver pendu dans le vide de l'écran (pas de NPE, juste l'écran est vide).Jusqu'à présent, la seule solution qui fonctionne pour moi est:
De L'Activité:
Pour Fragment:
Cette solution est basée sur @Quartertone de réponse, mais s'étendait à être plus universel (c'est à dire fonctionne avec tous les
ViewGroup
s pas seulementLinearLayout
). Juste mettre ces méthodes dans votre base de l'Activité/Fragment de classes.Créer une nouvelle classe dérivée de AdView;
dans votre XML définir votre annonce à l'aide de
MyAdView
plutôt que de l'ordinaireAdView
et définir laloadAdOnCreate
attributfalse
, par exemple;Puis, en fonction de la valeur de
MyApp.m_ads_enabled
lorsque vous appelezsetContentView()
les annonces seront soit désactivé ou activé.Cette approche a l'avantage, avec les annonces désactivé, pas de bande passante de données sera utilisé en tant que l'annonce n'est jamais demandé, cela peut être important pour quelqu'un sur un nombre limité ou de la RÉPARTITION des données de contrat.
Lui donner tout ce que vous avez, juste pour être sur le côté sécuritaire:
Il suffit de régler le point de vue de la visibilité à ALLÉ est assez.
Si vous lisez le Logcat de sortie, il imprime "I/Annonces: Annonce n'est pas visible. Pas rafraîchissant ad.".
setVisibility(VIEW.DISPARU); va supprimer le adview de la mise en page.
Il peut y avoir loin de la supprimer complètement de la mise en page, mais je n'ai jamais eu à le faire.
Je ne suis pas sûr si la mise en page les remboursements après la suppression de la adview; si ce n'est pas que vous pouvez créer à l'identique (sauf pour le manque ad) mise en page. Dans votre OnCreate, sélectionnez la mise en page correcte. Ensuite, vous avez juste besoin de s'assurer qu'un changement de configuration est déclenché lorsque l'utilisateur fait le choix (peut déjà se produire en fonction de comment vous laissez-les choisir - par exemple, le retour d'un écran de préférence).
Faire une classe qui est appelée
Ads
comme ce
`public class Annonces {
public static boolean Show(AdView mAdView){
Maintenant l'importer dans la classe dans laquelle vous souhaitez supprimer un AdView de
utilisation
Ads.Remove(AdView, parent);
pour l'enlever.
Ads.Remove("the add view itself", the ViewGroup or layout where it is");