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

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

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

リワードサーバー連携方式の設定

リワードポストバックをクライアントで処理するために、 (*)リワードサーバーの連携方法を修正します。
AppDelegate.m の application: didFinishLaunchingWithOptions: で呼び出す IgaworksCore 初期化APIを探して useIgaworksRewardServer のパラメータを YESに修正します。
#import "AppDelegate.h"
#import <IgaworksCore/IgaworksCore.h>
 
@implementation AppDelegate
 
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{	
	[IgaworksCore igaworksCoreWithAppKey:@"YOUR_APP_KEY" andHashKey:@"YOUR_HASH_KEY"];
	[IgaworksCore shared].useIgaworksRewardServer = YES;
	[IgaworksCore shared].clientRewardDelegate = self;
	return YES;
}
+ (*)リワードサーバー連方法 : リワード付与が必要なサービスを連携する際に必要なオプションです。useIgaworksRewardServer パラメーターを利用して設定します。
  • NO : 自体ポストバックサーバーの利用
  • YES : IGAWorksリワードサーバーの利用



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

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

#import <IgaworksCore/IgaworksCore.h>
#import <AdPopcornOfferwall/AdPopcornOfferwall.h>
#import <AdPopcornOfferwall/RewardInfo.h>
 
@interface ViewController() <IgaworksADClientRewardDelegate>
@end
 
@implementation AppDelegate
@end 

RewardInfo.h NSArray方式のリワード情報を受信し処理するために必要なheaderです。 


リワード情報の確認及びリワード付与処理

onRewardRequestResult: withMessage: items:  デリゲートでIGAWリワードサーバーにある、処理されていないリワード情報を渡します。
リワード情報はRewardInfo.h で設定したモデル形式の(NSArray *)itemsパラメーターで渡され、NSArrayに含まれた情報は以下の通りです。
  1. items[i].campaignKey : ユーザーが完了したキャンペーンのキャンペーンキー
  2. items[i].campaignName : ユーザーが完了したキャンペーン名
  3. items[i].RTID : 完了トランザクションID
  4. items[i].quantity : ユーザーに付与する仮想通貨の量
IGAWリワードサーバーに該当情報を送信するため、AdPopcornOfferwall.h didGiveRewardItemWithRewardItemKey APIを呼び出します。
-(void)onRewardRequestResult:(BOOL)isSuccess withMessage:(NSString *)message items:(NSArray *)items{
    
    for (RewardInfo *item in items) {
	    
        NSString *campaignKey = item.campaignKey;
        NSString *campaignName = item.campaignName;
        NSString *rewardKey = item.RTID;
        NSUInteger quantity = item.quantity;
        		
	//items パラメータから RTIDを抽出して渡します。 
	[AdPopcornOfferwall didGiveRewardItemWithRewardKey:item.RTID];
    }    
}


リワード処理結果の確認

onRewardCompleteResult: withMessage: resultCode: withCompletedRewardKey: デリゲートに didGiveRewardItemWithRewardKey APIの処理結果がリターンされます。

リターンされた結果を確認し、リワード付与処理を行います。

  • isSuccess : リワード処理結果
  • message : リワード処理結果のメッセージ
  • resultCode : リワード結果コード (応答コードは以下のテーブルを参考)
  • completedRewardKey : 付与完了した RTID
- (void)onRewardCompleteResult:(BOOL)isSuccess withMessage:(NSString *)message resultCode:(NSUInteger)resultCode withCompletedRewardKey:(NSString *)completedRewardKey {
  // didGiveRewardItemWithRewardKey APIでリターンした RTIDの処理結果が「成功」と確認された場合、ユーザーにリワードを付与します。
}


応答コードの定義

デリゲートに渡される応答コードの定義です。

コード説明
1成功
100処理中のエラー
200不明なエラー (Exception)
1400正しくないapp key
1410正しくないreward server typeの設定
3000正しくないhash key


連携テスト

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