# 儿童数据法合规性、CARU 合规性和内容相关广告

> 遵守儿童数据隐私法。启用内容相关广告并设置年龄定位以满足 COPPA 和 CARU 要求。

儿童数据法，包括但不限于美国的《儿童网络隐私保护法》([COPPA](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule))，对如何收集和使用年龄受限用户（例如，13 岁、16 岁或 18 岁以下儿童，具体年龄取决于适用法律）的数据做出了限制。Unity Ads 提供游戏级别和用户级别的功能，帮助发行商为受相关儿童数据法保护的用户提供安全、积极的用户体验。每个启用 Unity Ads 的项目都必须指定游戏是否面向年龄受限的用户。

> **Important:**
>
> 您有责任确保在 Unity Monetization（变现）后台中准确设置应用级别和用户级别的年龄定位。

您的游戏中可以出现两种类型的广告：

* **个性化**广告可利用行为用户数据来提供用户更可能感兴趣的内容。例如，如果用户玩过一系列以运动为主题的游戏，则可能会出现其他具有类似运动主题的游戏的广告。面向年龄受限用户的游戏不能投放个性化广告。投放个性化广告的游戏往往可以比允许内容相关广告的游戏获得更多收入。
* **内容相关**广告仅基于用户当前正在玩的游戏。例如，如果用户正在玩以篮球为特色的游戏，则可能会出现以篮球为特色的其他游戏，而不管用户是否玩过其他游戏。面向年龄受限用户的游戏只能投放内容相关广告。与允许个性化广告的游戏相比，仅投放内容相关广告的游戏所获得的收入往往更少。

## 设置游戏级别年龄定位##setting-game-level-age-designations

选择年龄定位或合规性选项决定了在您的项目中如何处理广告请求。在游戏级别，所有广告请求都被视为纯儿童流量或纯成人流量，这取决于您的受众是儿童（根据适用的儿童数据法的定义）还是成人。

