I have got an e-mail from Unity about Google Families Policy Update
Starting April 1, 2022, the Google Families Policy will no longer allow Device IDs to leave users’ devices from apps where one of the target audiences is children. In order to configure Unity Ads to comply with these changes, please take the following actions before April 1, 2022:
And saying that i need to add some code and re-publish the app.
But my app is not targeted to children
and
I use Unity Ads via IronSource mediation.
also when I click the code link in the email it says
They didn’t write this in the email so it made me scared. But I assume i don’t have to do anything about it since i dont target children. Can anyone confirm?
I had the same question, as it wasn’t clear whether this applies to apps that specifically do NOT target children.
Reading through Google’s Families Ads Program docs, my takeaway is that Google doesn’t need me to change anything:
“If you serve ads in your app, and the target audience for your app only includes children as described in the Families Policy, then you must use ad SDKs that have self-certified compliance with Google Play policies…”
and
“The use of Google Play certified ad SDKs is only required if you are using ad SDKs to serve ads to children.”
However, I’m still not sure if the Unity Ads SDK requires adding the “privacy” metadata so that it knows I’m not including children in my target audience.
Just received Unity’s “Clarification to Action Required” that answers this question: No, I don’t need to do anything if my app doesn’t target children.
I’m releasing a game tomorrow and I too received the same mail, but I didn’t set the app targeted audience to children, I set to above age 13, so I dont need to do anything right.
The following changes are only necessary if your game meets all of the following criteria:
Published on Android
Are required to comply with Google Play’s Family Policy program (e.g., if one of the target audiences for your app is children)
Exclusively uses the Unity Ads SDK (see point 3 below if you use Unity Mediation)
In my case I meet all 3 conditions.
First of all I don’t know where I have to put this code. My game is PEGI 3 so I guess it will be the 2 option but I’m not sure. Can anybody help me please. Thanks
1:
If your game is directed at children, use this code to inform Unity Ads:
MetaData metaData = new MetaData(“privacy”);
metaData.Set(“mode”, “app”); // This app is directed at children; no users will receive personalized ads.
Advertisement.SetMetaData(metaData);
2:
If your game is directed at mixed audiences, use this code to inform Unity Ads when users should not receive personalized ads:
MetaData metaData = new MetaData(“privacy”);
metaData.Set(“mode”, “mixed”); // This is a mixed audience game.
Advertisement.SetMetaData(metaData);
MetaData metaData = new MetaData(“user”);
metaData.Set(“nonbehavioral”, “true”); // This user will NOT receive personalized ads.
Advertisement.SetMetaData(metaData);
Does this have to do anything with the app’s rating? Or the choices made on the Google Dev console under App Content → Target Audience and Content? My app is rating E10+, but my target audience is 13-15, 16-17, and 18+, and my store presence is ‘your app could unintentionally appeal to children. The ‘Not designed for children’ label will be shown next to your app on Google Play’. My app is not enrolled in designed for families.
My app might be suitable for younger ages, but that is not my target audience. Would I still need to comply with this?
The article says
“Your app is designed for everyone, including children”
“Any apps that have at least one target audience age group that includes children must comply with Google Play’s Families Policy Requirements.”
If you scroll down there is a age section
9-12
“Note that this age group is considered to include children in most locales.”
13-15
16-17
“Note that this age group may be considered to include children in some locales.”
I don’t know how to iterpret this. Because 13-17 is still children.
I have removed the program for families
I have set the app to +18
I have put that it collects data from the device id for ads and failures
and google tells me that I don’t have any problem with the declaration of the data
I know it’s not the optimal solution but I didn’t want the game to be removed from the store. Because I tried to change the code of the ads as unity told me and it didn’t work for me
So I updated for about 2 weeks and figured out how to do it right. I noticed a lot of things that no one alerted me to.
If you use the code to determine the user’s age, make sure that COPPA lights up in the UnityAds dashboards
It is necessary to include the Application in the family in UnityAds dashboards.
Determine if it is a mixed audience or not.
Google rule says that the ad may not hip for more than 5 seconds, but Unity blocks the ad 2x 5 seconds that in my opinion is 10 seconds. So reduce ad blocking to 0 sec.
Ad blocking from 13 years
Blocking of prohibited ads: Casino, Alcoholic Beverages, Lottery and Gambling, Dating and Social Media
Not sure a lot of these are needed to properly comply.
COPPA lights up if the implementation of the metadata is done properly.
It is not necessary - only enable this if your app is for families/kids. If it is not, there is no reason to toggle this setting on. The family program is an opt-in on Google’s dashboard that you are letting Unity know about on their portal.
The mixed audience just means if your app’s target audience could be considered a child. From Google’s definition, anything under 18 is a child depending on the locale - so if your app is not 18+, it seems your audience is considered ‘mixed’.
The 5-second rule is only applicable to ads that interfere directly with normal gameplay. If the ad is a part of the normal game loop - such as a reward ad, it does not count. It strictly means if your game has random pop-up ads that get in the way of play they need to be at most 5 seconds before the close button appears.
You do not need to block ads from those younger than 13 - if the metadata is properly set, Unity should handle this properly.
Again - if the metadata is properly set, if a user is detected to be a child on a device, then Unity will not serve them ads that are seen as violating Google’s family/child compliance policy.
All of the information I listed comes from the various documentation Google/Unity provides. It would be nice for a rep from Unity to be a bit more verbose about the compliance so there is no confusion regarding it. I have already tried reaching out to Google and they told me they can’t help with policy compliance until a policy is violated.
If your app has the potential of having a target audience of under 18, then simply add the snippet that can be found on Unity’s documentation. Just assure this code is before the initialization of your advertisements as it changes how the initialization works.
Edit: Not sure how I missed this one, but Unity has other documentation that states pretty clearly who has to comply with COPPA. If your app targets anyone under the age of 13, you can not have any personalized ads - at all. The only difference between the COPPA and the Google Compliance snippet is the portion where it alters the mode field and sets it to mixed. Where COPPA only alters the nonbehavioural field - setting it to true when no personalized ads are allowed and false otherwise.
I believe whoever set up the documentation copied the Google Compliance snippet directly from the COPPA one. My confusion comes from the comment next to the second meta field being set to ‘true’ and stating that the current user will NOT receive personalized ads. Does that mean setting the mode field does nothing? Or does Unity figure out if the user is considered a child? Then properly handles if the user can or can not receive personalized ads?
Of course, don’t forget to classify the application by age. If the application is +3 then it is probably necessary to set the ads to Do not show ads rates +5. If it is +7 it is necessary to set the ads to Do not show ads rates +9 etc.
Unfortunately, you are not right. we have a well added code, but the ads still appear in the app for example age +7 even though the app is pegi 3. This means you need to set Do not show ads rates +5. Our application was rejected again because we thought the code would solve everything. That’s bullshit. We handle this with Google play support.
It worked for me. No idea what your code setup is or how your play store portal questionnaires are answered. It wouldn’t make sense to need to do all that. Not to mention you haven’t said the type of ads you are running. You could be getting rejected for an entirely different reason.
MetaData metaData = new MetaData("privacy");
metaData.Set("mode", "app"); // This app is directed at children; no users will receive personalized ads.
Advertisement.SetMetaData(metaData);
metaData = new MetaData("user");
metaData.Set("nonbehavioral", "true"); // This user will NOT receive personalized ads.
Advertisement.SetMetaData(metaData);
The targeting settings are correct and the application is pegi 3, but to be on the safe side, we changed it to pegi 7 to pass further checks because we were disapproved because pegi 7 ads were displayed in the application. In the Unity ads penels, we see that pegi 7 ads were displayed there, even though the application was pegi 3. Therefore, it is better to set everything manually and not rely on the code, because Google is ruthlessly deleting the application. in case of violation.
In Unityads panels the age setting is also written that we can set the age manually and maybe it was conditioned by the setting to not show ads under 13 years. It is then not clear to us how the age setting is conditioned by the automatic age setting, but if we had the pegi 3 application, the code should not allow it to be set to a higher age in the Unity Ads panels. Previously, we were not supposed to show ads under the age of 13, and yet we were showing an intagram ad that had a pegi of 13 and we had problems with Google play. I think it has bugs and it’s unreliable.
Odd. It would be really nice if a Unity rep hopped in the thread and helped clear all this up instead of the trial and error you are having to go through.
I placed it in my already existing script that manages ads for my game. Assure that this code is set before the initialization of your ads. As well, this snippet will block personalized ads for everyone. You need to prompt the user for their age to properly set the second field of the second metadata. If they are below the age of 18, then it is “true”, if not, then “false”. You can also ask the user if they wish to opt-out of target/personalized ads. Something like:
// comply with Google's new family policy
MetaData metaData = new MetaData("privacy");
metaData.Set("mode", "mixed"); // This is a mixed audience game.
Advertisement.SetMetaData(metaData);
if(Application.platform == RuntimePlatform.Android)
{
if (SettingsManager.Instance.UserAge == USER_AGE.UNSET)
{
ageComplianceCanvas.SetActive(true);
metaData = new MetaData("user");
metaData.Set("nonbehavioral", "true"); // assume they are a child
Advertisement.SetMetaData(metaData);
}
else
{
string showPersonalizedAds = (SettingsManager.Instance.UserAge == USER_AGE.UNDER_18).ToString();
metaData = new MetaData("user");
metaData.Set("nonbehavioral", showPersonalizedAds);
Advertisement.SetMetaData(metaData);
}
}
... // I am also checking for ATT for iOS
Advertisement.Initialize(gameId, testMode, this);