onAdFailedToLoad: 3: No fill

924 views
Skip to first unread message

KisnardOnline

unread,
Jun 23, 2023, 12:07:13 AM6/23/23
to Google Mobile Ads SDK Developers
I was able to show an ad with the dedicated test ad unit ID for Android rewarded ads (ca-app-pub-3940256099942544/5224354917).

I was also able to show an ad with my newly created (6/21/2023 9:53 PM) Ad Unit.  I am trying to setup SSV so I need to test with my own ad unit.  So I added my Android Studio: Device Manager: Emulated Pixel 4 to the "Settings > Test Devices" page.

All I am getting now is:

AdMob: onAdFailedToLoad: {
                                                                                                      "Code": 3,
                                                                                                      "Message": "No fill.",
                                                                                                      "Domain": "com.google.android.gms.ads",
                                                                                                      "Cause": "null",
                                                                                                      "Response Info": {
                                                                                                        "Response ID": "null",
                                                                                                        "Mediation Adapter Class Name": "",
                                                                                                        "Adapter Responses": [],
                                                                                                        "Response Extras": {}
                                                                                                      }
                                                                                                    }

My game is Kisnard Online and has been published to Google Play since Jun 20, 2020. Please help. Thanks.

Mobile Ads SDK Forum Advisor

unread,
Jun 23, 2023, 3:24:17 PM6/23/23
to jay...@gmail.com, google-adm...@googlegroups.com

Hi,

Thank you for reaching out to us.

With regard to your concern, can you provide us the following information below so we can further check this in our end?

  • Sample app project where the SSV is setup and error is reproducible
  • Steps to replicate
  • SDK version
  • App ID
  • Ad unit id affected on error code 3
  • Device name and versions affected

You can provide the following details via reply on this thread or directly provide it to the link below.

If the file(s) you are looking to share are less than 25mb in total you can attach them to this case on your next reply. If you are having trouble attaching your file to this case or if your file(s) are larger than 25mb, you can share your files with me by performing the following steps:

1. Navigate to https://docs.google.com/forms/d/e/1FAIpQLSfkAiXMeYP-fw1W3Z-tT9uwmATEKO5X6S-th0gR2ezdKaaqfg/viewform?usp=pp_url&entry.400550049=Mobile+Ads+SDK&entry.460850823=5004Q00002mWifNQAS&entry.80707362=00185640

2. Fill out all fields, and attach your file(s).

3. Please reply back on this thread when you have uploaded your file(s). Please do not share this link.

This message is in relation to case "ref:_00D1U1174p._5004Q2mWifN:ref"

Thanks,
 
Google Logo Mobile Ads SDK Team


KisnardOnline

unread,
Jun 23, 2023, 4:27:32 PM6/23/23
to Google Mobile Ads SDK Developers
  • Sample app project where the SSV is setup and error is reproducible
    • shared in code.java attachment on the Google form
  • Steps to replicate
    • click the button in the code I attached
  • SDK version
    • implementation 'com.google.android.gms:play-services-ads:22.1.0'
  • App ID
    • shared in code.java attachment on the Google Form
  • Ad unit id affected on error code 3
    • shared in code.java attachment on the Google Form
  • Device name and versions affected
    • Android Studio Emulator Google Pixel 4
    • 7D97FF10A3A0144D1D8815642847C7D7
Thank you for the help!  Let me know if you need anything else.

logcat_example.png

Mobile Ads SDK Forum Advisor

unread,
Jun 26, 2023, 10:11:47 AM6/26/23
to jay...@gmail.com, google-adm...@googlegroups.com
Hi KishnardOnline,

Thank you for responding back. However, we would need the full project file instead as this will enable us to have full visibility of your implementation. Kindly share it to us using the steps provided on this thread. If you weren't able to share the project file, you may modify our sample app (https://github.com/googleads/googleads-mobile-android-examples) reproducing the reported behavior instead.

KisnardOnline

unread,
Jun 27, 2023, 1:51:10 AM6/27/23
to Google Mobile Ads SDK Developers
The code I used is copy/pasted from the documentation.  I will need to spend more time to edit your sample app.

