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.hをimportしてIgaworksADClientRewardDelegateをinterfaceに登録します。
#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に含まれた情報は以下の通りです。
- items[i].campaignKey
: ユーザーが完了したキャンペーンのキャンペーンキー
- items[i].campaignName : ユーザーが完了したキャンペーン名
- items[i].RTID : 完了トランザクションID
- 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 |