見出し画像

【Unity】IDFAを取得するべくATT対応した話

一週間くらい前なんですが、Appleさんから「ATTやらんかい貴様」みたいなメールが届いたんですよ。
そのときまで知らなかったんですが、AdMobみたいな広告を実装してる場合はATT対応が必須になるみたいですね。
ここ最近ATT非対応のアプリを提出したことはないんですが、TwitterのTLを見る限りリジェクトの対象になるようです。

えー、なので取り急ぎ20本くらいのアプリにATTを仕込んでみました。
誰の参考になるかは分かりませんが、ATT出せずに苦しんでる同志が全国に7人いると聞いたので、ちょっと書いてみようと思います。

===

身も蓋もない話なんですけど、以下の記事を参考にすればOKなんですよ。
これめちゃくちゃ分かりやすいんでおすすめです。

Objective-Cでダイアログを表示するコード書く

C#から上記の処理を呼び出す

表示

まあ簡単に言えばこれだけのことですね。
Info.plistに追記したりAppTrackingTransparency.frameworkなるものを追加したりもするんですが、やることは非常に簡単です。

画像1

こんな感じに表示されますね。

ちなみに僕は以下の環境で実装してみました。

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ダイアログが。
なので誘導は大手に任せて、僕は直接表示だけにしようと思ったんです。

何かのアプリで許可を選択すれば、普通他のアプリでも同じにするじゃないですか。
まして同時期だったらなおさらですよ。同じタイミングで表示されてれば。

なので初回起動時にサクッと表示される感じにしてみました。

何事も楽が一番でしょう。

【関連記事】


この記事が気に入ったらサポートをしてみませんか?