tukuyo's blog

へっぽこまん

スポンサーリンク

iOS14広告トラッキング許諾に対応する.【AdMob】【IDFA取得】

公式ドキュメント

developers.google.com

公式ドキュメント通りに行えばできるはずなのだが,僕の環境ではできなかった.

Google-Mobile-Ads-SDKをアップデートする

cocoaPods

pod update
// or
pod update Google-Mobile-Ads-SDK

Info.plistに公式ドキュメント通り追加する.

NSUserTrackingUsageDescription

ユーザにアプリ内の広告にIDFAを利用する許可をもらうダイアログに表示するものを設定する.

UIで追加もしくはコードで追加を行う

UI f:id:tukuyoinfo:20210214201613p:plain

コード

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

SKAdNetworkItems

IDFAの取得の許可をユーザーが拒否した場合,
Appleが提供するSKAdNetworkを利用して広告を配信する為に必要です.

公式サイトにも,SKAdNetworkIdentifierの値が変更される可能性があるため,google のサイトをチェックするようにしましょう.

UI

f:id:tukuyoinfo:20210214201918p:plain

コード

<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
  </array>

認証ダイアログを出す

適当な位置に以下を追加します.
認証が終わったタイミングでバナーなどを表示しておく設定にしておいたほうがいいとおもいます

import AppTrackingTransparency
import AdSupport
...
func requestIDFA() {
  ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
    // Tracking authorization completed. Start loading ads here.
    // loadAd()
  })
}

本来であれば以上の設定で終わるが....

The Google Mobile Ads SDK was initialized without AppMeasurement.のエラーが出て動かなくなったので, またInfo.plistに以下を追加.

UI f:id:tukuyoinfo:20210214202346p:plain

コード

<key>GADIsAdManagerApp</key>
<true/>

終了

スポンサーリンク