Formats personnalisés d'annonces natives

Les éditeurs Ad Manager peuvent créer leurs propres formats d'annonces natives en définissant des listes personnalisées d'assets. Ces formats sont appelés formats d'annonces natives personnalisées et peuvent être utilisés avec les 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 AdLoader doit demander. Chaque format d'annonce native personnalisée est associé à une valeur d'ID de format. Ce paramètre indique le format que votre application souhaite que AdLoader demande.
  • 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 seul 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 à plusieurs formats d'annonces natives personnalisées possibles.

Événements d'annonces natives personnalisées

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 pour des événements d'annonces natives personnalisées sur un chargeur d'annonces:

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

La méthode HandleCustomNativeAdLoaded() contient un paramètre CustomNativeAdEventArgs. Vous pouvez accéder à l'annonce native personnalisée qui s'est chargée 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 d'annonces natives personnalisés

Les annonces natives personnalisées acceptent un nombre illimité d'assets image et texte définis par l'utilisateur. Ces composants sont accessibles via la classe CustomNativeAd, qui fournit les méthodes GetTexture2D() et GetText() qui utilisent l'ID de la 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 une annonce native personnalisée, 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 les 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 le clic a été effectué. Par exemple, si vous aviez un composant de votre format personnalisé appelé "MainImage" et que vous souhaitiez enregistrer un clic sur la texture qui lui correspond, votre code se présenterait comme suit:

customNativeAd.PerformClick("MainImage");

Répondre aux actions personnalisées de clic

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

  1. Recherchez un résolveur de contenu pour l'URL du lien profond de l'annonce et lancez le premier qui résout le problème.

  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ées 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 consigner un clic pour un composant 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.");
}