開発

広告つきFlutterアプリを
iOSにリリースするまでにやること全部

· SEADICE

AdMob広告つきFlutterアプリのiOSリリースには、AdMob登録・ATT実装・プライバシーポリシー公開・App Store Connectのプライバシー申告の8ステップが必要だ。コードを書き終えただけでは申請できない。

TOITEのリリース作業で実際にやった手順を全部まとめた。

全体の流れ

AdMob登録→本番ID反映→ATT実装→プライバシーポリシー公開→ビルド→App Store Connect登録→Transporterアップロード→プライバシー申告の8ステップで完了する。

  1. AdMobでアプリと広告ユニットを登録する
  2. 本番の広告IDをコードに反映する
  3. ATT(App Tracking Transparency)を実装する
  4. プライバシーポリシーを公開する
  5. flutter build ipa でビルドする
  6. App Store Connect でアプリを登録する
  7. Transporter でアップロードする
  8. App Store Connect でプライバシー申告・審査情報を入力する

1. AdMobでアプリと広告ユニットを登録する

admob.google.comでアプリを追加し、使う広告種類ごとに広告ユニットを作成する。iOSとAndroidは別登録が必要で、同種類の広告なら複数箇所で1つのIDを使い回せる。

登録後、使う広告の種類ごとに広告ユニットを作成する。TOITEで使った3種類:

発行されるIDは2種類。アプリID(~で区切られる)と広告ユニットID(/で区切られる)。

注意: 同じ種類の広告を複数箇所に配置する場合、IDは1つを使い回せる。設置場所ごとに作成する必要はない。

2. 本番の広告IDをコードに反映する

差し替える箇所はInfo.plistのGADApplicationIdentifier・コード内の各広告ユニットID・AndroidManifest.xmlの3箇所だ。テスト用IDのままリリースすると収益が発生しない。

Info.plist(アプリID):

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX</string>

コード内の広告ユニットID:

static String get banner => Platform.isAndroid
    ? 'ca-app-pub-XXXX/XXXXXXXXXX'  // Android
    : 'ca-app-pub-XXXX/XXXXXXXXXX'; // iOS

リワード広告の報酬数はAdMobコンソールで設定した値(reward.amount)がコードに渡される。UIの表示文言と一致させておくこと。

3. ATT(App Tracking Transparency)を実装する

iOS 14.5以降、IDFAへのアクセスにはユーザー許可が必要だ。app_tracking_transparencyパッケージを追加し、AdMob初期化より前に許可ダイアログを表示すること。

app_tracking_transparency パッケージを追加する。

# pubspec.yaml
dependencies:
  app_tracking_transparency: ^2.0.7

アプリ起動時に許可ダイアログを表示する。AdMob初期化より前に呼ぶ。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await AppTrackingTransparency.requestTrackingAuthorization();
  await MobileAds.instance.initialize();
  runApp(const MyApp());
}

Info.plist に使用目的の文言も必要だ。

<key>NSUserTrackingUsageDescription</key>
<string>より関連性の高い広告を表示するためにトラッキングを使用します。</string>

4. プライバシーポリシーを公開する

App Store審査にはプライバシーポリシーの公開URLが必須だ。収集データの種類・第三者提供先(AdMob・Firebase等)・データ削除方法・連絡先を記載してデプロイしておく。

記載すべき内容:

5. flutter build ipa でビルドする

flutter build ipa --releaseを実行するとbuild/ios/ipa/に.ipaファイルが生成される。本番IDへの差し替えを必ず事前に完了させること。

flutter build ipa --release

6. App Store Connect でアプリを登録する

appstoreconnect.apple.comで新規Appを登録し、バンドルIDをXcodeのプロジェクトと一致させる。この手順を先に完了させないとTransporterのアップロードがエラーになる。

appstoreconnect.apple.com → 「マイApp」→「+」→「新規App」

7. Transporter でアップロードする

TransporterアプリにipaをドラッグするだけでApp Store Connectにアップロードされる。App Store Connectへのアプリ登録(手順6)が先に完了している必要がある。

8. プライバシー申告と審査情報を入力する

AdMobを使う場合「デバイスID」をトラッキング目的として申告しないと審査提出ボタンが押せない。ATT実装とプライバシー申告は必ずセットで対応すること。

App Store Connect → アプリ → 「アプリのプライバシー」から申告する。AdMobを使う場合に申告が必要なデータタイプ:

ハマりポイント: NSUserTrackingUsageDescriptionInfo.plist に含まれている場合、「デバイスID」をトラッキング目的として申告しないと審査提出ボタンが押せない。プライバシー申告とATT実装は必ずセットで対応すること。

その他に必要な入力:

リリース前チェックリスト

全10項目を確認してからApp Store審査に提出すること。特に本番IDへの差し替えとデバイスIDのトラッキング申告は見落としやすい。

← ブログ一覧に戻る