Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. Dismiss Notice

Question Regarding Google Families Policy Update

Discussion in 'Unity Ads & User Acquisition' started by waltran, Mar 18, 2022.

  1. waltran

    waltran

    Joined:
    Feb 23, 2017
    Posts:
    36
    Hi,

    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?
     
  2. PanicEnsues

    PanicEnsues

    Joined:
    Jul 17, 2014
    Posts:
    187
    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.
     
  3. PanicEnsues

    PanicEnsues

    Joined:
    Jul 17, 2014
    Posts:
    187
    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.
     
    waltran likes this.
  4. Harsha_U

    Harsha_U

    Joined:
    Oct 31, 2020
    Posts:
    3
    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.

    and check the game here:
    HuuD Game Studios
     
  5. PanicEnsues

    PanicEnsues

    Joined:
    Jul 17, 2014
    Posts:
    187
    It sounds like you should be exempt from the Families Ads Program.

    But be aware that you will have to abide by the "Families Policy" because you're including age 13-18 in your target audience.

    Apparently you can never have too many overlapping sets of rules and regs... :confused:
     
  6. unity_R_FxE4AcMHOdHg

    unity_R_FxE4AcMHOdHg

    Joined:
    May 13, 2020
    Posts:
    6
    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);
     
  7. Hofmann

    Hofmann

    Joined:
    Sep 30, 2015
    Posts:
    25
  8. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    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?
     
  9. Hofmann

    Hofmann

    Joined:
    Sep 30, 2015
    Posts:
    25
    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.
     
  10. unity_R_FxE4AcMHOdHg

    unity_R_FxE4AcMHOdHg

    Joined:
    May 13, 2020
    Posts:
    6
    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
     
  11. Hofmann

    Hofmann

    Joined:
    Sep 30, 2015
    Posts:
    25
    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.
    1. If you use the code to determine the user's age, make sure that COPPA lights up in the UnityAds dashboards
    2. It is necessary to include the Application in the family in UnityAds dashboards.
    3. Determine if it is a mixed audience or not.
    4. 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.
    5. Ad blocking from 13 years
    6. Blocking of prohibited ads: Casino, Alcoholic Beverages, Lottery and Gambling, Dating and Social Media

    I've done all this and I'm waiting for approval from Google play.
    After these steps, the dialog with enabling data removal is no longer displayed.
    https://support.google.com/googleplay/android-developer/answer/9898834/#zippy=,examples-of-common-violations

    And in advance it is also possible to add permission to AndroidManifest, which will be required from Api 31 Android 13 <uses-permission android: name = "com.google.android.gms.permission.AD_ID" />
     

    Attached Files:

    Last edited: Mar 26, 2022
  12. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    Not sure a lot of these are needed to properly comply.

    1. COPPA lights up if the implementation of the metadata is done properly.
    2. 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.
    3. 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'.
    4. 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.
    5. You do not need to block ads from those younger than 13 - if the metadata is properly set, Unity should handle this properly.
    6. 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?
     
    Last edited: Mar 26, 2022
  13. Hofmann

    Hofmann

    Joined:
    Sep 30, 2015
    Posts:
    25
    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.
     
  14. Hofmann

    Hofmann

    Joined:
    Sep 30, 2015
    Posts:
    25

    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.
     
  15. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    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.
     
    Last edited: Mar 27, 2022
  16. Hofmann

    Hofmann

    Joined:
    Sep 30, 2015
    Posts:
    25
    My code was this:

    Code (CSharp):
    1.  MetaData metaData = new MetaData("privacy");
    2.         metaData.Set("mode", "app"); // This app is directed at children; no users will receive personalized ads.
    3.         Advertisement.SetMetaData(metaData);
    4.  
    5.         metaData = new MetaData("user");
    6.         metaData.Set("nonbehavioral", "true"); // This user will NOT receive personalized ads.
    7.         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.
     
    Last edited: Mar 28, 2022
  17. Hofmann

    Hofmann

    Joined:
    Sep 30, 2015
    Posts:
    25
    I'm already annoyed I have set Do not show ads rated 5+, but pegi 7 ads are still displayed in the application.
     
  18. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    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.
     
  19. grapemedia

    grapemedia

    Joined:
    May 16, 2020
    Posts:
    2
    Hello. Can I ask where did you insert this code? Existing, or new script. Thanks
     
  20. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    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:

    Code (CSharp):
    1.  // comply with Google's new family policy
    2. MetaData metaData = new MetaData("privacy");
    3. metaData.Set("mode", "mixed"); // This is a mixed audience game.
    4. Advertisement.SetMetaData(metaData);
    5. if(Application.platform == RuntimePlatform.Android)
    6. {
    7.     if (SettingsManager.Instance.UserAge == USER_AGE.UNSET)
    8.     {
    9.         ageComplianceCanvas.SetActive(true);
    10.         metaData = new MetaData("user");
    11.         metaData.Set("nonbehavioral", "true"); // assume they are a child
    12.         Advertisement.SetMetaData(metaData);
    13.     }
    14.     else
    15.     {
    16.         string showPersonalizedAds = (SettingsManager.Instance.UserAge == USER_AGE.UNDER_18).ToString();
    17.    
    18.         metaData = new MetaData("user");
    19.         metaData.Set("nonbehavioral", showPersonalizedAds);
    20.         Advertisement.SetMetaData(metaData);
    21.     }
    22. }
    23. ... // I am also checking for ATT for iOS
    24.  
    25. Advertisement.Initialize(gameId, testMode, this);
    26.  
     
  21. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    146
    Hello!

    In some regions, people under 18 can be defined as children, which means they cannot be shown personalized ads.

    The right thing to do would be to

    Code (CSharp):
    1.  // comply with Google's new family policy
    2. MetaData metaData = new MetaData("privacy");
    3. metaData.Set("mode", "mixed"); // This is a mixed audience game.
    4. Advertisement.SetMetaData(metaData);
    5. if(Application.platform == RuntimePlatform.Android)
    6. {
    7.     int userAge =SettingsManager.Instance.UserAge;
    8.     if (userAge<= 18)
    9.     {  
    10.         metaData = new MetaData("user");
    11.         metaData.Set("nonbehavioral", "true"); // assume they are a child
    12.         Advertisement.SetMetaData(metaData);
    13.     }
    14.     else if (userAge > 18)
    15.     {
    16.         string noShowPersonalizedAds = SettingsManager.Instance.NoShowPersonalizedAds.ToString();
    17.         //or FORCE by your terms and privacy policy
    18.         noShowPersonalizedAds= false;
    19.  
    20.         metaData = new MetaData("user");
    21.         metaData.Set("nonbehavioral", noShowPersonalizedAds);
    22.         Advertisement.SetMetaData(metaData);
    23.     }
    24. }
    25. ... // I am also checking for ATT for iOS
    26. Advertisement.Initialize(gameId, testMode, this);

    What do you think about it?
     
  22. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    What do you mean by the "right" thing here? My code by default assumes the user is under 18 - hence the comment assuming they are a child. The whole point of having the UNSET value is to assure the user only sees the pop-up asking for their age range once. If you read the code, it first sets the nonbehavioral to "true", meaning they do NOT receive personalized ads. The else will never be broken into unless a user selects an option from the unskippable pop-up. Not sure what you are doing in your code snippet but it does NOT meet the functionality I am trying to achieve.
     
  23. denis_bogdanov

    denis_bogdanov

    Joined:
    Apr 20, 2015
    Posts:
    146
    If your audience is mixed

    1. Show the "Consent" pop-up window
    2. Get "UserAge" and set in Settings (SettingsManager.Instance.UserAge)
    3a If the player is under 18, set the settings to disable personalized ads (SettingsManager.Instance.NoShowPersonalizedAds.= true)
    3b If player is more than 18 show the personalized advertisement selection window or use force in "true" with the privacy policy.

    4. After Initialize ads

    Isn't this the order?
     
  24. TEEBQNE

    TEEBQNE

    Joined:
    Jan 25, 2017
    Posts:
    88
    Yea that order is fine. I am just choosing to assume the user is a child before the prompt and initializing the ads with no personalized ads the first time around. After answering the prompt, the manager uses their response to set the metadata for every successive load of the game or a new scene.

    I also allow users to update their response at any time in the app's settings. I do not know of any compliance that should default the user to not tracked data if above 18? For iOS, there is ATT, which is an OS-level prompt the user is shown the first time opening the app.
     
    denis_bogdanov likes this.