最近アプリを開発していて、エミュレータではきちんと表示されていたAdMob広告がなぜか実機では表示されなかったので、色々試してみました。
結果、無事に広告が表示されたので備忘として残しておきます。
結論:トラッキングの許可を表示させないといけなかった。
下記のようにトラッキングの許可を要求する処理を入れておく必要があります。
func requestTrackingAuthorization()
{
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {
ATTrackingManager.requestTrackingAuthorization(completionHandler:
{ status in
switch status {
case .authorized:print("authorized \ (ASIdentifierManager.shared().advertisingIdentifier)")
case .denied:print("denied")
case .restricted:print("restricted")
case .notDetermined:print("notDetermined")
@unknown default:fatalError()
}
})
}
}
imfo.plistに「Privacy - Tracking Usage Description」の設定も忘れずに入れましょう。
これで検証機でも広告が表示されると思います。
気になったこと
以前はトラッキング許可をしなくても表示されていた記憶がありますが、最近仕様が変わったのかもしれません。
תגובות