# iOS에서 SDK 초기화

> iOS 앱에서 Unity Ads SDK를 초기화합니다. 게임 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를 초기화하려면, 해당 플랫폼의 프로젝트에 있는 게임 ID를 참조해야 합니다. [Unity 수익화 대시보드](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) 기술 자료를 참조하십시오.
