# Ad Quality の追加設定

> ユーザー ID の設定、テストモードの有効化、ログレベルの調整を通じて Ad Quality の統合をカスタマイズして、機能やデバッグを強化できます。

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

## 高度な初期化

* ユーザー ID – 独自のユーザー ID を使用して、ユーザージャーニーに関する有意義な分析情報を得ることができます。
* テストモード – Ad Quality SDK インテグレーションをテストできます (デフォルトは false)
* ログレベル – コードの問題をデバッグするログレベルを選択できます (デフォルトは INFO)。

> **Note:**
>
> まず、以下の機能を使用できるように Ad Quality SDK を初期化します。

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

最初のシーンの Awake メソッドに、以下のコードを追加します。

```java
ISAdQualityConfig adQualityConfig = new ISAdQualityConfig();
```

### ユーザー ID

Ad Quality SDK には、ユーザー ID を設定するための以下のオプションがあります。

* Ad Quality を初期化する前に、独自のユーザー ID を使用してこのようなオプションをいつでも追加できます。

  ```java
  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.
  ```
* Ad Quality を初期化した後でユーザー ID が解決されるケースに対応できるように、デフォルトのユーザー ID に変更を加える API が用意されています。

  ```java
  IronSourceAdQuality.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.
  ```

### テストモード

```java
adQualityConfig.TestMode = true;
// The default is false - set to true only to test your Ad Quality integration
```

### ログレベル

```java
adQualityConfig.LogLevel = ISAdQualityLogLevel.INFO;
// There are 5 different log levels:
// ERROR, WARNING, INFO, DEBUG, VERBOSE
// The default is INFO
IronSourceAdQuality.Initialize(appKey, adQualityConfig);
```

## 初期化コールバック

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

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

```java
public class AdQualityInit : ISAdQualityInitCallback { 
    public void adQualitySdkInitSuccess() { 
        Debug.Log("adQualitySdkInitSuccess"); 
    }
 
    public void adQualitySdkInitFailed(ISAdQualityInitError adQualitySdkInitError, string errorMessage) { 
        Debug.Log($"adQualitySdkInitFailed: {adQualitySdkInitError}, message: {errorMessage}");
    } 
}

public class AdQualityDemo :MonoBehaviour { 
    void Awake() { 
        AdQualityInit initCallbacks = new AdQualityInit(); 
        ISAdQualityConfig adQualityConfig = new ISAdQualityConfig { 
            AdQualityInitCallback = initCallbacks 
        };
 
        IronSourceAdQuality.Initialize(appKey, adQualityConfig); 
    } 
}

```

> **Note:**
>
> Ad Quality SDK の初期化にかかる時間は、アプリに統合される広告ネットワーク SDK の数に応じて決まります。ネットワーク接続に問題があると、さらに遅延が生じる場合があります。平均して、初期化には 3 - 4 秒かかります。

## インプレッションレベルの広告収益を Ad Quality SDK にレポートする

* LevelPlay を使用している場合、以下の機能を使用する前に Ad Quality SDK を初期化してください。
* この機能ではインタースティシャル広告とリワード広告のみがサポートされます。 
* LevelPlay、MAX、DT FairBid では、このデータは自動的に収集されます。
* 最小要件: Ad Quality SDK 7.2.0 以上

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

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

```java
ISAdQualityCustomMediationRevenue customMediationRevenue = new ISAdQualityCustomMediationRevenue();
customMediationRevenue.MediationNetwork = ISAdQualityMediationNetwork.SELF_MEDIATED;
customMediationRevenue.AdType = ISAdQualityAdType.REWARDED_VIDEO;
customMediationRevenue.Revenue = 1.2;
IronSourceAdQuality.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 インテグレーションに以下のコードスニペットを追加します。

```java
RewardedAd rewardedAd;
public void HandleRewardedAdLoaded(object sender, EventArgs args)
{
    this.rewardedAd = args.rewardedAd;
}
private void HandleAdPaidEvent(object sender, AdValueEventArgs args)
{
   AdValue impressionData = args.AdValue;
   ISAdQualityCustomMediationRevenue customMediationRevenue = new ISAdQualityCustomMediationRevenue();
   customMediationRevenue.MediationNetwork = ISAdQualityMediationNetwork.ADMOB;
   customMediationRevenue.AdType = ISAdQualityAdType.REWARDED_VIDEO;
   customMediationRevenue.Revenue = impressionData.Value/1000000f;
   IronSourceAdQuality.SendCustomMediationRevenue(customMediationRevenue);
}
```
