Play Store issue about Family Ads Program

{
“main”: “node_modules/expo/AppEntry.js”,
“scripts”: {
“start”: “expo start”,
“android”: “expo start --android”,
“ios”: “expo start --ios”,
“web”: “expo start --web”,
“eject”: “expo eject”
},
“dependencies”: {
@react-native-community/async-storage”: “~1.12.0”,
@react-native-community/masked-view”: “0.1.10”,
@react-navigation/native”: “^5.7.3”,
@react-navigation/stack”: “^5.9.0”,
“date-fns”: “^2.16.1”,
“expo”: “^39.0.0”,
“expo-constants”: “~9.2.0”,
“expo-screen-orientation”: “~2.0.0”,
“expo-splash-screen”: “~0.6.1”,
“expo-store-review”: “~2.1.2”,
“react”: “16.13.1”,
“react-dom”: “16.13.1”,
“react-native”: “https://github.com/expo/react-native/archive/sdk-39.0.3.tar.gz”,
“react-native-collapsible”: “^1.5.3”,
“react-native-gesture-handler”: “~1.7.0”,
“react-native-reanimated”: “~1.13.0”,
“react-native-safe-area-context”: “3.1.4”,
“react-native-screens”: “~2.10.1”,
“react-native-snap-carousel”: “^3.9.1”,
“react-native-web”: “~0.13.7”,
“react-native-webview”: “10.7.0”
},
“devDependencies”: {
“babel-plugin-transform-remove-console”: “^6.9.4”,
“babel-preset-expo”: “^8.3.0”
},
“private”: true
}

Hi @notbrent. I am also facing same problem. I have ejected the app but I don’t know where facebook sdk is and how to remove it. Please answer us how to locate and remove facebook sdk from ejected expo app.

hey all, this isn’t the answer that you’re hoping for but we’ve updated our “Limitations” page for the managed workflow to indicate that ‘You cannot participate in Google’s “Designed for Families” Program’.

Google requires any app that primarily targets children under 13 to follow a strict set of guidelines. One of these guidelines is that any ad library included in the app must be a part of Google’s Families Ads Program. Managed workflow apps contain the code for the entire Expo SDK by default, including Facebook’s Audience Network library. Because this library is not part of Google’s Families Ads Program yet, you cannot list your app as “designed primarily for children under 13” in the Play Store.

what you can do today to unblock your app submission

if you have built your app with the managed workflow then you will need to eject to bare workflow to submit your app to the play store for the “Designed for Families” program.

what we are working on to prevent this and related problems in the future

we’ve been working on re-building our build process to be more flexible and powerful, and it will solve this and related issues in the future. it’s not quite ready yet though, and we might not be able to ship a public beta until the end of the year or early new year.

4 Likes

I can confirm that ejecting the app to the bare workflow worked for me. Even without any changes in the code trying to remove the sneaky Facebook SDK, just by ejecting, building the bundle, and submitting again, I got my app approved by the Play Store.

I had to explicitly confirm that I want the location permissions removed though. Just to delete the lines requestion permissions in the AndroidManifest.xml is not enough. You have to add lines saying that you want to remove those permissions:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="package name here">
 
...

  <uses-permission tools:node="remove" android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission tools:node="remove" android:name="android.permission.ACCESS_COARSE_LOCATION" />

...

</manifest>
1 Like

I am facing another issue that a few of my bundled images are not loading anymore for no apparent reason. No idea where is the bug, but it is an issue for another thread…

