# iOS向け広告品質SDKの統合

> Ad 品質 SDK を iOS アプリケーションに統合して、広告のパフォーマンスを監視および分析し、キー化します。

広告品質を使用すると、ユーザーに表示される広告コンテンツを監視および管理して、アプリケーションの目標に即した広告が表示されるようにし、ユーザー体験を向上させることができます。オーディエンスにとって関連性の高い魅力的な広告を配信して、収益の可能性を最大化しましょう。

> **Note:**
>
> バージョン 8.9.0 から、広告品質は LevelPlay SDK に統合され、LevelPlay が実装されると自動的に初期化されます。LevelPlay がビルドに実装されていない場合、または 8.9.0 より前の LevelPlay SDK バージョンを使用している場合は、以下の手順が適用されます。

## 前提条件##prerequisites

[段階別ガイド](/grow/levelplay/platform/get-started/create-account.md)に従って、LevelPlay プラットフォームでアプリケーションを構成します。

## ステップ 1: アプリケーションに広告品質 SDK をインポート##step-1:-import-the-ad-quality-sdk-to-your-app

### CocoaPods##cocoapods

[CocoaPods](http://cocoapods.org/)は、Objective-CとSwiftの依存関係マネージャーであり、SDKのインテグレーション プロセスを自動化および合理化します。詳細については、『 CocoaPods Guide on [Getting Started](http://guides.cocoapods.org/using/getting-started.html) and [Using CocoaPods](http://guides.cocoapods.org/using/using-cocoapods.html) 』を参照してください。

SDK を Cocoapods と統合するには、podfile に以下の行を入力します。

```text
pod 'IronSourceAdQualitySDK','9.3.1'
```

## ステップ 2: SDK を初期化する##step-2:-initialize-the-sdk

1. Unity LevelPlay プラットフォームにある Ironsource キー 品質 SDK を初期化します。
2. アプリケーションのメインスレッド、または他の広告ネットワークSDKと同じスレッドに以下のコードを追加して、広告品質SDKを初期化します。

メインの ViewController の viewDidLoad メソッドに以下のコードを追加します。

```text
#import "IronSourceAdQuality.h"
 
@implementation ViewController 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Initialize 
    [[IronSourceAdQuality getInstance] initializeWithAppKey:appKey]; 
} 
@end
```

## ステップ 3 (任意):高度な SDK 初期化##step-3-(optional):-advanced-sdk-initialization

> **Note:**
>
> 以下の設定を使用するには、LevelPlay SDK を初期化する前に広告品質 SDK を初期化します。

インテグレーション設定をカスタマイズすることで、さらに多くの機能を利用できます。

1. ユーザー ID:広告品質のデフォルト ID の代わりに独自のユーザー ID を使用する
2. テストモード:広告品質 SDK インテグレーションをテストします (デフォルトは false)
3. ログレベル:コードの問題をデバッグするログレベルを選択します (デフォルトは INFO)

ビルダーで以下のコードを使用して、設定オブジェクトを作成します。

```text
ISAdQualityConfig *adQualityConfig = [ISAdQualityConfig config];
```

### ユーザー ID##user-id

広告品質 SDK には、ユーザー ID を設定するための 2 つのオプションがあります。

1. 独自のユーザー ID を使用し、初期化の前または中に追加します。

```text
adQualityConfig.userId = userId;
// The default user id is Ad Quality internal id.
// The user id cannot be null and must be between 2 and 100 characters, otherwise it will be blocked.
```

2. デフォルトのユーザー ID は、後で ID が設定されるように、広告品質 SDK を初期化した後に変更してください。

```text
[[IronSourceAdQuality getInstance] changeUserId:userId];
// The default user id is Ad Quality internal id.
// The user id cannot be null and must be between 2 and 100 characters, otherwise it will be blocked.
```

### **テストモード**##**test-mode**

```text
adQualityConfig.testMode = YES;
// The default is NO - set to true only to test your Ad Quality integration
```

### **ログレベル**##**log-level**

```text
adQualityConfig.logLevel = IS_AD_QUALITY_LOG_LEVEL_INFO;
// There are 5 different log levels:
// IS_AD_QUALITY_LOG_LEVEL_ERROR,
// IS_AD_QUALITY_LOG_LEVEL_WARNING,
// IS_AD_QUALITY_LOG_LEVEL_INFO,
// IS_AD_QUALITY_LOG_LEVEL_DEBUG,
// IS_AD_QUALITY_LOG_LEVEL_VERBOSE
// The default is IS_AD_QUALITY_LOG_LEVEL_INFO

[[IronSourceAdQuality getInstance] initializeWithAppKey:appKey andConfig:adQualityConfig];
```

## ステップ 4 (任意):SDK コールバックイベントの設定##step-4-(optional):-configure-sdk-callback-events

> **Note:**
>
> LevelPlay を使用している場合、以下の機能を使用する前に広告品質を初期化してください。

iOS コールバックは、Ad Quality SDK が初期化されたのと同じ場所にある別のクラスに実装する必要があります。

ISAdQualityInitDelegate:

```text
#import "IronSourceAdQuality.h"

@インターフェース ViewController () :NSObject<ISAdQualityInitDelegate>
@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  ISAdQualityConfig *config = [ISAdQualityConfig config];
  [config setAdQualityInitDelegate:self];

  // Initialize
  [[IronSourceAdQuality getInstance] initializeWithAppKey:appKey
  andConfig:config];
}
- (void)adQualitySdkInitSuccess {
   NSLog(@"adQualitySdkInitSuccess");
}
- (void)adQualitySdkInitFailed:(ISAdQualityInitError) error withMessage:(NSString *)message {
   NSLog(@"adQualitySdkInitFailed %u message: %@", error, message);
}

@end
```

> **Note:**
>
> が広告品質 SDK を初期化するのにかかる時間は、アプリケーションに統合されている広告ネットワーク SDK の数によって異なります。ネットワーク接続に問題があると、さらに遅延が生じる場合があります。平均して、初期化には 3 - 4 秒かかります。

## ステップ 5 (任意):インプレッションレベルの広告収益を Ad Quality SDK にレポートする##step-5-(optional):-report-impression-level-ad-revenue-to-ad-quality-sdk

> **Note:**
>
> LevelPlay を使用している場合、以下の機能を使用する前に Ad Quality を初期化してください。

> **Note:**
>
> 特徴は全画面広告のみのサポートです。LevelPlay、MAX、DT FairBid では、このデータは自動的に収集されます。

広告品質SDK 7.2.0以降では、インプレッションレベルの広告収益レポートがサポートされます。

Ad Quality SDK でインプレッションレベルの広告収益をレポートするには、以下のコードスニペットを SDK インテグレーションに追加します。

> **Important:**
>
> `sendCustomMediationRevenue` メソッドは、広告が表示されるときに呼び出す必要があります。広告ライフサイクルの外で呼び出しても、効果がありません。

```text
 ISAdQualityCustomMediationRevenue *customMediationRevenue = [[ISAdQualityCustomMediationRevenue alloc] init];
   customMediationRevenue.mediationNetwork = IS_AD_QUALITY_MEDIATION_NETWORK_SELF_MEDIATED;
   customMediationRevenue.adType = IS_AD_QUALITY_AD_TYPE_REWARDED;
   customMediationRevenue.placement = "placement";
   customMediationRevenue.revenue = 0.12;
   [[IronSourceAdQuality getInstance] sendCustomMediationRevenue:customMediationRevenue];
```

AdMob メディエーションを使用している場合は、次の手順に従います。

1. 担当の AdMob アカウントマネージャーに、[AdMob インプレッションレベル LTV (iLTV) を有効にする](https://support.google.com/admob/answer/11322405)よう依頼します。
2. [Android 用](https://developers.google.com/admob/android/quick-start)または [iOS 用](https://developers.google.com/admob/ios/quick-start)の GMA SDK 8.12.0 以上を使用していることを確認し、さらにそのバージョンで iLTV がサポートされることを確認します。
3. Ad Quality SDK インテグレーションに以下のコードスニペットを追加します。

```text
GADRewardedAd* リワード広告;
[GADRewardedAd loadWithAdUnitID:@"AD_UNIT_ID"
request:request
completionHandler:^(GADRewardedAd *ad, NSError *error) {
   if (error) {
     NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]);
     return;
   }
   self.rewardedAd = ad;
   self.rewardedAd.paidEventHandler = ^void(GADAdValue *_Nonnull adValue){
   ISAdQualityCustomMediationRevenue *customMediationRevenue = [[ISAdQualityCustomMediationRevenue alloc] init];
   customMediationRevenue.mediationNetwork = IS_AD_QUALITY_MEDIATION_NETWORK_ADMOB;
   customMediationRevenue.adType = IS_AD_QUALITY_AD_TYPE_REWARDED;
   customMediationRevenue.placement = [rewardedAd adUnitID];
   customMediationRevenue.revenue = adValue.value.doubleValue;
   [[IronSourceAdQuality getInstance] sendCustomMediationRevenue:customMediationRevenue];
  }
}];
```
