ต่อไปนี้เป็นหลักปฏิบัติที่ดีที่สุดของการผสานการทำงานบางส่วนเพื่อนำไปใช้สำหรับผู้พัฒนาบน Android เคล็ดลับและสถานการณ์การเขียนโค้ดเหล่านี้จะช่วยให้ทีมของคุณเข้าใจ SDK ของ Audience Network ของเราได้ดียิ่งขึ้น ดำเนินการผสานการทำงานได้อย่างมีประสิทธิภาพมากขึ้น และอัพเดตโซลูชั่นของคุณให้ทันสมัยอยู่เสมอหลังจากเริ่มใช้งาน
loadAd
อีกครั้งเฉพาะเมื่อโฆษณาถูกปิดกลางคันหรือเกิดข้อผิดพลาดในการโหลดโฆษณาเท่านั้น ยกเว้นในกรณีของโฆษณาแบบแบนเนอร์แม้ว่าคุณจะได้รับการแจ้งเตือนว่าโฆษณาถูกปิดกลางคันหรือเกิดข้อผิดพลาดในการเรียกกลับ คุณก็ต้องตรวจสอบให้แน่ใจว่าได้กำหนดจำนวนการลองใหม่สูงสุด เพื่อหลีกเลี่ยงการลองใหม่อย่างไม่รู้จบ โดยระบบจะเรียกใช้คำสั่ง onError(Ad, AdError)
ไม่ว่าการโหลดโฆษณาที่ล้มเหลวจะเกิดจากสาเหตุใดก็ตาม ตัวอย่างเช่น ในกรณีที่ "ไม่มีอินเทอร์เน็ต" คุณควรจะหยุดโหลดโฆษณาเมื่อมีการโหลดถึงจำนวนการลองใหม่สูงสุด
ใน Audience Network SDK สำหรับโฆษณาทุกประเภทยกเว้นโฆษณาแบบแบนเนอร์ คุณควรใช้ความระมัดระวังเมื่อเรียกใช้คำสั่ง loadAd
คุณไม่ควรเรียกใช้คำสั่ง loadAd
ในขณะที่โฆษณากำลังแสดงอยู่ หลักปฏิบัติที่ดีที่สุดคือ ให้ใช้คำสั่ง AdListener
เพื่อรับการแจ้งเตือนเมื่อใดก็ตามที่โฆษณาถูกปิดกลางคัน แสดงจนจบ ถูกปิดหลังจบ หรือเกิดข้อผิดพลาด ซึ่งจะทำให้คุณสามารถเรียกใช้คำสั่ง loadAd
อีกครั้งโดยไม่ขัดกับข้อกำหนดและไม่ก่อให้เกิดปัญหาตามมา
loadAd
ในการเรียกกลับ 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
สำหรับ 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
ในการเรียกกลับสำหรับ Android บางรายการ เช่นการเรียกกลับ onResume()
หรือ onStart()
ซึ่งอาจส่งผลให้มีการเรียกใช้คำสั่ง loadAd
ซ้ำๆ โดยไม่ยกเลิกหรือปล่อยโฆษณาล่าสุดในหน่วยความจำ@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
อย่างไม่รู้จบในการเรียกกลับ onError ด้านล่างนี้เป็นตัวอย่างของสิ่งที่คุณไม่ควรทำ ในกรณีที่ "ไม่มีอินเทอร์เน็ต" ระบบจะเรียกใช้คำสั่ง loadAd
ซ้ำๆ ซึ่งจะทำให้แอพของคุณขัดข้องในที่สุด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()); ... }
ทดสอบการผสานการทำงานของโฆษณาทดสอบกับแอพของคุณ
ส่งแอพของคุณเพื่อตรวจพิจารณา
ทันทีที่เราได้รับคำร้องขอโฆษณาจากแอพหรือเว็บไซต์ของคุณ เราจะตรวจสอบเพื่อให้แน่ใจว่าสอดคล้องกับ นโยบาย Audience Network และ มาตรฐานชุมชนของ Facebook เรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการตรวจพิจารณาของเรา
แหล่งข้อมูลเพิ่มเติม |
คู่มือการเริ่มต้นใช้งานคู่มือเชิงเทคนิคในการเริ่มต้นใช้งาน Audience Network | ข้อมูลอ้างอิงเกี่ยวกับ APIข้อมูลอ้างอิง Facebook SDK สำหรับ iOS |