로딩중입니다
IGAWリワードサーバーの連携:クライアント方式(Unity Android)
6/12/2015 3:03:32 PM

IGAWリワードサーバー連携:クライアント方式

IGAWリワードサーバーから渡すポストバックを受信する自体サーバーの構築が難しい場合、追加でクライアント連携を通じてリワード付与処理を行うことができます。 



AndroidManifest.xml

リワードポストバックをクライアントで処理するため、リワードサーバーの連携方法を修正します。
<application></application> タグの中に、以下のようなリワードサーバー連携方式を「client」で設定します。
<meta-data android:name="igaworks_reward_server_type" android:value="client"/>



イベントリスナーAPI

Androidプラグインライブラリーに、リワード付与情報とオファーウォールアクションイベントを受信するためのイベントリスナーを登録します。
IgaworksUnityPluginAOS.Common.setClientRewardEventListener IgaworksUnityPluginAOS.Adpopcorn.setAdpopcornOfferwallEventListenerを呼び出します。
void Awake() {
		IgaworksUnityPluginAOS.InitPlugin ();
		IgaworksUnityPluginAOS.Common.startApplication ();
                
		//リワード付与情報を受信するためのイベントリスナーを登録します。
		IgaworksUnityPluginAOS.Common.setClientRewardEventListener ();
		//オファーウォールアクションイベントを受信するためのイベントリスナーを登録します。
		IgaworksUnityPluginAOS.Adpopcorn.setAdpopcornOfferwallEventListener ();
	}



リワードデリゲートの登録・実装

IGAWサーバーから渡されるリワード情報を受信するためのデリゲートを登録・実装します。

デリゲートの詳細

1. OnGetRewardInfo(string campaignkey, string campaignname, string quantity, string cv, string rewardkey)

IGAWリワードサーバーにある、処理されていないリワード情報が渡されます。 
1. campaignkey : ユーザーが完了したキャンペーンのキャンペーンキー
2. campaignname : ユーザーが完了したキャンペーン名
3. quantity : ユーザーに付与する仮想通貨の量
4. cv :リワード付与処理の完了情報をIGAWサーバーに渡すためのAPI
5. rewardkey : リワード付与処理完了情報をIGAWサーバーに送信するためのAPI
1~3までの情報を利用してユーザーにリワード付与処理を行った後、IGAWリワードサーバーに該当内容を渡すために4〜5の項目を含めてdidGiveRewardItem APIを呼び出します。


2. OnDidGiveRewardItemRequestResult (bool isSuccess, string rewardkey)

上記で呼び出したdidGiveRewardItem APIの呼び出し結果が渡されます。渡されたrewardKeyを利用してリワード重複付与の防止処理を行います。 
void Awake() {
		// デリゲートの登録
		IgaworksUnityPluginAOS.OnGetRewardInfo = mOnGetRewardInfo;
		IgaworksUnityPluginAOS.OnDidGiveRewardItemRequestResult = mOnDidGiveRewardItemRequestResult;   
}

// デリゲートの実装
void mOnGetRewardInfo(string campaignkey, string campaignname, string quantity, string cv, string rewardkey){    
		string ck = campaignkey;
		string cn = campaignname;
		string qt = quantity;
		// 上記の情報を利用してユーザーにリワードを付与します。
		// {リワード付与処理}
 
		// didGiveRewardItem APIを呼び出してリワード付与処理完了をIGAWリワードサーバーに通知します。
		IgaworksUnityPluginAOS.Common.didGiveRewardItem (cv, rewardkey);
}
void mOnDidGiveRewardItemRequestResult (bool isSuccess, string rewardkey) {
                // didGiveRewardItem関数の処理結果がリターンされます。
		// 同じrewardkeyに対してはリワードの重複付与防止処理を行います。
	}



オファーウォールデリゲートの登録と実装

IGAWリワードサーバーからリワード付与情報の閲覧をリクエストするために、オファーウォール終了アクションに対するデリゲートを登録し実装します。


1. デリゲートの登録
オファーウォール終了アクションに対するデリゲートを登録します。 
IgaworksUnityPluginAOS.OnClosedOfferwallPage = mOnClosedOfferwallPage;


2. デリゲートの実装
オファーウォール終了アクションのデリゲートを実装します。実装したデリゲートの中でリワード付与情報のリクエストを行います。
void mOnClosedOfferwallPage() {
	IgaworksUnityPluginAOS.Common.getClientPendingRewardItems();
}



リワード情報の要求

リワードイベントリスナーは、オファーウォールの起動・終了の際に呼び出され、IGAWリワードサーバーで処理されていないリワード情報がある場合、情報が渡されます。
上記の時点以外に、リワード情報を確認したい時点で、以下のAPIを呼び出してIGAWリワードサーバーからリワード情報を確認することができます。
IgaworksUnityPluginAOS.Common.getClientPendingRewardItems();



連携テスト

adPOPcorn管理画面の「オファーウォール管理→QA&最適化→テスト端末設定」 にて設定したテスト端末で、テスト広告に参加します。アプリでリワードが正常に付与されることが確認できれば、連携は正常に完了しています。