invertase / react-native-google-mobile-ads

React Native Google Mobile Ads enables you to monetize your app with AdMob.
https://docs.page/invertase/react-native-google-mobile-ads
Other
693 stars 141 forks source link

[šŸ›] Strange ads being displayed in test mode. #181

Closed VictorioMolina closed 2 years ago

VictorioMolina commented 2 years ago

Issue

Hi, I have been testing the rewarded ads api for some hours and getting, multiple times, the following ad in dev mode:

<img alt="The strange ad" src="https://user-images.githubusercontent.com/54834743/175828500-0f37095a-a614-4cb2-a350-1c67ff43dc98.png" width="350px" />

This is my current config:

export const REQUESTS_CONFIGURATION = {
  maxAdContentRating: MaxAdContentRating.MA,
  tagForChildDirectedTreatment: false,
  tagForUnderAgeOfConsent: true,
  testDeviceIdentifiers: [TEST_DEVICE_ID],
};

export const REQUESTS_OPTIONS = {
  requestNonPersonalizedAdsOnly: true,
  keywords: ["binance", "crypto", "kucoin"],
};

It's my first time using AdMob for a long time, I don't know if it's normal now to see these types of ads in development mode, but I see that many apps like InShot, or well-known games, only show professional ads, and not random people cooking in the middle of the jungle. In production, how could I limit the appearance of the ads to show a certain professionalism? Is it possible?

Expected behavior

I was expecting to get the typical Bingo Blast ad from google, but this indian guy talking in a forest confuses me a lot.

<img alt="The expected ad" src="https://user-images.githubusercontent.com/54834743/175828517-c29d4690-dcc8-4b20-b17d-fa328282112d.png" width="350px" />

Are real ads appearing in development mode? Is this because of using custom keywords?

Note

My adUnitId is being exported from the package, as declared in the documentation:

   const adUnitId = TestIds.REWARDED;

   const rewarded = RewardedAd.createForAdRequest(adUnitId, REQUESTS_OPTIONS);

Project Files

I am using the Expo's managed workflow.

Javascript

-

package.json:

