概要 #
Tenjin iOS SDKを使用すると、iOSアプリ内でイベントやインストール状況を追跡できます。Tenjinおよび製品の詳細については、https://tenjin.comをご覧ください。
- 過去のバージョン履歴については、こちらのリリースノートを御覧ください。
- Unityの実装手順については、こちらをご確認ください。
- ご質問がある方は、support@tenjin.comまでお問い合わせください。
注意点 #
- iOS SDK v1.12.17以降を使用する場合は、Xcode 13が必要です。
- AppTrackingTransparencyを使用するには、プロジェクトの
.plistファイルを更新し、プライバシートラッキング使用状況の説明 (NSUserTrackingUsageDescription)と、ユーザーに表示したいテキストメッセージを追加してください。このライブラリはiOS 14.0以降でのみ利用可能です。 - Apple Adsアトリビューションに対応するには、v1.12.6以降にアップグレードし、
AdServices.frameworkライブラリを追加してください。このライブラリはiOS 14.3以降でのみ利用可能です。
SDK実装手順 #
Cocoapods #
podsをお使いの場合、Podfileにpod 'TenjinSDK'を追加後、pod installコマンドを実行してください。その後手順4にお進みください。
Swift Package Manager #
SPMを使用する場合は、Xcode経由でこのリポジトリを使用して TenjinのSDKパッケージを追加し、手順4に進みます。
- こちらより最新のSDKコンテンツをダウンロードします。
TenjinSDK.xcframeworkとTenjinSDK.hをプロジェクトのphases -> “Link Binary With Libraries”にドラッグします。- ビルド設定に
-ObjCのリンカーフラグを追加します。
Objective-Cプロジェクトの場合 #
AppDelegate.mファイル(デフォルトはAppDelegate.m)内に#import "TenjinSDK.h"を追加します。- Appsページから
SDK_KEYを取得します。注:SDK_KEYはアプリごとに一意です。同じアプリに対して最大3つまでキーを作成できます。

didFinishLaunchingWithOptionsメソッド内に下記を追加します。
[TenjinSDK initialize:@" "];
[TenjinSDK connect];- To enable Tenjin iOS SDK debug logs add:
[TenjinSDK debugLogs];以下は、AppDelegate.mファイルでのObjective-Cプロジェクトへの実装例です。
#import "TenjinSDK.h"
@implementation TJNAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[TenjinSDK initialize:@"<SDK_KEY>"];
[TenjinSDK connect];
//All your other stuff
...
}Swiftプロジェクトの場合の手順 #
- SwiftプロジェクトにObjective-Cブリッジングヘッダーファイルを追加します。プロジェクトにブリッジングヘッダーがまだない場合は、作成してください。
- ヘッダファイルを作成
- File -> New -> File -> “Sources”に移動
- “Header”ファイル - > 「次へ」をクリック
- ヘッダーファイル名は「YourProjectName-Bridging-Header」である必要があります - 「ターゲット」で -> アプリのターゲットを選択 -> 「次へ」をクリック
- ヘッダファイル “YourProjectName-Bridging-Header.h"内で
- 次を追加:
#import "TenjinSDK.h" - アプリのターゲットに移動し、「ビルド設定」の下に移動します。
- 「Swift コンパイラー - 全般」セクションに移動します
- 「Objective-C Bridging Header」サブセクションに移動し、ヘッダーファイル「YourProjectName-Bridging-Header.h」をフィールドにドラッグします
- 次を追加:
- ヘッダファイルを作成
- Appsページから
SDK_KEYを取得します。注:SDK_KEYはアプリごとに一意です。同じアプリに対して最大3つまでキーを作成できます。

