window.adsgram = { adControllers: {}, initialize: function(blockId, debug = false, debugBannerType = "FullscreenMedia") { if (!this.adControllers[blockId]) { this.adControllers[blockId] = window.Adsgram.init({ blockId: blockId, debug: debug, debugBannerType: debugBannerType }); console.log(`Adsgram initialized successfully for blockId: ${blockId}`); } else { console.warn(`Adsgram is already initialized for blockId: ${blockId}`); } }, showAd: function(blockId) { const adController = this.adControllers[blockId]; if (!adController) { console.error(`Adsgram is not initialized for blockId: ${blockId}`); return; } adController.show() .then((result) => { if (result.done) { SendMessage('AdsManager', 'OnAdCompleted', `Ad for blockId ${blockId}: ${result.description}`); } else if (result.error) { SendMessage('AdsManager', 'OnAdError', `Ad for blockId ${blockId}: ${result.description}`); } }) .catch((error) => { SendMessage('AdsManager', 'OnAdError', `Ad for blockId ${blockId}: AdFailedOrSkipped`); }); adController.addEventListener('onReward', () => { SendMessage('AdsManager', 'OnAdRewarded', `Reward granted for blockId: ${blockId}`); }); } }; // Example usage // window.adsgram.initialize("5675", true, "FullscreenMedia"); // window.adsgram.initialize("5678", true, "FullscreenMedia"); // window.adsgram.initialize("int-5676", true, "FullscreenMedia"); // Define the ShowAdFromUnity function for specific blockId function ShowAdFromUnity(blockId) { if (window.adsgram) { window.adsgram.showAd(blockId); } else { console.error("Adsgram is not initialized."); } } // Ensure this function is available globally window.ShowAdFromUnity = ShowAdFromUnity; // Define callback handlers for specific blockId function adCompletedCallbackHandler(blockId, callback) { const adController = window.adsgram.adControllers[blockId]; if (adController) { adController.addEventListener('onComplete', () => { callback(); }); } else { console.error(`AdController not found for blockId: ${blockId}`); } } function adErrorCallbackHandler(blockId, callback) { const adController = window.adsgram.adControllers[blockId]; if (adController) { adController.addEventListener('onError', () => { callback(); }); } else { console.error(`AdController not found for blockId: ${blockId}`); } } function adRewardedCallbackHandler(blockId, callback) { const adController = window.adsgram.adControllers[blockId]; if (adController) { adController.addEventListener('onReward', () => { callback(); }); } else { console.error(`AdController not found for blockId: ${blockId}`); } } // Ensure these functions are available globally window.adCompletedCallbackHandler = adCompletedCallbackHandler; window.adErrorCallbackHandler = adErrorCallbackHandler; window.adRewardedCallbackHandler = adRewardedCallbackHandler; function SendMessage(objectName, methodName, message) { if (typeof window.unityInstance !== 'undefined' && window.unityInstance != null) { window.unityInstance.SendMessage(objectName, methodName, message); } else { console.error("Unity instance is not defined."); } }