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();