如果您的项目同时针对儿童和成人，则可以在用户级别实现年龄定位，这样您就可以按用户年龄组指定投放的广告。如需了解详细信息，请参阅[实现用户级别年龄定位](#user-level)。

[Monetization（变现）后台](http://cloud.unity.com/monetization)提供的[儿童数据法合规性选项](/grow/dashboard/get-started/project/settings.md)如下：

* \*\*This project is directed to children（此项目面向儿童）\*\*表示游戏受相关儿童数据法限制，因此只能向所有用户投放内容相关（非定向投放的）广告。针对已指定为混合受众应用程序的应用程序，此定位选项允许您另外单独[启用特定于用户的 COPPA](#user-level) 定位。
* \*\*This project is not directed to children（此项目不面向儿童）\*\*表示游戏不受相关儿童数据法限制，因此可向所有用户投放行为（定向投放的）广告。
* **混合受众**是指根据相关儿童数据法的规定，项目同时面向儿童和成人用户。对于混合受众项目，您可以在个人级别检测用户所属的年龄组，并根据 COPPA 或其他相关儿童数据法的限制为每个用户投放相应的广告，而不是在不考虑用户年龄的情况下，统一处理所有用户并向所有用户投放个性化广告或内容相关广告。

> **Note:**
>
> 要为您的项目启用混合受众定位，您必须首先在游戏级别年龄定位部分选择面向儿童的项目。

## 实现用户级别年龄定位##user-level

> **Note:**
>
> 仅当您的项目已启用混合受众时，您才能实现用户级别年龄定位。

在 Monetization（变现）后台中，游戏级别年龄定位将统一处理广告请求，将所有用户视为儿童或成人。当您选择让项目拥有混合受众的选项时，您便能够跟踪用户的个人信号并将他们视为儿童或成人，并分别提供内容相关广告或个性化广告。如果出于任何原因未指定某个信号，则默认提供内容相关广告。

如果您的应用面向儿童，但您认为面向混合受众更合理，则可以根据传递给 Unity Ads SDK 的标志，通过编程方式为用户分配年龄定位。

为此，请在以下部分中根据您的特定用例实现非行为元数据 API。

> **Important:**
>
> 当非行为字段为 **true** 时，用户无法接收个性化广告。当非行为字段为 **false** 时，用户可以接收个性化广告。您必须在 SDK 每次初始化时传达相应的年龄受限状态，以确保成人在会话期间选择退出或同意个性化广告时，Unity Ads 不会错误地将用户视为儿童。

### Unity Ads 的独占使用和自有聚合客户##unity-ads-exclusive-and-self-mediated-customers

如果您的项目直接向 Unity 发送信号，而不是通过合作伙伴聚合平台（MAX、ironSource 或 AdMob），并且您想实现用户级别的年龄定位：

1. 实现一种方法来确定用户是否应该接收个性化广告。具体方法由您自己决定。
2. 通过实现非行为元数据 API，将每个用户的年龄受限状态传达给 Unity。
3. 重新构建您的应用程序。
4. 在 Monetization（变现）后台中，转到您的项目设置，然后找到 \*\*Privacy settings（隐私设置）\*\*部分，将游戏级别的年龄定位设置为 **This app is directed to children（此应用面向儿童）**，并将 \*\*Is this a Mixed Audience Game?（这是一款混合受众游戏吗？）\*\*设置为 **Yes（是）**。

### 第三方聚合客户##third-party-mediation-customers

如果您的项目使用受支持的聚合平台，并且您希望实现用户级别的年龄定位：

1. 实现一种方法来确定用户是否应该接收个性化广告。具体方法由您自己决定。
2. 请参考您聚合提供商的文档，了解如何将该信息传递到其平台。我们当前支持 ironSource、[MAX](https://dash.applovin.com/documentation/mediation) 和 [AdMob](https://support.google.com/admob/answer/6223431?hl=en) 作为用户级别年龄定位的第三方聚合解决方案。

> **Note:**
>
> 有关为项目初始化 Unity Ads 和选择提供商的更多信息，请参阅
>
> [聚合平台](/monetization/bidding/in-app-bidding.md)
>
> 文档。

3. 在 Monetization（变现）后台中，转到您的项目设置，然后找到 \*\*Privacy settings（隐私设置）\*\*部分，将游戏级别的年龄定位设置为 **This app is directed to children（此应用面向儿童）**，并将 \*\*Is this a Mixed Audience Game?（这是一款混合受众游戏吗？）\*\*设置为 **Yes（是）**。

### 第三方聚合平台##third-party-mediation-platforms

如果您是第三方聚合提供商，希望能够代表开发者向 Unity 发送用户级别年龄受限信号，请联系客户支持或您的客户经理。

> **Note:**
>
> 我们当前支持 ironSource、
>
> [MAX](https://dash.applovin.com/documentation/mediation)
>
> &#x20;和&#x20;
>
> [AdMob](https://support.google.com/admob/answer/6223431?hl=en)
>
> &#x20;作为用户级别年龄定位的第三方聚合解决方案。有关为项目初始化 Unity Ads 和选择提供商的更多信息，请参阅
>
> [聚合平台](/monetization/bidding/in-app-bidding.md)
>
> 文档。

## 跟踪特定于用户的年龄受限信号##tracking-user-specific-age-restricted-signals

在 Monetization（变现）后台的 Project Settings（项目设置）页面中，在将游戏级别的年龄定位设置为混合受众并在应用中实现用户级别的年龄定位后，您可以跟踪以下内容：

* 您应用中每个平台的用户信号状态（如适用）
* 成人流量与儿童流量之间的受众细分情况

考虑到您应用代码中实现的年龄限制方法正确遵循关于儿童（根据适用的儿童数据法的定义）和成人的年龄受限用户群组定义，因此所有未指定的流量由不同意在您的应用中分享其年龄或所属年龄组的用户组成。在这种情况下，为了符合儿童数据法限制，未指定的流量被视为儿童流量。因此，儿童流量和未指定流量的总和构成了将向其提供内容相关广告的用户总数。

> **Important:**
>
> 作为发行商，您有责任确保您实现的年龄限制方法符合适用法律以及此用户级别年龄受限功能的意图。Unity 或 Unity Ads SDK 不负责验证您的年龄限制机制或相关信号信息如何被翻译并传递给 Unity 进行处理的。

### 非行为元数据 API 实现##nonbehavioral-metadata-api-implementation

1. **Unity (C#)**

   ```cs
   // If the user opts out of personalized ads: 
   MetaData userMetaData = new MetaData("user");
   userMetaData.Set("nonbehavioral", "true");
   Advertisement.SetMetaData(userMetaData);

   // If the user opts in to personalized ads:
   MetaData userMetaData = new MetaData("user");
   userMetaData.Set("nonbehavioral", false);
   Advertisement.SetMetaData(userMetaData);
   ```

   > **Note:**
   >
   > 必须先为每个值提交 `MetaData` 对象的更改，然后才能尝试设置另一个值。

2. **iOS (Objective-C)**

   ```objective-c
   // If the user opts out of personalized ads: 
   UADSMetaData *userMetaData = [[UADSMetaData alloc] init];
   [userMetaData set:@"user.nonbehavioral" value:@YES];
   [userMetaData commit];

   // If the user opts in to personalized ads:
   UADSMetaData *userMetaData = [[UADSMetaData alloc] init];
   [userMetaData set:@"user.nonbehavioral" value:@NO];
   [userMetaData commit];
   ```

   > **Note:**
   >
   > 必须先为每个值提交 `MetaData` 对象的更改，然后才能尝试设置另一个值。

3. **Android (Java)**

   ```java
   // If the user opts out of personalized ads: 
   MetaData userMetaData = new MetaData(this);
   userMetaData.set("user.nonbehavioral", true);
   userMetaData.commit();

   // If the user opts in to personalized ads:
   MetaData userMetaData = new MetaData(this);
   userMetaData.set("user.nonbehavioral", false);
   userMetaData.commit();
   ```

   > **Note:**
   >
   > 必须先为每个值提交 `MetaData` 对象的更改，然后才能尝试设置另一个值。

如果用户没有执行任何操作来确认自己的年龄（例如，他们关闭了提示），我们建议稍后再次提示用户。未定义个人年龄受限状态的用户将看到与 Monetization（变现）后台中定义的[默认行为](/grow/dashboard/get-started/project/settings.md#default-behavior-for-unknown-users)一致的广告。

## CARU 合规性##caru-compliance

儿童广告审查机构 (CARU) 提倡针对 13 岁以下的儿童推广负责任的广告和隐私实践。为了帮助我们的客户遵守 CARU 准则，所有 COPPA 广告上都会添加一个标识为“广告”的水印，并将“退出”和“跳过”按钮以粗体显示。
