I am using admob Interstitial ads in one of my app and getting a huge difference in Requests and Impressions. With 1.1 million requests I'm getting only 256K impressions. I generally load an Interstitial ad when user clicks the back button. Is my code placement wrong or what could be the possible reason behind this? I am using admob only, no mediation.
public void onBackPressed() {
super.onBackPressed();
if(interstitialAd.isLoaded()){
interstitialAd.show();
}
else{
finish();
}
}
Yep, I had the same issue at first. You said that you load the Ad when the user clicks the back button.
Always load the ad at the beginning of the activity so that when the click method gets activated, the Ad is already available.
My ad is now at 99.73 percent after I made that change.
Good luck :)
I hope you get the point
Ad requests are the number of times the app requested ads from AdMob.
Ad impressions are the number of times at least 1 pixel of the ads are shown at the app.
There are always a difference between those metrics due to many cases like slow internet connection at which user wouldn't be served or shown the ads even though the ad requests are made to AdMob. Hence you see the difference.
The request is an attempt to show an ad. Potential advertisers may buy or not this particular requests, it could be filled with an ad or not.
The impression is counted after the ad has been delivered to the user's browser.
Related
I tried AppBrain banner ads on my app recently. I am not sure if the ads are showing properly. This is what I see in my app
![Ads in my app]https://imgur.com/a/Pqwnw6q
The add seems like a generic template whereas, their website shows different images for a sample of banner ads.
![Sample ads in AppBrain website]https://imgur.com/a/IkSvdUj
The documentation says adding the view alone will automatically call the requestAd() function
public void requestAd()
Request an ad to be fetched. If a listener was set on this banner, that listener will be notified of the result. This method is automatically called once the banner is added to the view layout, so calling it manually is optional.
However, I did call the requestAd() in the activity also
AppBrainBanner banner;
In the onCreate
banner = findViewById(R.id.appBrainAdView);
banner.requestAd();
I contacted AppBrain 4-5 days ago and didn't receive any response yet. Am I implementing the ads right?
this is Mathijs from AppBrain.
Yes you're doing it right. The extra requestAd() is not needed, and our banners can show a number of different designs. The 'generic' one that requires a click before the user sees the apps he can install is the most common one, so it's normal you're seeing that one a lot.
I implement Admob in one of my android application. First time it has a banner add bellow of my application. But after adding banner ad in RecylearView after 8 items then problem occurs. 90% cases it returns response code 3.
Maximum time it showing me:
I/Ads: No fill from ad server.
W/Ads: Failed to load ad: 3
Here response code: 3 means The ad request was successful, but no ad was returned due to lack of ad inventory. But other apps showing ads frequently in same device.
Notes:
It showing demo ad when i test in TestDevice
Problem occurring only non test devices
Rare cases it successfully return ad.
Can anyone please help me to recover from this issue.Is there any issue in my ad_unit or adMob?
Here my code is correct. The issue is that AdMob does not always have an ad to return for every request. This may happen particularly if you have just registered your AdMob publisher ID, as it takes some time and multiple requests before the new ID starts returning ads.
Another reason your fill rate may be low is that you don't have AdSense backfill enabled, or you have filtered out some ads. Check your app settings to see if that is the case.
According to documentation :-
public static final int ERROR_CODE_NO_FILL
The ad request was successful, but no ad was returned due to lack of ad inventory.
Constant Value: 3
Which means:-
If you are getting this error, then your code is correct. The issue is
that AdMob does not always have an ad to return for every request.
This may happen particularly if you have just registered your AdMob
publisher ID, as it takes some time and multiple requests before the
new ID starts returning ads.
Another reason your fill rate may be low is that you don't have
AdSense backfill enabled, or you have filtered out some ads. Check
your app settings to see if that is the case.
Thanks :)
I am fairly new to using Chartboost ads, and haven't managed to find much info regarding this.
I have written a game in which an interstitial ad and 'more apps page' ad is cached immediately when the game loads and is displayed when the user receives a game over message/clicks on show more apps button.
My question is do I have to call cacheInterstitial() and cacheMoreApps() again every time to cache a new ad whenever a previously cached add is displayed to the user, or is this handled automatically after the first time I call on the api to cache an add?
if you are not using Chartboost Autocache feature then YES you will have to call cacheInterstitial() and cacheMoreApps() again every time you display a previously cached Ad or chartboost will keep on showing same ad again and again.
To use Autocaching feature read the section 'Autocaching' in Chartboost docs.
I wrote a test app to implement the admob banner using xml in the layout file. The first time I ran the application, it worked and I could see the banner. I added a second activity and I was able to switch between activities and I still can see the banner.
The following day I tried running the app again and the banner does not show. I checked the catlog and it tells me the a request for ad was succesfull but no ad was returned because my inventory is empty.
I wanted to know if this would be something normal when you are working on eclipse. Or if the banner would still show even if there are no ads in the inventory.
Thanks,
Richard.
If you get this error your code is probably correct (you say it worked before and you didn't change anything). The issue is that AdMob does not always have an ad to return to every request. You can enable the Use keyword-targeted ads and Google certified ad networks (GCANs) to improve fill rate. in AdMob app settings to increase the fill rate.
If you want to be sure your code works as intended you can set the testmode to true, if you get back an ad you can be sure your code is correct.
i just want to know if this problem is server side...or i must fix something in my code...
onFailedToReceiveAd(Ad request successful, but no ad returned due to lack of ad inventory
I'm using admob with adwhirl to show ads in my android application.
If you are getting this error, then your code is correct. The issue is that AdMob does not always have an ad to return for every request. This may happen particularly if you have just registered your AdMob publisher ID, as it takes some time and multiple requests before the new ID starts returning ads.
Another reason your fill rate may be low is that you don't have AdSense backfill enabled, or you have filtered out some ads. Check your app settings to see if that is the case.
Finally, a test you can run to see if your AdWhirl code is implemented correctly is to request a test ad. You can do this by specifying test mode in AdWhirl:
AdWhirlTargeting.setTestMode(true);
If you get back a test ad, you'll know your code is working as intended.
One of the solutions you could try:
Some times this will happened if you changed language of your Android device to exotic language (Russian for example). Try to change it back to English and AdMob will find appropriate ad for you. Or you could go to the Google Settings->Ads->Reset advertising ID
I've just found that such error is shown if your AdMob account has been banned. But it works with a test device ID.
Note that this might happen aswell if you're using (forcing) a custom width and height for the banners.
You should use the ones that DOC states:
https://developers.google.com/mobile-ads-sdk/docs/admob/intermediate#play
If you set a custom width and height like:
new AdSize( 521,300 );
It's going to reply with the error you mentioned.
I know this was from long time ago, but here's something i did which solved this problem.
1. on your admob account, click on "manage settings" in the app you've created.
2. click on "edit".
3. under "Android Package URL:" leave blank, and then save settings.
*after you'll save, it'll show this box as "market://", which is fine.
I had this problem when using Rewarded Interstitial (beta).
Changing to Rewarded solved the problem.