> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adrop.io/llms.txt
> Use this file to discover all available pages before exploring further.

# スプラッシュ広告

> iOSアプリでスプラッシュ広告を実装する方法を案内します。

## 概要

スプラッシュ広告は、アプリ起動時のスプラッシュ画面に表示される広告です。アプリのロゴと一緒に広告が表示され、自然なユーザー体験を提供します。

### 特徴

* アプリ起動時の自然な広告表示
* アプリロゴと一緒にブランドイメージを維持
* 360px × 270px固定サイズ
* 画像広告に対応

<Note>
  開発環境ではテストユニットIDを使用してください: `PUBLIC_TEST_UNIT_ID_SPLASH`
</Note>

***

## キャッシュ動作

スプラッシュ広告はアプリ起動と同時にすぐ表示できるよう、SDKがデバイスに広告を事前キャッシュする仕組みで動作します。次回起動時にはキャッシュ済みのクリエイティブが先に表示され、同時に新しい広告をバックグラウンドでリクエストして次回起動用のキャッシュを更新します。

<Warning>
  このキャッシュ構造のため、Ad Controlコンソールでクリエイティブを**一時停止**しても、各ユーザーデバイスのキャッシュが更新されるまでは、すでにキャッシュされているクリエイティブが表示される場合があります。クリエイティブの一時停止や差し替えがユーザーに反映されるまで時間がかかる可能性があることを運用計画に織り込んでください。
</Warning>

***

## 広告サイズ

スプラッシュ広告は固定サイズを使用します:

* **サイズ**: 360px × 270px (幅 × 高さ)
* 広告は画面下部に表示され、上部にはアプリロゴが配置されます

***

## 実装方法

スプラッシュ広告は、アプリの要件に応じて3つの方法で実装できます:

1. **AdropSplashAdViewControllerの使用** - 最も簡単な方法
2. **AdropSplashAdViewの使用** - カスタムスプラッシュ画面の構成
3. **SwiftUI実装** - SwiftUIアプリで使用

***

## 方法1: AdropSplashAdViewControllerの使用

最も簡単な実装方法です。`AdropSplashAdViewController`がスプラッシュ画面を自動的に管理します。

### UIKit実装

```swift theme={null}
import AdropAds

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        // Adrop SDKの初期化
        Adrop.initialize(production: false)

        return true
    }
}
```

### SceneDelegateでスプラッシュ広告を表示

<CodeGroup>
  ```swift Swift theme={null}
  import UIKit
  import AdropAds

  class SceneDelegate: UIResponder, UIWindowSceneDelegate {
      var window: UIWindow?

      func scene(
          _ scene: UIScene,
          willConnectTo session: UISceneSession,
          options connectionOptions: UIScene.ConnectionOptions
      ) {
          guard let windowScene = (scene as? UIWindowScene) else { return }

          // Windowの設定
          window = UIWindow(windowScene: windowScene)

          // スプラッシュ広告ビューコントローラーの生成
          let splashViewController = AdropSplashAdViewController(
              unitId: "YOUR_SPLASH_UNIT_ID"
          )
          splashViewController.logoImage = UIImage(named: "app_logo")  // アプリロゴ画像
          splashViewController.delegate = self

          // メインビューコントローラーの設定
          splashViewController.mainViewController = MainViewController()

          // 表示時間の設定（非推奨 — コンソールで設定してください、デフォルト1秒）
          splashViewController.displayDuration = 3.0

          // スプラッシュ画面をルートに設定
          window?.rootViewController = splashViewController
          window?.makeKeyAndVisible()
      }
  }
  ```

  ```objc Objective-C theme={null}
  @import AdropAds;

  @interface SceneDelegate () <AdropSplashAdDelegate>
  @property (nonatomic, strong) UIWindow *window;
  @end

  @implementation SceneDelegate

  - (void)scene:(UIScene *)scene
      willConnectToSession:(UISceneSession *)session
               options:(UISceneConnectionOptions *)connectionOptions {

      UIWindowScene *windowScene = (UIWindowScene *)scene;
      if (!windowScene) return;

      // Windowの設定
      self.window = [[UIWindow alloc] initWithWindowScene:windowScene];

      // スプラッシュ広告ビューコントローラーの生成
      AdropSplashAdViewController *splashViewController =
          [[AdropSplashAdViewController alloc] initWithUnitId:@"YOUR_SPLASH_UNIT_ID"];
      splashViewController.logoImage = [UIImage imageNamed:@"app_logo"];
      splashViewController.delegate = self;

      // メインビューコントローラーの設定
      splashViewController.mainViewController = [[MainViewController alloc] init];

      // 表示時間の設定（非推奨 — コンソールで設定してください、デフォルト1秒）
      splashViewController.displayDuration = 3.0;

      // スプラッシュ画面をルートに設定
      self.window.rootViewController = splashViewController;
      [self.window makeKeyAndVisible];
  }

  @end
  ```
