2016-05-16 6 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 в мою игру внутри метода, который вызывается из кнопки щий печати. Реклама не появлялась на моем телефоне при вызове метода (работает над демонстрационным скриптом и баннерами и т. Д. Я импортировал все SDK и другие файлы успешно). Что я сделал не так, и как я правильно это сделал. Также, как я могу проверить, когда объявление закончено, чтобы я мог вознаградить пользователя?Как реализовать AdMob вознаграждено объявление в единство

ответ

1

Вам необходимо подписаться на событие OnAdRewarded Ad с помощью RewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded;.

Просто позвоните RequestRewardBasedVideo() из функции Start, чтобы проверить это. Этот код ниже от 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(); 
    } 
} 

// Эта функция вызывается, когда видеообъявление закончено. Вы можете вознаградить игрока здесь с переменной суммы.

+0

Также убедитесь, что положить ваши ID ** ca-app-pub-5920324855307233/4458481507 ** в 'adUnitId'. – 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(); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^