Ads

This package simplifies showing ads from Max SDK.

It automatically handles:

  • loading the ads
  • sending required Lion Analytics Ad events

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
  • 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 ready
    • parameters:
      • 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 to LionAnalytics.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", "main" },
    		            { "mission_name", "main_1" },
    		            { "mission_id", 1 },
    		            { "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 ready
    • parameters:
      • 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 ready
    • parameters:
      • 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);
        };
    }