</CodeGroup>

### 初期化パラメータ

| パラメータ              | 型              | 説明                        |
| ------------------ | -------------- | ------------------------- |
| `unitId`           | `String`       | アドコントロールコンソールで作成したユニットID  |
| `adRequestTimeout` | `TimeInterval` | 広告リクエストタイムアウト（秒）。デフォルト1.0 |

### プロパティ

| プロパティ                | 型                   | 説明                                              |
| -------------------- | ------------------- | ----------------------------------------------- |
| `logoImage`          | `UIImage?`          | アプリロゴ画像（initパラメータではなくプロパティとして設定）。nilの場合はロゴなしで表示 |
| `mainViewController` | `UIViewController?` | 広告終了後に遷移するメインビューコントローラー                         |
| `backgroundColor`    | `UIColor?`          | スプラッシュ画面の背景色。nilの場合はsystemBackgroundを使用         |
| `displayDuration`    | `TimeInterval`      | 広告表示時間（秒）。デフォルト1.0。非推奨 — コンソールで設定してください         |

### デリゲートの実装

<CodeGroup>
  ```swift Swift theme={null}
  // MARK: - AdropSplashAdDelegate
  extension SceneDelegate: AdropSplashAdDelegate {
      // スプラッシュ広告終了
      func onAdClose(_ ad: AdropSplashAd, impressed: Bool) {
          print("スプラッシュ広告終了 - 表示: \(impressed)")

          // メイン画面に遷移
          let mainViewController = MainViewController()
          window?.rootViewController = mainViewController
      }

      // 広告受信成功（オプション）
      func onAdReceived(_ ad: AdropSplashAd) {
          print("スプラッシュ広告受信成功")
      }

      // 広告受信失敗（オプション）
      func onAdFailedToReceive(_ ad: AdropSplashAd, _ errorCode: AdropErrorCode) {
          print("スプラッシュ広告受信失敗: \(errorCode)")
          // 広告失敗時もメイン画面に遷移します
      }

      // 広告表示（オプション）
      func onAdImpression(_ ad: AdropSplashAd) {
          print("スプラッシュ広告表示")
      }
  }
  ```

  ```objc Objective-C theme={null}
  #pragma mark - AdropSplashAdDelegate

  // スプラッシュ広告終了（オプション）
  - (void)onAdClose:(AdropSplashAd *)ad impressed:(BOOL)impressed {
      NSLog(@"スプラッシュ広告終了 - 表示: %@", impressed ? @"YES" : @"NO");

      // メイン画面に遷移
      MainViewController *mainViewController = [[MainViewController alloc] init];
      self.window.rootViewController = mainViewController;
  }

  // 広告受信成功（オプション）
  - (void)onAdReceived:(AdropSplashAd *)ad {
      NSLog(@"スプラッシュ広告受信成功");
  }

  // 広告受信失敗（オプション）
  - (void)onAdFailedToReceive:(AdropSplashAd *)ad :(AdropErrorCode)errorCode {
      NSLog(@"スプラッシュ広告受信失敗: %ld", (long)errorCode);
      // 広告失敗時もメイン画面に遷移します
  }

  // 広告表示（オプション）
  - (void)onAdImpression:(AdropSplashAd *)ad {
      NSLog(@"スプラッシュ広告表示");
  }
  ```
</CodeGroup>

<Note>
  `AdropSplashAdViewController`は広告の読み込み、表示、タイマー管理を自動的に処理します。広告が読み込まれなくても自動的に`onAdClose`が呼び出され、メイン画面に遷移します。
</Note>

***

## LaunchScreenとの連携

