Unity/GoogleMobileAds/RewardedVideo古い
提供: 初心者エンジニアの簡易メモ
このページは古いAPIなので以下が推奨
Unity/GoogleMobileAds/RewardedVideo [ショートカット]
サンプル再生方法
以下を対応した後
unity/GoogleMobileAds/基本 [ショートカット]
以下公式の組み方を追加
https://developers.google.com/admob/unity/rewarded-video
HandleRewardBasedVideoLoadedやEventArgsが読み込めない場合は、
using System;
を追加すれば直る
サンプルコード
- AssetsにCreate/C#でGoogleMobileAdsDemoScriptを追加し以下コード追加
- HierarchyにCanvasを追加し、Button追加で"ShowButton"を追加
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using GoogleMobileAds.Api; using System; public class GoogleMobileAdsDemoScript : MonoBehaviour { private static bool isRegistedRewardVideoEventHandler = false; private RewardBasedVideoAd rewardBasedVideo; public void Start() { // Get singleton reward based video ad reference. this.rewardBasedVideo = RewardBasedVideoAd.Instance; if (!isRegistedRewardVideoEventHandler) { // Called when an ad request has successfully loaded. rewardBasedVideo.OnAdLoaded += HandleRewardBasedVideoLoaded; // Called when an ad request failed to load. rewardBasedVideo.OnAdFailedToLoad += HandleRewardBasedVideoFailedToLoad; // Called when an ad is shown. rewardBasedVideo.OnAdOpening += HandleRewardBasedVideoOpened; // Called when the ad starts to play. rewardBasedVideo.OnAdStarted += HandleRewardBasedVideoStarted; // Called when the user should be rewarded for watching a video. rewardBasedVideo.OnAdRewarded += HandleRewardBasedVideoRewarded; // Called when the ad is closed. rewardBasedVideo.OnAdClosed += HandleRewardBasedVideoClosed; // Called when the ad click caused the user to leave the application. rewardBasedVideo.OnAdLeavingApplication += HandleRewardBasedVideoLeftApplication; isRegistedRewardVideoEventHandler = true; } if (rewardBasedVideo.IsLoaded()) { MonoBehaviour.print("HandleRewardBasedVideoLoaded IsLoaded"); } else { this.RequestRewardBasedVideo(); } GameObject.Find("ShowButton").GetComponent<Button>().onClick.AddListener(OnClickShow); } private void RequestRewardBasedVideo() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/5224354917"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/1712485313"; #else string adUnitId = "unexpected_platform"; #endif // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the rewarded video ad with the request. this.rewardBasedVideo.LoadAd(request, adUnitId); } public void HandleRewardBasedVideoLoaded(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardBasedVideoLoaded event received"); // ここで広告表示ボタンを出すと良いかも } public void HandleRewardBasedVideoFailedToLoad(object sender, AdFailedToLoadEventArgs args) { MonoBehaviour.print( "HandleRewardBasedVideoFailedToLoad event received with message: " + args.Message); } public void HandleRewardBasedVideoOpened(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardBasedVideoOpened event received"); } public void HandleRewardBasedVideoStarted(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardBasedVideoStarted event received"); } public void HandleRewardBasedVideoClosed(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardBasedVideoClosed event received"); // 次回用事前loadはここですると良いかも(this.RequestRewardBasedVideo();) } public void HandleRewardBasedVideoRewarded(object sender, Reward args) { string type = args.Type; double amount = args.Amount; MonoBehaviour.print( "HandleRewardBasedVideoRewarded event received for " + amount.ToString() + " " + type); } public void HandleRewardBasedVideoLeftApplication(object sender, EventArgs args) { MonoBehaviour.print("HandleRewardBasedVideoLeftApplication event received"); } void OnClickShow() { if (rewardBasedVideo.IsLoaded()) { rewardBasedVideo.Show(); } else { MonoBehaviour.print("HandleRewardBasedVideoShow Not loaded yet"); } } }
エラー対応方法
Loaded他イベント内で、広告表示画面内のプロパティなどを操作すると、 別の画面に移動した際にエラーが起こる可能性があるので気をつける
このようにSceneなどを指定して操作すればよい。
public void HandleRewardBasedVideoLoaded(object sender, EventArgs args) { if (Application.loadedLevelName.Equals("TitleScene")) { sceneProperty1 = 1; } }