I will soon release my first Android application on the Google store. But I have one problem. It shows test ads, but when I change my ad to real one it is not showing. I am using AdMob for ads.
I read in one place that they show 1 or 2 hours AFTER I put my app on store. But if that is not true I can get myself in problems (my app functionalities are bounded to ad showing).
Please someone who has experience tell me is this true (or solve problem different way)
Test ads are always shown on the emulator. If you are using a real device and still get no real ads after a few hours, then search the logcat for "testdevice". Usually, if the AdMob library recognises an emulator or a debug build, it lets you know that it considers this as a test device. You have to use a real device and a signed release version of your app. You can also upload your app to the PlayStore Alpha or Beta channel and test it from there if you want to be 100% sure.
Admob shows real ads if following conditions are met:
See if you have added a payment method in admob console.
Your app needs to be published on play store for showing real ads.
Check your email inbox regularly. Admob asks for personal identification once in a while to resolve it you will need to add your national id card picture.
Sometimes they restrict your ads due to invalid traffic checks.
If your test ads are working it means you have implemented it correctly.
Related
I have been fighting the Android AdMob implementation for a few weeks in an attempt to show ads in an app I have published to the Play Store.
Currently, test ads show up in the app when I push a .apk build to my phone. However, when I swap to my production AdMob ID in AndroidManifest.xml and publish a release .aab to Play Store, I do not see any ads in the app.
Google appears to offer no way to debug issues like this. When the main AdMob call is made, they return a binary status message of the form "success" or "failure". There is no troubleshooter for android apps using AdMob that I've found, and generally no way to debug the issue so that I can figure out what is wrong. The "help" pages list about 5-10 things that commonly go wrong with AdMob implementations; these are not helpful, as any dev who has scraped through them realizes they are playing whack-a-mole.
Is there a hidden status message, error code, something on AdMob or the Play Store console that I could be missing, any warning or error that would lead me in the right direction?
Alternatively, I'll take any suggestions for AdMob alternatives as Google does not seem to support this product.
Use Adlovin Max. Admob is lacking support.
I know there's a lot of questions regarding this issue, but they don't fit my specific case.
I have an app in Google Admob with 2 ad units (banner and interstitial). I am using that app from Admob for 5 different apps in the Play Store.
So I use the same App ID, Banner ID, Interstitial ID for all apps in the Play Store, as I use the same app from Google Admob.
It works like a charm for these 5 apps.
Now I want to publish another app and I tried to do the exact same thing, so I used the same ad implementation for the ads and again the same App ID, Banner ID, Interstitial ID. (I simply copied all code from the other apps)
But this time, no ads appear. I'm already waiting for ca. 2 weeks for them to appear. One single time I had "luck" and an ad appeared (for whatever reason), but besides that single time, an ad was never shown.
If I use the Test Ad IDs from Admob, all Test ads show. So the implementation is correct.
The Logcat however shows two errors:
Ad failed to load : 3 and Ad failed to load : 1 (mostly it's error 3 though)
I looked them up and they mean:
3 means that there are no ads filled, so everything is correct, but Admob doesn't have any ads they want me to display right now.
1 means that there are some ID errors (e.g. banner ID for the interstitial).
But, to me, both don't make any sense: How don't they have any ads to display when they have always ads to display for the other 5 apps? I mean it's the same app in Google Admob.
And how can there be an ID error when it works with the Test ads and especially it works in the other 5 apps?
I have tried to install the app as a signed APK on my physical device, doesn't change anything (however, on the other apps the ads always appeared even in debugging mode).
So I really don't know what could be the problem in this case. As said, I'm already waiting for 2-3 weeks for the ads to show (and I was using the app constantly throughout that time; so ad requests were made constantly). So I don't think it is a matter of time.
Any help?
I add AdMob ads to my app (which is not published in play store)
but for some reason it only shows test ads and not real ones
In the control panel of AdMob indicates that ad requests are 0
Until you publish your app on play store, real ads will not be visible to you. And after releasing on play store also, it takes 5-6 hours to load real ads. So you can release your app on internal, alpha or beta channel to make real ads visible. One more important thing is that if your test ads are visible that means you have done the coding right because test ads also use the same channel as the real ones.
If it shows test Ads that is great, use the test ads to finish your app. Once you are done publish your app Make sure to replace the ad unit id to the correct one, it takes some time 6 to 24 hrs it really depends, but it will definitely work if you used the correct ids
The test ads show with no problem, and even the real ads were appearing on my app when i made an debug build, when i realized the debug build is working fine and made a final release, the ads stopped appearing on my app. Even now on my emulator the app shows the test ads, but with the released app, no ads appear.
I haven't received any communication either as to why this is happening. Any help would be much appreciated
Thanks
i have already tried to install released app on real device but no ads on real device(even ads are loading on real device with debug and profile mode)
Example for android native app.
Please test the production admobid , admod unit with the admob sample at https://github.com/googlesamples/android-ads/tree/master/admob/BannerExample
Replace existing admob ids and admob units, please check it the ads are getting served .
If no , then there might be some issue with you admob unit , or its not been fully approved for ads.
If you have created admob unit , recently , please wait for some time .
Hope that helps.
On this page
https://developers.google.com/admob/android/test-ads#add_your_test_device
it says
Note: Be sure to remove the code that sets these test devices before
you release your app.
Can anyone explain why? Why can't I leave the line of code that sends my particular device test ads no matter what? Doesn't this help prevent me from breaking AdMob's rules about developers not accidentally giving themselves false impressions or clicks?
I don't remove the testdevice directive in any of my apps. This is for my own protection - when I download my own apps from the App Store I still only want to see advertising marked as test advertising on my own devices. I have had no detrimental effects from leaving the lines of code in and most importantly it protects me from Google banning me from Admob if I inadvertently click on one of these ads. Clicking on your own non-testAd advertising that is displayed inside your own apps is particularly frowned upon by Admob. Rest assured that all other users (those not inside the testdevice directive) still see real advertising not marked as testAds.
Edit June 2019 - I still do this 2 years later. In the latest Admob API's you will see real advertising for real companies, but it will have a small "TestAd" text over the top of it. This signifies that the ad is marked as a test ad, and you won't be penalised by Admob for clicking on it. Never click on your own ads without the TestAd text!!!
The reason the docs say to remove test device in production is there is a low-risk security issue whereby if you leave that code in your app, someone could theoretically deobfuscate the APK, get your hash, and detect you as the author of the app if they put some malware into a different app that you have on your device. Removing the test device ID from the app eliminates this risk.
If you're ok to assume that risk, it's better to leave the test device ID in the app, so that you can continue to click ads from that device in production without worrying about generating invalid traffic.
There is no exact reason why that line for using test devices for ads should be removed. As a general rule when releasing apps, all traces for testing and debugging should be remove in order not to interfere with the release version of your app and in order to avoid any loop holes in your app. With that line in your code, that means if someone is using a device to test your app with the same test id, you won't get anything from admob because it is using a test device id rather than an actual device id. What I usually do is just comment it out for easy testing later on when modifying my app for another version release.
If you have the addTestDevice() in production, user wont be able to see real ads, no matter what is the device id passed to the method.
You should only use this code in testing.