スプラッシュ広告を表示する前に、システムのLaunchScreenが先に表示されます。自然なユーザー体験のために、LaunchScreenとスプラッシュ広告画面のスタイルを一致させることをお勧めします。

### LaunchScreen.storyboardの設定

1. **LaunchScreen.storyboard**を開き、背景色をスプラッシュ広告画面と同じに設定
2. アプリロゴを中央に配置（スプラッシュ広告のロゴ位置と一致）
3. Info.plistで`UILaunchStoryboardName`が`LaunchScreen`に設定されていることを確認

```xml title="Info.plist" theme={null}
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
```

<Note>
  LaunchScreenとスプラッシュ広告画面の背景色とロゴ位置が一致すると、アプリ起動時にスムーズな遷移が可能です。
</Note>

***

## 方法2: AdropSplashAdViewの使用

カスタムスプラッシュ画面を直接構成したい場合に使用します。

```swift theme={null}
import UIKit
import AdropAds

class CustomSplashViewController: UIViewController {
    private var splashAdView: AdropSplashAdView?
    private let logoImageView = UIImageView()

    override func viewDidLoad() {
        super.viewDidLoad()
        // AdropSplashAdViewは初期化時に自動的にロードを処理するため、先に生成します
        splashAdView = AdropSplashAdView(unitId: "YOUR_SPLASH_UNIT_ID")
        splashAdView?.delegate = self
        setupUI()
    }

    private func setupUI() {
        view.backgroundColor = .white

        // アプリロゴの設定
        logoImageView.image = UIImage(named: "app_logo")
        logoImageView.contentMode = .scaleAspectFit
        logoImageView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(logoImageView)

        // スプラッシュ広告ビューの設定
        guard let splashAdView = splashAdView else { return }
        splashAdView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(splashAdView)

        NSLayoutConstraint.activate([
            // ロゴ: 画面中央上部
            logoImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            logoImageView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 100),
            logoImageView.widthAnchor.constraint(equalToConstant: 200),
            logoImageView.heightAnchor.constraint(equalToConstant: 200),

            // 広告: 画面下部
            splashAdView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            splashAdView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            splashAdView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
            splashAdView.heightAnchor.constraint(equalToConstant: 270)  // 固定高さ
        ])
    }
}

// MARK: - AdropSplashAdViewDelegate
extension CustomSplashViewController: AdropSplashAdViewDelegate {
    // スプラッシュ広告終了（必須）
    func onAdClose(_ adView: AdropSplashAdView, impressed: Bool) {
        print("スプラッシュ広告終了 - 表示: \(impressed)")
        transitionToMainScreen(impressed: impressed)
    }

    // 広告受信成功（オプション）
    func onAdReceived(_ adView: AdropSplashAdView) {
        print("スプラッシュ広告ビュー受信成功")
    }

    // 広告受信失敗（オプション）
    func onAdFailedToReceive(_ adView: AdropSplashAdView, _ errorCode: AdropErrorCode) {
        print("スプラッシュ広告ビュー受信失敗: \(errorCode)")
        // 失敗時はメイン画面に遷移
        transitionToMainScreen(impressed: false)
    }

    // 広告表示（オプション）
    func onAdImpression(_ adView: AdropSplashAdView) {
        print("スプラッシュ広告ビュー表示")
    }
}

// MARK: - Navigation
extension CustomSplashViewController {
    private func transitionToMainScreen(impressed: Bool) {
        guard let window = view.window else { return }

        let mainViewController = MainViewController()
        window.rootViewController = mainViewController

        // スムーズな遷移アニメーション
        UIView.transition(
            with: window,
            duration: 0.3,
            options: .transitionCrossDissolve,
            animations: nil,
            completion: nil
        )
    }
}
```

<Note>
  `AdropSplashAdView`を使用する場合は、`AdropSplashAdViewDelegate`を実装する必要があります。`onAdClose(impressed:)`メソッドは<strong>必須</strong>です。
</Note>

***

## 方法3: SwiftUI実装

SwiftUIアプリでスプラッシュ広告を実装する方法です。

### SwiftUI Wrapper

