Cordova Plugin は、TD Android および iOS mobile SDK を使用して Ionic app プラットフォーム上で event を tracking できるようにします。td-cordova-sdk は、ネイティブの iOS および Android SDK を内部で使用して、Treasure Data と Cordova app 間のブリッジを提供する module です。
より詳細なドキュメントは、td-android-sdk および td-ios-sdk の GitHub リポジトリでご覧いただけます。
Treasure Data では、本番環境で使用を開始する前に、Treasure Data JavaScript SDK version 3 を使用してサイトでの新しい機能の実装を検証することをお勧めします。cookie の管理方法が異なります。これらの記事の多くを参照する際は、提案されている event collector と Treasure Data JavaScript SDK version 3 の呼び出しをソリューションで定義する必要があることに注意してください。例えば、//cdn.treasuredata.com/sdk/2.5/td.min.js を //cdn.treasuredata.com/sdk/3.0.0/td.min.js に変更します。
- Plugin のインストール
- Plugin メソッドの使用
- Plugin の設定
- Local Buffer への Event の追加
- Buffer された Event の TreasureData への Upload
- Custom Event の追加と Upload
- App Lifecycle Event の自動 Tracking (Android のみ)
- In-App Purchase Event の自動 Tracking
- 各 Event への Device の UUID の自動追加
- 各 Event Record への UUID の自動追加
- 各 Event Record への Advertising Id の自動追加
- 各 Event への Device Model 情報の自動追加
- 各 Event への Application Package Version 情報の自動追加
- 各 Event への Locale 設定情報の自動追加
- Server Side Upload Timestamp の使用
- Session の Tracking の開始/終了
- Profile API
- Debug Log の有効化と無効化
- Retry Uploading の有効化と無効化
- Device と OS のサポート
以下のコードを使用して Cordova plugin をインストールします。
cordova plugin add td-cordova-sdkplugin をインストールした後、cordova.plugins.TreasureDataPlugin namespace を通じてメソッドにアクセスできます。
以下のフィールドを正しい情報で編集します。
TreasureDataPlugin.setup({
apiEndpoint: '<https://in.treasure-data.com',> // またはその他のサポートされている endpoint
encryptionKey: '<xxxxx>',
apiKey: '<xxxxx>', /// Write-only API key を使用してください
defaultDatabase: '<default_database>',
defaultTable: '<default_table_name>',
cdpEndpoint: '<https://cdp.in.treasuredata.com'> // またはその他の cdp endpoint
})以下の例に示すように、特定の database と table に custom event を追加できます。event をインポートする database と table を指定します。database 名と table 名の合計長は 129 文字未満である必要があります。
const customEvent = {event: 'Custom event', data: new Date().getSeconds()};
TreasureDataPlugin.addEvent(customEvent, 'table', 'database');
// または
TreasureDataPlugin.addEvent(customEvent, 'table');database パラメータが指定されていない場合、TreasureDataPlugin.setup({...}) の defaultDatabase 設定が代わりに使用されます。
オプションとして、addEvent が成功したか失敗したかを知る必要がある場合は、代わりに addEventWithCallback を使用します。database パラメータとして null または undefined を渡すことができ、TreasureDataPlugin.setup({...}) の defaultDatabase 設定が代わりに使用されます。
const customEvent = {
event: 'Custom event',
data: new Date().getSeconds()
};
TreasureDataPlugin.addEventWithCallback(customEvent, 'table', 'database', () => {
console.log('Add Event Successfully');
}, (errorCode, errorMessage) => {
console.log('Add Event Failed', errorCode, errorMessage);
});uploadEvent 関数を使用して、いつでもすべての buffer された event を Treasure Data に upload できます。
TreasureDataPlugin.uploadEvents();オプションとして、uploadEvents が成功したか失敗したかを知る必要がある場合は、代わりに uploadEventsWithCallback を使用します。
TreasureDataPlugin.uploadEventsWithCallback(() => {
console.log('Upload events successfully')
}, (errorCode, errorMessage) => {
console.log('Failed to upload events', errorCode, errorMessage);
});Custom event の追加と upload は、デフォルトで有効になっています。この機能はいつでも無効化および有効化できます。
custom event を無効化するには:
TreasureDataPlugin.disableCustomEvent();custom event を有効化するには:
TreasureDataPlugin.enableCustomEvent();この機能は Android でのみ利用できます。App lifecycle event の tracking はオプションであり、デフォルトでは有効になっていません。以下を使用して app lifecycle event を自動的に tracking できます:
TreasureDataPlugin.enableAppLifecycleEvent();TreasureDataPlugin.disableAppLifecycleEvent();app lifecycle event の tracking が有効かどうかを確認するには:
TreasureDataPlugin.isAppLifecycleEventEnabled((enabled) => {
console.log('Tracking app lifecycle event is enabled?', enabled ? 'yes' : 'no');
})この機能の API を呼び出す際にプラットフォームをチェックする必要はありません。単に no-op になります。 In-app purchase event の tracking はオプションであり、デフォルトでは有効になっていません。
in-app purchase event を自動的に tracking するには:
TreasureDataPlugin.enableInAppPurchaseEvent();in-app purchase event の tracking を無効化するには:
TreasureDataPlugin.disableInAppPurchaseEvent();in-app purchase eventのtrackingが有効かどうかを確認するには:
TreasureDataPlugin.isInAppPurchaseEventEnabled((enabled) => {
console.log('Tracking in app purchase event is enabled?', enabled ? 'yes' : 'no');
})以下の呼び出しにより、デバイスのUUIDが各イベントに自動的に追加されます。この値はアプリケーションがアンインストールされるまで変更されません。
TreasureDataPlugin.enableAutoAppendUniqId();デバイスのUUIDを各イベントに自動的に追加するのを無効にするには:
TreasureDataPlugin.disableAutoAppendUniqId();デバイスのUUIDをリセットするには:
TreasureDataPlugin.resetUniqId();以下の呼び出しにより、各イベントレコードにUUIDが自動的に追加されます。各イベントは異なるUUIDを持ちます。
TreasureDataPlugin.enableAutoAppendRecordUUID();各イベントレコードへのUUIDの自動追加を無効にするには:
TreasureDataPlugin.disableAutoAppendRecordUUID();以下の呼び出しにより、Advertising Idが各イベントレコードに自動的に追加されます。
TreasureDataPlugin.enableAutoAppendAdvertisingIdentifier();
// またはカスタムカラムを指定
TreasureDataPlugin.enableAutoAppendAdvertisingIdentifier('custom_aaid_column');Androidでは、この機能を動作させるためにGoogle Play Service Ads (Gradle com.google.android.gms:play-services-ads)を依存関係としてインストールする必要があります。iOSでは、この機能を動作させるためにLink Binary With LibrariesビルドフェーズでAd Supportフレームワークをリンクする必要があります。
ユーザーがデバイスでLimit Ad Tracking機能を有効にしている場合、Treasure DataはAdvertising Idをレコードに追加しません。
Advertising Idの取得が非同期であるため、各レコードへのadvertising IDの追加を有効にした後、Advertising Idがレコードに追加できるようになるまで時間がかかる場合があります。ただし、Treasure DataはAdvertising Idをcacheするため、Advertising Idの取得taskの完了を待たずに次のイベントに追加できます。
Advertising Idの追加を無効にするには:
TreasureDataPlugin.disableAutoAppendAdvertisingIdentifier();デバイスモデル情報を各イベントに自動的に追加するには:
TreasureDataPlugin.enableAutoAppendModelInformation();デバイスモデル情報の追加を無効にするには:
TreasureDataPlugin.disableAutoAppendModelInformation();アプリケーションバージョン情報を各イベントに自動的に追加するには:
TreasureDataPlugin.enableAutoAppendAppInformation();アプリケーションバージョン情報の各イベントへの自動追加を無効にするには:
TreasureDataPlugin.disableAutoAppendAppInformation();ロケール設定情報を各イベントに自動的に追加するには:
TreasureDataPlugin.enableAutoAppendLocaleInformation();ロケール設定情報の各イベントへの自動追加を無効にするには:
TreasureDataPlugin.disableAutoAppendLocaleInformation();アプリケーションがaddEventを呼び出したときに記録されるclient deviceの時刻に加えて、server sideのupload timestampの記録を有効にしたい場合は、以下を使用します:
TreasureDataPlugin.enableServerSideUploadTimestamp();
// またはカスタムカラムを指定
TreasureDataPlugin.enableServerSideUploadTimestamp('custom_server_side_upload_timestamp_column');server side upload timestampの記録を無効にするには:
TreasureDataPlugin.disableServerSideUploadTimestamp();sessionのtrackingを開始するには:
TreasureDataPlugin.startSession(sessionTable, sessionDatabase);現在のsessionのtrackingを終了するには:
TreasureDataPlugin.endSession(sessionTable, sessionDatabase);この機能はデフォルトではアカウントで有効になっていません。
この例に示すように、TreasureDataのsharedInstanceのプロパティとしてcdpEndpointを設定する必要があります:
var plugin = cordova.plugins.TreasureDataPlugin;
function success(response) {
/* response format => [
{
"segments": ["segment_id"],
"attributes": {
"age": ##,
"td_client_id": "xxxxxxxxxxxxx"
},
"audienceId": "audience_id",
"key": { "name": "user_id", "value": "xxxxxxx" }
},
{
"segments": ["segment_id", "segment_id"],
"attributes": {
"im_segments": "xxxxxxxxxxxx",
"work_style_per_family": "xxxxxxxx"
},
"audienceId": "audience_id",
"key": {
"name": "td_client_id",
"value": "xxxxxxxxxxxxx"
}
}
] */
// yay
}
function error() {
// nay
}
plugin.fetchUserSegments(
["audience_id","audience_id"],
{
user_id: "xxxxx",
td_client_id: "xxxxx"
},
success,
error
);debug logを有効にするには:
TreasureDataPlugin.enableLogging();debug logを無効にするには:
TreasureDataPlugin.disableLogging();retry uploadingを有効にするには:
TreasureDataPlugin.enableRetryUploading();retry uploadingを無効にするには:
TreasureDataPlugin.disableRetryUploading();サポートされているデバイスとOSの詳細については、native SDKsのリポジトリを参照してください。