IGAWリワードサーバーの連携:クライアント方式
IGAWリワードサーバーから渡すポストバックを受信するサーバーの構築が難しい場合、追加でクライアント連携を通じてリワード付与処理を行うことができます。
リワードサーバー連携方法の設定
リワードポストバックをクライアントで処理するため、(*)リワードサーバーの連携方法を修正します。
IgaworksADWithAppKey apiを利用して、IGAWリワードサーバーの利用可否を設定します。
public class MySampleScene : MonoBehaviour {
// Use this for initialization
void Start () {
//Unityエンジンが初期化される時にプラグインも初期化
//IGAWリワードサーバーをtrueに設定
IgaworksCorePluginIOS.SetUseIgaworksRewardServer(true);
}
}
+ (*)リワードサーバーの連携方法 : リワード付与が必要なサービスを連携する際に必要なオプションです。App Key/Hash Keyとともに設定します。
- false : 自体ポストバックサーバーを利用
- true : IGAWorksリワードサーバーを利用
リワードデリゲートの登録・実装
IGAWリワードサーバーから渡されるリワード情報を受信するためのデリゲートを登録・実装します。
public class MySampleScene : MonoBehavior {
void Start() {
IgaworksCorePluginIOS.IgaworksCoreWithAppKey("発行したAppKey", "発行したHashKey", true);
//デリゲートリスナーの登録
IgaworksCorePluginIOS.SetCallbackHandler("MySampleScene");
//リワードデリゲートの登録
IgaworksCorePluginIOS.onRewardRequestResult += HandleOnRewardRequestResult;
IgaworksCorePluginIOS.onRewardCompleteResult += HandleOnRewardCompleteResult;
}
public void HandleOnRewardRequestResult(string rewardInfo) {
//こちらに付与すべきリワードの情報が渡されます。
}
public void HandleOnRewardCompleteResult(string result) {
//最終処理結果が渡されます。
}
}
リワード情報の確認及びリワード付与処理
HandleOnRewardRequestResult デリゲートで IGAW リワードサーバーにある、処理されていないリワード情報を渡します。
リワード情報はパラメータの形で渡されます。stringで渡され、parsing処理します。
- isSuccess : リワード情報リクエストの結果
- message : リワード情報リクエストの結果メッセージ
- itemName : 付与するリワードの名前
- itemKey : 付与するリワードの識別値(deprecated)
- campaignName : 参加完了したキャンペーン名
- campaignKey : 参加完了したキャンペーンの識別値
- rewardKey : 完了トランザクション識別値
- quantity : ユーザーに付与する仮想通貨の量
IGAW リワードサーバーに該当内容を渡すため、rewardKeyを含め DidGiveRewardItemWithRewardKey APIを呼び出します。
public void HandleOnRewardRequestResult(string rewardInfo) {
// rewardInfo : isSuccess=1&message=Success&itemName=1point&itemKey=(null)&campaignName=REGISTRATION TYPE CAMPAIGN for TEST&campaignKey=1296784231&rewardKey=RzBVMIkF-15x5Y5qpU4vawj-33gdK3LKoaRx7p15NmjjdgnCc9uKlFSRjZypYzTLlrRe2BHByfM4x0AlP6X2n0vth4EYV-kUZ&quantity=1
// rewardKeyを抽出して渡す
AdPopcornOfferwallPluginIOS.DidGiveRewardItemWithRewardKey($rewardKey);
}
リワード処理結果の確認
HandleOnRewardCompleteResult デリゲートで DidGiveRewardItemWithRewardKey APIの処理結果が渡されます。
渡される結果を確認し、リワード付与処理を行います。
- isSuccess : リワード処理結果
- message : リワード処理結果のメッセージ
- resultCode : リワード処理結果コード (渡される応答コードは、以下のテーブルを参考にしてください。)
- completedRewardKey : 付与完了した rewardKey
public void HandleOnRewardCompleteResult(string result) {
// AdPopcornOfferwallPluginIOS.DidGiveRewardItemWithRewardKey の処理結果が渡されます。
// result : isSuccess=1&message=Success&resultCode=1&completedRewardKey=RzBVMIkF-15x5Y5qpU4vawj-33gdK3LKoaRx7p15NmjjdgnCc9uKlFSRjZypYzTLlrRe2BHByfM4x0AlP6X2n0vth4EYV-kUZ
// DidGiveRewardItemWithRewardKey APIで渡したrewardKeyの処理結果が「成功」と確認される場合のみ、ユーザーにリワードを付与します。
}
応答コードの定義
デリゲートに渡される応答コードの定義です。
コード | 説明 |
1 | 成功 |
100 | 処理中のエラー |
200 | 不明なエラー (Exception) |
1400 | 正しくないapp key |
1410 | 正しくないreward server type設定 |
3000 | 正しくないhash key |
連携テスト
adPOPcorn管理画面の「オファーウォール管理→QA&最適化→テスト端末設定」にて設定したテスト端末で、
テスト広告に参加します。リワードが正常に付与されることが確認できれば、連携は正常に完了しています。