概要

本アプリは 4種類のAdMob広告 を統合し、画面・タイミング別に最適な広告を出す。 プレミアム会員は全広告非表示。動画報酬やカレンダー解放で能動的な広告視聴も可能。

広告の種類と表示タイミング

種類Manager表示タイミング無料/プレミアム
Banner—(BannerAdView)HomeView 下部に常時無料のみ
InterstitialInterstitialAdManagerジャンルクイズプレイ開始時無料のみ
RewardedRewardedAdManager動画ボーナス・カレンダー解放(能動)常時利用可(報酬獲得)
AppOpenAppOpenAdManager起動時・フォアグラウンド復帰時無料のみ

AdMob ID 構成

enum AdConfig {
    static let appID = "ca-app-pub-4104853755894501~6924812325"

    #if DEBUG
    // Google公式テストID
    static let bannerID       = "ca-app-pub-3940256099942544/2934735716"
    static let interstitialID = "ca-app-pub-3940256099942544/4411468910"
    static let rewardedID     = "ca-app-pub-3940256099942544/1712485313"
    static let appOpenID      = "ca-app-pub-3940256099942544/5575463023"
    #else
    // 本番ID(Info.plist管理)
    #endif
}

関連画面

各 Manager の責務

RewardedAdManager(@MainActor : NSObject)

InterstitialAdManager

AppOpenAdManager

ビジネスルール

外部連携

連携先用途
Google AdMob SDK4種広告のロード・表示
App Tracking Transparency (ATT)パーソナライズ広告のオプトイン
Info.plist(NSUserTrackingUsageDescription)ATT説明文
SKAdNetworkアトリビューション計測

エラー処理

広告種類失敗時の挙動
Banner高さ0で非表示
Interstitialサイレントでスキップ
RewardedonFailed コールバックで「再試行してください」
AppOpenサイレントでスキップ

実装メモ

変更履歴

バージョン日付変更内容
1.02026-05-09初版作成