Audience Network ti consente di monetizzare le tue app per Android con le inserzioni di Facebook. Un'inserzione interstitial è un'inserzione a schermo intero che puoi mostrare nella tua app. Di solito le inserzioni interstitial vengono mostrate quando c'è una transizione nella tua app. Ad esempio, dopo aver terminato un livello in un gioco o dopo aver caricato una storia in un'app di notizie.
Prima di proseguire, assicurati di aver consultato le guide Primi passi di Audience Network e Primi passi su Android.
Questo metodo è stato aggiunto nell'SDK Android Audience Network versione 5.1.
L'inizializzazione esplicita dell'SDK Audience Network per Android è obbligatoria a partire dalla versione 5.3.0. Consulta questo documento per informazioni su come inizializzare l'SDK Audience Network per Android.
Prima di creare un oggetto pubblicitario e caricare le inserzioni, devi inizializzare l'SDK di Audience Network. È consigliabile eseguire questa operazione all'avvio dell'app.
public class YourApplication extends Application {
...
@Override
public void onCreate() {
super.onCreate();
// Initialize the Audience Network SDK
AudienceNetworkAds.initialize(this);
}
...
}Aggiungi il codice di seguito nella parte superiore della tua attività per importare l'SDK Facebook Ads:
import com.facebook.ads.*;
Inizializza l'InterstitialAd.
private InterstitialAd interstitialAd;
@Override
public void onCreate(Bundle savedInstanceState) {
...
// Instantiate an InterstitialAd object.
// NOTE: the placement ID will eventually identify this as your App, you can ignore it for
// now, while you are testing and replace it later when you have signed up.
// While you are using this temporary code you will only get test ads and if you release
// your code like this to the Google Play your users will not receive ads (you will get a no fill error).
interstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID");
... InterstitialAdListener, carica l'inserzione e mostrala subito dopo che è stata caricata correttamente.public class InterstitialAdActivity extends Activity {
private final String TAG = InterstitialAdActivity.class.getSimpleName();
private InterstitialAd interstitialAd;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Instantiate an InterstitialAd object.
// NOTE: the placement ID will eventually identify this as your App, you can ignore it for
// now, while you are testing and replace it later when you have signed up.
// While you are using this temporary code you will only get test ads and if you release
// your code like this to the Google Play your users will not receive ads (you will get a no fill error).
interstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID");
// Create listeners for the Interstitial Ad
InterstitialAdListener interstitialAdListener = new InterstitialAdListener() {
@Override
public void onInterstitialDisplayed(Ad ad) {
// Interstitial ad displayed callback
Log.e(TAG, "Interstitial ad displayed.");
}
@Override
public void onInterstitialDismissed(Ad ad) {
// Interstitial dismissed callback
Log.e(TAG, "Interstitial ad dismissed.");
}
@Override
public void onError(Ad ad, AdError adError) {
// Ad error callback
Log.e(TAG, "Interstitial ad failed to load: " + adError.getErrorMessage());
}
@Override
public void onAdLoaded(Ad ad) {
// Interstitial ad is loaded and ready to be displayed
Log.d(TAG, "Interstitial ad is loaded and ready to be displayed!");
// Show the ad
interstitialAd.show();
}
@Override
public void onAdClicked(Ad ad) {
// Ad clicked callback
Log.d(TAG, "Interstitial ad clicked!");
}
@Override
public void onLoggingImpression(Ad ad) {
// Ad impression logged callback
// Please refer to Monetization Manager or Reporting API for final impression numbers
Log.d(TAG, "Interstitial ad impression logged!");
}
};
// For auto play video ads, it's recommended to load the ad
// at least 30 seconds before it is shown
interstitialAd.loadAd(
interstitialAd.buildLoadAdConfig()
.withAdListener(interstitialAdListener)
.build());
}
}Le inserzioni interstitial hanno creatività di dimensioni maggiori, quindi una buona pratica è chiamare loadAd(... ) in anticipo e poi chiamare show() al momento opportuno.
In caso di mancata visualizzazione dell'inserzione subito dopo che è stata caricata, lo sviluppatore è responsabile di controllare se l'inserzione è stata o meno invalidata. Una volta caricata correttamente, l'inserzione sarà valida per 60 minuti. Non riceverai alcun pagamento se mostri un'inserzione invalidata.
Prendi spunto dal codice seguente, ma non copiarlo nel progetto poiché è solo un esempio:
public class InterstitialAdActivity extends Activity {
private InterstitialAd interstitialAd ;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Instantiate an InterstitialAd object.
// NOTE: the placement ID will eventually identify this as your App, you can ignore it for
// now, while you are testing and replace it later when you have signed up.
// While you are using this temporary code you will only get test ads and if you release
// your code like this to the Google Play your users will not receive ads (you will get a no fill error).
interstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID");
InterstitialAdListener interstitialAdListener = new InterstitialAdListener() {
...
};
// load the ad
interstitialAd.loadAd(
interstitialAd.buildLoadAdConfig()
.withAdListener(interstitialAdListener)
.build());
}
private void showAdWithDelay() {
/**
* Here is an example for displaying the ad with delay;
* Please do not copy the Handler into your project
*/
// Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// Check if interstitialAd has been loaded successfully
if(interstitialAd == null || !interstitialAd.isAdLoaded()) {
return;
}
// Check if ad is already expired or invalidated, and do not show ad if that is the case. You will not get paid to show an invalidated ad.
if(interstitialAd.isAdInvalidated()) {
return;
}
// Show the ad
interstitialAd.show();
}
}, 1000 * 60 * 15); // Show the ad after 15 minutes
}
}Infine, aggiungi il codice di seguito alla funzione onDestroy() della tua attività per rilasciare le risorse utilizzate da InterstitialAd:
@Override
protected void onDestroy() {
if (interstitialAd != null) {
interstitialAd.destroy();
}
super.onDestroy();
}Se usi l'emulatore Google Android predefinito, aggiungi la riga di codice seguente prima di caricare un'inserzione di prova:AdSettings.addTestDevice("HASHED ID");.
Usa l'ID con hash che viene visualizzato nel logcat alla prima richiesta di caricamento di un'inserzione sul dispositivo.
Genymotion e i dispositivi fisici non richiedono questo passaggio. Se desideri eseguire il test con inserzioni reali, consulta la nostra guida ai test.
Avvia la tua app, dovresti vedere comparire un'inserzione interstitial:

