Good afternoon, I am try to implement ads in my application but my real AD does not appear, only test AD, in the admob tab it appears that more than 300 requests were made, and there is no ads in the application. Is it necessary for me to publish my app in the play store so that the ads start to appear? And my account has been verified for a long time. In my Logcat appear this error Ad failed to load: 3, what i needed to do , to the ads start to showing?
page admob
Logcat
As per the Documentation you are getting the following error code:
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
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.
I also faced the same issue. My app was showing test ads, but not real one.
In my case ads started showing up when I uploaded my app to Google Play.
To confirm your app shows ads correctly, you may first add your app to test tracks first.
Error code 3 means your implementation is correct but your app is not approved by google admob,so you have to submit your app for approval, once your app is approved than your app will start receiving ad after 24 hrs and you have to setup your payment method in google admob.
you can submit your app through this link for approval:
https://support.google.com/admob/contact/android_APK_submission?hl=en
If you are using app-ads.txt for your app, then you also have to include this line in your app-ads.txt file in order to load ads using the demo ad units:
google.com, pub-3940256099942544, DIRECT, f08c47fec0942fa0
Here the official Google AdMob reference: https://developers.google.com/admob/android/test-ads
It shows when your device is not connected with Test Mode in your AdMob account. Connect your device with test mode and try this error will resolve.
https://apps.admob.com/v2/settings/test-devices/list?_ga=2.248138183.156733708.1671428691-2046682952.1670650994&_gac=1.127285631.1670650998.Cj0KCQiA1sucBhDgARIsAFoytUvUl2cXmiqt4eGOJlPz7EOFYJxnbpcLX3uIEhk71c3oHZ3BxMsgBE0aAlkcEALw_wcB&_gl=1*1ubza84*_ga*MjA0NjY4Mjk1Mi4xNjcwNjUwOTk0*_ga_6R1K8XRD9P*MTY3MTQyODY5MS40LjAuMTY3MTQyODY5MS4wLjAuMA..
Related
One of my android applications (application ID: com.abc123.abc) is not receiving any test Ads unless I changed the application's ID which I don't want to do so because the application is released to the google play store. I am getting this error message "ERROR_CODE_NO_FILL" every time when I request the test Ads. When I change the application's ID to something else like "com.abc123.abcd", the testing Ads are working fine again. I'm using Android studio to conduct the request for the test ads. My source code is shown in the screenshots below. Any feedback would be appreciated.
.XML
enter image description here
.java
enter image description here
I just migrated one of my apps from Google Plus signin to Google Signin and updated some achievements code, as I was using deprecated methods and Google Plus is disappearing.
To my surprise, the permissions dialog that shows up when a user signs in to Google Games has change in a scary way:
Before, it said the app could:
View your langiage preferences
View your age range
Share your Google+ profile information and view and manage your game activity
View your basic profile info
With the new version, it just says:
Create, edit, and delete your Google Play Games activity
Does anyone know where this is coming from?
In the process of migrating libraries (I also installed Firebase analytics), some new API keys were automatically created in my Google APIs dashboard, and an additional OAuth 2.0 client ID. There, under "OAuth consent screen" I can see many scopes my app is supposedly using that look unnecessary to me:
../auth/plus.circles.members.read
../auth/plus.login
../auth/plus.profile.agerange.read
profile
../auth/drive.appdata
openid
../auth/plus.login
../auth/plus.profile.agerange.read
../auth/plus.profile.language.read
../auth/games
../auth/games_lite
../auth/plus.moments.write
Can I delete the ones that I don't think I need? Will this remove the scary warning?
One of the other apps I have not yet updated shows fewer scopes (still more than I need):
../auth/plus.circles.members.read
profile
openid
../auth/plus.login
../auth/plus.profile.agerange.read
../auth/plus.profile.language.read
../auth/games
../auth/plus.moments.write
Thanks
Edit: From what I've found out so far, the auth screen depends on the way you create the client used to sign in, and I think I'm using a pretty standard way:
mGoogleSignInClient = GoogleSignIn.getClient(this,
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build());
Edit 2: I went to my API console, restricted the uses and scopes of my app, resubmitted my OAuth screen for approval, GOT IT APPROVED... and the Android app keeps showing the scary auth screen.
I also contacted Google for help from the Play Dev Console. Received no reply.
I'm just following Google's advice. As stated here,
// This way you won’t get a consent screen
GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
https://developers.google.com/games/services/checklist
Edit 3:
After I got my simplified OAuth screen approved. Firebase created new api keys on its own, so I'm guessing it doesn't like the changes I made manually. I am alos getting non-fatal crash reports from users rejecting the app permissions (error 12501) after trying to access the achievements screen. Google has not responded at all.
I've faced the same problem and got it fixed using
GoogleSignInOptions.DEFAULT_SIGN_IN
instead of GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN
Recently Facebook started to review our App, which followed in a restriction because our app was violating the Platform Policies. Both our Android and iOS app had a bug. We already fixed that bug, but didn't push the update to the Play Store and the App Store. After Facebook notified us about the restriction we pushed the update into production and requested a new appeal. However, the appeal was declined because of the Android app which still had a bug.
I couldn't find a bug and because the app was restricted we couldn't really test it. If we'd login using Facebook, we got an error message from Facebook telling us that our app was restricted:
To debug the Facebook login process I created a new Facebook app and copied all settings from the restricted FB App to the new 'debug' App. After changing the API keys and doing some testing everything seemed to work perfectly fine, even when setting the app status to production in the FB App settings.
So we knew that FB was sending the Android app some error code. I created a small update where the App will shows a part from the message sent by FB. We created a new appeal. Unfortunately, the app appeal got decline again. This time the send us a print screen with the error message:
Not that much information, however, this is an error message returned from the Android FB SDK. I tried to search the error message on Google and the Facebook Docs. The only thing that I found was this Stack Overflow post. It has to do with test users, but our app is in production, so we should have to add test users in production.
I'm clueless about what to do or try. I tried to email FB, they replied and basically said that I should try and ask a question on Stack Overflow. Which obviously is what I'm doing right now. Has anyone every experience such problems or how would I test this in production?
Edit
The code where the error is caught. The LoginManager is from com.facebook.login.LoginManager
loginActivity = myActivityParent as LoginActivity
facebookCallbackManager = CallbackManager.Factory.create()
LoginManager.getInstance().registerCallback(facebookCallbackManager, object : FacebookCallback<LoginResult> {
override fun onSuccess(result: LoginResult?) {
Log.d("FACEBOOK", "Successful login.")
loginPresenter!!.onSuccessfulFacebookLogin(result)
}
override fun onCancel() {
Log.d("FACEBOOK", "Facebook login was cancelled!")
enableViews()
}
override fun onError(error: FacebookException?) {
val errorMessage = error!!.message.toString()
displayErrorBoxTimed(errorMessage, myActivityParent, length = 5000)
Log.d("FACEBOOK", "Something went wrong while logging in with facebook!")
enableViews()
}
})
I create my app header on Google Play.
I create an application with google's LVL library.
I sign into an Android device with the same account that I use to sign into my Google Play Developer Console.
The LicenseChecker was using the correct public key (from Google Play app license key).
Clearing my Google Play cache and not having uploaded the application, but the license server needs a response set on the license test setting page, no?
when I'm running the app, the license server always responds: 3 (ERROR_NOT_MARKET_MANAGED).
I wait 24 hours, but nothing happens. The response is 3.
I upload the app (same version code) to the google play, but not published.
I wait 24 hours again, but nothing happens. The response is 3.
WTF :)
Okay, just back to the beginning step by step:
I create an app from the Android SDK's licensing sample.
The LVL version is 2.
I make a header on google play.
A BASE64_PUBLIC_KEY rewrite in the sample from a google play app license.
I sign in an android device with my publisher's account (after factory reset)
This sample is returned 3!
What's wrong with me????
I hope I can answer this question and I am able to help You, but if this answer does not help You, please show some code maybe it´s a simple coding Problem.
I had the similar problem for long Time, all my licensed apps had not worked (for me, but never get a negative response from users). I discovered two things: first, eclipse allways shows an error on my library project. This caused the warning on my licensed apks, that the reference to this library is not valid. In the past, I just cleared the "Problems" history and than it worked. What I have seen is, at the library manifest there was the targetSdk included:
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="17"/>
But the library project does not support the tag targetSdkVersion, so I deletet it:
<uses-sdk android:minSdkVersion="3" />
After this, the error is gone and all licensed projects seems to be good. The seond problem is, since some time, saving apps as drafts is no longer supported like described here:
http://developer.android.com/google/play/billing/billing_testing.html#draft_apps
So, what You have to do is, upload Your apk to the alpha or beta test inside the console and publish it. This app could not be seen from other poeple, as long as You give the rights to some google groups for testing it. I set my response inside the console again to LICENSED and saved it. After waiting some time (up to 24 hours) until google play has noticed the changes, it worked.
I too have often got ERROR_NOT_MARKET_MANAGED unexpectedly.
My problem was that I was using my main developer Gmail address as my testing account and my app was a paid app.
To fix my problem:
- I had to create a 2nd Gmail account,
- add it to my list of testers (click Settings on your Google Play Developer account to get the right screen),
- add that new Gmail account to the list of accounts on the mobile device you want to test on,
- then delete whatever version of your app you do have on your device,
- then load it using download through Google Play.
When you tap Google Play to start it (touch "play games") you'll see what Gmail account you are inside Google Play in the upper left of the screen. Change that to be your new testing account.
NOW you can download your paid app (it never would let you before you did all this) and (hopefully) you will no longer get ERROR_MARKET_MANAGED.
How are you likely to encounter this error? In roughly, 3 ways.
Let's assume that in LicenseChecker in method checkAccess that after the line:
if (bindResult) {
that you have put the line:
System.println("good bind");
and that in LicenseValidator in method verify you have placed:
System.out.println("signature verified");
in the line Before the line:
} catch (NoSuchAlgorithException e) {
Make sure you've gone to a new version number, upload to alpha, wait a while, then run. If you see:
good bind
signature verified
in the trace output and the error you get is ERROR_NOT_MARKET_MANAGED then I would say you've triggered this particular problem.
If in method verify in LicenseValidator you put:
System.out.println("begin verify call:" + responseCode);
after ResponseData data = null;
and prep-then-run then you see:
begin verify call:561
then you might be having this problem.
If you set DEBUG_LICENSE_ERROR to true in LicenseChecker and in wherever it is that you have put applicationError in your LVL initiation code you put:
String result = String.format("Application error: %1$s", errorCode);
System.out.println("result:" + result); //or display it on screen using a Toast
and prep-then-run and see
result: Application error:3
then you might be having this problem.
What makes this a particularly nasty thing to encounter is that when you set the testing response for this app to anything other than "respond normally" then your app behaves like it is responding perfectly to match to presently set license response.
However..when you set the test response to "respond normally" then you're going to always get ERROR_NOT_MARKET_MANAGED (if the app is paid and you're trying to use your primary Gmail account on your test device).
I have AdMob mediation working and it serves AdMob ads fine but when I put in an active ID for MMedia, or MobFox, I get requests but 0 fill. Anyone know why this is?
You need to have the libraries and mediation adapter libraries for those other ad networks in your app as well.