# 在 iOS 中初始化 SDK

> 在 iOS 应用中初始化 Unity Ads SDK。设置 Game ID（游戏 ID），使用委托来管理初始化回调并启用广告变现。

> **Important:**
>
> 应在项目运行时的生命周期早期（在需要展示广告之前）初始化 SDK。

## ViewController.h##viewcontroller.h

在 `ViewController` 标头文件 (`.h`) 中，导入 Unity Ads 并设置以下委托：

* [`UnityAdsInitializationDelegate`](/grow/ads/ios-sdk/ios-api.md#unityadsinitializationdelegate) 处理初始化成功或失败的回调。
* [`UnityAdsLoadDelegate`](/grow/ads/ios-sdk/ios-api.md#unityadsloaddelegate) 处理广告单元加载内容成功或失败的回调。
* [`UnityAdsShowDelegate`](/grow/ads/ios-sdk/ios-api.md#unityadsshowdelegate) 处理广告单元显示加载的内容成功或失败的回调。

1. **Objective-C**

   ```objective-c
      #import <UnityAds/UnityAds.h>

   @interface ViewController : UIViewController<UnityAdsInitializationDelegate,
   UnityAdsLoadDelegate,
   UnityAdsShowDelegate>

   @property (assign, nonatomic) BOOL testMode;
   ```

## ViewController.m##viewcontroller.m

要初始化该 SDK，必须为适当平台引用项目的 Game ID（游戏 ID）。在 [Unity Monetization（变现）后台](https://cloud.unity.com/monetization)的二级导航菜单中选择 **CURRENT PROJECT**（当前项目）> **Settings（设置**），即可找到该 ID。

在 `ViewController` 实现 (`.m`) 中，创建一个 [`UnityAdsInitializationDelegate`](/grow/ads/ios-sdk/ios-api.md#unityadsinitializationdelegate) 委托，处理初始化回调，并将其作为 [`initialize`](/grow/ads/ios-sdk/ios-api.md#initialize) 方法中的参数引用。

## SDK 初始化示例##sdk-initialization-example

1. **Objective-C**

   ```objective-c
     - (void)viewDidLoad {
   [super viewDidLoad];
   // Do any additional setup after loading the view.
   [UnityAds
     initialize:kDefaultGameId
     testMode:self.testMode
     initializationDelegate:self];
   }

   // Implement initialization callbacks to handle success or failure:
   #pragma mark :UnityAdsInitializationDelegate
   - (void)initializationComplete {
   NSLog(@" - UnityAdsInitializationDelegate initializationComplete" );
   // Pre-load an ad when initialization succeeds, so it is ready to show:
   [UnityAds load:@"Interstitial_iOS" loadDelegate:self];
   }

   - (void)initializationFailed:(UnityAdsInitializationError)error withMessage:(NSString *)message {
   NSLog(@" - UnityAdsInitializationDelegate initializationFailed with message: %@", message );
   }

   // Implement load callbacks to handle success or failure after initialization:
   #pragma mark:UnityAdsLoadDelegate
   - (void)unityAdsAdLoaded:(NSString *)placementId {
   NSLog(@" - UnityAdsLoadDelegate unityAdsAdLoaded %@", placementId);
   }

   - (void)unityAdsAdFailedToLoad:(NSString *)placementId
       withError:(UnityAdsLoadError)error
     withMessage:(NSString *)message {
   NSLog(@" - UnityAdsLoadDelegate unityAdsAdFailedToLoad %@", placementId);
   }
   ```

**后续步骤**：请参阅关于[在 iOS 中实现插页式广告](/grow/ads/ios-sdk/interstitial-ads.md)的文档以继续您的实现。
