Unity:找出用户是否点击了广告

MrM*_*Mee 2 c# android unity-game-engine admob

在我的统一应用程序中,我集成了 Admob。这是我的“广告”类中的代码:

public static InterstitialAd interstitial;


private void Start()
{
    RequestInterstitial();
}

public void StartAds()
{
    RequestInterstitial();

    if (interstitial.IsLoaded())
    {
        interstitial.Show();
    }
    else
    {
        Debug.Log("Interstitial wasn't loaded yet");
    }

    interstitial.Show(); 
}

public static void onAdLeftApplication()
{
    ChangeCoinValue.actualCoinValue += 33;
    PlayerPrefs.SetInt("TotalCoinValue", ChangeCoinValue.actualCoinValue);
}


private void RequestInterstitial()
{

    // Initialize an InterstitialAd.
    interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    interstitial.LoadAd(request);
}
Run Code Online (Sandbox Code Playgroud)

当我在另一个班级并打电话时,广告确实显示得很完美(例如,单击按钮:)

Ads.Interstitial.Show(); 
Run Code Online (Sandbox Code Playgroud)

我是这样做的,因为在单声道开发中你不能使用对象,所以它需要是静态的。但尽管如此:

因此,我认为每次用户点击广告并因此离开应用程序时,我的广告类“OnAdLeftApplication()”中的函数都会触发。如果他或她这样做,我会奖励这个人33个硬币!

但它不起作用。也许不是因为我只是从我的插页式广告中调用“show()”函数,但我不知道。

你能向我解释一下,当用户点击其中一个广告时,我如何用硬币奖励用户?

谢谢!

rom*_*otg 5

您可以将admobEventHandler用于特定事件类型,onAdOpenedonAdLeftApplication查看github wiki 页面以了解更多事件类型。

在您致电之前,interstitial.LoadAd您必须为该事件订阅插页式广告。就像是interstitial.OnAdLeavingApplication += HandleInterstitialLeftApplication;

public void HandleInterstitialLeftApplication(object sender, EventArgs args)
Run Code Online (Sandbox Code Playgroud)