{
  "private": true,
  "name": "@company/app",
  "version": "1.0.0",
  "description": "Monorepo!",
  "main": "index.js",
  "license": "MIT",
  "author": {
    "name": "Victorio Molina",
    "email": "victoriomolinabermejo@gmail.com"
  },
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "eject": "expo eject",
    "docs": "../../node_modules/jsdoc/jsdoc.js -c jsdoc.js",
    "lint": "eslint . --ext .js,.jsx,.cjs,.mjs",
    "lint:fix": "eslint --fix . --ext .js,.jsx,.cjs,.mjs"
  },
  "dependencies": {
    "@react-native-async-storage/async-storage": "~1.17.3",
    "@react-native-community/datetimepicker": "6.1.2",
    "@react-native-community/netinfo": "8.2.0",
    "@react-native-masked-view/masked-view": "0.2.6",
    "@react-native-picker/picker": "2.4.0",
    "@react-navigation/bottom-tabs": "^6.3.1",
    "@react-navigation/core": "^6.2.1",
    "@react-navigation/elements": "^1.3.3",
    "@react-navigation/material-bottom-tabs": "^6.2.1",
    "@react-navigation/native": "^6.0.10",
    "@react-navigation/stack": "^6.2.1",
    "deprecated-react-native-prop-types": "^2.3.0",
    "dotenv": "^16.0.1",
    "expo": "^45.0.0",
    "expo-asset": "~8.5.0",
    "expo-av": "^11.2.3",
    "expo-blur": "~11.1.0",
    "expo-camera": "~12.2.0",
    "expo-cli": "^5.4.11",
    "expo-clipboard": "~3.0.1",
    "expo-constants": "^13.1.1",
    "expo-dev-client": "~1.0.0",
    "expo-device": "~4.2.0",
    "expo-file-system": "~14.0.0",
    "expo-firebase-analytics": "~7.0.0",
    "expo-font": "~10.1.0",
    "expo-haptics": "~11.2.0",
    "expo-image-manipulator": "~10.3.1",
    "expo-linear-gradient": "~11.3.0",
    "expo-location": "~14.2.2",
    "expo-media-library": "~14.1.0",
    "expo-notifications": "~0.15.3",
    "expo-screen-capture": "~4.2.0",
    "expo-system-ui": "~1.2.0",
    "expo-updates": "~0.13.2",
    "firebase": "8.10.0",
    "i18n-js": "^3.8.0",
    "lodash": "^4.17.21",
    "lottie-react-native": "5.0.1",
    "moment": "^2.29.3",
    "prop-types": "^15.8.1",
    "react": "17.0.2",
    "react-dom": "17.0.2",
    "react-native": "0.68.2",
    "react-native-chart-kit": "^6.11.0",
    "react-native-console-time-polyfill": "^1.2.3",
    "react-native-elements": "^3.4.2",
    "react-native-gesture-handler": "~2.2.1",
    "react-native-get-random-values": "~1.8.0",
    "react-native-google-mobile-ads": "^7.0.0",
    "react-native-indicators": "^0.17.0",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-maps": "0.30.2",
    "react-native-modal-datetime-picker": "^13.1.2",
    "react-native-pager-view": "5.4.15",
    "react-native-paper": "^4.12.1",
    "react-native-reanimated": "~2.8.0",
    "react-native-redash": "14.2.2",
    "react-native-safe-area-context": "4.2.4",
    "react-native-screens": "~3.11.1",
    "react-native-snap-carousel": "^3.9.1",
    "react-native-svg": "12.3.0",
    "react-native-tab-view": "^2.15.2",
    "react-native-web": "0.17.7",
    "reanimated-bottom-sheet": "^1.0.0-alpha.22",
    "rgb2hex": "^0.2.5",
    "shorthash": "^0.0.2",
    "uuid": "^8.3.2"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/eslint-parser": "^7.16.3",
    "@babel/preset-typescript": "^7.16.7",
    "babel-plugin-inline-dotenv": "^1.7.0",
    "babel-preset-expo": "~9.1.0",
    "eslint": "^8.2.0",
    "eslint-config-airbnb": "^19.0.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-flowtype": "^8.0.3",
    "eslint-plugin-import": "^2.25.3",
    "eslint-plugin-jsdoc": "^37.7.0",
    "eslint-plugin-jsx-a11y": "^6.5.1",
    "eslint-plugin-prettier": "^4.0.0",
    "eslint-plugin-react": "^7.27.1",
    "eslint-plugin-react-hooks": "^4.3.0",
    "eslint-plugin-react-native": "^3.11.0",
    "jsdoc": "^3.6.10",
    "jsdoc-tsimport-plugin": "^1.0.5"
  }
}

admob.json:

I don't have this file.

iOS

-

ios/Podfile:

-


Android

-

android/build.gradle:

-

android/app/build.gradle:

-

android/settings.gradle:

-

AndroidManifest.xml:

-


Environment

-

react-native info output:

I am using Expo:

expo-env-info 1.0.4 environment info:
    System:
      OS: macOS 10.15.7
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 16.13.0 - /usr/local/bin/node
      Yarn: 1.22.19 - ~/.yarn/bin/yarn
      npm: 8.12.2 - /usr/local/bin/npm
      Watchman: 2021.06.07.00 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
    IDEs:
      Xcode: 12.4/12D4e - /usr/bin/xcodebuild
    Expo Workflow: managed
mikehardy commented 2 years ago

If it says "test mode" I suppose it has to be test mode. I have also occasionally seen ads that were not the obvious google test ad but it's always got the test mode thing and I know we are using testids (I mean: our code isn't that complicated, the App.js for our example app is super boring + repetitive). I think that's just the way it is

I don't think you are ever in control of the ad content though, you are renting the space to google and google puts what they think works in the space. Maybe google has been listening to your conversations and thinks you are in to jungle cooking :laughing: ?!?

VictorioMolina commented 2 years ago

HAHAHAHAH LOL šŸ˜‚

What really scares me is that yesterday morning I talked to a food addict about going on a trip to the Amazon, and last week I saw a YouTube channel of indigenous people building mansions with basic utensils, ending with a good barbecue of vegetables.

By the way, thank you very much, Iā€™m closing the issue.