Application à la mer - AdMob

introduction

Google AdMob est actuellement la plus grande plate-forme de publicité pour les applications mobiles au monde. Elle est ouverte aux développeurs d'applications et aux annonceurs qui ont besoin de faire de la publicité dans des applications, en fournissant des solutions pour explorer les opportunités commerciales, créer des marques et réaliser des revenus sur le terminal mobile.

Il s'agit en fait d'une plate-forme permettant d'afficher des annonces dans des applications, des pages de jeux et des pages Web.

Différence de type d'annonce

Les bannières publicitaires
occupent une petite zone, chargées d'AdView et mises en œuvre en interne par webView. Après le chargement, il fera automatiquement de la publicité, cliquez pour accéder au marché ou à la page Web correspondant.
Bannière de publicité
Annonces interstitielles Les annonces
affichées en plein écran, qui peuvent être des images ou des vidéos. À l'intérieur se trouve une
Insérez la description de l'image ici
publicité vidéo
récompensée en vue Web . Elle occupe le plein écran et lit une vidéo. Le point de récompense et la valeur de récompense peuvent être configurés en arrière-plan, et le rappel peut être reçu pendant la surveillance pour effectuer le traitement commercial correspondant. Généralement utilisé dans des scénarios tels que les récompenses en monnaie virtuelle et le déverrouillage vidéo. Il s'agit également d'une vue Web qui met en œuvre
Insérez la description de l'image ici
des annonces natives
. La différence par rapport aux quelques précédentes est que ce type de demande d'annonce ne se chargera pas automatiquement après une demande réussie, mais renverra les informations publicitaires au développeur, qui définit comment la mise en page doit afficher le contenu publicitaire.
En arrière-plan du contenu publicitaire, une ou les deux vidéos et images peuvent être sélectionnées.
Insérez la description de l'image ici

Accès

Il n'y a pas trop de problèmes d'accès, suivez pas à pas le document officiel du site Web pour y accéder.
Document officiel d'accès au site Web -> adresse du document

  1. Via un package gradle ou jarImporter le SDK
  2. Demander une candidature (nom du package), postuler pour un bloc d'annonces,Générer unitId, Chaque annonce affichée doit correspondre à un unitId. Bien sûr, le même identifiant peut également être utilisé, mais il est impossible de distinguer le taux de clics et les revenus des publicités dans des endroits spécifiques.
  3. Ancienne version: dans l'applicationinitialisation(Utilisez appId). Nouvelle version: Configurez dans AndroidManifest.xml
  4. Mettre en place un tissu d'affichage publicitaireBureau (configuration xml ou génération java). Remarque: Bannière publicitaire: unitId et AdSize doivent être définis en xml ou code en même temps, la taille ne peut pas être définie en xml, unitId est définie dans le code.
  5. Définir unitId,Demander une annonce
  6. Afficher les annonces
  7. moniteurÉvénements requis (échec de chargement, succès, clic, fermeture, saut, etc.)

point important

Le chargement des annonces natives ne se charge pas automatiquement, mais il n'y a pas de document détaillé expliquant la signification de chaque champ, ni comment obtenir l'événement de clic, comment sauter, etc., vous pouvez vous référer à la démo officielle: reportez -
vous à l'adresse de démonstration

Guide de la fosse

Parce qu'elle est plus populaire dans les pays étrangers, il n'y a pas beaucoup de gens qui acceptent cette bibliothèque en Chine, et il y a encore pas mal de fosses qui marchent lentement dessus.

一 、 Échec du chargement, errorCode = 3

Il y a pas mal de rencontres avec ce problème. Il y a à peu près deux raisons:

  1. L'identifiant d'unité vient d'être enregistré
  2. La demande est réussie, mais il n'y a pas suffisamment de stock pour retourner

J'ai aussi rencontré que parce que le téléphone portable ne retournait pas le mur, le code était retourné à 3. Il s'affichait normal immédiatement après avoir retourné le mur, mais il était clairement indiqué qu'il pouvait être obtenu sans retourner le mur. . . . . .

De plus, correspondant au errCode dans la méthode onLoadFailed, le site officiel dispose d'un document le décrivant, et vous pouvez trouver la cause correspondante selon le document.
Link—> Codage de code correspondant Les
exemples sont les suivants:

Type Code Raison
int ERROR_CODE_NO_FILL La demande d'annonce a réussi, mais aucune annonce n'a été renvoyée en raison d'un manque d'inventaire publicitaire.
int ERROR_CODE_INTERNAL_ERROR Quelque chose s'est passé en interne; par exemple, une réponse incorrecte a été reçue du serveur publicitaire.

Il ne
semble vraiment pas de solution pour résoudre ce problème. Au début, j'ai travaillé sur ce problème pendant un demi-mois. J'ai testé unitId et tout était normal. C'était une erreur lorsque je l'ai coupé dans l'identifiant officiel. J'ai lu divers documents et je n'ai trouvé aucun résultat. Plus tard, j'ai fait un plan B et je suis allé en ligne. Allez simplement en ligne et les annonces se chargent normalement. . .

