1.Tapjoyとは?


Tapjoyはスマートフォンゲーム向けのリワード広告フレームワークです。法人だけでなく個人も使うことができます。Tapjoyのページから会員登録し、SDKをダウンロードして組み込むだけで、リワード広告を導入することができます。

リワード広告は、ユーザがゲームを通してアプリをダウンロードもしくは購入すると、ゲーム内のバーチャルマネーがもらえる仕組みになっています。普通の広告とは違い、ユーザにもメリットがあるのが特徴的です。

また、広告主にとっても、従来の広告と違いアプリのインストールまでは保証されますし、
有料アプリの場合は広告料を払っても必ず利益が出るため、従来の広告よりも優れています。

以下に、世界のモバイルアフィリエイト広告の現状と今後から引用します。


Tapjoy には広告を掲載するよりも出稿したいという広告主が多いらしい。理由は有料アプリのダウンロードが伸びれば伸びるほど儲かる仕組みが機能しているからである。

<105円のアプリの場合>
Appleの手数料:30%(31.5円)
Tapjoyの手数料:50% (52.5円)
広告主(アプリ)の収入:20% (21円)


2.リワード広告の例


IMG_0372
ゲーム中のメニューからオファースクリーンを開きます。オファースクリーンにはアプリの一覧と、そのアプリの購入もしくはダウンロードによって得られるバーチャル通貨が表示されます。メトセラの場合は魔石です。

IMG_0373
アプリのインストールが終わると、このように報酬を得ることができます。

3.Tapjoyをアプリに組み込む


実際にTapjoyをアプリに組み込むのはすごく簡単です。

(1)ダウンロードしたフォルダにあるTapjoyConnectフォルダをまるごとプロジェクトに追加

window


(2)フレームワークにlibsqlite3.0.dylibとSystemConfigurationを追加

framework


(3)アプリIDをTapjoyのサイトで取得

appid


(4)仮想通貨を設定

currency

1$と仮想通貨の変換レートを設定します。また、デバッグ用端末の端末IDを登録します。

(5)起動時にTapjoyに接続するコードを追加

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

// Add the view controller's view to the window and display.
[window addSubview:viewController.view];
[window makeKeyAndVisible];

//Tapjoyへ接続する
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectSuccess:) name:TJC_CONNECT_SUCCESS object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectFail:) name:TJC_CONNECT_FAILED object:nil];
[TapjoyConnect requestTapjoyConnectWithAppId:@"アプリIDを記述"];

return YES;
}

-(void) tjcConnectSuccess:(NSNotification*)notifyObj
{
// NSLog(@"Tapjoy connect Succeeded");
[viewController SetTapjoyStatus:1];
}

-(void) tjcConnectFail:(NSNotification*)notifyObj
{
// NSLog(@"Tapjoy connect Failed");
[viewController SetTapjoyStatus:0];
}

-(void) SetTapjoyStatus:(int)status
{
tapjoy_connected=status;
}

(6)オファースクリーンを開くコードを追加

- (void)openTapjoyOffers{
NSLog(@"open offer");
[TapjoyConnect showOffers:[[UIDevice currentDevice] uniqueIdentifier] withViewController:self withInternalNavBar:YES];
}

(7)ポイントを取得して消費するコードを追加

-(void) getTapjoyPoint
{
if(!tapjoy_connected){
NSLog(@"Failed to connect tapjoy");
NSString *cmd=[NSString stringWithFormat:@"MobileTapjoyGemsCallback(-1);"];
[webView stringByEvaluatingJavaScriptFromString:cmd];
return;
}
NSLog(@"get tap point call");
request_tapjoy_point=1;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getUpdatePoints:) name:TJC_TAP_POINTS_RESPONSE_NOTIFICATION object:nil];
[TapjoyConnect getTapPoints];
}

-(void) getUpdatePoints:(NSNotification*)notifyObj
{
if(!request_tapjoy_point){
NSLog(@"IAP event called bug treat");
return;
}
request_tapjoy_point=0;

NSNumber *tapPoints = notifyObj.object;
NSString *cmd=[NSString stringWithFormat:@"MobileTapjoyGemsCallback(%d);",[tapPoints intValue]];
NSString *ret=[webView stringByEvaluatingJavaScriptFromString:cmd];
if([ret isEqualToString:@"success"]){
//success and spend
[TapjoyConnect spendTapPoints:[tapPoints intValue]];
}
}

request_tapjoy_point変数を使って弾いているのは、IAPの別のイベントからなぜかgetUpdatePointsが呼ばれることがあったためです。

これだけです!デバッグは、WEB上でデバッグ端末の端末IDを入力しておくと、テストオファーが表示されるようになり、そのオファーをタップすることでデバッグポイントを取得、消費することで行います。IAP(In App Purchase)と違って、特別なStoreアカウントでのログインが不要なので楽です。IAPもこの方式になるといいですね。

4.まとめ


Tapjoyは個人でも使える画期的なリワード広告フレームワークです。リワード広告導入アプリ売上の4割がリワード広告経由【ドリコムしらべ】というように、ソーシャルゲームではリワード広告からの売上がかなり大きくなってきています。この流れがモバイルにも広がり、アプリ課金・IAP・リワード広告の三つで収益を最大化するような感じになっていくんじゃないかなと考えています。ちなみに、メトセライズデストラクタでは、次回のver1.2.3から、Tapjoyによるリワード広告をサポートします。

MethuselayzeDestructerメトセライズデストラクタ