2016-05-16 74 views
1
using UnityEngine; 
using System.Collections; 
using GoogleMobileAds; 
using GoogleMobileAds.Api; 
using UnityEngine.Advertisements; 

public class GameAdvertising : MonoBehaviour { 

    public RewardBasedVideoAd rewardBasedVideo; 
    bool hasPlayed; 

    void Start() { 
     rewardBasedVideo = RewardBasedVideoAd.Instance; 
    } 

    public void playAd() 
    { 
     AdRequest rewardrequest = new AdRequest.Builder().Build(); 
     rewardBasedVideo.LoadAd(rewardrequest, "ca-app-pub-5920324855307233/4458481507"); 
     rewardBasedVideo.Show(); 
    } 
} 

在我的代碼上面我已經試過實施AdMob的獎勵視頻廣告到我一個是從UI按下按鈕調用的方法內的遊戲。當調用方法時,廣告沒有出現在我的手機上(它在演示腳本和橫幅廣告等上起作用,我導入了所有SDks和其他文件)。我在這裏做錯了什麼,以及我如何正確使用它。另外,如何檢查廣​​告何時完成,以便我可以獎勵用戶?如何實現的AdMob廣告回報爲Unity

回答

1

您需要使用RewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;訂閱OnAdRewarded廣告事件。

只需撥打Start函數中的RequestRewardBasedVideo()即可對此進行測試。下面的代碼是從here,我修改了一下。

private void RequestRewardBasedVideo() 
{ 
    #if UNITY_EDITOR 
     string adUnitId = "unused"; 
    #elif UNITY_ANDROID 
     string adUnitId = "INSERT_AD_UNIT_HERE"; 
    #elif UNITY_IPHONE 
     string adUnitId = "INSERT_AD_UNIT_HERE"; 
    #else 
     string adUnitId = "unexpected_platform"; 
    #endif 

    RewardBasedVideoAd rewardBasedVideo = RewardBasedVideoAd.Instance; 

    AdRequest request = new AdRequest.Builder().Build(); 
    rewardBasedVideo.LoadAd(request, adUnitId); 

    //Show Ad 
    showAdd(rewardBasedVideo); 
} 

private void showAdd(RewardBasedVideoAd rewardBasedVideo) 
{ 
    if (rewardBasedVideo.IsLoaded()) 
    { 
     //Subscribe to Ad event 
     rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded; 
     rewardBasedVideo.Show(); 
    } 
} 

//當視頻廣告顯示完成時調用此函數您可以使用amount變量來獎勵玩家。

+0

還要確保把你的'adUnitId'中的ID ** ca-app-pub-5920324855307233/4458481507 **。 – Programmer

+0

當我嘗試使用上述相同的代碼時,出現此錯誤:https://drive.google.com/open?id=0B6CFlS0aZDPiZUFnbG9paTZUVEU – Siddharth

+0

@Siddharth用您的非工作代碼創建一個新問題,並確保接受如果答案解決了你的問題,你會得到答案。還提供一個鏈接,指向您下載admob插件的位置。 – Programmer

0

我使用這個插件https://github.com/unity-plugins/Unity-Admob 和這樣的代碼。

負載視頻

Admob.Instance().loadRewardedVideo("ca-app-pub-3940256099942544/1712485313"); 

在遊戲結束所示,檢查顯示之前的視頻已準備就緒:

if (Admob.Instance().isRewardedVideoReady()) { 
    Admob.Instance().showRewardedVideo(); 
    } 

處理廣告事件

Admob.Instance().videoEventHandler += onInterstitialEvent; 
    void onInterstitialEvent(string eventName, string msg) 
    { 
    Debug.Log("handler onAdmobEvent---" + eventName + " " + msg); 
    if (eventName == AdmobEvent.onAdLoaded) 
    { 
     Admob.Instance().showRewardedVideo(); 
    } 
}