Le inserzioni video in Audience Network richiedono l'abilitazione del rendering con accelerazione hardware, in caso contrario potresti visualizzare una schermata nera nelle visualizzazioni del video. Elementi a cui si applica
L'accelerazione hardware è abilitata per impostazione predefinita se il livello dell'API di destinazione è maggiore di o uguale a 14 (Ice Cream Sandwich, Android 4.0.1), ma puoi anche abilitare questa funzione in modo esplicito al livello dell'app o dell'attività.
Nel file manifest di Android, aggiungi l'attributo seguente al tag <application> per abilitare l'accelerazione hardware per tutta la tua app:
<application android:hardwareAccelerated="true" ...>
Se vuoi abilitare la funzione solo per attività specifiche nella tua app, puoi aggiungere la funzione seguente al tag <activity> nel tuo file manifest di Android. Nell'esempio seguente, l'accelerazione hardware viene abilitata per l'elemento AudienceNetworkActivity, usato per il rendering delle inserzioni interstitial e dei video con premio:
<activity android:name="com.facebook.ads.AudienceNetworkActivity" android:hardwareAccelerated="true" .../>
Codici di esempio pertinenti sia in Swift che in Objective-C sono disponibili sul nostro repository di app di esempio di GitHub
Testa l'integrazione delle inserzioni con la tua app.
Non appena riceviamo una richiesta per un'inserzione dalla tua app o dal tuo sito web, la sottoporremo ad analisi per verificare che rispetti le Normative di Audience Network e gli Standard della community di Facebook