👉 Google Play と Android の変更点に対応するためのアプリの準備 - Google AdMob ヘルプ
implementation com.google.android.gms:play-services-ads:x.y.z
20.4.0 (バージョン)
→ 広告IDの使用を継続するために自動的に権限が宣言されます。
20.5.0
→ オプトアウト済みユーザーのデータ収集と不正防止に対応するため、新しいアプリアセットIDに対応します。
20.6.0
→ tagForChildDirected(TFCD)または tagForUnderAgeOfConsent(TFUA)を通して子供向け取り扱いタグが付与された広告リクエストにおいては、広告IDが送信されないようにすることができます。
👉 Googleモバイル広告SDK | Android | Google Developers
現在、アプリで利用中のバージョンを build.gradle で確認してみたら、
com.google.android.gms:play-services-ads
がありません!
依存性を確認していく
./gradlew -q :app:androidDependencies
...
release
releaseCompileClasspath - Dependencies for compilation
...
+--- com.google.android.play:core:1.10.3@aar
+--- com.google.android.gms:play-services-analytics:18.0.1@aar
+--- com.google.android.gms:play-services-oss-licenses:17.0.0@aar
+--- com.google.android.gms:play-services-tagmanager-v4-impl:18.0.1@aar
+--- com.google.android.gms:play-services-analytics-impl:18.0.1@aar
+--- com.google.firebase:firebase-messaging-ktx:23.0.4@aar
+--- com.google.firebase:firebase-messaging:23.0.4@aar
+--- com.firebaseui:firebase-ui-auth:8.0.1@aar
+--- com.google.android.gms:play-services-auth:19.0.0@aar
+--- com.google.firebase:firebase-ads:20.6.0@aar
+--- com.google.android.gms:play-services-ads:20.6.0@aar 👈
+--- com.google.android.gms:play-services-appset:16.0.0@aar
+--- com.google.firebase:firebase-auth-ktx:21.0.3@aar
+--- com.google.firebase:firebase-auth:21.0.3@aar
+--- com.google.android.gms:play-services-auth-api-phone:17.4.0@aar
+--- com.google.android.gms:play-services-safetynet:17.0.0@aar
+--- com.google.android.gms:play-services-auth-base:17.0.0@aar
+--- com.google.android.gms:play-services-base:18.0.1@aar
...
play-services-ads は、20.6.0 が、なぜか、見えますが。
さらに詳細を確認していきます。
./gradlew -q :app:dependencies --configuration releaseCompileClasspath
...
| | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.0.2 (*)
| | \--- com.google.firebase:firebase-annotations:16.0.0
| \--- com.google.android.gms:play-services-measurement-sdk:21.0.0
| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
| +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.0.2 (*)
| +--- com.google.android.gms:play-services-measurement-base:21.0.0 (*)
| \--- com.google.android.gms:play-services-measurement-impl:21.0.0 (*)
+--- com.google.firebase:firebase-ads:20.6.0 👈
| +--- com.google.android.gms:play-services-ads:20.6.0 👈
| | +--- androidx.browser:browser:1.0.0 -> 1.3.0
| | | +--- androidx.core:core:1.1.0 -> 1.7.0 (*)
| | | +--- androidx.annotation:annotation:1.1.0 -> 1.3.0
| | | \--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
| | +--- androidx.core:core:1.0.0 -> 1.7.0 (*)
| | +--- com.google.android.gms:play-services-ads-base:20.6.0
...
(c) - dependency constraint
(*) - dependencies omitted (listed previously)
(n) - Not resolved (configuration is not meant to be resolved)
firebase-ads に依存されていますね。
もう一度、build.gradle を見てみます。
dependencies {
...
implementation 'com.google.firebase:firebase-core:21.0.0'
implementation 'com.google.firebase:firebase-ads:20.6.0' 👈
implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0'
...
つまりは、
play-services-ads の implementation 記述がなくても
firebase-ads から依存を追って解決されていってたのですね!!