[iOS] Firebase AnalyticsによるIDFA収集を明示的に無効化する

本記事では、Firebase AnalyticsによるIDFA収集を明示的に無効化する方法とその確認方法を紹介します。
2021.03.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

CX事業本部の平屋です。

ちょっと前に、担当しているアプリでApp Tracking Transparency対応を行いました。そのアプリでは、AdSupport.frameworkとリンクしておらず、IDFA(広告識別子)を収集していません。

以下の記事などを参考に対応を行いました。

上記記事によると、過去に以下の問題が起こったことがあるようです。

  • システムフレームワークがAdSupport.frameworkを動的にロードし、Firebase AnalyticsがIDFAを送信

そうなので、担当しているアプリでは、念の為にFirebase AnalyticsによるIDFA収集を明示的に無効化する対応を行いました。

本記事ではその対応内容と確認方法を紹介します。

検証環境

  • macOS Catalina 10.15.6
  • Xcode Version 12.4

IDFA収集を明示的に無効化する

IDFA収集(広告のカスタマイズ機能)を明示的に無効化するには、Info.plistファイルに以下の値を追加します。

  • key: GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS
  • value: false

カスタマイズされた広告のデフォルトの動作を設定するには、アプリの Info.plist ファイルで GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS の値を NO(ブール値)に設定します。 - アナリティクス データの収集と使用方法を構成する  |  Firebase

plistファイルの形式だと以下の内容になります。

<dict>
	...

    <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS</key>
    <false/>

    ...
</dict>
</plist>

動作確認

IDFA収集を無効にすると、特定のユーザープロパティ「non_personalized_ads」が付与されるようです。

上記のいずれかの方法でユーザーに対して広告のカスタマイズ機能を無効にした場合は、それ以降にこのユーザーのデバイスからログに記録されるイベント バンドルに「non_personalized_ads」というユーザー プロパティが格納され、このバンドル内のイベントをカスタマイズされた広告に使用できないことを示す値 1 が設定されます。 - アナリティクス データの収集と使用方法を構成する  |  Firebase

そうなので、DebugViewでこのプロパティが付与されることを確認しました。

さいごに

本記事では、Firebase AnalyticsによるIDFA収集を明示的に無効化する方法とその確認方法を紹介しました。どなたかのお役に立てれば幸いです。

参考資料