didFinishLaunchingWithOptionsメソッド内に下記を追加します。
TenjinSDK.getInstance(" ")
TenjinSDK.connect()注:Swift 5をお使いの場合、init()の代わりにgetInstance()をお使いください。Swiftを用いたサンプルのアプリについてはこちら。
- To enable Tenjin iOS SDK debug logs add:
TenjinSDK.debugLogs();Swiftプロジェクトでの実装がAppDelegate.swiftファイル内でどのように表示されるかを示す例を次に示します。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
TenjinSDK.getInstance("<SDK_KEY>")
TenjinSDK.connect()
return true
}注: アプリの初回起動だけでなく、すべてのdidFinishLaunchingWithOptionsにこのコードを実装するようにしてください。推奨事項に従わない場合は、適切なサポートを提供できないか、アカウントが停止される可能性があります。
もし、他サービスでディファードディープリンクを使用している場合、それらのディープリンクをTenjin側に連携してアトリビューションのロジックと紐付けることが可能です。
#import "TenjinSDK.h"
@implementation TJNAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[TenjinSDK init:@"<SDK_KEY>"];
//get your deep link from your other 3rd party service
NSURL *url = [NSURL withString: @"your_deep_link"];
//if you have a deep link that's generated from a third party service then pass it to tenjin to handle the Attribution of deep links holistically
if(url) {
[TenjinSDK connectWithDeferredDeeplink:url];
}
else{
[TenjinSDK connect];
}
//All your other stuff
//...
}You can verify if the integration is working through our Live Test Device Data Tool. Add your advertising_id や IDFA/GAID to the list of test devices. You can find this under Support -\> Test Devices. Go to the Live Event Tool page and send the test events from your app. You should see live events come in:
ATTrackingManagerを使用した場合のTenjinの初期化処理 #
iOS 14では、ATTrackingManagerを使用して許可プロンプトを表示し、ユーザをオプトイン/オプトアウトする事が可能です。デバイスがトラッキングの許可を行わない場合は、IDFAはゼロとなります。デバイスがトラッキングの許可を行った場合、connect()メソッドを通じてIDFAがサーバ側に送られます。
#import "TenjinSDK.h"
@implementation TJNAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[TenjinSDK init:@"<SDK_KEY>"];
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
[TenjinSDK connect];
}];
} else {
[TenjinSDK connect];
}
}ATT許可プロンプトの表示 #
AppleのATTガイドラインに準拠するには、ATT許可プロンプトの説明を入力し、アプリケーションへの許可リクエストを実装する必要があります。
> 注: アプリ内で広告を配信する前に、許可リクエストを実装する必要があります。
ユーザー追跡の説明の設定 #
XcodeプロジェクトのInfo.plistファイル内の NSUserTrackingUsageDescriptionキーを使用して説明の内容を設定します。デバイス追跡データの使用許可を要求している理由をユーザーに通知するメッセージを提供する必要があります。
- Xcodeプロジェクトナビゲータで、
Info.plistファイルを開きます。 - プロパティリストエディタの任意のキーの横にある追加ボタン(+)をクリックして、新しいプロパティキーを作成します。
- キー名を入力します
NSUserTrackingUsageDescription. - 文字列値のタイプを選択します。
- 値フィールドにアプリ追跡のメッセージを入力します。いくつかの例が含まれます:
- お客様のデータを使用して、より優れたパーソナライズされた広告エクスペリエンスを提供します。
- 使用しているアプリ、使用しているデバイス、使用している国に基づいて、最も興味のあるアプリや製品の広告を表示するようにしています。
- 私たちは、あなたが使用するアプリに基づいて、あなたにとって最も興味深いアプリや製品の広告を表示しようとします。
注: Appleは、プライバシー関連の機能に直面しているすべてのエンドユーザーの許容可能な使用とメッセージングを定義する特定のアプリストアガイドラインを提供しています。Tenjinは法律上の助言を提供していません。したがって、このページの情報は、お客様のビジネスとプロセスの法的要件、およびそれらに対処する方法を決定するための法的手段の代替ではありません。
SKAdNetworkとコンバージョンバリュー #
SKAdNetworkの導入に従って, TenjinではupdatePostbackConversionValue(_:)のラッパーメソッドを用意しています。このメソッドは、該当のSKAdNetworkのメソッドをコールし、コンバージョンバリューをTenjinのサーバに送信します。
updatePostbackConversionValue(\_:) では、0~63の整数(2進数ではなく10進数)を指定します。この値は、アプリで設定したコンバージョンバリュー戦略に基づいて、アプリ内イベントまたはユーザーマイルストーンを直接反映する必要があります。このロジックをコーディングする前に、こちらのページを参照してコンバージョンバリューの実装を計画することを強くお勧めします。
SKAdNetwork 4.0がサポート対象となるiOS 16.1以降で、coarseValue(文字列、可能な引数はlow、medium, high)とlockWindow(真偽値)を更新ポストバックメソッドのパラメーターとして送信できるようになりました。
updatePostbackConversionValue(_ conversionValue: Integer, coarseValue: String)
updatePostbackConversionValue(_ conversionValue: Integer, coarseValue: String, lockWindow: Bool)
- SKAdNetwork 4.0に対応したiOSバージョン16.1以降では、このメソッドを何度でも呼び出すことができ、コンバージョンバリューを以前の値よりも低くしたり高くしたりできます。
- 4.0より前のSKAdnetWorkバージョンをサポートする16.1より前のiOSバージョンの場合、このメソッドを呼び出すと、SDKが自動的にiOSバージョンを検出し、
conversionValueのみを更新します。
#import "TenjinSDK.h"
@implementation TJNAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[TenjinSDK initialize:@"<SDK_KEY>"];
[TenjinSDK connect];
//
// This will call [SKAdNetwork updatePostbackConversionValue: <Integer between 0 and 63>]
// and also send Conversion value to our servers.
//
// You will need to use a value between 0-63.
//
[TenjinSDK updatePostbackConversionValue:<Integer between 0 and 63>];
// For iOS 16.1+ (SKAN 4.0)
[TenjinSDK updatePostbackConversionValue:<Integer between 0 and 63> coarseValue:@"medium"];
[TenjinSDK updatePostbackConversionValue:<Integer between 0 and 63> coarseValue:@"medium" lockWindow:true];
}
@endSKAdNetworkとiOS 15+広告主向けポストバック #
SKAdNetworkのポストバックにおいて、Tenjinを送信先に設定するためには、下記をご設定ください。
- XCodeのプロジェクトナビゲーターで、
Info.plistを選択します。 - プロパティリストエディタ上で、keyのそばの追加ボタン(+)をクリックし、リターンを押下します。
- キー名を入力:
NSAdvertisingAttributionReportEndpoint. - Typeのカラムで、ポップアップメニューからStringを選択します。
- 次を入力:
https://tenjin-skan.com
これらの手順は、Appleのこちらの手順を参考にしています。
GDPR #
GDPR準拠の一環として、TenjinのSDKを使用すると、デバイス/ユーザーのオプトイン/オプトアウト、またはオプトインまたはオプトアウトする特定のデバイス関連パラメータを選択できます。optOut()はTenjinにAPIリクエストを送信せず、イベントも処理しません。
オプトイン/オプトアウトを実装するには:
#import "TenjinSDK.h"
@implementation TJNAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[TenjinSDK initialize:@"<SDK_KEY>"];
if ([self checkOptInValue]) {
[TenjinSDK optIn];
}
else {
[TenjinSDK optOut];
}
[TenjinSDK connect];
//All your other stuff
//..
}
-(BOOL) checkOptInValue
{
// check opt-in value
// return YES; // if user opted-in
return NO;
}特定のデバイス関連パラメータをオプトイン/オプトアウトするには、 OptInParams()または OptOutParams()を使用できます。OptOutParams()は、指定されたデバイス関連パラメータのみを送信します。OptOutParams()は、指定されたパラメータを除くすべてのデバイス関連パラメータを送信します。
- Tenjinシステムでデバイスを正しく追跡するためには、以下のパラメータが必要となりますのでご注意ください。必須パラメータが欠落している場合、イベントは処理または記録されません。
developer_device_id
Google Adsでプロモーションを実施する場合は、advertising_id, developer_device_id, platform, os_version,app_version, locale, device_modelそしてbuild_idも追加する必要があります。
特定のデバイスパラメータのみを取得するには、OptInParams()を使用します。下記具体例では、ip_address, advertising_id, developer_device_idそしてlimit_ad_trackingを取得しています。
[TenjinSDK initialize:@"<SDK_KEY>"];
NSArray *optInParams = @[@"ip_address", @"advertising_id", @"developer_device_id", @"limit_ad_tracking"];
[TenjinSDK optInParams:optInParams];
[TenjinSDK connect];特定のデバイスパラメータ以外のパラメータを取得するには、OptOutParams()メソッドを使用します。下記具体例では、locale, timezoneそしてbuild_id以外のパラメータを送信しています。
[TenjinSDK initialize:@"<SDK_KEY>"];
NSArray *optOutParams = @[@"country", @"timezone", @"language"];
[TenjinSDK optOutParams:optOutParams];
[TenjinSDK connect];CMPを用いたオプトイン/アウト #
ユーザーのデバイスにすでに保存されている CMP同意 (目的 1)の情報を使用して、Tenjin SDKを自動的にオプトインまたはオプトアウトできます。このメソッドは、オプトインかオプトアウトかを示すブール値を返します。
optInOutUsingCMP()
[TenjinSDK initialize:@"<SDK_KEY>"];
optInOut = [TenjinSDK optInOutUsingCMP]; デバイスパラメータ #
| パラメータ | 説明 |
|---|---|
| ip_address | IP Address |
| advertising_id | Google広告ID |
| developer_device_id | ID for Vendor |
| limit_ad_tracking | limit ad tracking enabled |
| platform | platform |
| os_version | OSバージョン |
| device | デバイス名 |
| device_model | デバイスモデル |
| device_model_name | デバイスマシン |
| device_cpu | デバイスCPU名 |
| os_version_release | OSバージョン |
| build_id | ビルドID |
| locale | デバイスロケール |
| country | ロケール国 |
| タイムゾーン | タイムゾーン |
アプリ内課金イベント #
購入の検証後、(SKPaymentTransaction *) transactionオブジェクトと(NSData *)receiptを渡すと、購入されたトランザクションに対してSKPaymentTransactionStatePurchasedをTenjin に渡すことができます。
//Get the NSData receipt
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receiptData = [NSData dataWithContentsOfURL:receiptURL];
//Pass the transaction and the receiptData to Tenjin
[TenjinSDK transaction: transaction andReceipt: receiptData];StoreKit 2 IAP #
StoreKit 2はSwift専用のAPIです。StoreKit 2を使用するアプリでは、JWS表現とトランザクションの詳細を抽出できます。
import StoreKit
func handlePurchase(_ result: VerificationResult<Transaction>) async {
switch result {
case .verified(let transaction):
// Get the JWS representation (SK2 receipt)
let jwsRepresentation = transaction.jwsRepresentation
// Extract transaction details
let productId = transaction.productID
let transactionId = String(transaction.id)
let price = transaction.price ?? Decimal(0)
let currencyCode = transaction.currency?.identifier ?? "USD"
// Send to Tenjin
TenjinSDK.transaction(
withProductName: productId,
andCurrencyCode: currencyCode,
andQuantity: transaction.purchasedQuantity,
andUnitPrice: NSDecimalNumber(decimal: price),
andTransactionId: transactionId,
andBase64Receipt: jwsRepresentation
)
await transaction.finish()
case .unverified(_, _):
// Handle unverified transaction
break
}
}新しい設定により、アプリストアの収益手数料を0%、15%または30%の間で選択可能です。
- CONFIGURE --> Appsをクリック。
- アプリを選択。
- App Store Commissionのセクションで、Editをクリック
- アプリストア手数料として30%、15%、または0%を選択。
- 開始日と終了日を選択します。 (終了日を指定しない場合は、終了日を空白のままにすることもできます)
- Saveをクリックします (注: 手数料は変更を加えた日付以降に適用され、過去日付には適用されません。そのため、変更を行う日付から以降の開始日を設定してください)。
サブスクリプション課金 #
重要: サブスクリプションイベントの場合、 Tenjin管理画面よりIAP shared secretを該当のアプリに追加してください。shared secretはiTunes Connect Console > Select your app > App Information > App-Specific Shared Secretより取得できます。
注意点:各サブスクリプション期間中に1度だけサブスクリプショントランザクションを送ってください。(例えば、月ごとのサブスクリプションの場合、1月に1度のトランザクション)
以下のタイムラインの例では、トランザクションイベントは「FirstCharge」イベントと「Renewal」イベントでのみ送信する必要があります。トライアル期間中は、Tenjinに取引イベントを送信しないでください。
サブスクリプションの詳細については、次のリンクを参照してください。Apple のサブスクリプションに関するドキュメント
カスタムイベント #
注意点: SDK初期化処理の前にカスタムイベントを送らないようにしてください。 初期化処理は各カスタムイベント発生の前に実施する必要があります。
重要:カスタムイベント名は80文字未満に制限してください。また、固有のカスタムイベント名は500個を超えないようにしてください。
カスタムイベントの送信には下記メソッドを使います。:
sendEventWithName: (NSString *)eventNameand
カスタムイベントを利用して、特定のイベントを獲得したユーザの流入元のコスト情報などに紐付けることが可能です。下記が実装例となります。
//send a particular event for when someone swipes on a part of your app
[TenjinSDK sendEventWithName:@"swipe_right"];カスタム イベントでは、NSInteger eventValueを渡すこともできます。TenjinはこのeventValueを、同じ eventNameを持つすべてのカスタムイベントのカウントまたは合計として使用します。eventValueは整数でなければなりません。eventValueが整数でない場合、イベントは送信されません。
//send a particular event for when someone swipes and an event value on a part of your app
[TenjinSDK sendEventWithName:@"swipe_right" andEventValue:@"1"];サーバ間連携 #
Tenjinはサーバー間連携を提供しています。これにより、SDK連携を必要とせずに、インストールイベントとインストール後イベントをサーバーからTenjinサーバーに直接送信できます。
アプリサブバージョン #
A/Bテストを実施する場合、appendAppSubversion() メソッドを用いて、アプリバージョンに固定の数値を付加することが可能です。例えば、アプリのバージョンが1.0.1でappendAppSubversion() : @8888をセットすると、レポートされるアプリバージョンは1.0.1.8888となります。
データボルトを用いれば、このアプリバージョンごとのパフォーマンスを分析することが可能です。
[TenjinSDK initialize:@" "];
[TenjinSDK appendAppSubversion:@8888];
[TenjinSDK connect];インプレッションレベル広告収益 #
Tenjinでは下記のメディエーションプロバイダにおいて、インプレッションレベルの広告収益(ILRD)をサポートしています。
- AppLovin MAX
- Unity LevelPlay
- HyperBid
- AdMob
- TopOn
- CAS
- TradPlus
この機能を使用すると、ユーザーに表示された広告ごとに影響を受ける広告収益に対応するイベントを受信できます。連携ガイドへのアクセスはこちらです。
LiveOpsキャンペーン #
アプリ開発者は、自社サーバーまたはTenjinと連携していないネットワークにカスタムでコールバックを送信できます。これにより、開発者はこれらのユーザーレベルのアトリビューションデータをリアルタイムで収集して分析できます。以下は、Tenjinのカスタムコールバックを使用した使用例です。
- 独自のデータ分析ツールをお持ちの場合は、S2Sコールバックを使用することで、デバイスごとにアトリビューションデータをゲーム内データに紐付けることができます。
- ユーザーのアトリビューションソースに応じて、さまざまなアプリコンテンツを表示します。たとえば、ユーザーAがオーガニックに関連付けられ、ユーザーBがMetaに関連付けられているとします。ユーザー Bの方がアプリに関心を持っている可能性が高いため、ユーザーがアプリをインストールした後に特別なゲーム内オファーを表示することができます。
LiveOpsの使用方法に関する詳細は、こちらをご覧ください。
カスタマーユーザーID #
イベントのパラメーターとして送信するカスタマーユーザー IDを設定および取得できます。
setCustomerUserId(userId: "user_id") getCustomerUserId()
[TenjinSDK initialize:@"<SDK_KEY>"];
[TenjinSDK setCustomerUserId:@"user_id"];
userId = [TenjinSDK getCustomerUserId]; Analytics Installation ID #
下記のメソッドを用いて、ランダムに生成され、デバイスのローカルストレージに保存されているユニークなAnalytics IDを取得できます。 getAnalyticsInstallationId()
[TenjinSDK initialize:@" "];
analyticsId = [TenjinSDK getAnalyticsInstallationId]; ユーザープロファイル – LiveOpsメトリクス #
Tenjin SDKは、ユーザーエンゲージメント指標を自動的に追跡し、プレイヤーの行動や生涯価値を把握するのに役立ちます。これらの指標は自動的に収集され、プログラムからアクセスできます。
自動トラッキング #
SDKは下記をトラックします:
- セッションメトリクスセッション数、期間、初回/最終セッション日
- In-App Purchases (IAP): トランザクション件数、通貨別収益、購入プロダクトID
- 広告収益(ILRD): サポート対象のアドネットワークからのインプレッションレベルの収益
ユーザプロファイルデータの取得 #
フルプロファイルオブジェクトの取得 #
すべてのメトリックを含むTJNUserProfileDataオブジェクトを返します。
TJNUserProfileData *profile = [TenjinSDK getUserProfile];
// Session metrics
NSInteger sessionCount = profile.sessionCount;
long long totalTime = profile.totalSessionTime;
long long avgLength = profile.averageSessionLength;
long long lastSession = profile.lastSessionLength;
long long currentSession = profile.currentSessionDuration;
NSDate *firstSession = profile.firstSessionDate;
NSDate *lastSession = profile.lastSessionDate;
// IAP metrics
NSInteger iapCount = profile.iapTransactionCount;
NSDictionary *revenueByCurrency = profile.iapRevenueByCurrency;
NSArray *productIDs = profile.purchasedProductIDsArray;
// ILRD metrics
double totalAdRevenue = profile.totalILRDRevenueUSD;
NSDictionary *revenueByNetwork = profile.ilrdRevenueByNetwork;利用可能なプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
sessionCount | NSInteger | トータルセッション数 |
totalSessionTime | long long | ミリ秒単位のトータルセッション時間 |
averageSessionLength | long long | ミリ秒単位の平均セッション |
lastSessionLength | long long | ミリ秒単位の最終完了セッション |
currentSessionDuration | long long | 現在のミリ秒単位のアクティブセッション |
firstSessionDate | NSDate? | 最初のセッション日付 |
lastSessionDate | NSDate? | 最終完了セッション日付 |
iapTransactionCount | NSInteger | トータルのIAPカウント |
iapRevenueByCurrency | NSDictionary<NSString*, NSNumber*> | 通貨コードごとの収益 |
purchasedProductIDsArray | NSArray<NSString*> | ソートされたプロダクトID |
totalILRDRevenueUSD | double | トータルのUSD単位の広告収益 |
ilrdRevenueByNetwork | NSDictionary<NSString*, NSNumber*> | ネットワークごとの広告収益 |
Dictionaryとしてプロファイルを取得 #
すべてのメトリックを含むディクショナリーを返します。これにより、簡単にシリアル化できます。
NSDictionary *profileDict = [TenjinSDK getUserProfileAsDictionary];
// Example usage
NSNumber *sessionCount = profileDict[@"session_count"];
NSString *firstSession = profileDict[@"first_session_date"];
NSDictionary *iapRevenue = profileDict[@"iap_revenue_by_currency"];
NSArray *productIds = profileDict[@"purchased_product_ids"];辞書キー(常に表示):
| キー | 型 | 説明 |
|---|---|---|
session_count | NSNumber | トータルセッション |
total_session_time | NSNumber | ミリ秒単位のトータルセッション時間 |
average_session_length | NSNumber | ミリ秒単位の平均セッション |
last_session_length | NSNumber | ミリ秒単位の最終完了セッション |
iap_transaction_count | NSNumber | トータルのIAPカウント |
total_ilrd_revenue_usd | NSNumber | トータルのUSD単位の広告収益 |
辞書キー(条件付き – 利用可能な場合のみ):
| キー | 型 | 説明 |
|---|---|---|
first_session_date | NSString | ISO8601形式の日付 |
last_session_date | NSString | ISO8601形式の日付 |
current_session_length | NSNumber | アクティブセッションの継続時間(ミリ秒) |
iap_revenue_by_currency | NSDictionary | 通貨マップ → 収益 |
purchased_product_ids | NSArray | Sorted array of product IDs |
ilrd_revenue_by_network | NSDictionary | ネットワークマップ → 収益 |
プロファイルのリセット #
ユーザープロファイルデータをすべて消去します(テストやユーザーのログアウトに便利です)。
[TenjinSDK resetUserProfile];セッション構成 #
セッションタイムアウトをカスタマイズする(デフォルトは30分):
TJNUserProfileManager.sessionTimeoutInterval = 600; // 10 minutesヘルパーメソッド #
特定の通貨での収益を取得する:
double usdRevenue = [profile getIAPRevenueForCurrency:@"USD"];特定のネットワークのILRD収益を取得する:
double appLovinRevenue = [profile getILRDRevenueForNetwork:TJNAdNetworkAppLovin];リトライ/キャッシュ #
リクエストが失敗した場合、またはユーザーがインターネットに接続していない場合のイベントとIAPの再試行とキャッシュを有効/無効にできます。これらのイベントは、新しいイベントがキューに追加され、ユーザーが接続を回復した後に送信されます。
setCacheEventSetting(true)
[TenjinSDK setCacheEventSetting:true];Google DMAパラメータ #
すでに CMPが実装されている場合、Google DMAパラメータはTenjin SDKによって自動的に収集されます。 Tenjin SDKでの追加実装は必要ありません。 CMPをオーバーライドしたい場合、または独自の同意メカニズムを使用したい場合は、以下メソッドを使用できます。
setGoogleDMAParametersWithAdPersonalization(bool, bool)
[[TeninSDK sharedInstance] setGoogleDMAParametersWithAdPersonalization:adPersonalization adUserData:adUserData]; Google DMAパラメータの収集を明示的に管理するために、いつでも柔軟にオプトインまたはオプトアウトできます。デフォルト設定はオプトインですが、OptInGoogleDMAまたは OptOutGoogleDMAメソッドを使用して設定を簡単に調整でき、データプライバシー設定を完全に制御できます。
[TeninSDK optInGoogleDMA];
[TeninSDK optOutGoogleDMA]; 