Help: Iads not showing

I didn’t want to re-post this in another thread, but this is quite urgent.

My free app is out there for 8 days now and the downloads are catching up and iAds are still not showing.

in my main.lua I have these:

local ads = require( "ads" ) local function adListener( event ) local msg = event.response if event.isError then return end ads.show( "banner", { x=0, y=0 } ) end ads.init( "iads", "ph.gambit.freethrow", adListener )

So what else is needed here?

Couple of questions/thoughts.  Do you have the plugin information in your build.settings?

Have you handled all of the contract bits on the iTunes Connect side to handle using iAds?

I see your app bundle ID indicates that you are in the Philippines.  Does Apple deliver iAds to you?

I don’t see where you are doing anything in your ad listener to print out anything if you get errors.

Also, normally you would not put the ads.show() in your listener.  The listener gets called when ad.show() runs.  Try putting that after your ads.init() call.

Rob

Yes I have this in my build.settings:

settings = { plugins = { ["CoronaProvider.ads.iads"] = { publisherId = "com.coronalabs", }, } }

Yes all the iTunes Connect side stuff are okay and iAds are enabled for the app. The weird thing is that I had a game before (a year ago maybe) that had iAds and that worked fine even while testing on the device.

I noticed the ads.show() being inside the listener, I moved it out now.

I also added print messages if the ads.init() listener was successful. When testing on the device it prints out that iAds was initialized properly.

I assume that since it has been more than a week already, that if moving that line out of the listener fixed the issue, ads would appear while testing in the device. It still hasn’t though, so I still don’t know what’s wrong here.

What provisioning profile are you testing with?  They should give you test ads until your app goes live.  If you’re live, you could be running into low fill rates.  Are you getting any messages when ads.show() runs?  It should also call your listener function when the ad either fails or completes.  

Rob

I’m seeing this from xcode:

AdSheet[518] \<Warning\>: [AppDeveloper] Fill rate for development application 'ph.gambit.freethrow': 80.0%

I’m using my adhoc provisioning profile for testing in the device (building it in adhoc also)

I can confirm also that the AdSheet log in the console wasn’t present before I changed the ads.show() location. I couldn’t verify it since ads aren’t still showing in my device.

Here’s an update. I updated the game with the changes to the code. So far, it’s been 4 days since the release of the update and no ads are still showing up.

Urgently need some help here. The game’s getting traction and about reach 1k downloads a day, and there’re no ads showing up. As of the moment I’m just waiting and hoping for ads to show up in the game. Need some advice.

Maybe the free edition of Corona doesn’t support ads?

Is your ads.show() still inside your listener function?  It should not be.

Yes, iAds works for starter accounts.

It’s outside now. Let me post my new code:

main.lua:

local storyboard = require('storyboard') local ads = require( "ads" ) local function adListener( event ) local msg = event.response if event.isError then -- Failed to receive an ad, we print the error message returned from the library. print(msg) print('could not get iad') return else print('iad successfully init') end end ads.init( "iads", "ph.gambit.freethrow", adListener ) ads.show( "banner", { x=0, y=0 } ) storyboard.gotoScene('game')

game.lua:

local ads = require( "ads" ) // called when the game just started after a game over: ads.show( "banner", { x=0, y=0 } )

I just ran that code above (well I took out the call to the storyboard.gotoScene() since I didn’t have a scene setup.  The first time I ran it I got this:
 

Mar  9 10:20:23 Rob-Miracles-iPhone AdSheet[1973] <Warning>: [AppDeveloper] Fill rate for development application ‘com.omnigeekmedia.omnitrivia’: 80.0%
Mar  9 10:20:23 Rob-Miracles-iPhone AdSheet[1973] <Warning>: [AppDeveloper] Simulating an inventory-unavailable server response due to development application fill rate. To change the fill rate, see the Developer panel in Settings.
Mar  9 10:20:23 Rob-Miracles-iPhone tmp[1971] <Warning>: The operation couldn’t be completed. Ad inventory unavailable
Mar  9 10:20:23 Rob-Miracles-iPhone tmp[1971] <Warning>: could not get iad

Of course I had to use an AdHoc profile so I’m getting developer ads and I had to use a bundle ID I own that is setup for iAds live.  I killed and restarted it and got this:

Mar  9 10:20:45 Rob-Miracles-iPhone AdSheet[1973] <Warning>: [AppDeveloper] Fill rate for development application ‘com.omnigeekmedia.omnitrivia’: 80.0%
Mar  9 10:20:47 Rob-Miracles-iPhone tmp[1974] <Warning>: iad successfully init

And got an ad on my screen.  So there are several possibilities:

  1. Are you in a region that apple serves ads to?

  2. Are you 100% sure everything is correct in iTunes Connect?

  3. It’s a real possibility that your fill rate is really 0 and the message they give you is misleading.

Have you watched the console log of your live app to see what’s going on?

Just checked the console with the live game, and I got these when I just opened the app:

Mar 9 22:28:21 Jamis-iPhone-5 SuperFreeThrow[201] \<Warning\>: The operation couldn’t be completed. Ad inventory unavailable Mar 9 22:28:21 Jamis-iPhone-5 SuperFreeThrow[201] \<Warning\>: could not get iad

Well that’'s pretty straight forward.  iAds isn’t known for having a great inventory.  Many developers will have multiple ad providers and fall back to another option if you don’t get ads from the prefered vendor.

Rob

What? So that’s it? It’s working but there’s no ads to show?

@Rob, would you be able to download Super Free Throw in the AppStore and verify if it’s correct in your end?

Just logged in at iad.apple.com, saw that the game has a lot of ad requests, with 0 impressions, 0% fill rate

I’m only seeing two messages:

in reload

iad successfully init

You probably should only call ads.init() once and not every time the app runs.  I don’t see any requests for ads through.  I dunno if you have prints in there for that or not.

Rob

I don’t have any other prints. Just logged into iads.apple.com. I have this for the app, it has 1,617 requests. 0 impressions. 0% fill rate. So I guess the code is working now. Although no ads are being shown.

Image%202014-03-10%20at%209.03.28%20AM.p

I checked the iad.apple.com page today and I can see that now I have 2 impressions. That means it’s now working!

Thanks for all the help @Rob!

I think it might be a good idea to also note in the docs that they can check if iads are working by going to http://iad.apple.com

Couple of questions/thoughts.  Do you have the plugin information in your build.settings?

Have you handled all of the contract bits on the iTunes Connect side to handle using iAds?

I see your app bundle ID indicates that you are in the Philippines.  Does Apple deliver iAds to you?

I don’t see where you are doing anything in your ad listener to print out anything if you get errors.

Also, normally you would not put the ads.show() in your listener.  The listener gets called when ad.show() runs.  Try putting that after your ads.init() call.

Rob

Yes I have this in my build.settings:

settings = { plugins = { ["CoronaProvider.ads.iads"] = { publisherId = "com.coronalabs", }, } }

Yes all the iTunes Connect side stuff are okay and iAds are enabled for the app. The weird thing is that I had a game before (a year ago maybe) that had iAds and that worked fine even while testing on the device.

I noticed the ads.show() being inside the listener, I moved it out now.

I also added print messages if the ads.init() listener was successful. When testing on the device it prints out that iAds was initialized properly.

I assume that since it has been more than a week already, that if moving that line out of the listener fixed the issue, ads would appear while testing in the device. It still hasn’t though, so I still don’t know what’s wrong here.