```swift theme={null}
import SwiftUI
import AdropAds

struct SplashAdView: UIViewControllerRepresentable {
    let unitId: String
    let logoImage: UIImage?
    @Binding var isPresented: Bool

    func makeUIViewController(context: Context) -> AdropSplashAdViewController {
        let controller = AdropSplashAdViewController(unitId: unitId)
        controller.logoImage = logoImage
        controller.delegate = context.coordinator
        return controller
    }

    func updateUIViewController(_ uiViewController: AdropSplashAdViewController, context: Context) {
        // 更新不要
    }

    func makeCoordinator() -> Coordinator {
        Coordinator(isPresented: $isPresented)
    }

    class Coordinator: NSObject, AdropSplashAdDelegate {
        @Binding var isPresented: Bool

        init(isPresented: Binding<Bool>) {
            _isPresented = isPresented
        }

        func onAdClose(_ ad: AdropSplashAd, impressed: Bool) {
            print("スプラッシュ広告終了 - 表示: \(impressed)")
            DispatchQueue.main.async {
                self.isPresented = false
            }
        }

        func onAdReceived(_ ad: AdropSplashAd) {
            print("スプラッシュ広告受信成功")
        }

        func onAdFailedToReceive(_ ad: AdropSplashAd, _ errorCode: AdropErrorCode) {
            print("スプラッシュ広告受信失敗: \(errorCode)")
        }

        func onAdImpression(_ ad: AdropSplashAd) {
            print("スプラッシュ広告表示")
        }
    }
}
```

### SwiftUI Appで使用

```swift theme={null}
import SwiftUI
import AdropAds

@main
struct MyApp: App {
    init() {
        // SDKの初期化
        Adrop.initialize(production: false)
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

struct ContentView: View {
    @State private var showSplash = true

    var body: some View {
        ZStack {
            if showSplash {
                SplashAdView(
                    unitId: "YOUR_SPLASH_UNIT_ID",
                    logoImage: UIImage(named: "app_logo"),
                    isPresented: $showSplash
                )
                .ignoresSafeArea()
            } else {
                MainView()
            }
        }
    }
}

struct MainView: View {
    var body: some View {
        NavigationView {
            VStack {
                Text("メイン画面")
                    .font(.largeTitle)
            }
            .navigationTitle("ホーム")
        }
    }
}
```

***

## デリゲートメソッド

### AdropSplashAdDelegate

`AdropSplashAd`を使用する場合のデリゲートです。

| メソッド                        | 必須    | 説明                                           |
| --------------------------- | ----- | -------------------------------------------- |
| `onAdClose(impressed:)`     | オプション | スプラッシュ広告終了時に呼び出し。`impressed`パラメータで広告表示の有無を確認 |
| `onAdReceived(_:)`          | オプション | 広告受信成功時に呼び出し                                 |
| `onAdFailedToReceive(_:_:)` | オプション | 広告受信失敗時に呼び出し                                 |
| `onAdImpression(_:)`        | オプション | 広告表示が記録された時に呼び出し                             |

### AdropSplashAdViewDelegate

`AdropSplashAdView`を使用する場合のデリゲートです。

| メソッド                        | 必須     | 説明                              |
| --------------------------- | ------ | ------------------------------- |
| `onAdClose(impressed:)`     | **必須** | スプラッシュ広告終了時に呼び出し。メイン画面への遷移処理が必要 |
| `onAdReceived(_:)`          | オプション  | 広告受信成功時に呼び出し                    |
| `onAdFailedToReceive(_:_:)` | オプション  | 広告受信失敗時に呼び出し                    |
| `onAdImpression(_:)`        | オプション  | 広告表示が記録された時に呼び出し                |

***

## クロージャコールバック

デリゲートの代わりに`AdropSplashAd`でクロージャベースのコールバックを使用できます。

```swift theme={null}
let splashAd = AdropSplashAd(unitId: "YOUR_UNIT_ID")

splashAd.onAdReceived = { ad in
    print("スプラッシュ広告受信成功")
}

splashAd.onAdFailedToReceive = { ad, errorCode in
    print("スプラッシュ広告受信失敗: \(errorCode)")
}

splashAd.onAdImpression = { ad in
    print("スプラッシュ広告表示")
}

splashAd.onAdClose = { ad, impressed in
    print("スプラッシュ広告終了 - 表示: \(impressed)")
}
```

<Note>
  デリゲートとクロージャの両方を設定すると、両方が呼び出されます。