Will a solution for this be shipped in v40 (which I read now is in beta.

Will a solution for this be shipped in v40

there is no plan to do this. as i wrote above:

we’ve been working on re-building our build process to be more flexible and powerful, and it will solve this and related issues in the future. it’s not quite ready yet though, and we might not be able to ship a public beta until the end of the year or early new year.

Hi. SDK 40 is not yet in beta. SDK 40 is expected to be released some time in December and according to the blog post the beta version will be released about a week before that.

Beginning with SDK 40, we will be trying out an SDK beta release period for approximately one week before the final release.

What steps need to be taken to remove the Facebook SDK, I’ve ejected my app and removed Expo Updates following the instructions here expo/packages/expo-updates at master · expo/expo · GitHub, but the app is still getting rejected by the Play Store.

@notbrent @deltasoneca
I have also ejected the app to bare workflow, removed the permissions and expo updates. but still the app is been rejected from playstore. When i Appealed against rejection, The Google Play Team replied that they have found Facebook SDK.

Here is my package.json dependencies list. Is there anything in there that could have Facebook Ads SDK as a subdependency?

"dependencies": {
    "@expo/vector-icons": "^10.0.0",
    "@react-native-community/async-storage": "~1.12.0",
    "expo": "^39.0.0",
    "expo-av": "~8.6.0",
    "expo-constants": "~9.2.0",
    "expo-linear-gradient": "~8.3.1",
    "expo-splash-screen": "~0.6.1",
    "expo-status-bar": "~1.0.2",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "0.63.3",
    "react-native-gesture-handler": "~1.7.0",
    "react-native-modal": "^11.5.6",
    "react-native-reanimated": "~1.13.0",
    "react-native-safe-area-context": "3.1.4",
    "react-native-screens": "~2.10.1",
    "react-native-size-matters": "^0.3.1",
    "react-native-svg": "12.1.0",
    "react-native-switch": "^2.0.0",
    "react-native-unimodules": "~0.11.0",
    "react-native-web": "^0.14.5"
  },
  "devDependencies": {
    "@babel/core": "^7.8.4",
    "@expo/webpack-config": "^0.12.40",
    "@svgr/core": "^5.0.1",
    "@svgr/plugin-prettier": "^5.0.1",
    "babel-eslint": "^10.0.3",
    "babel-jest": "~25.2.6",
    "babel-preset-expo": "^8.3.0",
    "eslint": "^6.8.0",
    "eslint-config-airbnb": "^18.0.1",
    "eslint-plugin-import": "^2.20.1",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-react": "^7.18.3",
    "eslint-plugin-react-hooks": "^1.7.0",
    "jest": "~25.2.6",
    "react-native-svg-transformer": "^0.14.3",
    "react-test-renderer": "~16.11.0"
  },

for the libraries that i am familiar with from that list (packages from the sdk) i do not see any that would include the facebook sdk.

are you possibly still running expo build:android to produce your app binary? you can’t currently do this after ejecting, you need to follow these instructions instead, or if you dm me on slack (https://slack.expo.io/ - i’m brent on there) i can share info about a preview of a new build service we’re working on that supports ejected apps.

After ejecting to bare work flow, we are using following commands to build which are same as in the link you mentioned.

"aab-build": "cd android && gradlew bundleRelease",
"apk-build": "cd android && gradlew assembleRelease",

Can you please let us know any technique/tool using which we can locate where the Facebook SDK is and also how to uninstall/remove it from the project manually?

@notbrent we are also still getting rejected after ejecting and using Android Studio to build. This is our list of modules captured from Android Studio. I don’t see any unauthorized SDKs for the Families Program in this list, but Google is still claiming them. We reached out to them to provide more information but has been quiet.

i don’t have a good answer for you, could you try to get more information from google about what they are specifically finding? you can ask them what symbols they are detecting that they are associating with the facebook sdk, and that is something that we can work with here.

I’ve put in a request to Google for more details on what the problem is, I’ll report back when I get an answer.

Finally had a reply from Google Play.

All they will tell me is that the app contains use of Facebook SDK which is not allowed in apps that are in the Family Ads Program.

Really not sure where to go from here

Same thing for us, Google replied to us yesterday finally, basically the same automated email they’ve sent us before. We’re stuck as well even after converting to the bare workflow.

We have detected the use of Facebook SDK , which is not allowed in apps that are in the Families program. An ad SDK is not allowed if it has not self-certified its compliance with Play’s Families Ads Program (certified ad SDKs), or it is non-COPPA compliant per its own public documentation. Please note, the status of SDKs often changes and it is your responsibility to review documentation of all SDKs used in your app to ensure compliance with Families policies.

1 Like

Hello this is the reply from Google Play team when I asked for more details about app rejection.

Hi *****,

Thanks for contacting the Google Play team.

I see your app, ********* , was resubmitted earlier and is currently under review process.

Please note that it will take some time for your app to be processed for publishing on Google Play.

However, please refer to our previous email (Ticket No: XXXXXXX), as your app ( Closed Testing Track App Bundle Version: 1 ) still contains a non-certified ad SDK [ Facebook Ads SDK ] that is not compliant with the Families Ads Program.

Unfortunately we are unable to comment further on the specific basis of your issue as we are not able to provide technical support for your app. Thanks for your understanding that I am able to help you with issues related to Google Play policies only.

You can read through the APIs and SDKs section (#5) of the Families Policy Requirements.

Additionally, I see that you have not deactivated your non-compliant Version code in your latest submission. Please note that all active APKs ( including Alpha, Beta, production and internal testing ) of your app should be compliant with our policy. Once an APK gets enforced for policy violation, it will remain as a violating version code. Please make sure to deactivate the APK Version code mentioned above and increment the version number of the APK.

Thanks for your understanding and for your continued support of Google Play.

Regards,


The Google Play Team

The mail was received on 13th Nov and when I saw Google Play Console Dashboard the Latest version of app was shown as review. And today when visited the dashboard the app was shown live.
What I found was I have a closed testing track and a open testing track. The closed testing track was updated to the latest version code of the app while the open testing track was still on version 1, so as per mentioned in mail Please make sure to deactivate the APK Version code mentioned above I updated open testing track by creating new release of latest version code.

Hi! I have the same issue that my app was rejected. I did a Robo test with fire with firebase and on some devices I got this error message. I’m not shure if it is releated to this problem, but maybe it helps:

there is a simple application I use firebase. I do not use ads. Posting was denied with similar warning. Has this solution worked for you?