COPPA compliance, CARU compliance, and contextual ads
The Children’s Online Privacy Protection Act (COPPA) imposes restrictions on how data can be collected and used from children under the age of 13. Unity Ads provides tools to help publishers provide a safe and positive user experience. Each Unity Ads-enabled project must specify whether their game targets users under the age of 13.
Attention: It is your responsibility to ensure your App-level and User-level age designations are set up accurately in the Unity dashboard.
Important: Regional policies such as PIPL, GDPR, CCPA, VCDPA, CPA, CTDPA, or Quebec Law 25 take precedent over COPPA and contextual ad settings.
There are two types of ads that can appear in your game:
- Personalized ads leverage behavioral user data to serve content that is more likely to interest the user. For example, if a user has played a series of sport-themed games, ads for other games with similar sports themes might appear. Games targeting users under the age of 13 cannot serve personalized ads. Games that serve personalized ads tend to accrue more revenue than games that allow contextual ads.
- Contextual ads are only based on the game that the user is currently playing. For example, if the user is playing a game that features basketball, other games that feature basketball are likely to appear, regardless of other games the user has played. Games that target users under the age of 13 can only serve contextual ads. Games that only serve contextual ads tend to accrue less revenue than games that allow personalized ads.
Setting game-level COPPA designations
Selecting a COPPA designation or compliance option determines how ad requests are processed in your project. At the game-level, all ad requests are treated as all child traffic or all adult traffic, depending on if your audience is children (users under age 13) or adults (users age 13 and higher).
If your project is aimed at both children and adults, you can implement COPPA designations at the user-level so you can specify the ad served by the user’s age group. Refer to Implementing user-level COPPA designations for details.
These are the COPPA compliance options available through the Monetization dashboard:
- This project is directed to children under the age of 13 means the game falls under COPPA restrictions, and can therefore only serve contextual (non-targeted) ads to all users. This designation permits you to enable user-specific COPPA designations solely for applications you also designate as mixed audience applications.
- This project is not directed to children under the age of 13 means the game does not fall under COPPA restrictions, and can therefore serve behavioral (targeted) ads to all users.
- Mixed audience means that the project is directed to both children under the age of 13 and users age 13 and above. For mixed audience projects, instead of handling all users uniformly and serving personalized ads or contextual ads to all regardless of their age, you can detect at the individual level what age group your users are and serve each user ads accordingly, following COPPA restrictions.
Note: To enable a Mixed Audience designation to your project, you must first select your project to be directed to children under 13 at the game-level COPPA designation section.
Implementing user-level COPPA designations
Note: You are only able to implement user-level COPPA designations if your project is enabled for a mixed audience.
In the Monetization dashboard, game-level age designations treat ad requests uniformly as if all users are children under 13, or all users are 13 and above. When you select the option that your project has a mixed audience, you are able to track your users’ individual signals and treat them as if they are a child or an adult, and serve contextual ads or personalized ads, respectively. If a signal is unspecified for any reason, contextual ads are served by default.
If your app is directed to children under the age of 13 but you want to more appropriately represent a mixed audience, you can programmatically assign users a COPPA designation according to a flag passed to the Unity Ads SDK.
To do this, implement the nonbehavioral metadata API according to your specific use case in the following sections.
Important: When the nonbehavioral field is true, the user cannot receive personalized ads. When the nonbehavioral field is false, the user can receive personalized ads. You must communicate the appropriate COPPA status every time the SDK initializes to ensure that Unity Ads does not incorrectly treat a user as a child, as an adult opting out of personalized ads, or an adult consenting to personalized ads during their session.
Unity Ads exclusive and self-mediated customers
If your project sends signals to Unity directly instead of through a partner mediator (MAX, ironSource, or AdMob) and you want to implement user-level age designations:
- Implement a way to determine if the user should receive personalized ads. How you do this is up to your discretion.
- Communicate the COPPA status of each user to Unity by implementing the nonbehavioral metadata API.
- Rebuild your application.
- In the Monetization dashboard, navigate to your project settings, then the Privacy settings section, and set the Game-level COPPA designation to This app is directed to children under the age of 13, and Is this a Mixed Audience Game? to Yes.
Third-party mediation customers
If your project uses a supported mediation platform and you want to implement user-level age designations:
Implement a way to determine if the user should receive personalized ads. How you do this is up to your discretion.
Follow your mediation provider’s documentation on how to communicate that information to their platform. We currently support ironSource, MAX, and AdMob as third-party mediation solutions for user-level age designations.
Note: For more information on initializing Unity Ads for your project and selecting a provider, refer to the mediation partner documentation.
In the Monetization dashboard, navigate to your project settings, then the Privacy settings section, and set the Game-level COPPA designation to This app is directed to children under the age of 13, and Is this a Mixed Audience Game? to Yes.
Third-party mediation platforms
If you are a third-party mediation provider that wants to support sending user-level COPPA signals to Unity on behalf of developers, reach out to customer support or your managing partner.
Note: We currently support ironSource, MAX, and AdMob as third-party mediation solutions for user-level age designations. For more information on initializing Unity Ads for your project and selecting a provider, refer to the mediation partner documentation.
Tracking user-specific COPPA signals
From the Project Settings page of the Monetization dashboard, after setting the game-level COPPA designation to be a mixed audience and implementing user-level COPPA designations in your app, you can then track the following from the dashboard:
- User signal statuses in your app, per platform, if applicable
- What the audience breakdown is between adult traffic and child traffic
Considering the age gate implementation in your app code correctly follows the COPPA age group definition of children (users under age 13) and adults (users age 13 and above), all unspecified traffic is composed of users who do not consent in sharing their age or age group in your app. In this case, unspecified traffic is treated as child traffic to be compliant with COPPA restrictions. As a result, the sum of child traffic and unspecified traffic makes up the total of users who will be served contextual ads.
Important: It is your responsibility as the publisher to ensure your age gate implementation is compliant with applicable law and the intent of this user-level COPPA feature. It’s not the responsibility of Unity or the Unity Ads SDK to validate your age gate mechanism, or how the relevant signal information gets translated and passed to Unity for processing.
Nonbehavioral metadata API implementation
Unity (C#) example
// 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: You must commit the changes to the MetaData
object for each value before trying to set another value.
Android (Java) example
// 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: You must commit the changes to the MetaData
object for each value before trying to set another value.
iOS (Objective-C) example
// 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: You must commit the changes to the MetaData
object for each value before trying to set another value.
If a user takes no action to confirm their age (for example, they close a prompt), we recommend that you re-prompt them at a later time. Users with an undefined individual COPPA status will see ads consistent with the default behavior as defined in the Monetization dashboard.
CARU compliance
The Children’s Advertising Review Unit (CARU) promotes responsible advertising and privacy practices to children under the age of 13. To assist with our customers’ compliance with CARU guidelines, all COPPA ads have a watermark that identifies the ad as an “Advertisement” and have bolded the exit and skip buttons.