Formats personnalisés d'annonces natives

Les éditeurs Ad Manager ont la possibilité de créer leurs propres formats d'annonces natives en définissant des listes d'éléments personnalisées. Ces formats d'annonces natives personnalisés sont appelés formats personnalisés. Les annonces natives personnalisées 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 CustomNativeAd.

Charger une annonce native personnalisée

Les annonces natives personnalisées sont chargées à l'aide d'objets AdLoader. La méthode ForCustomNativeAd() configure AdLoader pour gérer les annonces natives personnalisées. Cette méthode comporte deux paramètres:

  • formatId de l'annonce personnalisée que AdLoader doit demander. Chaque format d'annonce native personnalisé est associé à une valeur d'ID de format. Ce paramètre indique le format que votre application souhaite obtenir avec AdLoader.
  • Un Action<CustomNativeAd, string> facultatif pouvant être appelé lorsque l'utilisateur clique sur l'annonce.

Les annonces natives personnalisées sont chargées via la classe AdLoader, qui possède sa propre classe AdLoader.Builder pour la personnaliser lors de sa création. La méthode ForCustomNativeAd() configure AdLoader pour gérer les annonces natives.

void LoadCustomNativeAd()
{
    AdLoader adLoader = new AdLoader.Builder("/6499/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 formats personnalisés d'annonces natives, ForCustomNativeAd() peut être appelé plusieurs fois avec des ID de format différents afin de préparer le chargeur d'annonces pour plusieurs formats d'annonces natives personnalisés possibles.

Événements d'annonces natives personnalisés

La classe AdLoader fournit des événements d'annonce de type EventHandler pour vous informer d'un cycle de vie personnalisé d'une annonce native. L'exemple ci-dessous montre comment s'inscrire à des événements d'annonces natives personnalisés sur un chargeur d'annonces:

private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

La méthode HandleCustomNativeAdLoaded() contient un paramètre CustomNativeAdEventArgs. L'annonce native personnalisée chargée est accessible via ce paramètre d'événement, comme indiqué ci-dessous:

void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
    this.customNativeAd = args.nativeAd;
}

La méthode HandleCustomNativeAdFailedToLoad() contient un paramètre AdFailedToLoadEventArgs. Vous pouvez accéder au message d'erreur en appelant la méthode GetMessage sur le champ LoadAdError, comme indiqué ci-dessous:

void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    string message = args.LoadAdError.GetMessage();
    Debug.Log("Ad Loader fail event received with message: " + message);
}

Formats personnalisés d'annonces natives

Les annonces natives personnalisées sont compatibles avec un nombre illimité d'assets image et texte définis par l'utilisateur. Ces éléments sont accessibles via la classe CustomNativeAd, qui fournit des méthodes GetTexture2D() et GetText() qui acceptent l'ID de variable d'un champ de format comme paramètre.

Voici un exemple d'implémentation qui accède aux éléments d'une annonce native personnalisée:

private bool adLoaded;
private Texture2D mainImageTexture;
private string headline;
private CustomNativeAd customNativeAd;
...

void Update()
{
    if(adLoaded)
    {
        mainImageTexture = customNativeAd.GetTexture2D("MainImage");
        headline = customNativeAd.GetText("Headline");
        adLoaded = false;
    }
}
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
    customNativeAd = args.nativeAd;
    adLoaded = true;
    ...
}

Gérer les impressions et les clics des annonces natives personnalisées

Avec les annonces natives personnalisées, votre application est chargée d'enregistrer les impressions et de signaler les événements de clic au SDK.

Enregistrer des impressions

Pour enregistrer une impression pour une annonce personnalisée, appelez la méthode RecordImpression() sur la propriété CustomNativeAd correspondante:

customNativeAd.RecordImpression();

Signaler les clics

Pour signaler au SDK qu'un clic a été effectué sur un asset, appelez la méthode PerformClick() sur le CustomNativeAd correspondant et transmettez le nom de l'asset sur lequel l'utilisateur a cliqué. Par exemple, si vous disposez d'un asset au format personnalisé appelé "MainImage" et que vous souhaitez signaler un clic sur la texture correspondant à cet asset, votre code doit se présenter comme suit:

customNativeAd.PerformClick("MainImage");

Répondre aux actions de clics personnalisés

Lorsqu'un clic est comptabilisé sur une annonce personnalisée, les réponses possibles du SDK sont tentées dans l'ordre suivant:

  1. Localisez un résolveur de contenu pour l'URL du lien profond de l'annonce et démarrez la première.

  2. Ouvrez un navigateur et accédez à l'URL de destination traditionnelle de l'annonce.

Si vous souhaitez gérer vous-même l'action de clic de vos formats personnalisés d'annonces natives au lieu de rediriger l'utilisateur vers un lien profond ou un navigateur Web, fournissez un Action<CustomNativeAd, string> facultatif dans la méthode AdLoader.Builder.ForCustomNativeAd(). En définissant cette action de clic personnalisée, vous remplacez le comportement de clic du SDK. Voici un exemple qui utilise une action de clic personnalisée pour enregistrer un clic pour un élément donné:

private void LoadCustomNativeAd()
{
    AdLoader adLoader = new AdLoader.Builder("/6499/example/native")
            .ForCustomNativeAd("10063170", HandleCustomNativeAdClicked)
            .Build();
    adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
    adLoader.LoadAd(createAdRequest());
}

private void HandleCustomNativeAdClicked(CustomNativeAd customNativeAd, string assetName)
{
    Debug.Log("Custom Native ad asset with name " + assetName + " was clicked.");
}