しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Unity for UWP で動画リワード広告を表示したい

動画リワード広告と呼ばれる動画視聴型の広告は、最近マネタイズ効果が高いと言われています

この動画リワード広告、Unity では Unity Ads という SDK を利用して簡単に導入できるようになっています

f:id:matatabi_ux:20160207174418p:plain

しかし、残念ながら UWP は対応してません!!

というわけで他に Unity for UWP で動画リワード広告が表示できる SDK はないか探してみたところ Vungle 社のものがありました

vungle.com

せっかくなので試してみようと思います

f:id:matatabi_ux:20160207174642p:plain

まずは サインアップページ から必要事項を入力してアカウント登録

f:id:matatabi_ux:20160207174755p:plain

メール送ったよ表示がされるので入力したメールアドレス宛てのメールを確認

f:id:matatabi_ux:20160207174921p:plain

こんな内容のメールが届きました・・・まずは STEP1 でメールアドレス確認

f:id:matatabi_ux:20160207175111p:plain

登録したアドレスとパスワードでログイン

f:id:matatabi_ux:20160207175229p:plain

ダッシュボード的なページに遷移するので、左下の方の「Add New Application」リンクから広告を表示したいアプリ登録を開始

f:id:matatabi_ux:20160207175659p:plain

Platform は Windows、Application Name は自分が識別できるアプリ名、Category は通常 Games を指定します

すでにストアに公開済みの場合は「My app is live on the app store」にチェックを入れます

「Maximum Ad Duration」は表示広告の切り替え時間間隔で、30秒~60秒に設定するのが一般的みたいです

なお、「Callback URL」は主に Web 上で表示する場合のコールバック用なので Unity の場合は不要だと思います

その他はお好みで「Submit」をクリック、利用規約的なものが表示されるので確認後チェックボックスにチェックを入れ同意で作成!

f:id:matatabi_ux:20160207180346p:plain

作成後はアプリごとの設定詳細が表示されました

最初は Test Mode しか選べませんが、ストア公開後、アプリページの URL を指定すると Active モードに切り替えて収益化できるようになります

この画面の「Vungle Application ID」は広告を再生するために SDK に指定する必要があるのでメモしておきます

ここまで終わったら Unity 用の SDK を下記からダウンロードします!

Vungle SDK Download

f:id:matatabi_ux:20160207180820p:plain

Unity を通して広告を再生する場合は WindowsSDK ではなく、右下の Unity 用 Plugin が必要なので注意ください

これをダウンロードして開くと Unity にウィンドウが切り替わりパッケージインポートウィンドウが開くはず

f:id:matatabi_ux:20160207181236p:plain

AndroidiOS(Editor含む)、demo 用のものは不要なのでチェックを外してインポート

コンパイルエラーが出た場合は、Platform を Windows に変更します

AndroidiOS でもソースを共用する場合は demo ディレクトリ以外はインポートしておいた方がビルドエラーが起きなくて楽です

ここから先は公式の導入手順にも一切書いてないのですが、やらないとビルドエラーになったのでたぶん下記の設定が必要です

下記2つの場所の DLL は Any Platform のチェックは外して Editor のみにチェックを付けます

下記3つの場所の DLL は WinRT 用のようなので WSAPlayer のみにチェックを付けます

ここまで設定したらあとは Vungle の API を利用するだけ

アプリ起動後なるべく早くに下記の処理を実行し

// 56b707d3a33e75500b000053 はメモしておいた App ID を指定する
Vungle.init(null, null, "56b707d3a33e75500b000053"); 

動画リワード広告を再生したいタイミングで次のような処理をはさむだけ

    /// <summary>
    /// See Ad ボタン押下イベントハンドラ
    /// </summary>
    public void OnSeeAdButtonClicked()
    {
        if (Vungle.isAdvertAvailable())
        {
            // 広告の音声を流さない場合は false を指定
            Vungle.setSoundEnabled(true);

            Vungle.onAdFinishedEvent += this.AdFinished;
            Vungle.playAd();

        }
        else
        {
            // 広告切れの場合の補償処理(本来の半分の報酬をつけるなど)
        }
    }

    /// <summary>
    /// 広告再生完了イベントハンドラ
    /// </summary>
    /// <param name="e"></param>
    private void AdFinished(AdFinishedEventArgs e)
    {
        Vungle.onAdFinishedEvent -= this.AdFinished;

        if (e.IsCompletedView)
        {
            // 動画を最後まで見た場合の処理
        }
        if (e.WasCallToActionClicked)
        {
            // 動画が誘導したアクション(一般にはダウンロード)が実行された場合の処理
        }
    }

今回はボタン押下をトリガーにして広告を再生するようにしてみました

実際には Vungle のみの利用だと広告切れを起こしやすいので、その場合の補償処理なども入れておいた方がよいと思います

f:id:matatabi_ux:20160207192459p:plain

あとは PlayerSettings でインターネット(クライアント)のアクセスを許可するようにして UWP プロジェクトを Build でエクスポート

さてテストモードのまま試しに実行してみました

f:id:matatabi_ux:20160207192548g:plain

UWP でも動画リワード広告が再生できましたね