On my personal phone I was able to get ads to show a few times, but now that too is responding with "code 3 no fill".  When it was showing ads the Server-side verification was not working.  Can you please advise on why it is not hitting the php page I configured in the Ad-Unit's  Server-side verification field?

Mobile Ads SDK Forum Advisor

unread,
Jun 27, 2023, 3:29:27 AM6/27/23
to jay...@gmail.com, google-adm...@googlegroups.com
Hello,

Thank you for the response.

We will need the modified sample app to proceed with the investigation. This will allow us to properly troubleshoot the cause of the issue. Feel free to it to us at anytime that's convenient for you.

If the file(s) you are looking to share are less than 25mb in total you can attach them to this case on your next reply. If you are having trouble attaching your file to this case or if your file(s) are larger than 25mb, you can share your files with me by performing the following steps:

1. Navigate to

https://docs.google.com/forms/d/e/1FAIpQLSfkAiXMeYP-fw1W3Z-tT9uwmATEKO5X6S-th0gR2ezdKaaqfg/viewform?usp=pp_url&entry.400550049=Mobile+Ads+SDK&entry.460850823=5004Q00002mWifNQAS&entry.80707362=00185640

2. Fill out all fields, and attach your file(s).

3. Please reply back on this thread when you have uploaded your file(s). Please do not share this link.

This message is in relation to case "ref:_00D1U1174p._5004Q2mWifN:ref"


Thanks,
 
Google Logo Mobile Ads SDK Team


KisnardOnline

unread,
Jun 27, 2023, 11:20:14 PM6/27/23
to Google Mobile Ads SDK Developers
Just sent your code via the "Google Ads Developer Support Form for Large Attachments" with my "APPLICATION_ID" and "AD_UNIT_ID" filled in.  I made no changes to the code and admob still does not work properly.  I tested with one emulated device that is setup as a test device "https://apps.admob.com/v2/settings/test-devices/list?pli=1" and one that is not.

2023-06-27 23:14:50.402 13595-13595 MainActivity            com.google.ads.rewardedvideoexample  D  No fill.
2023-06-27 23:14:50.503 13595-13595 Compatibil...geReporter com.google.ads.rewardedvideoexample  D  Compat change id reported: 147798919; UID 10184; state: ENABLED
2023-06-27 23:14:50.921 13595-13595 Ads                     com.google.ads.rewardedvideoexample  I  Ad failed to load : 3

Mobile Ads SDK Forum Advisor

unread,
Jun 29, 2023, 6:17:25 AM6/29/23
to jay...@gmail.com, google-adm...@googlegroups.com
Hello Kisnard,

Thank you for providing the requested information.