Deuxièmement, AdView ne s'affiche pas une fois le chargement réussi

J'ai rencontré un problème en raison du fait que la bannière publicitaire n'était pas affichée. Je pensais que le chargement avait échoué. Grâce à la surveillance, il a été constaté que le chargement était réussi, mais il n'a pas été affiché.
Raison 1
Lorsque le service googlePlay rencontre ADMob, après une collision féroce, un tel bogue sera résolu. Une fois AdView chargé, l'affichage ne peut pas être actualisé automatiquement. Vous devez attendre qu'il soit redessiné la prochaine fois. Cette fois est 60 s, l'acquisition de ressources est donc réussie. N'est pas affiché.
Dans le cas de ce problème, la façon d'importer admob est que api 'com.google.android.gms.play-services-ads:8.1.0'si vous passez à la bibliothèque admob pour importer séparément au lieu d'importer via play-services, il n'y aura pas un tel problème.
Solution: dans la méthode de rappel onLoadAd (), déclenchez manuellement le rafraîchissement. Tels que setBackground (), layout () et d'autres méthodes

Raison 2 Dans le
développement réel, il y a une situation liée au réglage d'AdSize, qui fait que le chargement est réussi mais pas affiché.
Dans le document officiel du site Web, il y a une description de l'anomalie d'affichage causée par un réglage incorrect d'AdSize:

Remarque: la taille du conteneur de la bannière publicitaire doit être au moins aussi grande que la bannière publicitaire. Si votre conteneur a des marges intérieures, cela réduira efficacement la taille du conteneur. Si le conteneur ne peut pas accueillir la bannière publicitaire, la bannière ne sera pas affichée et l'avertissement suivant apparaîtra dans votre journal:
W / Ads: Espace insuffisant pour afficher l'annonce. Nécessite 320 x 50 dp, mais ne contient que 288 x 495 dp.

Le site Web officiel a un type d'AdSize appelé SMART_BANNER. Le site Web officiel le décrit comme s'adaptant intelligemment aux écrans verticaux, horizontaux et grands pour changer de manière adaptative la largeur et la hauteur. Tellement intelligent, je l'ai réglé sur cette taille. Le résultat n'est souvent pas chargé et ne peut pas être affiché. Remplacez-le par Immédiatement après BANNER, l'affichage est normal.
Solution: essayez d'utiliser la taille officielle, si vous définissez vous-même la largeur et la hauteur, veillez à pouvoir accueillir la publicité

Troisièmement, la vidéo publicitaire native

Si des annonces natives sont sélectionnées en arrière-plan, deux types d'annonces peuvent être vérifiés:

  • image
  • film

Surveillance de la lecture Dans de
nombreux scénarios, les produits proposeront d'utiliser des publicités vidéo. Après avoir regardé quelque chose pour l'utilisateur ou déverrouillé un certain contenu, vous devez utiliser la surveillance, tandis que la surveillance de la lecture vidéo dans les annonces natives est différente. Nous avons besoin des paramètres suivants:

Après avoir obtenu l'objet NativeAD, obtenez l'objet VideoController et suivez ceci:

VideoController vc = nativeAd.getVideoController();
vc.setVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks() {
    @Override
    public void onVideoPlay() {
        super.onVideoPlay();
        isStartPlay = true;
    }

    @Override
    public void onVideoEnd() {
        super.onVideoEnd();
        isPlayEnd = true;
    }
    //其他回调方法
    ...
});

Paramètres de lecture Pour
savoir s'il faut jouer en silence, vous pouvez configurer comme suit

VideoOptions videoOptions = new VideoOptions.Builder()
        //设置不静音播放,默认静音
        .setStartMuted(false)
        //设置是否点击展开全屏,默认否
        .setClickToExpandRequested(true)
        .build();

Enfin, lors du processus de création d'AdLoader, ajoutez des options:

.withNativeAdOptions(new NativeAdOptions.Builder()
        //设置的配置
        .setVideoOptions(videoOptions)
        .build())
.build()

Problème de source de publicité
Si vous ne vérifiez que les vidéos en arrière-plan et que vous voulez vous rendre compte qu'il s'agit toutes de publicités vidéo, vous aurez beaucoup de problèmes . Parce qu'il expose encore beaucoup d'annonces illustrées. .
Raison possible 1: il y a un problème avec le filtrage de google, et il est inutile de le vérifier

Raison possible 2: l'annonceur peut clairement être une image lorsqu'il est placé, et il doit être diffusé sous le type de vidéo, puis la vie et la mort que nous chargeons ne sont que des images

4. Remplissez lentement dans le futur

Je suppose que tu aimes

Origine blog.csdn.net/lizebin_bin/article/details/89710358
conseillé
Classement