Ce guide vous explique comment utiliser le module complémentaire d'annonces natives pour implémenter des annonces natives. dans une application Unity, ainsi que les points importants à prendre en compte.
Les annonces natives s'intègrent parfaitement à l'expérience utilisateur dans laquelle où elles sont placées. Ils correspondent également à la conception visuelle de l'application dans laquelle ils se trouvent. Le format d'annonces natives d'Ad Manager permet aux éditeurs d'afficher des annonces en parfaite adéquation avec le contenu. Vous pouvez utiliser cette technologie pour implémenter qui exploitent pleinement le code natif dans les applications Unity.
Les annonces natives sont diffusées avec les mêmes types de GameObjects
que vous
crée déjà vos applications et peut être formaté pour correspondre à la conception visuelle
l'expérience utilisateur dans laquelle ils vivent. Lors du chargement d'une annonce native, votre application
reçoit un objet natif qui contient ses éléments et l'application Unity, au lieu de
le SDK les affiche.
Prérequis
- Plug-in Google Mobile Ads Unity version 7.0.0 ou ultérieure.
- Suivez le guide de démarrage.
- Télécharger et installer le module complémentaire d'annonces natives.
Charger des formats d'annonces natives
Les annonces natives sont chargées via la classe AdLoader
, qui possède sa propre
AdLoader.Builder
pour la personnaliser lors de la création. ForNativeAd()
configure l'AdLoader pour gérer les annonces natives.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
Enregistrer les événements d'annonce AdLoader
Pour recevoir une notification lorsqu'une annonce native se charge correctement ou échoue, ajoutez
délégués à la classe AdLoader
pour les événements listés ci-dessous.
OnNativeAdLoaded
Invoquée lorsqu'une annonce native a bien été chargée. Il est obligatoire d'avoir un délégué pour cet événement afin d'accéder à l'annonce chargée.
OnAdFailedToLoad
Invoquée lorsque le chargement d'une annonce native échoue.
Charger l'annonce
Une fois que vous avez terminé de créer une AdLoader
, appelez sa méthode LoadAd()
pour
demander une annonce:
adLoader.LoadAd(new AdRequest.Builder().Build());
Regrouper la demande d'annonce
L'extrait de code ci-dessous montre comment créer un AdLoader
qui est
configuré pour demander des annonces natives, et définit des délégués pour les annonces ayant abouti et ayant échoué
se charge et envoie une demande d'annonce.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Gérer les échecs de chargement des annonces
L'événement OnAdFailedToLoad
est de type EventHandle<AdFailedToLoadEventArgs>
.
Le motif de l'échec du chargement des annonces à partir de cet événement est analysé ci-dessous.
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
Afficher une annonce native
Lors du chargement d'une annonce native, l'événement d'annonce correspondant au format d'annonce correspondant est appelé. Votre application se charge ensuite de diffuser l'annonce, le faire immédiatement.
Gérer le volume d'annonces
L'événement OnNativeAdLoaded
est de type EventHandler<NativeAdEventArgs>
. La
, encapsulée dans un objet NativeAd
, peut être récupérée
NativeAdEventArgs
comme indiqué:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
Récupérer des composants d'annonces natives
Une fois les annonces chargées, vous pouvez accéder à leurs assets comme indiqué ci-dessous. Graphique
Les éléments sont renvoyés en tant qu'objets Texture2D
, et les éléments texte sous forme d'objets
Objets string
.
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
Notez que vous ne devez accéder aux composants d'annonce que sur le thread principal (par exemple,
à partir de la méthode Update()
d'un script Unity. Notez également que les ressources suivantes
et doivent être vérifiées avant d'être
affiché:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
Composant Choisir sa pub
Vous devez obligatoirement afficher le composant d'annonce "Choisir sa pub" dans l'annonce native. De plus, le composant d'annonce "Choisir sa pub" doit être facilement visible. les couleurs d'arrière-plan et les images de manière appropriée.
Enregistrer des GameObjects pour le composant d'annonce
Vous devez enregistrer le GameObject
pour que le composant d'annonce s'affiche dans votre
Application Unity. Si l'enregistrement réussit, la méthode utilisée pour enregistrer le
GameObject
renvoie un bool
. Pour un List<GameObject>
, la méthode renvoie une
int
, indiquant que le nombre de GameObject
a bien été enregistré.
Si l'enregistrement d'un composant d'annonce échoue, les impressions et les clics sur le l'annonce native correspondante ne sera pas reconnue.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
Le GameObject
enregistré pour un composant d'annonce doit comporter un collisionneur convexe
qui est représentatif de la taille et de la forme de GameObject
. Si
GameObject
objets enregistrés dans les composants d'annonce ne comportent pas de composants Collider
ou dont la configuration est incorrecte, les annonces natives ne fonctionneront pas correctement.
Dans l'extrait de code ci-dessous, un BoxCollider
est ajouté à GameObject
qui utilise un
TextMesh
pour afficher le composant d'annonce titre d'une annonce native. Une fois que
BoxCollider
est associé à GameObject
, il évoluera automatiquement pour
pour accueillir le texte du composant TextMesh
.
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
Démo
Le code suivant montre comment récupérer l'élément icône d'une requête réussie
une annonce native chargée, affichez l'élément de l'annonce icône en définissant la texture d'un Quad
,
et enregistrez le GameObject
à utiliser pour afficher l'asset. Ce processus de
pour récupérer l'élément d'annonce et l'enregistrer dans la classe d'annonce native,
pour chacun des composants affichés par l'application.
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}