Moving Off Inneractive Back to AdMob

I checked out Inneractive last month, but ultimately the ad network simply didn’t have the payout. I’m getting a payout of about 4 cents per 1000 impressions with almost 100% fill rate compared to a payout from AdMob of 22 cents per 1000 impressions with only about a 50% fill rate. Simply put, going with Inneractive = throwing money down the drain. Though, obviously, different apps will have different results with ads.

I would love to use Inneractive ads to backfill AdMob. If we could actually get official AdMob support and the ability to check if AdMob filled the request, I think Inneractive would be great.

I just hope that we one day get AdMob support. I’m not holding my breath for it, mind you. I don’t think it’s quite the priority of the AnscaMobile team that it is for us developers, but hopefully it will come in the future and Inneractive will fill a nice place in backfilling ads.

As a side note, I’m actually using an Inneractive ad in once place in my app. It’s the text ad and I put it at the bottom of the screen. This seems a bit buggy. It worked great on the iPhone to put it at y=440 (my app is set at 320x480 for content). Moving this over to the iPad and it put the ad at the actual 440 point on the iPad (i.e. the middle of the screen). I was able to test for the device being used to correctly place the ad, but those who want to put the ad at the bottom of the screen should be aware of the bug in regards to the iPad.

[import]uid: 8776 topic_id: 22182 reply_id: 322182[/import]

Hmm I use admob, and i’m getting a really aweful fill rate. (30% or even less). I’m going to try inner-active for a while, and if its no good, I’ll probably fix up the admob hack to check if an ad got loaded and report it back to corona. Its not that hard to do, just lazy to do it!

BTW yeah the ipad bug is anoying. Another bug is if you have the device in landscape, it doesn’t rotate the web page thats displayed when u click the ad. It also doesn’t let you scroll it lol. [import]uid: 8872 topic_id: 22182 reply_id: 88203[/import]

That’s exactly why I tried inneractive last month. My fill rate with admob had dropped from 50-60% to 15-25%. I was hoping to solve it with interactive, but even with dismal fill rates, it was giving more money.

It would be great to use it to backfill admob, though. I think that would be a real win-win for us developers and for inneractive.
[import]uid: 8776 topic_id: 22182 reply_id: 88209[/import]

On admob I get much better fill when I enable AdSense ads under app settings. Have you given that a try? [import]uid: 128774 topic_id: 22182 reply_id: 88229[/import]

Then try to disable kid-safe ad too :smiley: [import]uid: 9190 topic_id: 22182 reply_id: 88231[/import]

I get about 80% on Inneractive and 40-50% on AdMob with all filters turned off + AdSense.

AdMob provides higher pay-per-click, and Inneractive gives you a higher fill rate. I typically use AdMob as my primary and then backfill Inneractive if AdMob doesn’t have something for me. [import]uid: 36054 topic_id: 22182 reply_id: 88245[/import]

as a side note i am using admob in my native apps (android) fillrate is always above 95% with adsense enabled and inappropriate ad disabled with 10 to 50 cent of income per 1000 impression. the low impression over here is just because its hack or whatever.

so if there is a support for admob i dont think we need any thing else ( may be iad will be still good option but i had never tried it) [import]uid: 12482 topic_id: 22182 reply_id: 88249[/import]

You can try to use this class by Deniz Aydinoglu.
http://developer.anscamobile.com/code/ad-mediator-corona

I haven’t used it myself yet but the comments are very positive and it looks like a great class and it should help solve the fill rate issue. you can also set the weight of each service and when new services join Corona, you can add them as well.

BR,
Shahar [import]uid: 13553 topic_id: 22182 reply_id: 88337[/import]

Hi,

I just coded a working admob plugin for my ad mediator. It uses the same http interface as the latest admob ios sdk and displays returning xhtml ads inside a webpopup. So this is the closest thing to have a native admob implementation from ansca. As it does not use some nasty (and forbidden) html hacks, you will get best possible fillrates i guess.

And more; you can mediate between admob, inmobi, inneractive, herewead and house ads, so you never have unfilled ad spots anymore

Please take a look at the documentation on github. Download latest code and execute sample application. I need your support to test and polish it.

Ad Mediator for Corona:
http://developer.anscamobile.com/code/ad-mediator-corona

