リワード
主な機能
- GoogleMobileAdsを使用して、動画リワード広告を表示します。
実装手順
動画リワードの実装手順について説明します。
- 広告プラグインをUnityプロジェクトへインポート
- 動画リワード広告のイベントを登録
- 動画リワード広告のロード
- 動画リワード広告の表示
- テストデバイスID設定方法
詳細な動画リワードの実装手順については、以下のサイトを参考にしてください。 https://developers.google.com/admob/unity/banner
1. 広告プラグインをUnityプロジェクトへインポート
以下を参考にプラグインを導入してください。
GNDependencies.xml
に正しい記載があれば、Unity用GoogleMobileAds SDKを使用して実装するだけでGenieeSDKのリワードを表示することが可能です。
2. 動画リワード広告のイベントを登録
以下は、動画リワード広告を作成してイベントを登録するために必要なコードです。 イベントを登録する際は、動画のロードをする前に登録処理を完了させてください。
using GoogleMobileAds.Api;
...
private RewardedAd rewardedAd;
...
void RegistRewardVideoAdEventHandler()
{
#if UNITY_ANDROID
string adUnitId = "Input unit id";
#elif UNITY_IPHONE
string adUnitId = "Input unit id";
#else
string adUnitId = "Input unit id";
#endif
this.rewardedAd = new RewardedAd(adUnitId);
// Called when an ad request has successfully loaded.
this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
// Called when an ad request failed to load.
this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
// Called when an ad is shown.
this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
// Called when an ad request failed to show.
this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
// Called when the user should be rewarded for interacting with the ad.
this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
// Called when the ad is closed.
this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;
}
public void HandleRewardedAdLoaded(object sender, EventArgs args)
{
Debug.Log("HandleRewardedAdLoaded event received");
}
public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args)
{
Debug.Log(
"HandleRewardedAdFailedToLoad event received with message: "
+ args.Message);
}
public void HandleRewardedAdOpening(object sender, EventArgs args)
{
Debug.Log("HandleRewardedAdOpening event received");
}
public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
{
Debug.Log(
"HandleRewardedAdFailedToShow event received with message: "
+ args.Message);
}
public void HandleRewardedAdClosed(object sender, EventArgs args)
{
Debug.Log("HandleRewardedAdClosed event received");
this.rewardedAd = null;
}
public void HandleUserEarnedReward(object sender, Reward args)
{
string type = args.Type;
double amount = args.Amount;
Debug.Log(
"HandleRewardedAdRewarded event received for "
+ amount.ToString() + " " + type
+ " " + this.rewardedAd.MediationAdapterClassName());
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Reward
は下記プロパティを所持しています。
public class Reward : EventArgs
{
// 金額
public double Amount { get; set; }
// 種類
public string Type { get; set; }
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
AdErrorEventArgs
は下記プロパティを所持しています。
public class AdErrorEventArgs : EventArgs
{
// メッセージ
public string Message { get; set; }
}
1
2
3
4
5
6
2
3
4
5
6
3. 動画リワード広告のロード
以下は、動画リワード広告のロードに必要なコードです。
using GNSAdSDK.Api;
...
private RewardedAd rewardedAd;
...
void LoadRewardVideoAd()
{
if (this.rewardedAd != null) {
AdRequest request = new AdRequest.Builder()
//.AddTestDevice("YOUR_DEVICE_ID")
.Build();
this.rewardedAd.LoadAd(request);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- ロードには数秒以上かかることがあるので、早い段階で動画広告をロードしてください。
- 1つの動画の再生完了後に別の動画を見せる場合、新しくインスタンスを作成しロードを行う必要があります。
4. 動画リワード広告の表示
以下は、動画リワード広告の表示に必要なコードです。動画のロードが完了されるとShow()
の呼び出しが可能となります。
using GNSAdSDK.Api;
...
private RewardedAd rewardedAd;
...
void ShowRewardVideoAd()
{
if (this.rewardedAd != null && this.rewardedAd.IsLoaded())
{
this.rewardedAd.Show();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
5. テストデバイスID設定方法
- 開発中にテスト広告を有効にすることができます。
- テストモードにすることなく、多くの広告をクリックした場合は、アカウントが無効となる危険性があります。
- 本番リリース時にはこの設定を必ず削除してください。
- 設定するにはまずこのようなメッセージがコンソールまたはlogcat出力を確認します。
OS | 出力例 |
---|---|
Android | I/Ads: Use AdRequest.Builder.addTestDevice("YOUR_TEST_DEVICE_ID") |
iOS | request.testDevices = @[ "YOUR_TEST_DEVICE_ID" ]; |
- AddTestDeviceメソッドをRequestに追加します。
AdRequest request = new AdRequest.Builder()
.AddTestDevice("YOUR_TEST_DEVICE_ID")
.Build();
1
2
3
4
2
3
4