Hier findest du einige Best Practices für die Implementierung der Integration für Android. Diese Tipps und Szenarien helfen dir und deinem Team, das Audience Network-SDK besser zu verstehen, die Integration effektiver zu gestalten und deine Lösung nach dem Launch weiter zu aktualisieren.
loadAd
nur erneut auf, wenn die Werbeanzeige abgebrochen wurde oder beim Laden ein Fehler auftritt, mit Ausnahme von Banner Ads.Auch wenn du über eine abgebrochene Anzeige oder einen Rückruffehler informiert wirst, solltest du eine maximale Anzahl an Wiederholungen verwenden, um Endlosschleifen zu vermeiden. onError(Ad, AdError)
wird immer aufgerufen, egal welcher Fehler beim Laden der Werbeanzeige aufgetreten ist. Für den Fall Kein Internet ist es beispielsweise sinnvoll, das Laden der Werbeanzeige nach Erreichen der maximalen Anzahl an Wiederholungen einzustellen.
Im Audience Network-SDK solltest du loadAd
für alle Arten von Werbeanzeigen mit Ausnahme von Banner Ads mit Bedacht aufrufen. Rufe loadAd
niemals auf, während eine Werbung angezeigt wird. Implementiere nach Möglichkeit AdListener
, um benachrichtigt zu werden, wenn eine Werbeanzeige abgebrochen, abgeschlossen oder geschlossen wurde oder ein Fehler aufgetreten ist. In diesem Fall kannst du loadAd
problemlos neu aufrufen.
loadAd
im onInterstitialDismissed
-Rückruf auf.private InterstitialAd mInterstitialAd; private static final MAX_NUMBER_OF_RETRIES = 3; private boolean shouldLoadAd = true; private int retryCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onCreate super.onCreate(savedInstanceState); ... mInterstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID"); InterstitialAdListener interstitialAdListener = new InterstitialAdListener() { ... @Override public void onInterstitialDismissed(Ad ad) { // Interstitial dismissed callback if (shouldLoadAd) { /* Change shouldLoadAd value to false, or a new interstitial ad will show immediately when previous interstitial ad gets dismissed. */ shouldLoadAd = false; mInterstitialAd.loadAd(); } } @Override public void onError(Ad ad, AdError adError) { // Ad error callback // Stop retrying when it reaches to MAX_NUMBER_OF_RETRIES if(retryCount < MainActivity.MAX_NUMBER_OF_RETRIES) { retryCount += 1; mInterstitialAd.loadAd(); } } ... }; mInterstitialAd.loadAd( mInterstitialAd.buildLoadAdConfig() .withAdListener(interstitialAdListener) .build()); ... }
onError
-Rückruf für NativeAd
auf.private static final MAX_NUMBER_OF_RETRIES = 3; private NativeAd mNativeAd; private int retryCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new AdListener() { ... @Override public void onError(Ad ad, AdError error) { // Ad error callback // Stop retrying when it reaches to MAX_NUMBER_OF_RETRIES if (retryCount < MainActivity.MAX_NUMBER_OF_RETRIES) { retryCount += 1; mNativeAd.loadAd(); } } ... }; mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .build()); ... }
private Button showNativeAdButton; @Override public void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... showNativeAdButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Create a native ad request with a placement ID nativeAd = new NativeAd(NativeAdSampleActivity.this, "YOUR_PLACEMENT_ID"); // Create a listener to get notified when the ad was loaded. NativeAdListener nativeAdListener = new AdListener() { ... } // Initiate a request to load an ad. nativeAd.loadAd( nativeAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .build()); } }); ... }
loadAd
sollte niemals in bestimmten Android-Rückrufen wie onResume()
oder onStart()
verwendet werden, da loadAd
andernfalls möglicherweise immer wieder aufgerufen wird, ohne die letzte Werbeanzeige im Speicher zu verwerfen oder freizugeben.@Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); ... } @Override protected void onResume() { super.onResume(); ... // DON'T DO THIS! mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(NativeAdSampleActivity.this) .build()); }
loadAd
im onError-Rückruf nicht unbegrenzt aufzurufen. Das folgende Beispiel zeigt, wie du es nie machen solltest. Im Fall „Kein Internet“ wird loadAd
immer wieder aufgerufen, wodurch die App irgendwann abstürzt.private NativeAd mNativeAd; private boolean shouldRetry = true; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new AdListener() { ... @Override public void onError(Ad ad, AdError error) { // Ad error callback // Remember to change shouldRetry to false, or DON'T implement like this! if (shouldRetry) { mNativeAd.loadAd(); } } ... }; mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(NativeAdSampleActivity.this) .build()); ... }
Teste die Anzeigenintegration in deiner App.
Reiche deine App zur Prüfung ein.
Sobald wir eine Werbeanzeigenanfrage von deiner App oder Webseite empfangen, prüfen wir, ob diese den Audience Network-Richtlinien und Facebook-Gemeinschaftsstandards entspricht. Erfahre mehr über unseren Überprüfungsprozess.
Weitere Ressourcen |
Leitfaden für erste SchritteTechnischer Leitfaden für die ersten Schritte mit Audience Network | API-ReferenzReferenz zum Facebook-SDK für iOS |