LoginSignup
1

More than 1 year has passed since last update.

posted at

updated at

Android 12 Advertising ID

2021/10 時点

2021/10 に Android 12 が正式リリースされましたが、こちら Adverting ID に関する変更はありません。

Google の説明によると下記のような変更は 2022 の早期にやります。というアナウンスのみです

不気味なのは、これをサーバー側のスイッチもしくはパッチか何かで当てられると、自動的に適用され、ある日突然取れなくなるということです。

ですので、2021のうちに準備しておくのがよいかと思います。

2021/11
実機の挙動の変更が確認されました。Googleの ADIDの説明によると isLimitAdTrackingEnabled が true なら
00000000-0000-0000-0000-000000000000 が返される
Google の設定より、ADIDの削除というメニューが表示された (Pixel 4aの場合)

現在の仕様

  • isLimitAdTrackingEnabled が true でも ADID はとれる (なんというざる)
  • ユーザーのデバイスOS、アプリケーションのコンパイルSDKのバージョンに関わらず取得可能
  • Android 12 のデバイスで isLimitAdTrackingEnabled が true の場合 00000000-0000-0000-0000-000000000000 が 返ってくる

試しにやってみた結果 (当方が開発しているSDKとアプリの関係も入っています)

デバイス SDKコンパイル/ツールバージョン アプリのコンパイル/ツールバージョン パーミッション トラッキング設定 ADID
Android 12 エミュレータ 29/30.0.2 31/30.0.0 なし デフォルト 取得可能
Android 12 エミュレータ 29/30.0.2 31/30.0.0 なし Limit track 取得可能
Android 8 実機 29/30.0.2 31/30.0.0 なし デフォルト 取得可能

参考

Advertising ID
AdvertisingIdClient.Info

変更の概要

  • Android 12の API(31) でアプリケーションをビルドした場合に適用される
  • パーミッションの設定が必要 (レベルはノーマルなのでダイアログの表示はなく、インストール/アップデート時に表示される、これを許可しないとそもそもインストール/アップデートできない)
  • パーミッションがない場合 "00000000-0000-0000-0000-000000000000" になる

アプリケーション開発をされている皆様にはこちらの方法で実装してADID の設定を許可します。
1. AndroidManifest.xml を設定
2. 依存関係に com.google.android.gms:play-services-ads-identifier:17.1.0 以上を入れておく

AndroidManifest.xml

パーミッションが必要とのことでパーミッション設定を AndroidManifest.xmlに入れます。
xml
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

Google Play ADS Identifier のバージョンを 17.1.0 以上にする

現在の最新版は 17.1.0 です

Screen Shot 2021-10-18 at 21.02.37.png

これを入れると、このaarに勝手にパーミッションが含まれている

アプリケーションを開発をしているが、入れているSDKの設定を入れたくない

アプリケーションの仕様上どうしてもこのパーミッションを取り入れたくない場合、アプリケーションの設定次第で打ち消すことが
可能です。以下のように設定します。

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

tools:node="remove" によりSDKなどの設定を打ち消します。

SDKなどを開発する場合の設定について

当方、SDKの開発をしていますが、SDKの場合、以下の2つの方法が取れます
1. SDKのビルドにパーミッションを入れておく(AndroidManifest.xml)
2. 依存関係に com.google.android.gms:play-services-ads-identifier:17.1.0 以上を入れておく

1.は単純に該当のSDKを入れたら自動的にAndroidManifest.xml がアプリケーションのそれとマージされます
2. は依存関係で 17.1.0 のバージョン以上には、AndroidManifest.xml に自動的に入っているので1同様
マージされます (入っているかどうかはデコンパイルツールで確認済)

ちなみにSDKのコンパイルバージョンが 31 でなくても、このパーミッションの設定を入れることは可能です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1