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

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&最適化→テスト端末設定」にて設定したテスト端末で、

テスト広告に参加します。リワードが正常に付与されることが確認できれば、連携は正常に完了しています。