Adaptateurs personnalisés Android
Les adaptateurs personnalisés permettent à notre SDK d’appeler un autre SDK installé sur le même appareil, généralement à des fins de médiation. Ce document décrit le code que vous devez écrire pour créer vos propres adaptateurs personnalisés.
Remarque
Les interfaces décrites ici sont exactement celles que nous avons utilisées pour implémenter nos propres adaptateurs de médiation.
Bannières
Pour afficher des bannières publicitaires médiatées, vous devez implémenter l’interface MediatedBannerAdView
, qui se compose de deux méthodes : requestAd
et destroy
.
Vous êtes également responsable de l’implémentation des rappels qui traduisent les événements du KIT de développement logiciel (SDK) médiatté en événements compris par notre KIT de développement logiciel (SDK) mobile. Pour plus d’informations, consultez l’exemple d’implémentation ci-dessous :
/**
* The custom adaptor for banners must implement our mobile SDK
* interface `MediatedBannerAdView`. In this example, the class also
* implements the `AdListener` interface from the mediated SDK,
* in order to handle the events from the mediated SDK.
*/
public class TestMediatedBanner implements MediatedBannerAdView {
MediatedBannerAdViewController controller = null;
AdView bannerAd;
@Override
public View requestAd(MediatedBannerAdViewController mediatedBannerAdViewController,
Activity activity, String parameter,
String adId, int width, int height,
TargetingParameters targetingParameters) {
// Here is where you are responsible for (1) instantiating the mediated SDK,
// (2) building a request object using the elements of `targetingParameters`.
// Note that you are responsible for ensuring that the targeting
// parameters can be understood by the mediated SDK. We also assume that (3)
// you create and return a view in the mediated SDK that you can use to make
// the ad request.
// Next, we tell the mediated SDK's ad view to request a banner ad from their ad
// server. If it works, we call the `onAdLoaded` method on our controller to
// notify it that we've successfully loaded an ad.
controller = mediatedBannerAdViewController;
bannerAd = new AdView(activity, new AdSize(width, height));
bannerAd.setAdId(adId);
// You are responsible for creating a mapping between the events
// emitted by the mediated SDK and those understood by our mobile SDK.
bannerAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded(AdView adView) {
controller.onAdLoaded();
}
@Override
public void onAdRequestFailed(AdView adView) {
// If available, map the mediated SDK's failure code
// to the appropriate Xandr `ResultCode`. In this example
// we just pass in ResultCode.UNABLE_TO_FILL.
controller.onAdFailed(ResultCode.UNABLE_TO_FILL);
}
@Override
public void onAdExpanded(AdView adView) {
controller.onAdExpanded();
}
@Override
public void onAdCollapsed(AdView adView) {
controller.onAdCollapsed();
}
@Override
public void onAdClicked(AdView adView) {
controller.onAdClicked();
}
});
// create a `request` for the mediated SDK from targeting parameters.
bannerAd.loadAd(request);
return bannerAd;
}
@Override
public void destroy() {
// Called when the mediated SDK's view is no longer being shown.
bannerAd.destroy();
}
}
Le Kit de développement logiciel (SDK) mobile de Xandr appelle la requestAd
méthode lorsque le SDK tiers doit commencer à demander une publicité.
requestAd
retourne une vue qui contient la publicité à partir du KIT de développement logiciel (SDK) tiers ; il prend les paramètres suivants :
-
mBC
MediatedBannerAdViewController
: par le biais duquel l’adaptateur doit envoyer des événements à notre SDK. -
activity
:Activity
contexte par lequel l’adaptateur peut instancier son objet de vue. -
parameter
: chaîne opaque facultative transmise à partir du serveur, qui peut être utilisée pour définir des paramètres spécifiques au SDK, tels que des informations de ciblage supplémentaires. L’encodage du contenu de cette chaîne est entièrement à la charge de l’implémentation de l’adaptateur sdk tiers. -
uid
: ID réseau de cet appel publicitaire. Cet ID est opaque pour notre KIT de développement logiciel (SDK) mobile ; le contenu de l’ID et son encodage sont à la charge de l’implémentation du KIT de développement logiciel (SDK) tiers. En d’autres termes, vous devez le remplir avec une valeur comprise par le serveur publicitaire du SDK tiers. -
width
: largeur de la publication en pixels telle que définie dans l’objetMediatedBannerAdView
qui a lancé cet appel. -
height
: hauteur de la publication en pixels, telle que définie dans l’objetMediatedBannerAdView
qui a lancé cet appel. -
targetingParameters
ObjetTargetingParameters
contenant des informations de ciblage qui ont été transmises à notre KIT de développement logiciel (SDK) mobile, telles que l’âge, le sexe et l’emplacement.
Interludes
Les interstitiels doivent être prérécupérés par le KIT de développement logiciel (SDK) médiatisé avant d’être affichés à l’utilisateur. Comme avec les bannières, vous devez implémenter requestAd
. Vous devez également implémenter isReady
pour indiquer à l’utilisateur si une annonce est disponible, et show
, qui affiche une annonce.
Vous êtes responsable de l’implémentation des rappels qui traduisent les événements du KIT de développement logiciel (SDK) en événements compris par notre SDK. Pour plus d’informations, consultez l’exemple d’implémentation ci-dessous :
/**
* The custom adaptor for interstitials must implement our mobile SDK
* interface `MediatedInterstitialAdView`. In this example, the class also
* implements the `AdListener` interface from the mediated SDK,
* in order to handle the events from the mediated SDK.
*/
public class TestMediatedInterstitial implements MediatedInterstitialAdView {
MediatedInterstitialAdViewController controller = null;
InterstitialAd interstitialAd;
@Override
public void requestAd(MediatedInterstitialAdViewController mediatedInterstitialAdViewController,
Activity activity, String parameter,
String adId, TargetingParameters targetingParameters) {
// Here is where you would be responsible for (1) instantiating the mediated SDK,
// (2) building a request object using the elements of `targetingParameters`.
// Note that you are responsible for ensuring that the targeting
// parameters can be understood by the mediated SDK. We also assume that (3)
// you create and return a view in the mediated SDK that you can use to make
// the ad request.
// Next, we tell the mediated SDK's ad view to request an interstitial ad from
// their ad server. If it works, we call the `onAdLoaded` method on our
// controller to notify it that we've successfully loaded an ad.
controller = mediatedInterstitialAdViewController;
interstitialAd = new InterstitialAd(activity);
interstitialAd.setAdId(adId);
// You are responsible for creating a mapping between the events
// emitted by the mediated SDK and those understood by our mobile SDK.
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded(AdView adView) {
controller.onAdLoaded();
}
@Override
public void onAdRequestFailed(AdView adView) {
// If available, map the mediated SDK's failure code
// to ours. In this example we just pass in
// ResultCode.UNABLE_TO_FILL.
controller.onAdFailed(ResultCode.UNABLE_TO_FILL);
}
@Override
public void onAdExpanded(AdView adView) {
controller.onAdExpanded();
}
@Override
public void onAdCollapsed(AdView adView) {
controller.onAdCollapsed();
}
@Override
public void onAdClicked(AdView adView) {
controller.onAdClicked();
}
});
// create a `request` for the mediated SDK from targeting parameters.
interstitialAd.loadAd(request);
}
// Call when the mediated SDK should display the interstitial ad
@Override
public void show() {
interstitialAd.displayAd();
}
// Returns whether or not the mediated SDK has an interstitial ad
// fetched and ready to to be shown.
@Override
public boolean isReady() {
return interstitialAd.isAdReady();
}
@Override
public void destroy() {
// Called when the mediated SDK's view is no longer being shown.
interstitialAd.destroy();
}
}
L’adaptateur doit appeler requestAd
lorsque le KIT de développement logiciel (SDK) tiers doit commencer à demander une publicité. Il accepte les arguments suivants :
-
mIC
MediatedInterstitialAdViewController
: par le biais duquel l’adaptateur doit envoyer des événements à notre SDK. -
activity
:Activity
contexte par lequel l’adaptateur peut instancier son objet de vue. -
parameter
: chaîne opaque facultative transmise à partir du serveur, qui peut être utilisée pour définir des paramètres spécifiques au SDK, tels que des informations de ciblage supplémentaires. L’encodage du contenu de cette chaîne est entièrement à la charge de l’implémentation de l’adaptateur sdk tiers. -
uid
: ID réseau de cet appel publicitaire. Cet ID est opaque pour notre KIT de développement logiciel (SDK) ; le contenu de l’ID et son encodage sont à la charge de l’implémentation du KIT de développement logiciel (SDK) tiers. En d’autres termes, le paramètre doit être rempli avec des valeurs comprises par le serveur publicitaire du SDK tiers. -
targetingParameters
TargetingParameters
: objet contenant des informations de ciblage qui ont été passées à notre SDK mobile, telles que l’âge, le sexe et l’emplacement.
En plus de requestAd
, l’interface MediatedInterstitialAdView
vous oblige à implémenter les méthodes suivantes :
-
isReady
: notre SDK appelle cette méthode pour case activée si la vue d’interstitiel est prête lorsque l’utilisateur appelleInterstitialAdView.isReady
. -
show
: notre Kit de développement logiciel (SDK) appelle cette méthode pour afficher la vue interstitielle lorsque l’utilisateur a appeléInterstitialAdView.show
.
Rappels requis
Les rappels répertoriés ci-dessous doivent être implémentés par votre adaptateur personnalisé. Notez que ces rappels sont obligatoires, que l’annonce en question soit une bannière ou une bannière. Vous pouvez voir des exemples d’utilisation dans les exemples de code ci-dessus.
-
onAdLoaded
: appelé pour indiquer que la demande du KIT de développement logiciel (SDK) médiattée s’est terminée et a retourné une bannière avec succès. -
onAdFailed
: appelé pour indiquer que la demande du KIT de développement logiciel (SDK) n’a pas pu retourner une publicité valide.
Rappels facultatifs
Les rappels répertoriés ci-dessous doivent être implémentés dans des adaptateurs personnalisés pour les bannières et les interstitiels.
-
onAdClicked
: l’utilisateur a cliqué sur l’annonce. -
onAdExpanded
: l’annonce présente une vue modale. -
onAdCollapsed
: l’annonce ignore la vue modale.