🎉

admob広告IDは、androidmanifest.xml に直書きしなくても、リソース参照できる。

2021/09/04に公開

https://developers.google.com/admob/android/quick-start

googleご謹製のサンプルですら、Androidmanifest.xmlに直接書くように指示されてるが、android:valueなので、何時ものように文字列リソース参照ができる。

stringリソースをbuildtypeで切り替えれば、リリースビルドの時だけで、安全に本番広告IDを使うことが出来る。

        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="@string/admob_app_id" />

通常時は main が参照される。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="admob_app_id" translatable="false">ca-app-pub-3940256099942544~3347511713</string>
    <!-- https://developers.google.com/admob/android/banner?hl=ja -->
    <string name="admob_unit_id" translatable="false">ca-app-pub-3940256099942544/6300978111</string>
</resources>

buildtype=releaseで、release/**/admobの値が参照される。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="admob_app_id" translatable="false">ca-app-pub-****************~**********</string>
    <string name="admob_unit_id" translatable="false">ca-app-pub-****************/**********</string>
</resources>

なお、android-studioの Androidツリー表示では、有効でない側のファイルを隠してしまうので慌てないように。(小生は慌てた)

Discussion