Skip to content

Integration Examples

Example on handling the AdGem Offer Wall with the AdGem Unity SDK.

using System;
using UnityEngine;
using UnityEngine.UI;
using AdGemUnity.Runtime;
using Random = UnityEngine.Random;

public class AdGemDemoController : MonoBehaviour
{
    [SerializeField] private Button showOfferwallButton;

    private void Start()
    {
        showOfferwallButton.onClick.AddListener(OnShowOfferwallClicked);

        BindAdGemCallbacks();

        // You have to set the player metadata before showing offerwall.
        SetPlayerMetadata();
    }

    private void OnDestroy()
    {
        UnBindAdGemCallbacks();
    }

    private void BindAdGemCallbacks()
    {
        var callbackDelegate = AdGem.OfferwallCallback;
        callbackDelegate.OnLoadingStarted.AddListener(OnOfferwallLoadingStarted);
        callbackDelegate.OnLoadingFinished.AddListener(OnOfferwallLoadingFinished);
        callbackDelegate.OnLoadingFailed.AddListener(OnOfferwallLoadingFailed);
        callbackDelegate.OnRewardReceived.AddListener(OnOfferwallRewardReceived);
        callbackDelegate.OnClosed.AddListener(OnOfferwallClosed);
    }

    private void UnBindAdGemCallbacks()
    {
        var callbackDelegate = AdGem.OfferwallCallback;
        callbackDelegate.OnLoadingStarted.RemoveListener(OnOfferwallLoadingStarted);
        callbackDelegate.OnLoadingFinished.RemoveListener(OnOfferwallLoadingFinished);
        callbackDelegate.OnLoadingFailed.RemoveListener(OnOfferwallLoadingFailed);
        callbackDelegate.OnRewardReceived.RemoveListener(OnOfferwallRewardReceived);
        callbackDelegate.OnClosed.RemoveListener(OnOfferwallClosed);
    }

    private void SetPlayerMetadata()
    {
        var id = Guid.NewGuid().ToString();
        var metadata = new PlayerMetadata(id)
        {
            // All these fields are optional
            gender = PlayerMetadata.Gender.MALE,
            age = Random.Range(12, 87),
            placement = Random.Range(1, 1195),
            createdAt = DateTime.Now,
            isPayer = true,
            iapTotalUsd = Random.Range(1.99f, 1267)
        };

        AdGem.SetPlayerMetaData(metadata);
    }

    private void OnShowOfferwallClicked()
    {
        AdGem.ShowOfferwall();
    }

    private void OnOfferwallLoadingStarted()
    {
        Debug.Log("Offerwall Loading Started.");
    }

    private void OnOfferwallLoadingFinished()
    {
        Debug.Log("Offerwall Loading Finished.");
    }

    private void OnOfferwallLoadingFailed(string error)
    {
        Debug.Log("Offerwall Loading Error: " + error);
    }

    private void OnOfferwallRewardReceived(int amount)
    {
        Debug.Log("Offerwall Reward Received: " + amount);
    }

    private void OnOfferwallClosed()
    {
        Debug.Log("Offerwall Closed.");
    }
}