Documentation:
https://github.com/deniza/Ad-Mediator-for-Corona/wiki/Documentation

Thank you. [import]uid: 11686 topic_id: 22182 reply_id: 88360[/import]

Deniz -
no, Thank you!

I think this is a library that most developers would really enjoy.
Thanks for this contribution.

BR,
Shahar [import]uid: 13553 topic_id: 22182 reply_id: 88362[/import]

Deniz,

Firstly - GREAT STUFF!

I was just looking at your admob code:
https://github.com/deniza/Ad-Mediator-for-Corona/blob/master/admediator_admob.lua

And i notice you’re using an iOS useragent. What happens when you use this on android? Should i edit the code to send an android user-agent when on android?
[import]uid: 8872 topic_id: 22182 reply_id: 88365[/import]

Deniz, thanks. Last I’d checked the mediator didn’t have AdMob in it. Nice to see that support added. [import]uid: 8776 topic_id: 22182 reply_id: 88378[/import]

UPDATE - please pull the latest code from github. this issue is fixed now for admob. I am also going to fix inmobi and inneractive parts as soon as possible.

ahh good point. and yes, you should change any ios specific parameters to their android equivalents. It may not be a big problem but we better play safe here. [import]uid: 11686 topic_id: 22182 reply_id: 88379[/import]

Another issue i just noticed. If its using webpopups and you hide, you can’t show again. You also can’t really use init again as it adds listeners again.

function AdMediator.show()  
 isHidden = false  
 adDisplayGroup.isVisible = true  
 adDisplayGroup:toFront()  
end  
  
function AdMediator.hide()  
 isHidden = true  
 adDisplayGroup.isVisible = false  
 if webPopupVisible then  
 native.cancelWebPopup()  
 end  
end  

[import]uid: 8872 topic_id: 22182 reply_id: 88386[/import]

Scratch that, I see what you’re doing :slight_smile: But you should probably cancel the timer and explicitly call fetchRandomNetwork and restart the timer on show. Otherwise, say you do a show in second 61, it’ll take a whole 59 seconds before the next ad show.

If not using webpopups, its probably fine as is, as you’ll just see the previous ad, which is probbaly better than not seeing anything while its loaded. Especially for people using ads in menu’s for example where display time is pretty limited.

timer.performWithDelay( adRequestDelay \* 1000, fetchRandomNetwork, 0 ) [import]uid: 8872 topic_id: 22182 reply_id: 88392[/import]

Me again :stuck_out_tongue:

I see that you create a temporary webview.html in the temp folder. Maybe the easiest fix is, if .show and webpopups and webview.html exists, then open a new webview opening webview.html. This should load the last ad and recreate the behaviour of non popup ads. [import]uid: 8872 topic_id: 22182 reply_id: 88393[/import]

@kam187

i fixed this one as you advised and pushed to github. Now popups are working like regular (inmobi) banner ads.

I can simply pause request timer when hide() is called, and then resume it in show() method. But I am not sure if that will be a better implementation than current one.

Thanks for digging by the way… :slight_smile: [import]uid: 11686 topic_id: 22182 reply_id: 88400[/import]

oops double post. sorry. [import]uid: 11686 topic_id: 22182 reply_id: 88401[/import]

Just testing it now :slight_smile:

I think it should be ok. Will let you know if i find any problems :slight_smile: [import]uid: 8872 topic_id: 22182 reply_id: 88405[/import]

Tested it out a bit and i think its probably better to just call the fetch and start the timer on .show and cancel it on .hide

That way you can init the ads with .start but not show them immediately. Although it might be better to try to display the previous ad, you’d need to make sure the previous ad was available and able to be displayed. If not either wait for the timer to fire again, or cancel the timer and restart it forcing a refresh.

Second issue is with remote config loading…

  1. That comma should be a …
 if event.isError then  
 error("AdMediator error! mediator can not load configuration from url: ", initUrl)  
 end  
  1. if the config file can’t be loaded it throws an error but then carries on trying to parse it. This causes a bunch of lua errors, and doesn’t stop the whole ad mediator. I think you should have a flag which turns on only after the config is loaded correctly. You could retry config loading on every .show i guess if you really wanted as well.
    [import]uid: 8872 topic_id: 22182 reply_id: 88426[/import]