メインコンテンツへスキップ

概要

ポップアップ広告は、特定の瞬間に画面に表示される広告フォーマットです。アプリ起動時、コンテンツ読み込み完了時、特定のイベント発生時など、任意のタイミングで表示でき、ユーザーが閉じるボタンを押すか「今日は表示しない」を選択して終了できます。

特徴

  • 画面中央または下部に表示されるポップアップ形式
  • 画像および動画広告に対応
  • 閉じる、Dim(背景)クリック、「今日は表示しない」オプションを提供
  • 背景色、テキストカラーなどのカスタマイズ可能
  • 非侵襲的でありながら効果的な広告体験
開発環境ではテストユニットIDを使用してください。テストユニットIDセクションを参照してください。

実装手順

ポップアップ広告は次の4ステップで実装します:
  1. 初期化 - AdropPopupAdインスタンスの生成
  2. デリゲートの設定 - 広告および閉じるイベント受信のためのデリゲート設定
  3. 広告の読み込み - 広告リクエストと受信
  4. 広告の表示 - 画面への広告表示

UIKit実装

基本実装

import AdropAds

class ViewController: UIViewController {
    private var popupAd: AdropPopupAd?

    override func viewDidLoad() {
        super.viewDidLoad()
        loadPopupAd()
    }

    // 1. 広告の初期化と読み込み
    private func loadPopupAd() {
        popupAd = AdropPopupAd(unitId: "YOUR_POPUP_UNIT_ID")
        popupAd?.delegate = self
        popupAd?.closeDelegate = self
        popupAd?.load()
    }

    // 2. 広告の表示
    private func showPopupAd() {
        guard let popupAd = popupAd,
              popupAd.isLoaded else { return }
        popupAd.show(fromRootViewController: self)
    }
}

デリゲートの実装

// 広告デリゲートの実装
extension ViewController: AdropPopupAdDelegate {
    // 広告受信成功 (必須)
    func onAdReceived(_ ad: AdropPopupAd) {
        print("ポップアップ広告受信完了")
        // 広告が準備できたら表示
        showPopupAd()
    }

    // 広告受信失敗 (必須)
    func onAdFailedToReceive(_ ad: AdropPopupAd, _ errorCode: AdropErrorCode) {
        print("ポップアップ広告受信失敗: \(errorCode)")
    }

    // 広告表示 (オプション)
    func onAdImpression(_ ad: AdropPopupAd) {
        print("ポップアップ広告表示")
    }

    // 広告クリック (オプション)
    func onAdClicked(_ ad: AdropPopupAd) {
        print("ポップアップ広告クリック")
    }

    // ポップアップ広告が閉じた直後 (オプション)
    func onAdDidDismissFullScreen(_ ad: AdropPopupAd) {
        print("ポップアップ広告を閉じた")
        // 次の広告を事前読み込み
        loadPopupAd()
    }
}

// 閉じるデリゲートの実装
extension ViewController: AdropPopupAdCloseDelegate {
    // 閉じるボタンクリック (オプション)
    func onClosed(_ ad: AdropPopupAd) {
        print("ポップアップ広告閉じるボタンクリック")
    }

    // Dim(背景)クリック (オプション)
    func onDimClicked(_ ad: AdropPopupAd) {
        print("ポップアップ広告Dim領域クリック")
    }

    // 「今日は表示しない」クリック (オプション)
    func onTodayOffClicked(_ ad: AdropPopupAd) {
        print("今日は表示しないを選択")
        // 今日の日付を保存して次回表示を制御
        UserDefaults.standard.set(Date(), forKey: "lastPopupAdHiddenDate")
    }
}

「今日は表示しない」実装

ユーザーが「今日は表示しない」を選択したときに適切に処理する方法です。

UserDefaultsを使用した実装

class PopupAdManager {
    private let todayOffKey = "popupAd_todayOff_date"
    private var popupAd: AdropPopupAd?

    // 今日広告を表示できるか確認
    func canShowAdToday() -> Bool {
        guard let lastHiddenDate = UserDefaults.standard.object(forKey: todayOffKey) as? Date else {
            return true // 一度も非表示にしていなければ表示可能
        }

        // 保存された日付が今日かどうか確認
        return !Calendar.current.isDateInToday(lastHiddenDate)
    }

    // 広告の読み込みと表示
    func loadAndShowAd(from viewController: UIViewController) {
        guard canShowAdToday() else {
            print("今日は広告を表示しません")
            return
        }

        popupAd = AdropPopupAd(unitId: "YOUR_POPUP_UNIT_ID")
        popupAd?.delegate = self
        popupAd?.closeDelegate = self
        popupAd?.load()
    }
}

extension PopupAdManager: AdropPopupAdCloseDelegate {
    func onTodayOffClicked(_ ad: AdropPopupAd) {
        // 今日の日付を保存
        UserDefaults.standard.set(Date(), forKey: todayOffKey)
        print("今日はポップアップ広告を表示しません")
    }
}

テストユニットID

開発およびテスト時には次のテストユニットIDを使用してください。
広告タイプテストユニットID
ポップアップ (下部画像)PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM
ポップアップ (中央画像)PUBLIC_TEST_UNIT_ID_POPUP_CENTER
ポップアップビデオ (下部16:9)PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_16_9
ポップアップビデオ (下部9:16)PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_9_16
ポップアップビデオ (中央16:9)PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_16_9
ポップアップビデオ (中央9:16)PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_9_16

関連ドキュメント