【Unity】IDFAを取得するべくATT対応した話
一週間くらい前なんですが、Appleさんから「ATTやらんかい貴様」みたいなメールが届いたんですよ。
そのときまで知らなかったんですが、AdMobみたいな広告を実装してる場合はATT対応が必須になるみたいですね。
ここ最近ATT非対応のアプリを提出したことはないんですが、TwitterのTLを見る限りリジェクトの対象になるようです。
えー、なので取り急ぎ20本くらいのアプリにATTを仕込んでみました。
誰の参考になるかは分かりませんが、ATT出せずに苦しんでる同志が全国に7人いると聞いたので、ちょっと書いてみようと思います。
===
身も蓋もない話なんですけど、以下の記事を参考にすればOKなんですよ。
これめちゃくちゃ分かりやすいんでおすすめです。
Objective-Cでダイアログを表示するコード書く
↓
C#から上記の処理を呼び出す
↓
表示
まあ簡単に言えばこれだけのことですね。
Info.plistに追記したりAppTrackingTransparency.frameworkなるものを追加したりもするんですが、やることは非常に簡単です。
こんな感じに表示されますね。
ちなみに僕は以下の環境で実装してみました。
Unity:2020.3.5f1
Xcode:12.4
AdMobプラグイン:5.4.0 (GoogleMobileAds-v5.4.0.unitypackage)
iOS:14.2
特に問題はなかったんですが、そう言えばObjective-Cのコードでエラーが出たので、こんな風に書き換えてみた次第です。
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>
extern "C" void _requestIDFA() {
if (@available(iOS 14.5,*)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// Tracking authorization completed. Start loading ads here.
// [self loadAd];
}];
}
}
これだけでATTの表示までは簡単に出来るかと思います。
上記のコードではiOS14.5以降のデバイスに対して、ATTを表示させています。
===
んで肝心のATT、つまりIDFAの取得なんですけど、これチャンスが1回しかないじゃないですか。
最初に許可すれば基本的にずっと許可だし、不許可にすればずっと不許可ですよね。
なのでワンチャンス。非常に重要なことなので、オリジナルのダイアログを実装されてる方も多いかと思います。
「本アプリは皆様からの広告費で運営されています。なので次の画面で"トラッキングを許可"を押していただけると幸いです」
みたいなことを表示しておいて、それからのATTですよ。
結構大手のアプリでも同じような二段構えが見受けられました。なので思ったんですよ。
僕はやらないでおこう
って。
14.5にアップデートしたタイミングで、ありとあらゆるアプリで出てくるわけじゃないですか。ATTダイアログが。
なので誘導は大手に任せて、僕は直接表示だけにしようと思ったんです。
何かのアプリで許可を選択すれば、普通他のアプリでも同じにするじゃないですか。
まして同時期だったらなおさらですよ。同じタイミングで表示されてれば。
なので初回起動時にサクッと表示される感じにしてみました。
何事も楽が一番でしょう。
【関連記事】
この記事が気に入ったらサポートをしてみませんか?