はじめに
モバイルゲームのマネタイズ手法としてプレイヤーに広告を視聴してもらい、広告プラットフォームから報酬を得ることも一般的になりました。
広告が正しく視聴された時に広告プラットフォームからサーバー間連携で通知をもらい、GS2に報酬を付与することでチート行為を防ぐことができます。
追加された機能の詳細
一般的に GS2 では対価と報酬を設定してリソースの交換を行っていますが、サーバー間通信の仕様が広告プラットフォームごとに異なり、データの粒度も異なるため GS2-Reward では広告の視聴が確認できた際に《視聴ポイント》を1ポイント加算するようになっています。
獲得した《視聴ポイント》は GS2-Exchange や GS2-Showcase などで使用可能な消費アクションとして消費できます。
対応している広告プラットフォーム
- AdMob(Google Mobile Ads)
- Unity Ads
Unity からの使用例
動画の視聴を開始
各広告プラットフォームのSDKを直接利用して動画を視聴しても問題ありません。
ここでの実装例は GS2-SDK で提供しているユーティリティクラスを使用した実装例を示します。
AdMob
await AdMobUtil.InitializeAsync( new RequestConfiguration() { TestDeviceIds = new List<string> { "4cd8a25ecc6250e3c140e365e5a543ff", // テストデバイスID }, } ); await AdMobUtil.ViewFuture( "ca-app-pub-8090851552121537/9708453802", // 広告ユニットID GameSession // ログインセッション );
Unity Ads
await UnityAdUtil.InitializeAsync( "5416096" // Unity Ads のゲームID ); await UnityAdUtil.ViewAsync( "test", // Placement ID GameSession // ログインセッション );
現在の広告ポイントを取得
var domain = gs2.AdReward.Namespace( namespaceName: "namespace-0001" ).Me( gameSession: GameSession ).Point( ); var item = await domain.ModelAsync();
視聴ポイントの加算コールバック
gs2.AdReward.OnChangePointNotification += notification => { var namespaceName = notification.NamespaceName; };