Upon reviewing this, we suspect this is caused by the billing issue associated with your account, specifically On hold due to no valid instruments. To help you fix verification address issues, you may check the following FAQ (https://support.google.com/admob/answer/2772302?hl=en&ref_topic=2772055#:~:text=Address%20verification%20FAQs) to know more about it.

The SSV you are trying to implement should not cause the error code 3 you are encountering as it is only a response from the ad server. We also verified this by using the ad unit ID you provided in your sample with our own sample app and also did not receive any ads. 

Kindly note that the SDK just requests an ad to the ad server (E.g: AdMob), and I'm afraid that it doesn't have any control on fill rate / match rate of your app. This is more of an ad serving issue/ fill rate concern which is out of scope to our team. You will have to contact our Product Support Team (https://support.google.com/admob/thread/new?hl=en) in order to assist you further on this as anything concerning ad serving and billing is no longer within our team's scope.

KisnardOnline

unread,
Jun 29, 2023, 11:26:18 AM6/29/23
to Google Mobile Ads SDK Developers
My account is already verified:

Verify your identity

Confirm your personal information to get your account ready to receive payments.

Learn more
Identity VerificationCompleted
Address Verification Completed

KisnardOnline

unread,
Jun 29, 2023, 12:49:17 PM6/29/23
to Google Mobile Ads SDK Developers
I also see this on the homescreen:
Your account is approved
Congratulations! We've verified your account information and your ad serving is enabled.

Mobile Ads SDK Forum Advisor

unread,
Jun 30, 2023, 12:06:36 PM6/30/23
to jay...@gmail.com, google-adm...@googlegroups.com

Hi,

Thank you for your response.

The error code 3 or no fill error that is happening to your ad unit id "ca-app-pub-7843833917330261/3006677680", is not related to your account approval or verification identity. As mentioned previously, we have seen a billing issue associated with your account, specifically "This account has a payment hold : On hold due to no valid instruments''. With this, you may check the following FAQ (https://support.google.com/admob/answer/2772302?hl=en&ref_topic=2772055#:~:text=Address%20verification%20FAQs) to know more about it. Kindly note that this is related to your payment and not the identity verification. In addition to that, in order to maximize receiving ads in your account, kindly make sure that you have setup your app-ads.txt file (https://support.google.com/admob/answer/9363762?hl=en&sjid=321420351121542379-AP). To assist you further into the ad serving concern and payment on hold, we recommend reaching out to the Product Support Team (https://support.google.com/admob/thread/new?hl=en) in order to assist you further on this as this is already out of our scope.

KisnardOnline

unread,
Jul 3, 2023, 12:36:12 AM7/3/23
to Google Mobile Ads SDK Developers
My address is already verified.  I uploaded app-ads.txt on 6/30/2023, but it still has not been scraped.  The Product Support Team forum recommended it - https://support.google.com/admob/thread/223375083?hl=en&sjid=5735614902383427306-NA.  I keep refreshing the page https://apps.admob.com/v2/apps/appadstxt waiting for it to show up in the table.  Not sure what could be wrong.

That being said, I clicked to load a rewarded ad on my personal cell phone just a little bit ago, and ads are showing.  However, the SSV is not working.  Can you please assist?

Mobile Ads SDK Forum Advisor

unread,
Jul 3, 2023, 12:23:30 PM7/3/23
to jay...@gmail.com, google-adm...@googlegroups.com

Hi,

Thank you for your response.

We've tried again your sample app, and we are now able to load ads on it. However, it appears that there is no implementation of SSV (https://developers.google.com/admob/android/rewarded#validate-ssv) on the sample app project you've provided. With that, can you provide us an updated sample app project where the SSV is not working? In addition to that, kindly provide us also a Charles log capturing this behavior.

If the file(s) you are looking to share are less than 25mb in total you can attach them to this case on your next reply. If you are having trouble attaching your file to this case or if your file(s) are larger than 25mb, you can share your files with me by performing the following steps:

1. Navigate to https://docs.google.com/forms/d/e/1FAIpQLSfkAiXMeYP-fw1W3Z-tT9uwmATEKO5X6S-th0gR2ezdKaaqfg/viewform?usp=pp_url&entry.400550049=Mobile+Ads+SDK&entry.460850823=5004Q00002mWifNQAS&entry.80707362=00185640

2. Fill out all fields, and attach your file(s).

3. Please reply back on this thread when you have uploaded your file(s). Please do not share this link.

This message is in relation to case "ref:_00D1U1174p._5004Q2mWifN:ref"


Thanks,
 
Google Logo Mobile Ads SDK Team


KisnardOnline

unread,
Jul 5, 2023, 11:30:46 PM7/5/23
to Google Mobile Ads SDK Developers
I figured out why my SSV was not working.  For anyone who finds this and maybe has the same... I had a similar issue as this post: https://stackoverflow.com/questions/76452878/android-self-signed-certificate-is-not-working-admob-rewarded-ad

My game is an MMORPG that connects to my server.  During login I was setting the default SSL context... after commenting it out, SSV is working.

//initialize an ssl context to use these managers and set as default
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustManagers, null);
// SSLContext.setDefault(sslContext);


Thank you for all of the help!



Random side question: Is it okay to test with real ads as long as we don't click on them?  I had issues with the test device actually showing test ads which is why I am asking.

Mobile Ads SDK Forum Advisor

unread,
Jul 6, 2023, 1:53:37 AM7/6/23
to jay...@gmail.com, google-adm...@googlegroups.com
Hello Kisnard,

We're glad that your issue has been resolved and thank you for sharing this information. Feel free to reach back to us if you have any concerns or inquiries regarding Mobile Ads SDK implementations.

KisnardOnline

unread,
Jul 14, 2023, 5:31:34 PM7/14/23
to Google Mobile Ads SDK Developers
I uploaded my app update to Google Play and SSV isn't working :(  My game client sets up a socket with my server... as I mentioned I had commented out the SSLContext.setDefault(sslContext) line.  Please let me know next steps to troubleshoot - and please don't say sample app lol... the sample app is working.  Is something below messing with the ability for SSV to work?


//load your key store as a stream and initialize a KeyStore
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());

