Android : What need in Android Manifest for Google Mobile Ads SDK v17.0.0 or higher
หลังจากที่ Google มีการพัฒนาปรับปรุงการแสดงโฆษณาอย่างต่อเนื่อง และได้มีการออกเวอร์ชันของ Mobile Ads SDK เรื่อยๆ แต่ทว่า ตั้งแต่ Google Mobile Ads SDK version 17.0.0 เป็นต้นไป มีการกำหนดให้เราระบุข้อมูลใน Android Manifest (AndroidManifest.xml) เพิ่มเป็นภาคบังคับ ไม่ปฏิบัติตามแล้วแอปปลิเคชันก็จะไม่สามารถเปิดได้ ซึ่งจะขึ้น Error Messages ดังตัวอย่าง
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:
***************************************************************** * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers * * should follow the instructions here: https://goo.gl/fQ2neu to add a valid * * App ID inside the AndroidManifest. Google Ad Manager publishers should * * follow instructions here: https://goo.gl/h17b6x. * *****************************************************************
เมื่อเข้าไปอ่านตามลิงค์ที่ทาง Google บอกมานั่นคือ เขาต้องการให้เราเพิ่มข้อมูลของ Google Application ID เข้าไปดังนี้
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="[ADMOB_APP_ID]"/>
</application>
</manifest>
และก่อนการเรียกโฆษณาจะต้องทำการ inititial SDK ด้วยคำสั่ง MobileAds.initialize ดังตัวอย่าง
package ...
import ...
import com.google.android.gms.ads.MobileAds;
public class MainActivity extends AppCompatActivity {
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");
}
...
}
ยังไม่จบเพียงเท่านี้ มีคำเตือนก่อนการเรียกโฆษณามาแสดง นั่นคือต้องกรอกแบบสอบถาม EU GDPR Consent form ด้วยสำหรับผู้ใช้ที่อยู่ในกลุ่ม the European Economic Area (EEA) ตามกฎหมายใหม่ของยุโรป นั่นเอง ดังรายละเอียดคำเตือน
Warning: Ads may be preloaded by the Mobile Ads SDK or mediation partner SDKs upon calling MobileAds.initialize()
. If you need to obtain consent from users in the European Economic Area (EEA), set any request-specific flags (such as tagForChildDirectedTreatment
or tag_for_under_age_of_consent
), or otherwise take action before loading ads, ensure you do so before initializing the Mobile Ads SDK.