</Note>

***

## impressedパラメータ

`onAdClose(impressed:)`メソッドの`impressed`パラメータは、広告が実際にユーザーに表示されたかどうかを示します。

```swift theme={null}
func onAdClose(_ ad: AdropSplashAd, impressed: Bool) {
    if impressed {
        print("広告がユーザーに表示されました")
        // 広告表示後の処理ロジック
    } else {
        print("広告が表示されませんでした（ロード失敗またはスキップ）")
        // 広告未表示の処理ロジック
    }

    // メイン画面に遷移
    transitionToMainScreen()
}
```

### impressedがfalseの場合

* 広告ロード失敗
* ネットワークエラー
* ユーザーが広告を見る前にスキップ
* 広告インベントリ不足

***

## ベストプラクティス

### 1. 適切なタイマー設定

スプラッシュ広告は短すぎず長すぎず表示する必要があります。

```swift theme={null}
// AdropSplashAdViewControllerは自動的にタイマーを管理します
// デフォルト: 1秒（広告ロード時間を含む）
```

### 2. ロゴ画像の最適化

アプリロゴは適切なサイズで準備し、ロード時間を最小化してください。

```swift theme={null}
// 推奨ロゴサイズ: 200x200 〜 300x300ポイント
let logoImage = UIImage(named: "app_logo")  // @2x、@3xバージョンを準備
```

### 3. 失敗処理

広告ロード失敗時もアプリが正常に起動するように処理してください。

```swift theme={null}
func onAdFailedToReceive(_ ad: AdropSplashAd, _ errorCode: AdropErrorCode) {
    print("広告ロード失敗: \(errorCode)")
    // 失敗してもメイン画面に遷移
    // AdropSplashAdViewControllerは自動的に処理
}
```

### 4. スムーズな画面遷移

メイン画面への遷移時に自然なアニメーションを使用してください。

```swift theme={null}
private func transitionToMainScreen() {
    guard let window = view.window else { return }

    let mainViewController = MainViewController()

    UIView.transition(
        with: window,
        duration: 0.3,
        options: .transitionCrossDissolve,
        animations: {
            window.rootViewController = mainViewController
        },
        completion: nil
    )
}
```

### 5. テスト環境と本番環境の分離

開発環境と本番環境を分けてテストしてください。

```swift theme={null}
#if DEBUG
let splashUnitId = "PUBLIC_TEST_UNIT_ID_SPLASH"
let isProduction = false
#else
let splashUnitId = "YOUR_PRODUCTION_SPLASH_UNIT_ID"
let isProduction = true
#endif

// SDKの初期化
Adrop.initialize(production: isProduction)

// スプラッシュ広告の作成
let splashViewController = AdropSplashAdViewController(
    unitId: splashUnitId
)
splashViewController.logoImage = UIImage(named: "app_logo")
```

***

## 完全なSceneDelegateの例

```swift theme={null}
import UIKit
import AdropAds

class SceneDelegate: UIResponder, UIWindowSceneDelegate {
    var window: UIWindow?

    func scene(
        _ scene: UIScene,
        willConnectTo session: UISceneSession,
        options connectionOptions: UIScene.ConnectionOptions
    ) {
        guard let windowScene = (scene as? UIWindowScene) else { return }

        // Windowの設定
        window = UIWindow(windowScene: windowScene)

        #if DEBUG
        let splashUnitId = "PUBLIC_TEST_UNIT_ID_SPLASH"
        #else
        let splashUnitId = "YOUR_PRODUCTION_SPLASH_UNIT_ID"
        #endif

        // スプラッシュ広告ビューコントローラーの生成
        let splashViewController = AdropSplashAdViewController(
            unitId: splashUnitId
        )
        splashViewController.logoImage = UIImage(named: "app_logo")
        splashViewController.delegate = self

        // ルートビューコントローラーの設定
        window?.rootViewController = splashViewController
        window?.makeKeyAndVisible()
    }
}

// MARK: - AdropSplashAdDelegate
extension SceneDelegate: AdropSplashAdDelegate {
    func onAdClose(_ ad: AdropSplashAd, impressed: Bool) {
        print("スプラッシュ広告終了 - 表示: \(impressed)")

        // メイン画面に遷移
        let mainViewController = MainViewController()
        let navigationController = UINavigationController(rootViewController: mainViewController)

        guard let window = window else { return }

        UIView.transition(
            with: window,
            duration: 0.3,
            options: .transitionCrossDissolve,
            animations: {
                window.rootViewController = navigationController
            },
            completion: nil
        )
    }

    func onAdReceived(_ ad: AdropSplashAd) {
        print("スプラッシュ広告受信成功")
    }

    func onAdFailedToReceive(_ ad: AdropSplashAd, _ errorCode: AdropErrorCode) {
        print("スプラッシュ広告受信失敗: \(errorCode)")
        // AdropSplashAdViewControllerが自動的にonAdCloseを呼び出します
    }

    func onAdImpression(_ ad: AdropSplashAd) {
        print("スプラッシュ広告表示記録")
    }
}
```

