Dưới đây là một số cách tốt nhất để tích hợp nhằm giúp nhà phát triển triển khai trên Android. Những bí quyết và trường hợp mã hóa này sẽ giúp đội ngũ của bạn hiểu rõ hơn về Audience Network SDK của chúng tôi, tăng hiệu quả cho quy trình tích hợp và luôn cập nhật giải pháp của bạn sau khi ra mắt.
loadAd
khi quảng cáo bị bỏ qua hoặc quá trình tải quảng cáo gặp phải lỗi, ngoại trừ quảng cáo biểu ngữ.Ngay cả khi bạn nhận được thông báo về việc bỏ qua quảng cáo hoặc lỗi khi gọi lại, hãy đảm bảo bạn thiết lập Số lần thử lại tối đa để tránh thử lại vô thời hạn. onError(Ad, AdError)
sẽ được gọi bất kể vấn đề gây ra lỗi tải quảng cáo là gì. Ví dụ: trong trường hợp "Không có Internet", bạn sẽ phải dừng tải quảng cáo khi đạt đến Số lần thử lại tối đa.
Trong Audience Network SDK, đối với bất kỳ loại quảng cáo nào ngoại trừ quảng cáo biểu ngữ, bạn nên cẩn thận khi gọi loadAd
. Bạn tuyệt đối không nên gọi loadAd
trong khi quảng cáo đang hiển thị. Cách làm tốt nhất là triển khai AdListener
để nhận được thông báo bất cứ khi nào quảng cáo bị bỏ qua, đã hoàn tất, đã đóng hoặc gặp lỗi. Nhờ vậy, bạn có thể gọi lại loadAd
đúng cách và không gây ra sự cố nào.
loadAd
trong Lệnh gọi lại onInterstitialDismissed
.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
cho NativeAd
.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
trong một số lệnh gọi lại trên Android - ví dụ như lệnh gọi lại onResume()
hoặc onStart()
- có thể khiến gọi loadAd
liên tục mà không bỏ qua hay giải phóng quảng cáo gần đây nhất trong bộ nhớ.@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
vô thời hạn trong lệnh gọi lại onError. Dưới đây là ví dụ về trường hợp bạn nên tránh. Trong trường hợp "Không có Internet", loadAd
sẽ được gọi nhiều lần, cuối cùng sẽ khiến ứng dụng của bạn gặp lỗi.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()); ... }
Thử nghiệm tích hợp quảng cáo với ứng dụng của bạn
Gửi ứng dụng để xét duyệt.
Ngay sau khi nhận được yêu cầu về quảng cáo từ ứng dụng hoặc trang web của bạn, chúng tôi sẽ xét duyệt quảng cáo đó để đảm bảo tuân thủ các chính sách của Audience Network và các tiêu chuẩn cộng đồng của Facebook. Tìm hiểu thêm về quá trình xét duyệt của chúng tôi.
Tài nguyên khác |
Hướng dẫn bắt đầuHướng dẫn kỹ thuật để bắt đầu với Audience Network | Tài liệu tham khảo về APITài liệu tham khảo về Facebook SDK dành cho iOS |