IAP(課金)トラッキング

1. 実装

IAP情報によりユーザーをセグメントすることはTapjoy SDKで最も強力な機能の一つです。例えば、非課金ユーザーだけに広告を配信しながら、高課金ユーザーにはアプリ内アイテムプロモーションをするといった事が可能になります。このためにはユーザーのIAP情報をTapjoyに送る必要があり、その際は、*[Tapjoy trackPurchase]*コールを使います。
下記は"SWORD"を0.99USDで1つ購入した場合のコード例です:

Objective-C
Swift
[Tapjoy trackPurchase:@"SWORD" currencyCode:@"USD" price:0.99 campaignId:nil transactionId:transaction_id];

通貨コードはISO 4217 standardをご利用ください。

campaignIdは当該購入をプロモーションを識別するための文字列であれば何でも構いません。

transactionIdは、指定する場合は iTunes IAP purchase processで生成されたレシートのトランザクション情報でなければなりません。このパラメータは、IAP Purchase process で生成される SKPaymentTransaction クラスインスタンスの transactionIdentifier プロパティで参照可能です。このメソッドを呼び出す時点で SKPaymentTransaction クラスインスタンスの transactionState プロパティの値が SKPaymentTransactionStatePurchased になっていない場合は、集計時に不正購入と見なされる場合があります。

Tapjoy アカウントにログイン済みであれば、こちらから 以下のIAPトラッキングのサンプルコードをご確認いただけます。

アイテム名 "SWORD" を 0.99 USD で購入した場合の、IAPトラッキングのサンプルコードです:

Objective-C
Swift
    -(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
        for (SKPaymentTransaction *trans in transactions) {
            NSString *transaction_id = nil;
            switch (trans.transactionState)
            { 
                case SKPaymentTransactionStatePurchased: 
                // transaction_id を取得 
                transaction_id = trans.transactionIdentifier; 
                [[SKPaymentQueue defaultQueue] finishTransaction: trans]; 
                // 空のtransaction IDを削除
                if(transaction_id == nil || [transaction_id isEqualToString:@""])
                        transaction_id = @"Empty_Transaction_ID";
                // Tapjoy trackPurchase の呼び出し
                [Tapjoy trackPurchase:@"SWORD" currencyCode:@"USD" price:0.99 campaignId:nil transactionId:transaction_id]; 
            }
        }
    }

購入情報のトラッキングのためにはIAPの受領確認を行う事が重要です。Tapjoyではレシート情報を内部で確認するAPIを提供しています。レシートの受領確認を行わない場合、恐らく、統計数値およびセグメント情報は不正ユーザーによる購入情報により歪められる事になります。

IAPトラッキングを実装しますと、ダッシュボードのアナリティクスの"課金売上"でグラフをご確認いただけます。

2. 重要事項

重要: 必ず、Tapjoy IAPトラッキングコールにおいてIAP購入受領を含める(SDK 11.2.0以降)か、またはTapjoyにレポートする前にApple’s receipt validation measuresを用いてIAP購入が正常であることを確認してください。このようにしなければ、恐らく、統計数値およびセグメント情報は不正購入により歪められることになり、将来バリューマップや高額課金者をターゲットして(または除外して)各種コンテンツを表示するなどのTapjoyの数々の機能に支障をきたすことになり兼ねません。

フリーミアムアプリでのIAPが増加しているため、アプリ開発者はすべての購入を検証して不正を防ぐ事が重要です。アプリ内でレシートバリデーションを行い、不正なトランザクションがデータに混じり混む事を防止するよう強く勧めます。これにより、携帯のアナリティクスデータに減少された購入の情報のみを組み合わせられるようになります。レシートパラメータを含めない場合、Tapjoyではレシートバリデーションを既に行っているとみなしてデータを検証されたものとして受け入れます。

パブリッシャーはIAP Receipt Validation機能を使って簡単に、最小限の実装でTapjoyダッシュボードで購入情報を追跡できます。

ユーザーが購入を行うたびに、IAPトラッキング用APIを一度呼ぶだけです。レシートパラメータを含める事で、ダッシュボードに表示されるIAPアナリティクスデータを正確に保てます。Tapjoy IAP トラッキングAPIの呼びだし時には、AppleおよびGoogleのストアからのレシート情報を指定でき、Tapjoyのサーバではダッシュボードのデータに加える前にトランザクションが正しいかどうかを検証します。

レシートのバリデーションが完了すればデータの正確性が担保されるため、Tapjoyの将来バリューマップ機能や購入情報によるIAPプロモーションや日課金者に対する広告表示等によりユーザーのLTVを真に向上できるようになります。