Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat
HeyZap plugin - Gideros Forum

HeyZap plugin

ar2rsawseenar2rsawseen Maintainer
edited June 2013 in Plugins
In collaboration with http://heyzap.com here is a plugin for whole Heyzap combo:

Heyzap offers a great combo of leaderboard and achievement management (even between apps). Additionally it also provides Ads and a way to checkin your app with options to posting to Twitter and Facebook. Thats all for both Android and IOS platforms.

And now available to Gideros.
+1 -1 (+7 / -0 ) Share on Facebook


  • So i should implement it to my Guess Picture game... Ok, i'll try:)

    Dislikes: bali001

    +1 -1 (+0 / -1 ) Share on Facebook
  • ar2rsawseenar2rsawseen Maintainer
    Oh certainly, and ping here if something is not correct or is not working :)

    Likes: hgvyas123

    +1 -1 (+1 / -0 ) Share on Facebook
  • Great work! I'm Jake from Heyzap and we're excited to open our SDK to the Gideros community. If there are any questions at all about our ads or other services, don't hesitate to ping me directly at jake(at)heyzap.com.
    +1 -1 (+2 / -0 ) Share on Facebook
  • What can be wrong?

    06-14 00:28:12.142: D/HeyzapSDK(644): Heyzap Ad Manager started.
    06-14 00:28:12.182: D/AndroidRuntime(644): Shutting down VM
    06-14 00:28:12.182: W/dalvikvm(644): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
    06-14 00:28:12.232: E/AndroidRuntime(644): FATAL EXCEPTION: main
    06-14 00:28:12.232: E/AndroidRuntime(644): java.lang.NullPointerException
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.Manager.(Manager.java:41)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.Manager.getInstance(Manager.java:164)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.AdUnit.shouldPrefetch(AdUnit.java:342)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.AdUnit.(AdUnit.java:110)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.InterstitialAdUnit.(InterstitialAdUnit.java:13)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.InterstitialOverlay.(InterstitialOverlay.java:92)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.InterstitialOverlay.load(InterstitialOverlay.java:539)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.InterstitialOverlay.load(InterstitialOverlay.java:534)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.heyzap.sdk.ads.InterstitialOverlay$10.run(InterstitialOverlay.java:494)
    06-14 00:28:12.232: E/AndroidRuntime(644): at android.os.Handler.handleCallback(Handler.java:605)
    06-14 00:28:12.232: E/AndroidRuntime(644): at android.os.Handler.dispatchMessage(Handler.java:92)
    06-14 00:28:12.232: E/AndroidRuntime(644): at android.os.Looper.loop(Looper.java:137)
    06-14 00:28:12.232: E/AndroidRuntime(644): at android.app.ActivityThread.main(ActivityThread.java:4424)
    06-14 00:28:12.232: E/AndroidRuntime(644): at java.lang.reflect.Method.invokeNative(Native Method)
    06-14 00:28:12.232: E/AndroidRuntime(644): at java.lang.reflect.Method.invoke(Method.java:511)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    06-14 00:28:12.232: E/AndroidRuntime(644): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    06-14 00:28:12.232: E/AndroidRuntime(644): at dalvik.system.NativeStart.main(Native Method)

    I'm just want to show interstatial on start

    require "heyzap"

    heyzap:addEventListener(Event.AD_RECEIVED, function()

    heyzap:addEventListener(Event.AD_FAILED, function(e)
    print("AD_FAILED", e.error)

    heyzap:addEventListener(Event.AD_ACTION_BEGIN, function()

    heyzap:addEventListener(Event.AD_DISMISSED, function()

  • @ar2rsawseen would you be able to create the one app, use "Application:getDeviceInfo" to detect the device, then call the appropriate plugin ?
    I was going to ask a similar question when calling either Googlebilling or storekit. I'm gathering you all code for both ios and android in the same deployment.

  • @ar2rsawseen ive used AdMob in a Native Android app, this is placed in the Manifest file..... so in future would be able to use HeyZap for Ads from within the App ?
    That would be great as you could have a "purchase" to remove the ads!

    And this would handle Facebook Login/Authorisation/Posts from within the app (that would be excellent) i was looking at the Facebook API as that was the next thing i was going to try out.

  • ar2rsawseenar2rsawseen Maintainer
    @unlying I know there is a lack of docs right now :)
    For Android you firstly need to call
    Which would
    1) initialize plugin
    2) true - tells that you will be using ads, so it loads additional stuff

    For IOS you would also need to specify appId (which would be ignored by Android) like this:
    heyzap:init(true, "id123123123")

    Likes: fxone

    +1 -1 (+1 / -0 ) Share on Facebook
  • ar2rsawseenar2rsawseen Maintainer
    @ArtLeeApps yes basically that is used to load platform specific codes like:
    isAndroid = false
    if application:getDeviceInfo() == "Android" then
        isAndroid = true
    And then in your code you can use something like:
    if isAndroid then
        require "googlebilling"
        require "storekit"
    but this heyzap plugin was actually developed to maximize crossplatformability sharing similar if not the same api :)
  • I give a try to HeyZap and i'm not really happy right now. They pays for installs.
    Admob brings me 2,5$ for 1000 requests in this game.
    Image 1.png
    1682 x 104 - 11K
  • ar2rsawseenar2rsawseen Maintainer
    @unlying theoretically they provide ads based on users social preferences, which can theoretically increase install rate. Maybe your users are simply not part of HeyZap social engine, thus the recommended ads for them are not quite working.

    But any how, there are also leaderboards and achievements to provide social engagement :)
  • I replace ads from start of game to exit. Results become slightly better.
    Image 3.png
    1693 x 126 - 11K
  • Just want to share with you statistic for a week of using heyzap. My game earns 40$ for 10 days. It is not much, but it is still money. I'll implement it to more games.

    Likes: phongtt

    Image 2.png
    1552 x 586 - 19K
    +1 -1 (+1 / -0 ) Share on Facebook
  • ar2rsawseenar2rsawseen Maintainer
    Well that is actually quite good, so you are satisfied with HeyZap after all?
  • @ar2sawseen yes, it is ok. Admob brings me more money from that game(about 9$ daily), but additional 4$ in a day is good. Total with purchases it will be about 15$ daily.

    Likes: hgvyas123

    +1 -1 (+1 / -0 ) Share on Facebook
  • @unlying : so does ur income is increasing or decreasing as in the past you had mentioned that you are getting very good downloads and you also have two games with > 5 lakh downloads just curious

  • @hgvyas123 Yes, my income is increasing. I have 3 games with 500 000+ downloads now. I'm fine, but want more:)
  • jdbcjdbc Member
    edited July 2013
    I am trying to integrate HeyZap in Android device, but I get the following error:

    Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1312]: 94 cannot locate 'gevent_RemoveEventsWithGid'...

    It seems the library libheyzap.so can not be loaded, may be a new HeyZap SDK version?

    I have tried to compile libkeyzap.so using ndk-build and Android.mk but I found an error in cpp files.

    Thanks in advance.
  • ar2rsawseenar2rsawseen Maintainer
    @jdbc it seems you are missing some Gideros header files which include functions like gevent_RemoveEventsWithGid
    can you post the full logcat output please :)
    and I'll check if there were changes in HeyzapSDK ;)
  • jdbcjdbc Member
    edited July 2013
    This is my logcat output attached as a text file.

    Must I copy header files into Android project? I assume only libheyzap.so is needed.
    I am using Gideros 2012.09.10 and HeyZap SDK 5.5.1
  • ar2rsawseenar2rsawseen Maintainer
    if you are copying existed compiled .so libs then no you don't need headers, but you project should also contain libgideros.so in the same folders you copied libheyzap.so (mentioning just in case :) )
  • jdbcjdbc Member
    edited July 2013
    if you are copying existed compiled .so libs then no you don't need headers, but you project should also contain libgideros.so in the same folders you copied libheyzap.so (mentioning just in case :) )
    I have copied existing libheyzap.so (from github) and libgideros.so (export project) in both libs/armeabi and libs/armeabi-v7a folders. I supposed it was a problem with a new HeyZap SDK.

    So I used ndk-build from GiderosHeyZap/AndroidPlugin/jni folder I get some errors in compilation:

    SharedLibrary : libheyzap.so
    /home/jdbc/source/gideros/GiderosHeyzap/AndroidPlugin/obj/local/armeabi/objs/heyzap/heyzap.o: In function `GHeyzap::callback(int, void*)':
    /home/jdbc/source/gideros/GiderosHeyzap/AndroidPlugin/jni/heyzap.cpp:176: undefined reference to `gevent_CallbackList::dispatchEvent(int, void*)'
    /home/jdbc/source/gideros/GiderosHeyzap/AndroidPlugin/obj/local/armeabi/objs/heyzap/heyzap.o: In function `GHeyzap::onAdReceived()':
    /home/jdbc/source/gideros/GiderosHeyzap/AndroidPlugin/jni/heyzap.cpp:132: undefined reference to `gevent_EnqueueEvent'

  • fxonefxone Member
    @ar2rsawseen It would be great to see on github original, good working version of HeyZap SDK, and also info about version of Gideros SDK. I remember similar problems with Chartboost plugin. It could be pattern for all Gideros plugins.
  • jdbcjdbc Member
    edited July 2013
    It seems my problem is with Gideros version, because libheyzap.so does not find gideros functions.

    What version of Gideros must I used? I am using 2012.9.10

    I have tested with libgideros.so of Gideros 2012.09.9 and it works!!
  • not sure but i think we should not have to replace libgideros.so and might be replacing this libgideros.so is the problem

  • jdbcjdbc Member
    I do not understand, but now it is not working even changing libgideros.so for a previous version.
  • ar2rsawseenar2rsawseen Maintainer
    edited July 2013
    Tested and it works with the latest Heyzap SDK.
    It should have worked with both version, but yes @hgvyas123 is right, better only copy libheyzap.so and always use libgideros.so which was exported with project
    Because if libgideros.so has other version than gideros.jar it may have some internal conflict like this
Sign In or Register to comment.