Formats d'annonces natives personnalisés

Les éditeurs Ad Manager peuvent créer leurs propres formats d'annonces natives en définissant des listes personnalisées de composants. Ces formats sont appelés formats d'annonces natives personnalisés et peuvent être utilisés avec des annonces réservées. 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 le AdLoader doit demander. Chaque format d'annonce native personnalisée est associé à une valeur d'ID de format. Ce paramètre indique le format dans lequel votre application souhaite que AdLoader soit demandé.
  • Action<CustomNativeAd, string> facultatif à appeler 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 la création. La méthode ForCustomNativeAd() configure AdLoader pour gérer les annonces natives.

void LoadCustomNativeAd()
{
    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 formats d'annonces natives personnalisées, ForCustomNativeAd() peut être appelé plusieurs fois avec différents ID de format afin de préparer le chargeur d'annonces pour plusieurs formats d'annonces natives personnalisées possibles.

Événements d'annonces natives personnalisés

La classe AdLoader fournit des événements d'annonce de type EventHandler pour vous informer du cycle de vie d'une annonce native personnalisée. 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 qui a été 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);
}

Afficher des formats personnalisés d'annonces natives

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

Voici un exemple d'implémentation qui accède aux composants 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 les impressions

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

customNativeAd.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 CustomNativeAd correspondant et transmettez le nom de l'élément sur lequel l'utilisateur a cliqué. Par exemple, si vous aviez un composant au format personnalisé appelé "MainImage" et que vous souhaitiez signaler un clic sur la texture correspondant à ce composant, votre code se présenterait comme suit :

customNativeAd.PerformClick("MainImage");

Répondre aux actions de clic personnalisées

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

  1. Localisez un résolveur de contenu pour l'URL de lien profond de l'annonce et démarrez le premier qui se résout.

  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 pour vos formats d'annonces natives personnalisés 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("/21775744923/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.");
}