local REWARDED = "rewardedVideo" local VIDEO = "video" local BANNER = "banner" local count = 10 local yagames = require("yagames.yagames") local sitelock = require("yagames.sitelock") -- Also you can add your domains: -- sitelock.add_domain("yourdomainname.com") UnityGameIDs = { ["Android"] = "3859099", ["iPhone OS"] = "3859098" } -- You must select the correct build before building a release ANDROID_BUILD = 1 YANDEX_BUILD = 2 GAME_DISTRIBUTION_BUILD = 3 CURRENT_BUILD = YANDEX_BUILD local function showUnityVideoAd() if(unityads)then if(unityads.isReady(VIDEO))then unityads.show(VIDEO) end end end local function initUnityAds(self, appId) if unityads and appId then if not unityads.isInitialized() then DEV_OUT("Init UNITY SDK with id", appId) unityads.initialize(appId, unityAdsCallback, false) if(DEVELOPER_MODE)then unityads.setDebugMode(true) end else DEV_OUT("UnityADS already inited. Just set callback one more time","") unityads.setCallback(unityAdsCallback) end DEV_OUT("VERSION IS: ", unityads.getVersion()) DEV_OUT("DEBUG MODE IS:", unityads.getDebugMode()) DEV_OUT("isInitialized:", unityads.isInitialized()) DEV_OUT("isSupported:", unityads.isSupported()) end end local function stopGameandMusic(self) -- pause your game DEV_OUT("DEBUG:Stopping game") msg.post("controlCentre:/controller#gameProxy", "set_time_step", {factor = 0, mode = 1}) msg.post("controlCentre:/controller#proxyLoader", "stopMusic") end local function startGameandMusic(self, was_shown) -- resume your game DEV_OUT("DEBUG:Resuming game") musicChanged() msg.post("controlCentre:/controller#gameProxy", "set_time_step", {factor = 1, mode = 0}) end local function yandex_offline(self) DEV_OUT("Adverts offline") end local function yandex_error(self, err) if err then DEV_OUT("Yandex error :(", err) end end function initAdverts() if(sysinfo.system_name == "HTML5")then if(CURRENT_BUILD == GAME_DISTRIBUTION_BUILD)then if gdsdk then gdsdk.set_listener( function(self, event, message) DEV_OUT(event, message) if event == gdsdk.SDK_GAME_PAUSE then stopGameandMusic() elseif event == gdsdk.SDK_GAME_START then startGameandMusic() end end) end elseif(CURRENT_BUILD == YANDEX_BUILD)then yagames.init(yandex_error) end elseif(sysinfo.system_name == "Android")then if(CURRENT_BUILD == ANDROID_BUILD)then initUnityAds(self, UnityGameIDs[sysinfo.system_name]) end end end function showRewardAdvert() if(sysinfo.system_name == "HTML5")then if(CURRENT_BUILD == GAME_DISTRIBUTION_BUILD)then if gdsdk then gdsdk.show_rewarded_ad() end elseif(CURRENT_BUILD == YANDEX_BUILD)then yagames.adv_show_rewarded_video({ open = stopGameandMusic, rewarded = yandex_offline, close = startGameandMusic, error = yandex_error }) end elseif(sysinfo.system_name == "Android")then if(CURRENT_BUILD == ANDROID_BUILD)then showUnityVideoAd() end end end function showAnAdvert() if(sysinfo.system_name == "HTML5")then if(CURRENT_BUILD == GAME_DISTRIBUTION_BUILD)then if gdsdk then gdsdk.show_interstitial_ad() end elseif(CURRENT_BUILD == YANDEX_BUILD)then yagames.adv_show_fullscreen_adv({ open = stopGameandMusic, close = startGameandMusic, offline = yandex_offline, error = yandex_error }) end elseif(sysinfo.system_name == "Android")then if(CURRENT_BUILD == ANDROID_BUILD)then showUnityVideoAd() end end end function init(self) if(CURRENT_BUILD == YANDEX_BUILD)then if sitelock.is_release_build() then if not sitelock.verify_domain() then msg.post("@system:", "exit", {code = 0}) end end end end function final(self) if(CURRENT_BUILD == ANDROID_BUILD)then if unityads then unityads.setCallback(nil) end end end function unityAdsCallback(self, msg_type, message) if(DEVELOPER_MODE)then if msg_type == unityads.TYPE_IS_READY then DEV_OUT(message.placementId, " is ready") elseif msg_type == unityads.TYPE_DID_START then DEV_OUT(message.placementId, " started") elseif msg_type == unityads.TYPE_DID_ERROR then DEV_OUT(message.message,"") -- errors info https://github.com/Unity-Technologies/unity-ads-ios/wiki/sdk_ios_api_errors if message.error == unityads.ERROR_NOT_INITIALIZED then DEV_OUT("kUnityAdsErrorNotInitialized") elseif message.error == unityads.ERROR_INITIALIZED_FAILED then DEV_OUT("kUnityAdsErrorInitializedFailed") elseif message.error == unityads.ERROR_INVALID_ARGUMENT then DEV_OUT("kUnityAdsErrorInvalidArgument") elseif message.error == unityads.ERROR_VIDEO_PLAYER then DEV_OUT("kUnityAdsErrorVideoPlayerError") elseif message.error == unityads.ERROR_INIT_SANITY_CHECK_FAIL then DEV_OUT("kUnityAdsErrorInitSanityCheckFail") elseif message.error == unityads.ERROR_AD_BLOCKER_DETECTED then DEV_OUT("kUnityAdsErrorAdBlockerDetected") elseif message.error == unityads.ERROR_FILE_IO then DEV_OUT("kUnityAdsErrorFileIoError") elseif message.error == unityads.ERROR_DEVICE_ID then DEV_OUT("kUnityAdsErrorDeviceIdError") elseif message.error == unityads.ERROR_SHOW then DEV_OUT("kUnityAdsErrorShowError") elseif message.error == unityads.ERROR_INTERNAL then DEV_OUT("kUnityAdsErrorInternalError") end elseif msg_type == unityads.TYPE_DID_FINISH then --all finish states info https://github.com/Unity-Technologies/unity-ads-ios/wiki/sdk_ios_api_finishstates if message.state == unityads.FINISH_STATE_ERROR then DEV_OUT("kUnityAdsFinishStateError","") elseif message.state == unityads.FINISH_STATE_SKIPPED then DEV_OUT("kUnityAdsFinishStateSkipped","") elseif message.state == unityads.FINISH_STATE_COMPLETED then DEV_OUT("kUnityAdsFinishStateCompleted","") end elseif msg_type == unityads.TYPE_BANNER then if message.event == unityads.BANNER_EVENT_DID_CLICK then DEV_OUT("BANNER_EVENT_DID_CLICK", message.placementId) elseif message.event == unityads.BANNER_EVENT_DID_LOAD then DEV_OUT("BANNER_EVENT_DID_LOAD", message.placementId) elseif message.event == unityads.BANNER_EVENT_DID_LEAVE_APP then DEV_OUT("BANNER_EVENT_DID_LEAVE_APP", message.placementId) end elseif msg_type == unityads.TYPE_BANNER_ERROR then DEV_OUT(message.message) if message.error == unityads.BANNER_ERROR_UNKNOWN then DEV_OUT("UADSBannerErrorCodeUnknown") elseif message.error == unityads.BANNER_ERROR_NATIVE then DEV_OUT("UADSBannerErrorCodeNativeError","") elseif message.error == unityads.BANNER_ERROR_WEBVIEW then DEV_OUT("UADSBannerErrorCodeWebViewError","") elseif message.error == unityads.BANNER_ERROR_NOFILL then DEV_OUT("UADSBannerErrorCodeNoFillError","") end elseif msg_type == unityads.TYPE_INITIALIZED then DEV_OUT("TYPE_INITIALIZED","") elseif msg_type == unityads.TYPE_INIT_ERROR then DEV_OUT("TYPE_INIT_ERROR","") DEV_OUT(message.message) if message.error == unityads.INIT_ERROR_AD_BLOCKER_DETECTED then DEV_OUT("INIT_ERROR_AD_BLOCKER_DETECTED ","") elseif message.error == unityads.INIT_ERROR_INTERNAL_ERROR then DEV_OUT("INIT_ERROR_INTERNAL_ERROR","") elseif message.error == unityads.INIT_ERROR_INVALID_ARGUMENT then DEV_OUT("INIT_ERROR_INVALID_ARGUMENT","") end end end end