Android Issue : Violation of Interfering with Apps, Third-party Ads, or Device Functionality policy

เคยประสบปัญหาโดน Google Rejected App ด้วยเหตุผลว่า “Violation of Interfering with Apps, Third-party Ads, or Device Functionality policy” หรือ แบบง่ายๆคือ การแสดงโฆษณาขึ้นมาหลังจากที่ปิดแอปฯ หรือย่อแอปฯ หรือภายนอกแอปฯ นั่นเอง

ซึ่งจากที่ทดสอบมา สมมติว่าขณะที่แอปกำลังโหลดโฆษณา (Interstitial Ads) อยู่แล้วเราทำการกดปุ่ม Home เพื่อย่อแอปฯไปเบื้องหลัง ซึ่งในความเป็นจริงแล้วแอปฯ ก็ยังทำงานอยู่ในเบื้องหลัง (Background) นั่นเอง เพราะฉะนั้นเมื่อโหลดโฆษณาเสร็จ มันก็แสดงโฆษณาขึ้นมาเลย ทำให้ผิดกฎข้อนี้ไปโดยปริยาย

วิธีการป้องกันเบื้องต้นคือ ถ้าเราตรวจสอบสถานะของแอปก่อนจะแสดงโฆษณา ( mInterstitial.show();) ได้เราก็จะไม่ผิดกฎ วิธีการแบบง่ายโดยไม่ต้องลงไลบรารีเพิ่มคือ การเรียกใช้ฟังก์ชัน Callback ของ Android

ในที่นี้เราจะเรียกใช้ onPause() ฟังก์ชันนี้จะถูกเรียกอัตโนมัติเมื่อแอปฯเปลี่ยนสถานะจาก foreground ดังนี้

@Override
protected void onPause() {
   super.onPause();
   boolean isAppPause = true;
}

จากตัวอย่างใน Activity ที่เรียก Interstitial Ads เราจะกำหนดค่า “isAppPause” เป็น true เมื่อสถานะแอปฯ​ onPause. ดังนั้น ก่อนที่เราจะทำการแสดงโฆษณา เราเช็คได้ดังนี้

@Override
public void onAdLoaded() {
     if (!isAppPause) mInterstitial.show();
     else {
         // do something if not show ads // ;
     }
}

You may also like...