Introduction

HeyZap GameMaker Extension v1.1
Author: SilenGames
Download: YoYoGames Marketplace
Forum: GameMaker Community

WARNING!!! If you use GameMaker Studio v1.4.1763 or above for iOS Target you MUST update to HeyZap Extension v2.0 due GameMaker critical bug.

Firstly please register your account on HeyZap.com.
Then you can use HeyZap Integration Wizard to setup the 3rd-party networks you want to use with mediation. Please don't forget to Add your app (with correct Android Package Name and iOS Bundle ID like com.yourcompany.yourgame) to HeyZap account.

Warning! After updating the extension please don't forget to re-download new iOS SDK package and update Google Play Services from Marketplace.

Warning! "inMobi" and "HyprMX" mediation don't supported currently.

Chartboost only! You need at least one Chartboost publishing campaign running to fetch and show Chartboost ads. You can create a publishing campaign on your Chartboost dashboard.

Android Setup

OS Version: Heyzap works on Android 2.3 (API level 9) and above. If you want to use hardware acceleration for ads please change "Min SDK" to 11 or above in Android Settings (Global Game Settings -> Android -> General).

Admob only! "Google Play Service" extension is required now to work Admob mediation. You must add it to your project (Global Game Setting -> Android -> Social -> Enable Google Servises). But if you leave "App ID" string empty, the game will crash. So if you don't want to use google achievements/leaderboards, please uncheck "Enable Google Service" button after adding extension.

iOS Setup

OS Version: Heyzap works with iOS 7.0 and above. Use Xcode 7.* for compile. You can compile test build only for a real device (simulator will not work).

Warning! iOS advertisment widgets don't pause the game automatically. So you need to take care of this yourself.

Warning! To prevent a lot of warnings during building process you must set Deployment Target to 7.0 in Xcode.

Warning! Due 50mb limit of max size of extension I cut all third-party frameworks for iOS from extension.
Please download ZIP with iOS frameworks here - http://heyzap.silengames.com/get (110Mb)
Place "iOSSource" and "iOSSourceFromMac" to "YOUR_PROJECT_DIRECTORY.gmx\extensions\HeyZapExt" folder.

Warning! If you use "Google Play Service" extension, please remove it or delete "iOSSource" folder from "extensions\GooglePlayServicesExtension" folder and uncheck "iOS" platform in GooglePlayServicesExtension -> GoogleMobileAds.ext -> Properties -> Copies to.

UnityAds only! Due to the GameMaker bug, we can't add required "UnityAds.bundle" automaticaly.
Please download ZIP to your Mac here - http://heyzap.silengames.com/get2
After compilation, when the game will appear in Xcode on Mac, place "UnityAds.bundle" to your project by dragging them into the Frameworks folder in Xcode. Screenshot here.
Before using Organizer to Publish the app, please make a new archive for Organizer. Click "Product" (on the top menu) and select "Archive".

AdColony only! For the proper use of AdColony mediation you must manually edit "Info.plist" in Xcode after compilation.
You can find this file in Xcode -> YOUR_PROJECT_DIRECTORY -> Supporting Files -> YOUR_PROJECT-Info.plist. Then right-click -> Open As -> Source Code and add code below. Screenshot here

Functions

Initialization:
  • HeyZap_Init(HeyZap_Publisher_ID,HeyZap_Mode)

HeyZap_Publisher_ID (String):
Use your HeyZap Publisher ID here. You should initialize SDK with this function before using any other functions.
In Demo you should edit this function in Create event of "objControl" object.

HeyZap_Mode (Double):
0 - Normal mode with auto fetching. Ads will be cached automatically.
1 - Test mode. You can use a Mediation Test Suite to test each of the networks you've chosen.
2 - Normal mode with manual fetching. You should cache ads manyally.
3 - Amazon ads. Kindle Fire detection works automatically and covers most use cases. However, it is also possible for users with non-Kindle Android devices to manually install the Amazon Appstore and then install your Amazon app. To make sure that Heyzap will show Amazon ads in this case, you can use this mode.

Show Ads:

  • HeyZap_ShowInterstitial() - show interstial ads
  • HeyZap_ShowVideo() - show video ad
  • HeyZap_ShowReward() - show rewarded ad


