Les éditeurs Google Ad Manager peuvent créer leurs propres formats d'annonces natives en définissant des listes de composants personnalisées. Ces formats personnalisés d'annonces natives peuvent être utilisés avec les annonces réservées. Les formats d'annonces natives personnalisés permettent aux éditeurs de transmettre des données d'image et de chaîne arbitraires à leurs applications. Ces données sont représentées par un objet CustomNativeTemplateAd
.
Charger des formats personnalisés d'annonces natives
Les formats d'annonces natives personnalisés sont chargés à l'aide d'objets AdLoader
.
La méthode forCustomTemplateAd()
configure AdLoader
pour gérer les formats d'annonces natives personnalisés. Chaque format d'annonce native personnalisé est associé à une valeur d'ID de modèle. Vous devez spécifier l'ID du modèle de format d'annonce native personnalisé que votre application souhaite demander à AdLoader
.
Recherchez les ID de modèle dans l'UI Ad Manager pour trouver l'ID du modèle de format d'annonce native que vous souhaitez demander.
void LoadCustomNativeTemplateAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.forCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Étant donné qu'un même bloc d'annonces peut être configuré pour diffuser plusieurs modèles de création, forCustomTemplateAd()
peut être appelé plusieurs fois avec différents ID de modèle pour préparer Adloader
pour plusieurs formats d'annonces natives personnalisées possibles.
L'extrait de code ci-dessous montre comment préparer un AdLoader
pour plusieurs modèles de formats d'annonces natives personnalisés.
void LoadCustomNativeTemplateAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.forCustomNativeAd("10063170")
.forCustomNativeAd("10063171")
.forCustomNativeAd("10063172")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Événements d'annonces au format natif personnalisé
La classe AdLoader
fournit des événements d'annonce de type EventHandler
pour vous informer du cycle de vie d'un format d'annonce native personnalisé.
L'exemple ci-dessous montre comment s'inscrire aux événements d'annonces au format natif personnalisé :
adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
La méthode HandleCustomNativeAdLoaded()
contient un paramètre CustomNativeEventArgs
.
Le format d'annonce native personnalisé qui a été chargé est accessible via ce paramètre d'événement, comme indiqué ci-dessous :
private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
customNativeTemplateAd = args.nativeAd;
adLoaded = true;
}
Afficher des formats personnalisés d'annonces natives
Les formats personnalisés d'annonces natives sont compatibles avec un nombre illimité de composants Image et Texte définis par l'utilisateur. Ces éléments sont accessibles via la classe CustomNativeTemplateAd
, qui fournit les méthodes GetTexture2D()
et GetText()
qui prennent l'ID de variable d'un champ de modèle comme paramètre.
L'exemple d'implémentation suivant extrait les éléments d'un CustomNativeTemplateAd
:
public const int NATIVE_AD_TEMPLATE_1 = 10063170;
public const int NATIVE_AD_TEMPLATE_2 = 10063171;
private boolean adLoaded;
private Texture2d mainImageTexture;
private string headline;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void Update()
{
if(adLoaded)
{
mainImageTexture = customNativeTemplateAd.GetTexture2D("MainImage");
headline = customNativeTemplateAd.GetText("Headline");
string templateId = customNativeTemplateAd.GetCustomTemplateId();
if (templateId == NATIVE_AD_TEMPLATE_1)
{
...
}
else if (templateId == NATIVE_AD_TEMPLATE_2)
{
...
}
...
adLoaded = false;
}
}
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
customNativeTemplateAd = args.nativeAd;
adLoaded = true;
...
}
Gérer les clics et les impressions pour les formats d'annonces natives personnalisés
Avec les formats d'annonces natives personnalisés, votre application est responsable de l'enregistrement des impressions et du signalement des événements de clic au SDK.
Enregistrer les impressions
Pour enregistrer une impression pour un format d'annonce native personnalisé, appelez la méthode RecordImpression()
sur le CustomNativeTemplateAd
correspondant :
customNativeTemplateAd.RecordImpression();
Signaler des clics
Pour signaler au SDK qu'un clic a été effectué sur un élément, appelez la méthode PerformClick()
sur le CustomNativeTemplateAd
correspondant et transmettez le nom de l'élément sur lequel l'utilisateur a cliqué. Par exemple, si vous aviez un composant appelé "MainImage" dans votre format d'annonce native personnalisée et que vous souhaitiez signaler un clic sur la texture correspondant à ce composant, votre code se présenterait comme suit :
customNativeTemplateAd.PerformClick("MainImage");
Lorsqu'un clic est signalé sur une annonce de modèle personnalisé, le SDK peut répondre de deux manières, dans l'ordre suivant :
- Localisez un résolveur de contenu pour l'URL de lien profond de l'annonce et démarrez le premier qui se résout.
- Ouvrez un navigateur et accédez à l'URL de destination traditionnelle de l'annonce.
Actions de clic personnalisées
Vous pouvez décider de gérer vous-même l'action de clic pour vos formats d'annonces natives personnalisés au lieu de rediriger l'utilisateur vers un lien profond ou un navigateur Web. Pour ce faire, fournissez un Action<CustomNativeTemplateAd, string>
facultatif dans la méthode AdLoader.Builder.forCustomTemplateAd()
. En définissant cette action de clic personnalisée, vous remplacez le comportement de clic du SDK décrit ci-dessus.
Voici un exemple qui utilise une action de clic personnalisée pour enregistrer un clic pour un élément donné :
private void LoadCustomNativeTemplateAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.forCustomNativeAd("10063170", HandleCustomNativeAdClicked)
.Build();
adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
adLoader.LoadAd(createAdRequest());
}
private void HandleCustomNativeAdClicked(CustomNativeTemplateAd customNativeTemplateAd, string assetName)
{
Debug.Log("Native ad asset with name " + assetName + " was clicked.");
}