Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit le processus de récupération des ressources publicitaires natives à afficher dans le Kit de développement logiciel (SDK) Audience Network de Facebook en procédant comme suit :
Vérifier que les kits SDK appropriés sont installés
Le Kit de développement logiciel (SDK) mobile et le package Xandr-FAN-Demand devront être installés. Pour en savoir plus sur les détails des versions, consultez notre page de publication. Dans la section dépendances du build.gradle de votre projet, ajoutez ces deux lignes :
dependencies {
implementation 'com.appnexus.opensdk:appnexus-sdk:[8,9)'
implementation 'com.appnexus.opensdk.csr:appnexus-facebook-csr:[8,9)'
}
Initialiser le KIT de développement logiciel (SDK) Audience Network de Facebook
Au début du cycle de vie de votre application, initialisez Audience Network comme suit :
AudienceNetworkAds.buildInitSettings(this).withInitListener(new AudienceNetworkAds.InitListener() {
@Override
public void onInitialized(AudienceNetworkAds.InitResult initResult) {
// do something, load ad or else
}
}).initialize();
Remarque
Pour garantir la réussite de l’implémentation d’une publicité native avec Audience Network votre vue native personnalisée, vous devez inclure MediaView pour la ressource main.
Create une disposition de bannière publicitaire native
Dans la disposition de activity_main.xml l’activité de votre application, ajoutez un conteneur pour votre publicité native. Ce conteneur doit être de type com.facebook.ads.NativeAdLayout, qui est un wrapper sur un FrameLayout. Ce wrapper fournit des fonctionnalités supplémentaires qui permettent au SDK Mobile d’afficher un mode natif Ad Reporting Flow par-dessus la publicité.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
...
<com.facebook.ads.NativeAdLayout
android:id="@+id/native_banner_ad_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
...
</RelativeLayout>
Cliquez ici pour afficher un exemple de code fourni par Facebook pour configurer des dispositions personnalisées de bannières publicitaires natives.
Create une demande d’annonce native et charger la publicité
Remarque
Conservez une référence à la demande jusqu’à ce que vous receviez une réponse.
Vérifiez le type de réponse retourné par .NativeAdRequest Si le type de réponse est FBNativeBannerAdResponse, castez la réponse initiale en et FBNativeBannerAdResponse appelez la inflateAndRegisterFB méthode . Pour les autres types d’annonces natives, appelez .inflateAndRegisterNonFB
NativeAdRequest request = new NativeAdRequest(MainActivity.this, "17823252");
request.setListener(new NativeAdRequestListener() {
@Override
public void onAdLoaded(NativeAdResponse response) {
Log.d("NativeBanner", "loaded");
MainActivity.this.response = response;
if (response instanceof FBNativeBannerAdResponse) {
FBNativeBannerAdResponse fbResponse = (FBNativeBannerAdResponse) response;
inflateAndRegisterFB(fbResponse);
} else {
inflateAndRegisterNonFB(response);
}
}
@Override
public void onAdFailed(ResultCode errorcode) {
Log.d("NativeBanner", "failed");
}
});
request.loadAd();
Gonfler et inscrire l’annonce native
Le processus de création de NativeAdRequest et de chargement de l’annonce utilise l’une des méthodes suivantes, en fonction de l’objet ad natif retourné dans la réponse :
inflateAndRegisterFBinflateAndRegisterNonFB
Ces méthodes sont identiques en fonction, à l’exception du processus d’inscription. Si l’objet retourné dans la réponse est un , FBNativeBannerAdResponse la réponse appelle la registerView méthode pour inscrire l’annonce. S’il ne s’agissait pas d’un FBNativeBannerAdResponse objet, la réponse appelle NativeAdSDK.registerTracking alors pour inscrire l’annonce.
inflateAndRegisterFB Exemple
Récupérez et affichez le texte de l’appel à l’action pour le bouton d’appel à l’action :
Button nativeAdCallToAction = adView.findViewById(R.id.native_ad_call_to_action);
nativeAdCallToAction.setText(fbResponse.getCallToAction());
Une fois le texte du bouton récupéré, inscrivez l’annonce native afin que l’action de clic et le suivi des impressions puissent être activés :
fbResponse.registerView(adView, nativeAdIconView, clickableViews, new NativeAdEventListener() {
@Override
public void onAdWasClicked() {
}
@Override
public void onAdWillLeaveApplication() {
}
@Override
public void onAdWasClicked(String clickUrl, String fallbackURL) {
}
});
inflateAndRegisterNonFB Exemple
Récupérez le texte d’appel à l’action à afficher sur le bouton d’appel à l’action et affichez ce texte :
Button nativeAdCallToAction = adView.findViewById(R.id.native_ad_call_to_action);
nativeAdCallToAction.setText(response.getCallToAction());
Une fois que le texte du bouton a été récupéré, inscrivez l’annonce native afin que l’action de clic et le suivi des impressions puissent être activés :
NativeAdSDK.registerTracking(response, adView, clickableViews, new NativeAdEventListener() {
@Override
public void onAdWasClicked() {
}
@Override
public void onAdWillLeaveApplication() {
}
@Override
public void onAdWasClicked(String clickUrl, String fallbackURL) {
}
});
Accéder à l’objet natif d’origine
Les éditeurs peuvent accéder à l’objet natif d’origine via la getNativeElements méthode :
nativeAdCallToAction.setText(fbResponse.getCallToAction());
nativeAdSocialContext.setText(((NativeAdBase)
response.getNativeElements().get(NativeAdResponse.NATIVE_ELEMENT_OBJECT)).getAdSocialContext());
Annuler l’inscription des vues
Lorsque l’application a fini d’afficher les annonces, vous devez annuler l’inscription des vues.
if (this.response != null) {
if (this.response instanceof FBNativeBannerAdResponse) {
FBNativeBannerAdResponse fbresponse = (FBNativeBannerAdResponse) response;
fbresponse.unregisterView();
this.response = null;
} else {
NativeAdSDK.unRegisterTracking(nativeAdView);
}
}
Exemple d’application
Xandr a fourni un exemple d’application sur notre dépôt Github.