# 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：

* 使用您自己的用户 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.
  ```
* 对于在 AdQuality 初始化后解析用户 ID 的情况，我们提供了一个 API 来修改默认用户 ID：

  ```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
  字符，否则将被屏蔽。
  ```

### 测试模式

```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);
}
```
