Ajout de publicités interstitielles à une application Unity

L’Audience Network vous permet de monétiser vos applications Android et iOS avec des publicités Facebook. Les publicités interstitielles consistent en une expérience de plein écran utilisable aux points de transition dans le déroulement d’une application, par exemple entre les activités ou lors de pauses entre les différents niveaux d’un jeu. Le contenu créatif peut être constitué d’images, de vidéos ou de carrousels. Ce guide vous explique comment ajouter des publicités interstitielles à votre application.

Assurez-vous d’avoir lu le Guide de démarrage d’Audience Network et le Guide démarrage de Unity avant de commencer.

Étapes des publicités interstitielles

Étape 1 : créer un objet Pub interstitielle

Étape 2 : ajouter des évènements de rappel

Étape 3 : charger une publicité

Étape 4 : afficher la publicité

Étape 1 : créer un objet Pub interstitielle

Pour afficher une pub interstitielle, commencez par créer un objet InterstitialAd dans un script C# rattaché à un GameObject.

...
using AudienceNetwork;
...

public class InterstitialAdTest : MonoBehaviour
{
    ...
    private InterstitialAd interstitialAd;
    private bool isLoaded;
    ...

    public void LoadInterstitial()
    {
        this.interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID");
        this.interstitialAd.Register(this.gameObject);

        // Set delegates to get notified on changes or when the user interacts with the ad.
        this.interstitialAd.InterstitialAdDidLoad = (delegate() {
            Debug.Log("Interstitial ad loaded.");
            this.isLoaded = true;
        });
        interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) {
            Debug.Log("Interstitial ad failed to load with error: " + error);
        });
        interstitialAd.InterstitialAdWillLogImpression = (delegate() {
            Debug.Log("Interstitial ad logged impression.");
        });
        interstitialAd.InterstitialAdDidClick = (delegate() {
            Debug.Log("Interstitial ad clicked.");
        });

        this.interstitialAd.interstitialAdDidClose = (delegate() {
            Debug.Log("Interstitial ad did close.");
            if (this.interstitialAd != null) {
                this.interstitialAd.Dispose();
            }
        });

        // Initiate the request to load the ad.
        this.interstitialAd.LoadAd();
    }
    ...
}

Le créateur d’une publicité InterstitialAd dispose des paramètres suivants :

  • placementId : l’ID de placement de l’Audience Network de cette unité de publicité interstitielle.

Étape 2 : ajouter des évènements de rappel

Vous pouvez ensuite insérer quelques rappels pour vous inscrire aux évènements du cycle de vie de la publicité. Tenez-vous informé·e de ces évènements en inscrivant un·e délégué·e chargé·e de l’évènement, comme indiqué dans l’exemple ci-dessous :

...
// Set delegates to get notified on changes or when the user interacts with the ad.
this.interstitialAd.InterstitialAdDidLoad = (delegate() {
    Debug.Log("Interstitial ad loaded.");
    this.isLoaded = true;
});
interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) {
    Debug.Log("Interstitial ad failed to load with error: " + error);
});
interstitialAd.InterstitialAdWillLogImpression = (delegate() {
    Debug.Log("Interstitial ad logged impression.");
});
interstitialAd.InterstitialAdDidClick = (delegate() {
    Debug.Log("Interstitial ad clicked.");
});

this.interstitialAd.interstitialAdDidClose = (delegate() {
    Debug.Log("Interstitial ad did close.");
    if (this.interstitialAd != null) {
        this.interstitialAd.Dispose();
    }
});
...

Rappel pour l’extrait d’activité publicitaire détruite dans Unity pour Android

Ce rappel ne s’applique qu’à Android.

Les jeux Unity pour Android ne prennent actuellement en charge que l’activité Unity principale pour l’Activity du launchMode d’une singleTask. Reportez-vous au document Unity pour le manifeste Android et au document Android pour l’activité.

Comme nous utilisons une Activity pour afficher les publicités Interstitial et les Rewarded Video, l’activité publicitaire risque d’être détruite sans avoir été correctement fermée lorsqu’un utilisateur met une app en tâche de fond, puis la relance en appuyant sur l’icône plutôt que sur le sélecteur d’applications. Vous pouvez utiliser les rappels suivants et vérifier si la publicité a été fermée par l’utilisateur :

Publicité interstitielle :

this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* * Only relevant to Android. * Ce rappel ne se déclenche que si l’activité interstitielle a * été détruite sans avoir été fermée correctement. Cela peut se produire si une * app avec launchMode:singleTask (comme un jeu Unity, par exemple) est mise * en tâche de fond, puis relancée par un appui sur l’icône. */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif 

Vidéo avec récompense :

this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* * Ne s’applique qu’à Android. * Ce rappel ne se déclenche que si l’activité de vidéo avec récompense a * été détruite sans avoir été fermée correctement. Cela peut se produire si une * app avec launchMode:singleTask (comme un jeu Unity, par exemple) est mise en * tâche de fond, puis relancée par un appui sur l’icône. */ this.rewardedVideoAd.rewardedVideoAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Rewarded video activity destroyed without being closed first."); Debug.Log("Game should resume. User should not get a reward."); } }); #endif 

Étape 3 : charger une publicité

Une fois la publicité InterstitialAd instanciée, l’étape suivante consiste à la charger. Pour cela, utilisez la méthode loadAd() dans la classe InterstitialAd.

Selon l’exemple ci-dessus, voici comment charger une publicité :

...
this.interstitialAd.LoadAd();
...

Étape 4 : afficher la publicité

Enfin, une fois la publicité interstitielle chargée, vous pouvez appeler la méthode Show pour afficher cette publicité. Vous pouvez, par exemple, créer une fonction de ShowInterstitial et l’appeler au moment d’afficher la publicité interstitielle :

// Show button
public void ShowInterstitial()
{
    if (this.isLoaded) {
        this.interstitialAd.Show();
        this.isLoaded = false;

    } else {
        Debug.Log("Interstitial Ad not loaded!");
    }
}

Étapes suivantes

Suivez nos guides sur l’intégration des différents formats publicitaires à votre app Unity :

Lorsque votre app est prête pour la mise en ligne et la monétisation, envoyez-la pour faire vérifier sa conformité aux règles de l’Audience Network et aux standards de la communauté Facebook.