***

## テスト

### テストユニットID

開発中はテストユニットIDを使用してください。

```swift theme={null}
// テストユニットID
let testUnitId = "PUBLIC_TEST_UNIT_ID_SPLASH"

// またはAdropUnitIdを使用
let testUnitId = AdropUnitId.PUBLIC_TEST_UNIT_ID_SPLASH
```

<Warning>
  本番リリース時は、必ずアドコントロールコンソールで作成した実際のユニットIDを使用してください。テストユニットIDでは広告収益が発生しません。
</Warning>

### デバッグ

広告イベントをログで確認してください。

```swift theme={null}
extension SceneDelegate: AdropSplashAdDelegate {
    func onAdReceived(_ ad: AdropSplashAd) {
        #if DEBUG
        print("スプラッシュ広告受信")
        #endif
    }

    func onAdFailedToReceive(_ ad: AdropSplashAd, _ errorCode: AdropErrorCode) {
        #if DEBUG
        print("スプラッシュ広告失敗: \(errorCode)")
        print("  - ネットワーク状態を確認")
        print("  - ユニットIDを確認: \(ad.unitId)")
        #endif
    }

    func onAdImpression(_ ad: AdropSplashAd) {
        #if DEBUG
        print("スプラッシュ広告表示")
        #endif
    }

    func onAdClose(_ ad: AdropSplashAd, impressed: Bool) {
        #if DEBUG
        print("スプラッシュ広告終了")
        print("  - 表示有無: \(impressed)")
        #endif
    }
}
```

***

## トラブルシューティング

<AccordionGroup>
  <Accordion title="スプラッシュ画面が表示されない">
    * `window.rootViewController`が正しく設定されているか確認
    * SceneDelegateが有効になっているか確認（Info.plist）
    * SDKの初期化が完了しているか確認
  </Accordion>

  <Accordion title="広告がロードされない">
    * ネットワーク接続状態を確認
    * ユニットIDが正しいか確認
    * テスト環境では`production: false`設定を確認
    * onAdFailedToReceiveエラーコードを確認
  </Accordion>

  <Accordion title="メイン画面に遷移しない">
    * `onAdClose(impressed:)` デリゲートが実装されているか確認
    * 画面遷移コードがメインスレッドで実行されているか確認

    ```swift theme={null}
    func onAdClose(_ ad: AdropSplashAd, impressed: Bool) {
        DispatchQueue.main.async {
            // 画面遷移コード
        }
    }
    ```
  </Accordion>

  <Accordion title="AdropSplashAdView使用時にonAdCloseが呼び出されない">
    * `AdropSplashAdViewDelegate`を実装しているか確認
    * `splashAdView.delegate = self`が設定されているか確認
    * `onAdClose(impressed:)`メソッドは必須で実装する必要があります
  </Accordion>
</AccordionGroup>

***

## 次のステップ

<CardGroup cols={2}>
  <Card title="インタースティシャル広告" href="/ja/sdk/ios/interstitial">
    画面遷移時のインタースティシャル広告の表示
  </Card>

  <Card title="バナー広告" href="/ja/sdk/ios/banner">
    バナー広告の実装
  </Card>

  <Card title="ネイティブ広告" href="/ja/sdk/ios/native">
    カスタムデザインのネイティブ広告
  </Card>

  <Card title="リワード広告" href="/ja/sdk/ios/rewarded">
    ユーザーリワードの提供
  </Card>
</CardGroup>
