Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
Ads Interface — Gideros Forum

Ads Interface

ar2rsawseenar2rsawseen Maintainer
edited June 2013 in General questions
Finally moved Ads Interface from experiment to Beta.

What is Ads interface? It's an easier way to add and use different ad frameworks.
The benefits of Ads interface would be:
  • Using same interface not only across platforms, but also across ad frameworks
  • Providing ability to use multiple ad frameworks simultaneously
  • Making it easier to add new ad frameworks only by wrapping its functionality in Native interface
More information here: http://giderosmobile.com/labs/ads-interface

Basically both platforms (Android and IOS) implemented and passed initial testing and now comes the fun part.

Which ad frameworks would you want to see supported?
Please state ad framework name, link to their website and platform (Android, IOS or both).

Also all comments and feedback about Ads interface are welcomed ;)

Likes: johnyc100

+1 -1 (+1 / -0 )Share on Facebook
«13456716

Comments

  • I've only used admob in native android at the bottom of the activity.
    This sounds like it would be easy to put a banner ad on a scene, and a full page? At some point during a stage in the app.

    :) nice!

    Likes: jdbc

    +1 -1 (+1 / -0 )Share on Facebook
  • fxonefxone Member
    edited June 2013
    I would like to see InMobi as a part of Ads interface:
    http://www.inmobi.com/developers/download-center/
    @ArtLeeApps I should mention, that compiled lua files are also obfuscated by Lua's bytecode and can be additionally encrypted, if you have indie license at least, then it's very difficult to remove Ads layer from apk. Normally you should use for native apps ProGuard obfuscator, but Gideros is not supported by them. So it's very reasonable to use Ads plugin than native solution, if you are planning to build your first successfull game or application.
  • fxonefxone Member
    edited June 2013
    @ar2rsawseen oh I almost forgot about this: I (and community as well) need also some functions mapping for Admob Android plugin interface:
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    and
    adRequest.addTestDevice("DEVICE_ID");
    to do not violate policies from Admob company..
  • I need a Tapjoy.
  • fxonefxone Member
    edited June 2013
    @ar2rsawseen chartboost sdk as well with better management for Android like iOS @Nascode's version has, I need function:
    chartboost:cacheInterstitial()
    btw as a free member I'm quite demanding :D
  • ar2rsawseenar2rsawseen Maintainer
    @fxone :D
    unfortunately common AdsInterface takes all the similar functions from all frameworks and combine them under one API, thus it can be hard to implement some ad framework specifics like cacheInterstitial()
    Could you elaborate on how that works, so maybe I could implement it on Native part without even needing to call it from Lua?
  • fxonefxone Member
    edited June 2013
    @ar2rsawseen it's simply caching of ad before the time, when it can be showed. This allows for better ad's view management. Now at Android's chartboost plugin function
    chartboost:showInterstitial()
    sends demand of ad to chartboost server and ad (big format) can be showed in any moment of the game, since demand has been sent.. so it's little out of control and can irritate an end-user.

    Likes: hgvyas123

    Dislikes: SinisterSoft

    +1 -1 (+1 / -1 )Share on Facebook
  • @ar2rsawseen

    cacheInterstitial() is very necessary for chartboost basically it caches the ad (one long size image) so at the time we call showinterstitial it can be shown without any delay even on slow connection else it will be shown after some delay at that time user might have pressed replay button and actually playing the game.

    :)

    Likes: fxone, krisis

    +1 -1 (+2 / -0 )Share on Facebook
  • Hi all :)

    @ar2rsawseen

    I would really love a Tapjoy plugin for iOS and Android :)
    http://www.tapjoy.com/

    Likes: fxone, bravcm, doridori

    +1 -1 (+3 / -0 )Share on Facebook
  • bravcmbravcm Member
    Where we can download Ads Interface plugin?
  • ar2rsawseenar2rsawseen Maintainer
    @bravcm currently it is available in Gideros Labs, which is available to paid members only. Can't tell anything about future of the plugin for now :)
  • doridoridoridori Member
    edited July 2013
    This is great! What networks does it currently support and does it support full screen ads? I agree it would be cool to implement Tapjoy. Many thanks
  • ar2rsawseenar2rsawseen Maintainer
    edited July 2013
    @doridori currently for testing purpose I've implemented Admob, Chartboost and Adcolony (one of each, banner, interstitial and video :) ) and now polling people to see what else is expected :)
    And noting everything you suggest and implement it later :)

    Likes: SinisterSoft

    +1 -1 (+1 / -0 )Share on Facebook
  • @ar2rsawseen
    First of all i am gratefull about this plugin, and know that it is beta and there can be bugs:D
    There is some weird situation i am experiencing. I wrote a program and published it already with this plugin, everything was working and still working in my tests(Htc Desire HD Android version 2.3.7 )

    But when i test with samsing Galaxy note 1 or galaxy note 2 this plugin is giving error, and the program is shutting down unexpectedly.

    Do you have any idea why can it be?
    Thanks in advance.

    Here is the log file for the crash:
    java.lang.NullPointerException
    at com.giderosmobile.android.plugins.ads.Ads$MySecurityManager.getCallerClassName(Ads.java:354)
    at com.giderosmobile.android.plugins.ads.Ads.adReceived(Ads.java:312)
    at com.giderosmobile.android.plugins.ads.AdsAdmob.onReceiveAd(AdsAdmob.java:117)
    at com.google.ads.internal.d.E(SourceFile:1180)
    at com.google.ads.internal.c$e.run(SourceFile:214)
    at android.os.Handler.handleCallback(Handler.java:615)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4921)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
    at dalvik.system.NativeStart.main(Native Method)
  • ar2rsawseenar2rsawseen Maintainer
    @talis (sigh) unfortunately that is what I was afraid of

    It was meant to automatically get which class called this specific method, on IOS part it was explicitly told do not use it in production, thus I was simply passing caller with the method arguments.

    on Android it was told, yes sure, use security manager, and no warnings, but I still was a bit doubtful, but thought I would try it out anyway. It seems I will have to rewrite the logic similar to IOS one and pass caller with the function arguments.

    Most probably will do it on this weekend ;)
  • @ar2rsawseen thanks. Waiting for the weekend [-O<
    I will do further tests with it and play by the way, i will post if i will experience anything more.
  • ar2rsawseenar2rsawseen Maintainer
    edited July 2013
    Ok, needed a little time off the Native Bridge, and thought I'll take a look and it was easier than I thought.

    I've updated files in Gideros Labs, basically to upgrade you only need to copy Java files from src/com/giderosmobile/android/plugins/ads to your project.

    What I did:
    • Removed the use of SecurityManager
    • Implemented automatic caching for chartboost (for both interstitials and more apps)
    • Implemented test option for admob, now can provide second argument as device id:
    local admob = Ads.new("admob")
    admob:setKey("your-admob-ad-key")
    admob:showAd("banner", "test-device-id")
  • @ar2rsawseen thanks for the fast response. I updated all my files. Will try and share the results.

    Likes: hgvyas123

    +1 -1 (+1 / -0 )Share on Facebook
  • ar2rsawseenar2rsawseen Maintainer
    Due to the promotion from Amazon side, added Amazon Ads to the Ads Interface, already available in the Gideros Labs. :)
    Usage as usual:
    amazon = Ads.new("amazon")
    amazon:setKey("your app key")
    amazon:showAd("300x50")
    +1 -1 (+3 / -0 )Share on Facebook
  • I tested with the latest files for
    Admob. My test results all are ok and no crashes:D
    Android 2.3.1 HTC DESIRE HD MUI Custom ROM -> Success:D
    Android 4.1 Samsung Note I,II -> Success:D

    Thanks again.

    Likes: mattb_01

    +1 -1 (+1 / -0 )Share on Facebook
  • ar2rsawseenar2rsawseen Maintainer
    When you guys say, you want Tapjoy, do you also mean all the currency management stuff? :)
  • ar2rsawseenar2rsawseen Maintainer
    edited August 2013
    Ok I've updated the Ads Interface plugin for Android, basically I could even say that Android is stable now and I will move onto developing for IOS more.
    So what I did was, fixing couple of bugs,
    implementing smart caching, when it hides ad without destroying and shows it faster after hiding if it is the same type of ad.
    I've also added other frameworks, so Android now contains:
    • AdColony
    • AdMob
    • Amazon
    • Chartboost
    • Amazon
    • HeyZap
    • InMobi
    • TapJoy
    I've also had implemented Leadbolt and it works with it's old sdk, but new sdk has new additions and also poor documentation, I will implement other stuff as they will be available in the docs. :)

    Oh and additionally I've created Ads Interface Usage Matrix for much easier installation and usage reference:
    http://docs.giderosmobile.com/AdsInterfaceUsageMatrix.htm

    Hope somebody can make any sense of it :)
    +1 -1 (+2 / -0 )Share on Facebook
  • @ar2rsawseen nice job! But I can't test it due to license limitation: when are you planning to put Ads Interface in official release?
  • @fxone unfortunately have no idea about the plans on this. Some items may be released even without the release, some may remain there indefinitely

    Likes: fxone

    +1 -1 (+1 / -0 )Share on Facebook
  • Questions about Ads Interface.
    Currently it is only possible to set vertical and horizontal alignment.
    I've done some experiments and it seems it is possible to allow precise positioning (with some quirks) using pixels. But unfortunately most probably not both

    So what is better easy alignment or more harder precise positioning in pixels?
  • It would be good if there would be a setting to re-scale the screen if there is an advert (at the top/bottom) - or something to let you know the scaled pixel position of the bottom/top of the advert so we can programmatically avoid the area.

    Likes: MobAmuse

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
  • @SinisterSoft unfortunately that will not be that easy, because advert may be displayed in the top center, leaving the sides blank.

    All I could do is to provide a way to fetch width/height of the banner ads and let each user handle his own case.

    But the question still remains, do you guys need pixel positioning or current alignment seems to be sufficient. :)
  • alignment is sufficient for me atleast

    :)
  • Current setup is fine for me. Fetching the width/height would be great though.

    Likes: MobAmuse

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
Sign In or Register to comment.