Fetch Ads:

  • HeyZap_LoadInterstitial() - cache interstial ad if auto fetching disabled
  • HeyZap_LoadVideo() - cache video ad if auto fetching disabled
  • HeyZap_LoadReward() - cache rewarded ad if auto fetching disabled


Check Ads Status (return TRUE or FALSE):

  • HeyZap_InterstitialStatus() - interstial ad ready (or not)
  • HeyZap_VideoStatus() - video ad ready (or not)
  • HeyZap_RewardStatus() - rewarded ad ready (or not)
Warning! "Status" functions may not work properly. Using callbacks more reliable.


Banner Function:

  • HeyZap_AddBanner(POSITION) - show banner ad (need some time to load and display).

POSITION:
HeyZap_Banner_Top - show on top
HeyZap_Banner_Bottom - show on bottom

  • HeyZap_RemoveBanner() - delete banner ad
  • HeyZap_BannerGetWidth() - get banner width (works after banner loaded and showed)
  • HeyZap_BannerGetHeight() - get banner height (works after banner loaded and showed)

Warning! To show banner you must first set up Google Ads, Facebook Ads or iAD in HeyZap dashboard.

Callbacks

In Demo all callbacks placed in "Social" event of "objControl" object
Also you can use predefined scripts from Demo to set up callbacks.

Interstial ad callbacks:
  • "heyzap_ad_loaded" - Interstial ad loaded (or not). Script: HeyZap_Ad_Loaded
  • "heyzap_ad_shown" - Interstial ad showed (or not). Script: HeyZap_Ad_Shown
  • "heyzap_ad_hidden" - Interstial ad hided. Script: HeyZap_Ad_Hidden
  • "heyzap_ad_clicked" - Interstial ad clicked. Script: HeyZap_Ad_Clicked
Interstial ad callbacks:
  • "heyzap_video_loaded" - Video ad loaded (or not). Script: HeyZap_Video_Loaded
  • "heyzap_video_shown" - Video ad showed (or not). Script: HeyZap_Video_Shown
  • "heyzap_video_hidden" - Video ad hided. Script: HeyZap_Video_Hidden
  • "heyzap_video_clicked" - Video ad clicked. Script: HeyZap_Video_Clicked
Interstial ad callbacks:
  • "heyzap_reward_loaded" - Reward ad loaded (or not). Script: HeyZap_Reward_Loaded
  • "heyzap_reward_shown" - Reward ad showed (or not). Script: HeyZap_Reward_Shown
  • "heyzap_reward_hidden" - Reward ad hided. Script: HeyZap_Reward_Hidden
  • "heyzap_reward_clicked" - Reward ad clicked. Script: HeyZap_Reward_Clicked
  • "heyzap_reward" - Reward ad completed and user should be rewarded (or not). Script: HeyZap_Get_Reward
Banner ad callbacks:
  • "heyzap_banner_loaded" - Banner ad loaded and showed (or not). Script: HeyZap_Banner_Loaded
  • "heyzap_banner_clicked" - Banner ad clicked. Script: HeyZap_Banner_Clicked. Warning! Works for Android only.

Warning! Some ads don't return "*_clicked" callback. Do not use this callback for important events.

Warning! Some ads return "*_shown" callback after the closure of ads. Do not use this callback for important events.

SDK Versions

GameMaker Studio - v1.4.1747

Android SDK:
HeyZap - v9.3.10
AdColony - v2.2.2
AdMob - current version from YoYo Marketplace
AppLovin - v6.1.4
Chartboost - v6.0.2
Facebook Audience Network - v4.9.0
Leadbolt - v6.0
UnityAds - v1.4.7
Vungle - v3.3.3

iOS SDK:
HeyZap - v9.3.10
AdColony - v2.6.0
AdMob - v7.5.2
AppLovin - v3.1.6
Chartboost - v6.0.0
Facebook Audience Network - v4.9.1
Leadbolt - v6.0
UnityAds - v1.5.3
Vungle - v3.2.0

presskit() template by Rami Ismail (Vlambeer)

© 2016 Silen Games. All rights reserved.