//if your store is password protected then declare it (it can be null however)
String tsName = "res/gamedata/truststore-bks";
char[] trustPassword = "REDACTED".toCharArray();

//load the stream to your store
trustStore.load(MyCommandReceiver.GetActiveActivity().getAssets().open(tsName), trustPassword);

//initialize a trust manager factory with the trusted store
TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustFactory.init(trustStore);

//get the trust managers from the factory
TrustManager[] trustManagers = trustFactory.getTrustManagers();


//initialize an ssl context to use these managers and set as default
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustManagers, null);
// SSLContext.setDefault(sslContext); //this was breaking admob SSV - and likely other stuff too

//create sslfactory from the ssl context
SSLSocketFactory factory = sslContext.getSocketFactory();

final int connectTimeout = 6 * 1000; //6 seconds to connect
//https://stackoverflow.com/questions/5715751/ssl-socket-connect-timeout
GameActivity.sC = (SSLSocket) factory.createSocket();
GameActivity.sC.setSoTimeout(connectTimeout);
GameActivity.sC.connect(new InetSocketAddress(GameActivity.PROD_IP, GameActivity.PROD_PORT), connectTimeout);

//GameActivity.sC.setEnabledProtocols(new String[]{"SSLv3", "TLSv1", "TLSv1.1", "TLSv1.2"});
GameActivity.sC.setEnabledProtocols(new String[]{"TLSv1.2", "TLSv1.3"});

GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer: ------SUPPORTED CIPHER SUITES------");
GameActivity.LoggerWrite("i", TAG, Arrays.toString(factory.getSupportedCipherSuites()));
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:------SOCKET INFO------");
printSocketInfo(GameActivity.sC);
GameActivity.sC.setSoTimeout(0);
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:------START HANDSHAKE------");
GameActivity.sC.startHandshake();

GameActivity.sC.addHandshakeCompletedListener(new HandshakeCompletedListener() {
@Override
public void handshakeCompleted(HandshakeCompletedEvent arg0) {
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:------HANDSHAKE-COMPLETED-LISTENER - START------");
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:Cipher suite: " + arg0.getCipherSuite());

GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:Local Principal: " + arg0.getLocalPrincipal());

Certificate[] peerCertificates = null;
try {
peerCertificates = arg0.getPeerCertificates();
for (Certificate s : peerCertificates) {
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:Peer Certificate(public key): " + s.getPublicKey());
}
} catch (SSLPeerUnverifiedException e) {
GameActivity.LoggerWrite("e", TAG, "LoginActivity:connectToServer:arg0.getPeerCertificates()" + e);
}

try {
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:Peer Principal: " + arg0.getPeerPrincipal());
} catch (SSLPeerUnverifiedException e) {
GameActivity.LoggerWrite("e", TAG, "LoginActivity:connectToServer:arg0.getPeerPrincipal()" + e);
}
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:Session: " + arg0.getSession());
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:Socket: " + arg0.getSocket());
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:Source: " + arg0.getSource());
GameActivity.LoggerWrite("i", TAG, "LoginActivity:connectToServer:------HANDSHAKE-COMPLETED-LISTENER - END------");
}
});
Reply all
Reply to author
Forward
0 new messages