My android application has some admob ads. I am testing my admob in Google Play store Alpha & Beta channel.
My question is:
Can I use REAL admob ad unit ids when I deploy my app into Google play
store Alpha & Beta channels? Does it violate google play policy? What
if i click or don't click them?
I read this in Google admob:
Do I need to use test ads? Yes. It is against AdMob policy to use live
ads during development, and doing so could cause the suspension of
your AdMob account.
BUT it seems not very clear to me.
Thank you!
Technically you can, but there is one very important point to consider - Pre-launch report. You need to either have Pre-launch reports disabled, or make sure you don't show ads to Firebase test devices, or else you will get a bunch of "clicks by bots", with all the consequences.
I just got my account suspended for a month by accidently doing this - don't repeat my mistake.
You can disable Pre-launch reports in Play Console settings (see screenshot), or use this function to somehow hide your ads from testing devices:
boolean isTestDevice() {
return Boolean.valueOf(Settings.System.getString(getContentResolver(), "firebase.test.lab"));
}
More info in this article on ubuverse.com
Firebase official documentation
Can I use REAL admob ad unit ids when I deploy my app into Google play
store Alpha & Beta channels?
Yes, you can, it does not violate the policy.
What if i click or don't click them?
You cannot/should not click on your own live ads.
(well technically you can, but you will get suspended for it)
If you can get Device ID's of testing devices. Please add them to request. That is best approach.
// Create an ad request. Check logcat output for the hashed device ID to
// get test ads on a physical device.
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("INSERT_YOUR_HASHED_DEVICE_ID_HERE")
.build();
Related
I just released a game to the Google Plat store but my Admob Ads are not showing. Some easy answers:
My target SDK is 33, and my complileSDK is also 33
My app has been live since in the Play Store since Friday 2/3/23
Yes - The Test Ads show when I used the test units
Yes I switched to the real ad unit code for the release
Yes - I officially connected my App to my Admob Account.
In my AdMob account I don't see any warnings (besides the one about my payments are on hold - but that is because I haven't earned the minimum threshold for payment)
I made the connection to Admob Sunday morning (2/5/23) and I got this email:
We completed our app review. The following app has been approved, and
we’ve lifted the ad serving limits and restrictions put in place
during the review.
Yes - I have the latest implementation code in my build gradle (in the dependencies brackets):
implementation 'com.google.android.gms:play-services-ads:21.4.0'
Again, the Google AdMob test ads show, so in my Manifest I have (in the meta-data):
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-account_number"
In my Main_Activity file I use the Ad Unit ID.
In looking for a solution for this I came across this solution earlier, so I added this code to the Manifest as well:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
My app creates non-personalized ads like so:
private void createNonPersonalizedAd(Animation slideOutToLeft) {
Bundle networkExtrasBundle = new Bundle();
networkExtrasBundle.putInt("rdp", 1);
AdRequest adRequest = new AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, networkExtrasBundle)
.build();
createInterstitialAd(adRequest, slideOutToLeft);
}
In my Google Play Console I answered "YES" to the following question:
Does your app use advertising ID?
Reason:
Analytics or Marketing
I'm not sure if there is value in pasting all of the code from the Main_Activity that calls the ads, especially since the test ads display OK.
I'm not sure if I declared something wrong in the Play Console that conflicts.
About an hour ago (on 2/6/23) I connected Firebase to my app
I'm not sure if it takes more time to display ads or I have configured something wrong
Can anyone identify what I've done wrong that prevents the ads from showing?
I was able to get some outside help and thus discovered the issue was that Google had not approved my Admob account. This was not reflected in my account though, because everything there looked ready to go - and I got the email from Google saying my app was approved and ready to show ads.
I was browsing other forums where someone mentioned to check Adsense. I went to my Adsense account and saw that again I wasn't approved yet for payments. I had submitted that information before - but I resubmitted my government ID, EIN, incorporation paperwork and then my banking information. Once that was submitted, my ads began to show in my apps.
So the issue wasn't technical. It was just Adsense needing information about my company. I hope this answer helps someone else out.
My question is very simple, can I use Google AdMob ads in the android app without publishing it in google play? because when I try to use the real banner ads in my app am getting this message LoadAdError(code: 3, domain: com.google.android.gms.ads, message: No ad config).
be aware I have added my mobile device as a test device and the ads was working fine, but when removed my device from the mobile test devices list in my Google AdMob. am getting the mentioned error message.
The Advertisement works in two ways.
While The App Is In Development.
While The App Is In Production.
Scenario 1: While the App Is In Development
For this case, we need to use Test Advertisements. Admob and "com.google.android.gms.ads" doesn't allow the user to use Advertisements in Development Phase due to false impressions.
To enable Test Advertisement. There are two ways: You can either use google ad unit id's which are available on their site. Or You can use your own ad unit id, but you will be needing to register your device as a test device and use your own request configuration.
Go to AdMob page and settings>test devices and add your device as a test device directly from the site no need to do this programmatically!
and boom! you get the test ads from your ad unit and you can safely use your app!
Scenario 2: While the App Is In Production
This is a pretty simple part...
Just remove the .setTestDeviceIds(Arrays.asList("your device id should go here")) part from the code... (If you had set programmatically)
Link your AdMob App to PlayStore.
Just opt for the ad.
And check if Ads are enabled in your app settings on the play console.
It should work now.
YOU CAN'T USE ADMOB ADS WITHOUT HAVING PUBLISHED YOUR APP IN THE PLAY STORE OR OTHER VERIFIED STORES (CHECK THEIR BLOG TO KNOW THE OTHER STORES YOU CAN UPLOAD) IF YOU DO NOT PUBLISH IT MAY RESULT IN A VIOLATION OF ADMOB POLICY AND YOU MAY BE SUSPENDED! SO, BE CAREFUL.
I am not able to get the real ads even when I install my app from Play Store. Its requesting to addTestDevice (which I am not doing in production build) How do I test real ads?
As per the comments in the Admob FAQ section;
If you just created your Ad Unit ID recently, sometimes you will have to give some time before the ad unit is is activated.
When did you create your Ad Unit IDs?
I received an e-mail from Google Admob with this message:
This email is to alert you that one of your applications is not currently in compliance with our AdMob program policies and as a result, ad serving has been disabled to your application.
Issue ID#: #######
Ad serving has been disabled to: c########################
Action required: Check all other remaining applications in your account for compliance.
Current account status: Active
I have only 1 app published on Google Play and the package name in the message is the suspended app on Developer Console. The published app uses the same Admob ID banner that the deleted app. What should I do now? Upload an update of the current app with new ID banner? Thanks for your help.
Yes, every ad should have a different Ad Unit ID. This includes ads for different apps or ads within the same app. You should create a new ad and link it to your app in the play store, then update the app with the new Ad Unit ID.
You should also ensure you are following AdSence's guidelines AdSence Program Policies and Implementation Guidance.
What should I do now? Upload an update of the current app with new ID banner?
Yes. Create a new ad unit and use that in your published app.
You should make it a practice to use different ad units for each app from the beginning.
This will enable better tracking and also help in avoiding situations like this. Now in this case you'll miss on ad revenue from users till they update the app to the version which contains a new working as unit id.
I have written my first android app and have successfully included the AdMob ads into the app.
Must I publish the app via Market (Google Play) in order to start earning revenue?
Additionally I understand that while in Development, we need to put in the Test Device to indicate that the Ad is still in test mode. When I publish the app for real, all I have to do is remove the testDevice from my code right?
Thanks in advance!
Must I publish the app via Market (Google Play) in order to start earning revenue?
You need to publish your app and make it available for others to download and install it so that when they use the app, the ad requests are served. Only when the users click your ads will you be generating revenue.
If your question was whether it is mandatory that you have to publish the app only on Google Play store to earn revenue, I think it is not necessary.
IIRC, there is no mention on Publisher guidelines and policies that prevents a publisher from publishing the app on alternative Android markets. You should consult a legal adviser if you need more clarity on the ToS.
Additionally I understand that while in Development, we need to put in the Test Device to indicate that the Ad is still in test mode. When I publish the app for real, all I have to do is remove the testDevice from my code right?
You can leave the test device id so as to prevent clicking the ads from your test device.
AFAIK you set testmode = false in client end or check disable all test mode in admob site and you start earning...