Ads
This package simplifies showing ads from Max SDK.
It automatically handles:
loading the ads
sending required Lion Analytics Ad events
Do not call Lion Analytics’ Ad events if you use Lion Ads, or they will be sent twice.
Google Ads Manager requires its own set of IDs; enter those IDs in the MAX Integration Manager if Google Ads Manager is installed as an adapter.
Setup
Everything should already be setup if you previously ran the Setup Wizard. This section is for verification and troubleshooting if needed.
1. Check ad settings
Open LionStudios→Settings Manager → Ads in the Unity menu
Verify the following:
Ad Unit Ids are correctly setup
Enable Lion Ads is turned ON.
2. Next steps
If Google Ads Manager is installed as an adapter, it requires its own set of IDs; enter those IDs in the MAX Integration Manager by going to AppLovin → Integration Manager in the Unity menu.

Now, if everything is setup correctly
Proceed to Code Integration
If settings are incorrect or missing
Go to LionStudios→Settings Manager → Ads in the Unity menu
Turn ON the “Enable Lion Ads” checkbox
Fill up the required ad unit IDs
Leave the other settings to their default values unless requested
Code Integration
Lion Ads provides just a few static functions to show and handle ads.
LionAds.IsRewardedReady
returns:
boolean
Call this to decide whether to propose rewarded buttons or to disable them
Example
private void UpdateButton() { rewardAdButton.gameObject.SetActive(LionAds.IsRewardedReady); }
LionAds.TryShowRewarded
(string placement, Action onRewarded,Action onClosed = null, Reward reward = null, Dictionary<string, object> additionalData)
returns:
boolean
: false if no ad was readyparameters:
placement
: a string describing this ad placement (ie: “SkinShop”, “SkipLevel”…)onRewarded
: a callback called when the player has watched through the ad. This should contain the code that gives the actual reward to the player.onClosed
(optional): a callback called when the ad was closed (completed or canceled). This can be used to resume normal flow after the ad.reward
(optional): this object will be passed in the automated call toLionAnalytics.RewardVideoCollect
. (cf ‣)additionalData
(optional): this parameter will be passed to all ad events related to this ad (that is all RewardVideoX events except _Load and _LoadFail).
Call this to show a rewarded video if available.
Example
private void ShowRewarded() { //Optional Dictionary<string, object> additionalData = new Dictionary<string, object>() { { "mission_data", new Dictionary<string, object>() { { "mission_type", "side" }, { "mission_name", "side_quest_1" }, { "mission_id", 101 }, { "mission_attempt", 1 } } }, //Can add other custom values { "example_key1", "ExampleValue" }, { "example_key2", "ExampleValue" } }; LionAds.TryShowRewarded("LevelStart", OnRewarded, OnRewardedAdClosed, GetTestReward(), additionalData); } private void OnRewarded() { Debug.Log("On reward received. Give user a reward here."); } //Optional private void OnRewardedAdClosed() { Debug.Log("On Rewarded ad closed"); } //Optional //Reward = LionStudios.Suite.Analytics.Reward private Reward GetTestReward() { Reward testReward = new Reward("coins", "currency", 10); return testReward; }
LionAds.TryShowInterstitial
(string placement**, Action onClosed = null, Dictionary<string, object> additionalData**)**
returns:
boolean
: false if no ad was readyparameters:
placement
: a string describing this ad placement (ie: “LevelEnd”…)onClosed
(optional): a callback called when the ad was closed (completed or canceled or not ready). This can be used to resume normal flow after the ad.additionalData
(optional): this parameter will be passed to all ad events related to this ad (that is all InterstitialX events except _Load and _LoadFail).
Call this to show an interstitial video if available.
Example
private void ShowInterstitial() { //Optional Dictionary<string, object> additionalData = new Dictionary<string, object>() { { "mission_data", new Dictionary<string, object>() { { "mission_type", "main" }, { "mission_name", "main_3" }, { "mission_id", 3 }, { "mission_attempt", 2 } } }, //Can add other custom values { "example_key1", "ExampleValue" }, { "example_key2", "ExampleValue" } }; LionAds.TryShowInterstitial("LevelStart", OnInterClosed, additionalData); } //Optional private void OnInterClosed() { Debug.Log("Interstitial ad closed"); }
LionAds.TryShowInterOpen
(string placement, Action onClosed = null, Dictionary<string, object> additionalData = null)
returns:
boolean
: false if no ad was readyparameters:
placement
: a string describing this ad placement (ie: “AppOpened”…)onClosed
(optional): a callback called when the ad was closed (completed or canceled or not ready). This can be used to resume normal flow after the ad.additionalData
(optional): this parameter will be passed to all ad events related to this ad (that is all InterOpenX events except _Load and _LoadFail).
Example
//Optional private Dictionary<string, object> additionalData = new Dictionary<string, object>() { { "example_key", "ExampleValue" } }; private void ShowInterOpen() { LionAds.TryShowInterOpen("LevelStart", OnInterOpenAdClosed, additionalData); } //Optional private void OnInterOpenAdClosed() { Debug.Log("InterOpen ad closed"); }
LionAds.ShowBanner()
returns:
boolean
: false if no ad was ready. Even if false is returned, it will still load and show the banner as soon as ready.
Call this to show a banner ad as soon as available.
The banner will be positioned according to the “Banner Position” setting.
Example
private void ShowBanner() { LionAds.ShowBanner(); }
LionAds.HideBanner()
returns:
void
Call this to hide the banner ad.
Example
private void HideBanner() { LionAds.**HideBanner**(); }
LionAds.OnRewardedStatusChanged
type:
Action<bool>
Subscribe to this event to update RV buttons status when a Rewarded becomes ready. This is to avoid having to call
IsRewardedReady
constantly.Example
private void SubscribeToRewardedAdStatus() { LionAds.OnRewardedStatusChanged += (flag) => { rewardAdButton.gameObject.SetActive(flag); }; }
Last updated