admob-v2 plugin - test results

When you upgraded to the new Admob dashboard a few months back, did you have any live apps with Admob V1 plugin (older version) still successfully serving ads and reporting revenue in the new dashboard? 

I’m worried that by upgrading to the new dashboard today, I will loose revenue because I’m using an older Admob plugin. It will take me sometime to update my apps and digesting the issues faced integrating the new Admob V2 plugin. Please advice. 

Yes, I upgraded to new Admob dashboard and my live app serves Admob V1 without problem.

I tried to use V2 but it was having first-banner-not-shown problem (see earlier posts in this thread). Not sure if this has been fixed.

Does anyone else have the latest problem I reported ?

06-14 17:12:37.554: W/Ads(26636): Not enough space to show ad. Needs 601x90 pixels, but only has 600x976 pixels.

So, your old “app publisher ids” can still work in the new Admob dashboard, right?. Knowing there are still issues with Admob V2 plugin, can Admob V1 plugin support the new “ad unit ids” from the new dashboard? 

On another topic, did you face any revenue issues days after you updated to the new dashboard.

Yes, old publisher ids still work with new admob

I have not tried V1 with new ad unit ids. (My guess is it should be ok, anyone tried?)

I am waiting for Corona to fix the bugs for V2 before the deadline.

I didn’t face any revenue issues… the average is even up a bit after I changed to the new admob. I saw on Google admob about using the new ids to utilize mediation, so I am really looking forward to V2 + new ad ids.

I really hope Corona can put more weight on Admob problems. It is our main source of income as app developers.

I agree with you. Admob should be given top priority. 

What remaining bugs are there with V2 (bug numbers would be helpful)?

Today I tried again with v2 to show full-screen Admob ad:

ads.init("admob", \_def.admob\_full\_id, adMobListener) ads.hide() ads:setCurrentProvider("admob") ads.show( "interstitial", { x=0, y=0 } )

It was working with v1, but ad is NOT showing with v2.

In the callback listener (adMobListener as shown above), nothing was called.

So basically nothing happens. Terrible, I can’t even detect any error to transit to the next scene.

Anyone can show full-screen ad with V2 successfully?

PS. It was tested with an iPhone 5S.

I just switched back to v1 again.

With exactly the same code, the full-screen ad shows successfully with v1 as expected.

Are you sure 8/31 is the last day we have to switch to v2? Could Corona test thoroughly with v2?

I don’t think {x=0, y=0} has any relevance with interstitials.

I’m having no issues with v2 and interstitials.

Although I call ads.load(“interstitial”) when starting the app and test with ads.isLoaded(“interstitial”) before showing the ad with ads.show(“interstitial”) .

…as for the certainty of the 31st of August deadline, I believe this link can’t be any more clear:

http://www.googblogs.com/legacy-admob-sunset-and-legacy-sdk-deprecation-reminder/

(1) I removed {x= 0, y=0} (which I saw some sample code using this earlier)

    Yes, it’s irrelevant. The result is still the same, the ad is not showing.

(2) I didn’t call isLoaded()

    However, the problem is that no callback is received. Even I tried to play an ad without loaded, it should give me some error, isn’t it?

(3) Besides, v1 can show successfully without any code modification.

(4) I just tested with an Android device, the full ad can be shown with v2.

But for my iPhone & iPad, it can’t.

So when you said you can play full ad successfully, do you also mean iOS devices? or just Android devices?

I haven’t tried with Android.

Only tested with iPad mini (iOS7), and iPod Touch 5th gen (iOS8 beta) which works so far.

I just tested it now a minute ago just to be sure nothing weird had happened recently…

v2 module definitely needs additional work/test. Some problems I encounter on Android devices are:

  1. Sometimes *first* ads.show() does not show any banner ads. After waiting 30 seconds you get a banner.

  2. Sometimes interstitials also does not show anything. After waiting 30-50 seconds a fullscreen pops up suddenly which is very bad for gameplay.

@deniz

  1. This is a known issue even for native Android developers. 

For interstitials: Do you call ads.load() to make sure an ad is cached before showing it (also testing with ads.isLoaded())? 

I tried to call ads.load(),  here are the problems:

(1) ads.load() crashes in Simulator

(2) I still build it for device and ads.load() does not crash in actual device

(3) I can see interstitials ad, but no callback is called in the listener. (which is no good because I need the callback to know if ads is successfully loaded/shown)

(4) And one more biggest problem:

After the first interstitials ad shown, subsequent interstitials ads are not shown.

I think it’s not about working around these admob v2 problems. 

V2 has many fundamental problems that Corona should try to test them out & fix them. To make it more reliable. Come on.

ads.load() calls the callback function with an “adsRequest” event name. But you don’t really need to check that because before showing an ad, just call ads.isLoaded(). If it returns true you can safely assume that an ad *will* be shown immediately. If it returns false, fall back to some other ad network.

When you show an admob interstitial, the app suspends (making callbacks nearly pointless), so you just need to call ads.load() again in your app’s onApplicationResume event. There is no such thing as auto caching of interstitials.

v1 works much better and reasonable.

Corona has to identify & document the workarounds you provide if they are the required steps.

But I still think it’s something Corona should improve for V2 as soon as possible. Deadline is coming & iOS submission sometimes requires 2-3 weeks.

@ingemar

We should definitely call ads.load(), check if ad is loaded by calling ads.isLoaded() and then call ads.show()… This is the most reliable way to show v2 interstitials. Docs should be updated to state that explicitly. Calling ads.load() is not an option, its a necessity.

Calling ads.load() is not an option, its a necessity.

Very true. It’s the only reliable way, and it hasn’t failed me yet.

Also calling ads.load() in the app’s onApplicationResume event is important so the app caches the next ad after coming back from an interstitial (or after a prolonged time away from the app).