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


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

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



AndroidManifest.xml

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

<meta-data android:name="igaworks_reward_server_type" android:value="client"/>



リワードイベントリスナーの登録・実装

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


リスナーの詳細

1. onGetRewardInfo(boolean isSuccess, String resultMsg, IgawRewardItem[] rewardItems)
IGAWリワードサーバーにある、処理されていないリワード情報を渡します。
リワード情報は、IgawRewardItemタイプの rewardItem[i] 配列で渡されることになり、渡される配列に含まれた情報は以下の通りになります。
  1. rewardItem[i].getCampaignKey() : ユーザーが完了したキャンペーンのキャンペーンキー
  2. rewardItem[i].getCampaignTitle() : ユーザーが完了したキャンペーン名
  3. rewardItem[i].getRTID() : 完了トランザクションID
  4. rewardItem[i].getRewardQauntity() : ユーザーに付与する仮想通貨の量
  5. rewardItem[i].didGiveRewardItem() : リワード付与処理の完了情報をIGAWサーバーに渡すためのAPI
IGAWリワードサーバーに該当情報を送信するため、5番項目didGiveRewardItem APIを呼び出して正常に結果を受信した場合、1~4までの情報を利用して、ユーザーにリワード付与処理を行います。


2. onDidGiveRewardItemResult(boolean isSuccess, String resultMsg, int resultCode, String completedRewardKey)

上記したdidGiveRewardItem API結果します渡された completedRewardKeyを利用してリワード重複付与の防止処理を行います。
IgawCommon.setClientRewardEventListener(new IgawRewardItemEventListener() {
	@Override
	public void onGetRewardInfo(boolean isSuccess, String resultMsg, IgawRewardItem[] rewardItems) {
 		for (IgawRewardItem rewardItem : rewardItems) {
			//以下の情報を利用してユーザーにリワードを付与します。
                        rewardItem.getCampaignKey();
			rewardItem.getCampaignTitle();
			rewardItem.getRTID();
			rewardItem.getRewardQuantity();
			
			//didGiveRewardItemを呼び出して、リワード付与処理完了をIGAWリワードサーバーに通知します。
			rewardItem.didGiveRewardItem();
		}
	}

	@Override
	public void onDidGiveRewardItemResult(boolean isSuccess, String resultMsg, int resultCode, String completedRewardKey) {
		// TODO Auto-generated method stub
		//同一のcompletedRewardKeyに対して重複付与防止処理を行います。
	}
});



リワード情報の要求

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



連携テスト

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