I don’t see you setting the test mode flag. Do that for sure or you’ll get whacked by Google.
This is all the code I would use to show a banner ad (in test mode).
Note: My code is not actually laid out like this, I put it all together to show you the order of execution.
local unusedWidth = display.actualContentWidth - display.contentWidth local unusedHeight = display.actualContentHeight - display.contentHeight local left = 0 - unusedWidth/2 local top = 0 - unusedHeight/2 local right = display.contentWidth + unusedWidth/2 local bottom = display.contentHeight + unusedHeight/2 local ads=require("ads") local function adListener( event ) for k,v in pairs( event ) print("adListener ", k, v ) -- so you see everything you get end end ads.init("admob", bannerID, adListener ) ads:setCurrentProvider("admob") ads.load("admob", { appId = bannerID, testMode = true } ) local function showAd( adPosition, isTestMode ) local xPos, yPos local adPosition = "top" -- "top", "bottom" if adPosition == "top" then xPos, yPos = display.screenOriginX, top elseif adPosition == "bottom" then xPos, yPos = display.screenOriginX, bottom end ads:setCurrentProvider("admob") ads.show( "banner", { x = xPos, y = yPos, appId = bannerID, testMode = isTestMode } ) end showAd( "top", true )