リワード

主な機能

  • GoogleMobileAdsを使用して、動画リワード広告を表示します。

実装手順

動画リワードの実装手順について説明します。

  1. 広告プラグインをUnityプロジェクトへインポート
  2. 動画リワード広告のイベントを登録
  3. 動画リワード広告のロード
  4. 動画リワード広告の表示
  5. テストデバイスID設定方法

詳細な動画リワードの実装手順については、以下のサイトを参考にしてください。 https://developers.google.com/admob/unity/banner

1. 広告プラグインをUnityプロジェクトへインポート

以下を参考にプラグインを導入してください。

GoogleMobileAdsメディエーション広告の導入

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

Reward は下記プロパティを所持しています。

public class Reward : EventArgs
{
    // 金額
    public double Amount { get; set; }
    // 種類
    public string Type { get; set; }
}
1
2
3
4
5
6
7
8

AdErrorEventArgs は下記プロパティを所持しています。

public class AdErrorEventArgs : EventArgs
{
    // メッセージ
    public string Message { get; set; }
}
1
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
  • ロードには数秒以上かかることがあるので、早い段階で動画広告をロードしてください。
  • 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

5. テストデバイスID設定方法

  • 開発中にテスト広告を有効にすることができます。
  • テストモードにすることなく、多くの広告をクリックした場合は、アカウントが無効となる危険性があります。
  • 本番リリース時にはこの設定を必ず削除してください。
  1. 設定するにはまずこのようなメッセージがコンソールまたはlogcat出力を確認します。
OS 出力例
Android I/Ads: Use AdRequest.Builder.addTestDevice("YOUR_TEST_DEVICE_ID")
iOS request.testDevices = @[ "YOUR_TEST_DEVICE_ID" ];
  1. AddTestDeviceメソッドをRequestに追加します。
AdRequest request = new AdRequest.Builder()
                           .AddTestDevice("YOUR_TEST_DEVICE_ID")
                           .Build();
1
2
3
4
Last Updated: 2020/7/21 18:51:48