# JavaScript SDK 利用ガイド
TIP
データをインポートする前に、インポート前の準備をご参照ください。
GitHub (opens new window)でiOS SDKソースコードを取得することができます。
JavaScript SDKを実行するにはブラウザが必要で、IE 8以下のバージョンはサポートしていません。
JavaScript SDKサイズは約35KBです。
最新バージョン::v1.4.3
**更新時間:**2021-11-19
# 1. JavaScript SDKの導入
1.JavaScript SDK (opens new window)をダウンロード
圧縮パッケージには2つの仕様のスクリプトが用意されており、必要に応じて必要なスクリプトを選択します。以下に説明する非同期ロードはファイルthinkingdata.min.js
が必要です。同期ロードにはthinkingdata.umd.min.js
が必要です。
2.JavaScript SDKをロード
非同期ロードまたは同期ロードを選択してSDKを使用します。2つの方法は大きな違いがないので、どちらかを選択することができます。
SDKを初期化するときにいくつかの配置パラメーターを渡す必要があります。
appId
:プロジェクトのAPP_IDを設定する必要があり、プロジェクトを申請するときに付与されます。ここに入力してください。serverUrl
:データアップロードのURLを設定する必要があります。
クラウドサービスを使用している場合は、次のURLを入力してください。
https://ta-receiver.thinkingdata.io/sync_js
またはhttp://ta-receiver.thinkingdata.io/sync_js
オンプレミスを使用している場合は、次のURLを入力してください。
http://数据采集地址/sync_js
send_method
:データアップロード方式で、デフォルトは'image'です。図でリクエスト方式を取得し、データをアップロードします。'ajax'に置き換えることができます。useAppTrack
: APPとの連携をオンにするかどうかを表し、APPの中のH5ページデータを収集する時に設定し、true
はオン、デフォルトはfalse
:オフです。詳細はH5とAPP SDKの連携を参照してください。showLog
:アップロードされたデータを印刷するかどうかを表し、オンにするとブラウザコンソールでアップロードされたデータを印刷します。デフォルトはtrue
:オンです。persistence
:ローカルキャッシュタイプで、デフォルトはlocalStorage
です。cookie
として設定可能です。localStorageはサブドメイン間の共有をサポートしていません。同様の要件がある場合は、cookieタイプを選択してください。mode
:実行モードで、デフォルトは通常モードです。debug
またはdebug_only
に設定可能です。詳細はDebugモードをご参照ください。
注意:上記の配置パラメーターは非同期ロードと同期ロードの両方設定が可能で、一般的にはappIdとserverUrlのみを設定して済みます。
# 2、ユーザーIDの設定
JS SDKの初期化が完了すると、SDKはランダムなゲストIDを自動的に生成します。ゲストIDは、ユーザーが未ログイン状態でユーザーを識別するIDになります。ユーザーは既にアカウントIDを持っている場合、login
でユーザーのアカウントIDを設定してください。また、関連のインターフェイスを使用して、デフォルトのゲストIDを変更することもできます。
# 2.1 ゲストIDの設定(任意)
ユーザーが未ログインの状態で製品を使用したり、未ログイン状態でのゲストIDを設定する必要がある場合は、identify:
を呼び出して設定することができます。
ta.identify("123ABCabc");
ゲストIDを取得するには、getDistinctId
を呼び出して取得することができます。
//ゲストIDに戻る.マルチインスタンスの場合はインスタンスを呼びだすゲストIDに戻る.
var distinctId = ta.getDistinctId();
# 2.2 アカウントIDの設定
ユーザーがログインするとき、login:
:を呼び出してユーザーのアカウントIDを設定します。TAプラットフォームはアカウントIDを身分を識別IDとして優先し、設定後のアカウントIDは保存されます。login:
を複数回に呼び出すと以前のアカウントIDが上書きされます:
// ユーザーログインの唯一の識別子,このデータはアップロードデータの#account_idに対応し,"#account_id" の値は"ABC_123456"
ta.login("ABC_123456");
// loginを呼び出してアカウントIDを調整,"#account_id" の値は "XYZ_987654"
ta.login("XYZ_987654");
この方法は、ユーザーがログインしたイベントがアップロードされません
# 2.3 アカウントIDの削除
ユーザーがログアウトした後、logout
てアカウントIDを削除することができます。次のlogout
が呼び出されるまで、ゲストIDを識別IDとして使用します。
// アップロードデータの#account_idを削除し,以降のデータには"#account_id"を含まない。
ta.logout();
この方法は、ユーザーのログアウトイベントがアップロードされません。
# 3、イベントの送信
# 3.1 イベントアップロード
track
を呼び出してカスタムイベントをアップロードすることができます。前の内容をもとに、イベントのプロパティと情報送信の条件を設定することをお勧めします。
ta.track(
"Purchase", //イベントの名称を追跡
{
Item: "商品A",
ItemNum: 1,
Cost: 100,
Elements: ["apple", "ball", "cat"]
} //アップロードしたいイベントプロパティ
);
track
インターフェイスには2つのパラメーターがあり、最初のパラメーターはイベントの名前、2つ目のパラメーターはイベントのプロパティです。- イベントの名前は文字列で、アルファベットで始まり、数字、アルファベット、下線「_」を含むことができ、長さは最大50文字で、アルファベットの大文字と小文字を区別しません。
- イベントのプロパティはJSON形式のオブジェクトで、要素は
Key: Value
の形式で、各要素は1つのプロパティを表します。 - Keyの値はプロパティの名前であり、
String
型で、アルファベットで始まり、数値、アルファベット、下線「_」を含むことができます。長さは最大50文字で大文字と小文字を区別しません。 - Valueはプロパティの値であり、
String
、Number
、Boolean
、Date
、Array
をサポートします。
注: Arrayタイプはv1.3.0からサポートされており、TAプラットフォームv2.5以降と併用する必要があります。
# 3.2 HTML要素クリックイベントの監視
ページ上の要素のクリックイベントを追跡したい場合は、trackLink
を使用してHTML要素を一括監視することができます。
ta.trackLink(
{
tag: ["a", "button"], //HTMLタグ
class: ["class1", "class2"], //カスタムClass名称
id: ["id1", "id2"] //カスタムID名
}, //要素ルールの監視
"click", //イベント名称の追跡
{
production: "产品名",
name: "元素标识名"
} //イベントの属性
);
- 最初のパラメータは、監視する要素のルールです。JSONオブジェクトタイプで、HTMLタグタイプ、Class、およびidに基づいて監視するページ要素を追跡し、少なくとも1つのルートを選択しDOM要素の取得をサポートします。ルールを満たす要素については、イベント監視器で要素のクリックイベントを監視し、要素がクリックされるとイベントがアップロードされ、イベント名とイベントプロパティは最後の2つのパラメーターの値を取得します。
- 2つ目のパラメーターはイベントの名前で、
string
型で、ルールはtrack
インターフェイスのイベント名と一致します。記入は必須です。 - 3つ目のパラメーターはイベントのプロパティで、JSONオブジェクトタイプで、アップロードするプロパティがない場合は空のJSONをアップロードすることができます。
- このインタフェースはイベントプロパティ
'name'
を要素の識別子として、3つめのパラメーターにイベントプロパティ'name'
を設定していない場合、このインタフェースは以下のロジックに従って、監視される要素の特定のプロパティ値を要素識別子として取得します。値は要素のカスタムプロパティ'td-name'
、要素のinnerHTML
、要素のvalueいずれも取得できない場合、'未取得``識別子``'
をアップロードします。
このインターフェイスは、呼び出されたときにルールに準拠した要素にのみイベント監視器を設定するため、インターフェイスが呼び出された後に要素の識別子が変更されたり、ルールに準拠した要素が新たに作成されたりしても、監視したアップロードイベントが変更されません。新しい生成要素を監視するには、ajaxで要素が生成された後にインターフェイスを呼び出します。
# 3.3 パブリックイベントプロパティの設定
データを収集する過程で、いくつかのフィールドは複数のイベントに共用されます。例えば、同じページで発生したすべてのイベントは、このページのページ属性を持ち、ユーザーのアカウント情報はすべてのデータに持つべきです。track
でイベントをアップロードするとき、これらのプロパティは毎回設定する必要があります。このようなプロパティに対して、パブリックプロパティでインタフェースを設定し、統一することができます。
# 3.3.1 パブリックプロパティの種類
パブリックプロパティの設定方法を説明する前に、3種類のパブリックプロパティの特性を理解し、実際のニーズに応じて適切なタイプを選択する必要があります
- ページパブリックプロパティ:現在のページに有効で優先度が高い。SDKを再初期化すると、ページパブリックプロパティは空になります。固定値のみ設定可能です。
- 動的パブリックプロパティ:現在のページにのみ有効で、優先度はページパブリックプロパティの次です。SDKを再初期化した後、動的パブリックプロパティを再設定する必要があり、動的変数を設定することができます。
- 静的パブリックプロパティ:すべてのページに有効で、優先度が最も低く、キャッシュをオンにした場合、localStorageまたはcookieに保存されます。固定値のみ設定可能です。
# 3.3.2 ページパブリックプロパティの設定
ページの名前やアドレスなど、一部のページの静的プロパティに対して、このページでトリガーされるすべてのイベントにこのプロパティを追加することができます。このようなページ内のすべてのイベントに適用する静的プロパティはsetPageProperty
を使用して設定することができます。setPageProperty
を使用して設定したパブリックプロパティは現在のページにのみ有効です。
// ページIDをページパブリックプロパティに設定.このページでトリガーしたすべてのイベントは以下のプロパティを持つ.
ta.setPageProperty({ page_id: "page10001" });
現在のページのページパブリックプロパティを取得するには、getPageProperty
を呼び出して取得することができます。
// 現在のページのページパブリックプロパティを取得
var pageProperty = ta.getPageProperty();
# 3.3.3 ページ動的パブリックプロパティの設定
v1.1.0では、ページ動的パブリックプロパティの特性が新たに追加されました。 setDynamicSuperProperties
を動的パブリックプロパティのコールバック関数を設定し、SDKはイベントアップロード時にコールバック関数をトリガーし、返したJSONオブジェクトをイベントプロパティに追加します。
setDynamicSuperProperties
のパラメーターは関数であり、JSONオブジェクトを返す必要があります。書式はイベントプロパティと一致する必要があります。
// 動的パブリックプロパティを設定.イベントアップロード時にコールバック関数をトリガーし,返したJSONオブジェクトをイベントプロパティに追加
ta.setDynamicSuperProperties(function() {
var d = new Date();
d.setHours(10);
return { date: d };
});
/*
ta.setDynamicSuperProperties(
()=>{
var d = new Date();
d.setHours(10);
return {'date': d}
});
*/
# 3.3.4 静的パブリックプロパティの設定
ユーザーの加入ルート、ニックネーム、IDなど重要なプロパティは、イベントごとに設定する必要があります。setSuperProperties
を呼び出して、静的パブリックイベントプロパティを設定することができます。キャッシュをオンにすると(デフォルトはオン)、静的パブリックプロパティはlocalStorage
またはcookie
に保存されます。
静的パブリックプロパティのパラメーターはJSONオブジェクトであり、書式はイベントプロパティと一致する必要があります。
// パブリックイベントプロパティを設定,すべてのデータイベントにこれらのプロパティを持つ.
ta.setSuperProperties({ channel: "渠道名", user_name: "用户名" });
すべての設定済の静的パブリックプロパティを取得するにはgetSuperProperties
、静的パブリックプロパティを削除するにはunsetSuperPropert``y
、静的パブリックプロパティをすべて削除するにはclearSuperProperties
、すべてのパブリックプロパティを取得するにはgetSuperProperties
を呼び出すことができます。
// 静的パブリックイベントプロパティを取得
var superProperties = ta.getSuperProperties();
// 1個の静的パブリックイベントプロパティを削除,例えば以前設定したプロパティ'channel'を削除,それ以降のデータはこのプロパティを含まない.
ta.unsetSuperProperty("channel");
// 静的パブリックイベントプロパティを削除
ta.clearSuperProperties();
# 3.4 イベント時間の記録
timeEvent
を呼び出して時間を記録し、記録したいイベントの名称を設定します。イベントをアップロードすると時間記録が終了し、SDKは自動的にイベントのイベントプロパティに#duration
プロパティを追加して時間の長さを表します。単位は秒でtimeEvent
はページを跨いだ時間記録をサポートしています。
// 時間記録開始,記録するイベントは'Purchase'
ta.timeEvent("Purchase");
// その他のコード
// イベントアップロード,時間記録終了,イベント'Purchase'には時間の長さのプロパティを表すプロパティ"#duration"を持つ
ta.track("Purchase", { Item: "商品A", ItemNum: 1, Cost: 100 });
# 3.5 自動収集ページビューイベント
TAは自動的にページビューイベントを収集するインターフェースを提供しています。次のコードを使用することで、JS SDKは自動的にユーザーのページビューイベントをアップロードします。
ta.quick("autoTrack");
# 4、ユーザープロパティ
# 4.1 ユーザープロパティの設定(userSet)
通常のユーザープロパティは、userset
を呼び出して設定することができます。このインターフェイスを使用してアップロードしたプロパティは、元のプロパティ値を上書きします。過去にこのユーザープロパティが存在しなかった場合は、新しいユーザープロパティが作成され、アップロードしたプロパティ型と同様です。
// ユーザープロパティを設定.会員レベルを設定.
ta.userSet({ vip_level: "钻石会员" });
# 4.2 ユーザープロパティの初期化(userSetOnce)
アップロードするユーザープロパティが1回しか設定しない場合、usersetOnce
を呼び出して設定することができます。このプロパティは既に値がある場合、この情報が無視されます。
// ユーザー名が設定済の場合,設定を無視.存在しない場合,受信値を設定
ta.userSetOnce({ UserName: "TA" });
# 4.3 ユーザープロパティの累積(userAdd)
数値型プロパティをアップロードするには、user``A``dd
を呼び出して、そのプロパティに対して累積操作を行います。そのプロパティが設定されていない場合は、0を割り当ててから計算します。負の値が渡される場合、減算に相当します。
// 支払いを例として、ユーザーが支払いするたびにこのインターフェースを呼び出し,フィールド'total_revenue'は毎回支払金額の累積処理を行う
しta.userAdd({ total_revenue: 50 });
# 4.4 ユーザープロパティのリセット(userUnset)
ユーザーのユーザープロパティ値を削除したい場合、user``U``nset
を呼び出して指定したプロパティを空にすることができます。そのプロパティはクラスターで作成されていない場合、user``U``nset
がそのプロパティを作成しません。
// ユーザープロパティ名userPropertykeyのユーザープロパティ値を削除,NULLに設定
ta.userUnset("userPropertykey");
# 4.5 ユーザーの削除(userDel)
あるユーザーを削除したい場合、user``Del
を呼び出してユーザーを削除することができます。それ以降、このユーザーのユーザープロパティを参照することができなくなるが、発生したイベントを参照することができます。
ta.userDel();
# 4.6 Array型のデータへの要素追加(userAppend)
v1.3.0以降、userAppend
を呼び出してArray(List)タイプのユーザーデータに要素を追加することができます。
ta.userAppend({ Elements: [("a": 1), ("b": 2)] });
注:この機能は、TAプラットフォーム2.5以降と併用する必要があります。
# 5、その他の機能
# 5.1 マルチインスタンス
v1.1.0では、マルチインスタンスの機能が追加され、initInstance
メソッドを呼び出すことで、サブインスタンスオブジェクトを作成することができます。パラメーターはサブインスタンス名です。この名称でサブインスタンスのインターフェイスを呼び出すことができます。
// インスタンスnewInstanceを作成
ta.initInstance("newInstance");
// サブインスタンスにdistinct_idを設定し、イベントtest_eventを送信
ta.newInstance.identify("new_distinct_id");
ta.newInstance.track("test_event");
デフォルトでは、サブインスタンスはメインインスタンスと同じ設定(appId
、serverUrl
など)を採用します。また、デフォルトでサブインスタンスはローカルキャッシュをオンにしません。
サブインスタンスで単独でパラメーターを設定するには、初期化時に構成情報を渡し、構成情報に異なるappId
値を渡すことで、異なるプロジェクトにデータをアップロードすることができます。
// サブインスタンスの設定パラメーター
var param = {
appId: "debug-appid",
serverUrl: "ANOTHER_SERVER_URL",
persistenceEnabled: true, // 开启子实例的本地缓存,子实例本地缓存根据子实例名称 name 区分
send_method: "image",
showLog: true
};
// サブインスタンスを初期化
ta.initInstance("anotherInstance", param);
//メインインスタンスプロジェクトにデータをアップロード
ta.track("Event");
//サブインスタンスプロジェクトにデータをアップロード
ta.anotherInstance.track("Event");
メインインスタンスとサブインスタンスのID体系は共通しておらず、インスタンスごとにユーザーIDを設定することができます。以下のケースはこの特性を通じて、友人を招待するイベントの招待者と被招待者に、それぞれ招待成功と被招待イベントをアップロードしました。
//メインインスタンスは招待された新しいユーザー,サブインスタンスは招待者
ta.login("invitee");
ta.anotherInstance.login("inviter");
//新しいユーザーは招待イベントを起こす.
ta.track("be_invited");
//招待者は新しいユーザーを招待するイベントを起こす.
ta.anotherInstance.track("invite_new_user");
# 5.2 デバイスIDの取得
v1.1.0では、デバイスID(プリセットプロパティ#device_id
)のインターフェースを追加し、getDeviceId
を呼び出すことでデバイスIDを取得することができます:
var deviceId = ta.getDeviceId();
// デバイスIDをゲストIDに設定する場合、以下のように呼び出す.
// ta.identify(ta.getDeviceId());
# 5.3 デバッグモード
v1.4.0以降では、初期設定でmodeパラメーターを設定することで、Debugモードを有効にすることができます。Debugモードは開発段階のデータ形式検証にのみ使用され、オンライン環境でDebugモードをオンにしないでください。
現在のSDKインスタンスは、2つのデバッグモードをサポートしています。
- "debug": Debugインタフェースを介したデータのアップロードと検証
- "debug_only":検証データのみ、格納しない
Debugはクラスターのパフォーマンスとデータ収集の安定性に影響するため、指定されたデバイスのみDebugモードをオンにすることができます。WebのDebugが有効で、且つSDKがランダムに生成したデバイスIDはTAバックグラウンドの埋め込みポイント管理関連ページで設定したデバイスのみDebugモードを有効にすることができます。
デバイスIDは、次の方法で取得することができます。
- TAプラットフォームのイベントデータの#device_idプロパティ
- コンソールログでアップロードされたイベントデータの#device_idフィールド
# 5.4 データアップロードの一時停止/停止
v1.4.2では、SDKインスタンスのデータアップロードを停止する機能が追加されました。2つのSDKインスタンスのデータアップロードを停止するインターフェースがあります。
# 5.4.1 SDKアップロードの一時停止(enableTracking)
ユーザーがテスト環境にいる、またはテストアカウントでログインしているなどの場合、データの収集やアップロードを一時的に停止したいことがあります。その場合、次のインターフェイスを呼び出してSDKインスタンスのアップロードを一時的に停止することができます。
特定のインスタンス(メインインスタンスとライトインスタンスを含む)を通してenableTracking
を呼び出し、false
に取り込むことで、SDKインスタンスのアップロードを一時停止することができます。そのインスタンスに設定済の#distinct_id
、#account_id
、パブリックプロパティなどが保持されます。そのインスタンスが収集したがアップロード未完了のデータは引き続きアップロードされます。そのインスタンスはそれ以降新しいデータを収集したりアップロードしたりすることはできません。ゲストID、アカウントID、パブリックプロパティなどを設定することはできませんが、設定済のパブリックプロパティ、デバイスID、ゲストID、アカウントIDなどの情報を読み取ることはできます。
インスタンスの停止状態はenableTracking
が呼び出されるまでローカルのキャッシュに保存されます。enableTracking
を呼び出して、true
に取り込むと、SDKインスタンスはデータ収集とアップロードを再開します。ライトインスタンスはキャッシュに保存されないため、アプリを開くたびにライトインスタンスの一時停止状態は保持されず、アップロードが再開されます。
// アップロードを一時停止
instance.enableTracking(false);
// アップロードを再開
instance.enableTracking(true);
# 5.4.2 SDKアップロードの中止(optOutTracking)
GDPRが適用される地域でユーザーがデータ収集権限を提供しないなどの特殊の場合、次のインターフェイスを呼び出してSDKインスタンスの機能を完全に停止することができます。
optOutTracking
はメインインスタンスからしか呼び出すことができません。enableTracking
との最大の違いは、インスタンスのローカルキャッシュ(ゲストID、アカウントID、パブリックプロパティ、およびアップロードしていないデータキューを含む)が削除されます。その後、インスタンスの収集とアップロード機能をオフにします。
// アップロードを中止し,ローカルキャッシュをリセット
instance.optOutTracking();
インスタンスの停止状態もoptInTracking
が呼び出されるまでローカルキャッシュに保存されます。それ以降はアップロードを続けることができますが、新しいインスタンスとなります。
// アップロードを再開
instance.optInTracking();
# 7、関連のプリセットプロパティ
次のプリセットプロパティは、JavaScript SDKのすべてのイベント(自動収集イベントを含む)に含まれるプリセットプロパティです。
プロパティ名 | 日本語 | 説明 |
---|---|---|
#ip | IPアドレス | ユーザーのIPアドレス。TAはユーザーの位置情報を取得。 |
#country | 国 | ユーザーの国。IPアドレスに基づいて生成。 |
# country_code | 国コード | ユーザーがいる国の国コード(ISO 3166-1 alpha-2、2大文字のアルファベット)。IPアドレスに基づいて生成。 |
#province | 省 | ユーザーがいる省。IPアドレスに基づいて生成。 |
#city | 都市 | ユーザーがいる都市。IPアドレスに基づいて生成。 |
#device_id | デバイスID | ユーザーのデバイスID |
#screen_height | 画面の高さ | ユーザーのデバイスの画面高さ。例:1920 |
#screen_width | 画面の幅 | ユーザーのデバイスの画面の幅。例:1080 |
#lib | SDKタイプ | SDKのタイプ。 JavaScript など。 |
#lib_version | SDKバージョン | SDKのバージョン。 |
#os | オペレーティングシステム | Android、iOSなど |
#browser | ブラウザの種類 | ユーザーが使用するブラウザの種類。 Chrome、Firefoxなど |
#browser_version | ブラウザバージョン | ユーザーが使用するブラウザのバージョン。Chrome 61.0、Firefox 57.0など |
#url | ページアドレス | 現ページのアドレス。 |
#url_path | ページルート | 現ページへのルート |
#referrer | 前ページアドレス | 前ページのアドレスに戻る。 |
#referrer_host | 前ページルート | 前ページのルートに戻る。 |
#title | ページタイトル | 現ページのタイトル。 |
#zone_offset | タイムゾーンオフセット | UTC時間に対するデータ時間のオフセット時間数 |
# 6.1 プリセットプロパティの取得
サーバー側の埋め込みポイントにアプリ側のプリセットプロパティが必要な場合、この方法でアプリ側のプリセットプロパティを取得してサービス側に渡します。
//プロパティオブジェクトを取得
var presetProperties = ta.getPresetProperties();
//イベントプリセットプロパティの生成
var properties = presetProperties.toEventPresetProperties();
/*
{
"#os":"Mac OS X",
"#screen_width":1920,
"#screen_height":1080,
"#browser":"chrome",
"#browser_version":"91.0.4472.114",
"#device_id":"17a3858fafd9b4-0693d07132e2d1-34657600-2073600-17a3858fafea9b",
"#zone_offset":8
}
*/
//プリセットプロパティの取得
var os = presetProperties.os;//os種類,例:Android
var screenWidth = presetProperties.screenWidth;//画面の幅
var screenHeight = presetProperties.screenHeight;//画面の高さ
var browser = presetProperties.browser;//ブラウザの種類
var browserVersion = presetProperties.browserVersion;//ブラウザバージョン
var deviceId = presetProperties.deviceId;//デバイスID
var zoneOffset = presetProperties.zoneOffset;//タイムゾーンオフセット
IP、国の都市情報はサーバー側で解析して生成されるので、クライアント側はこれらのプロパティを取得するインタフェースを提供しません。
# 7、高度な機能
v1.4.0以降、SDKは、初期イベント、更新可能なイベント、書き換え可能なイベントとの3つの特殊イベントのアップロードをサポートしています。この3つのイベントは、TAシステム2.8以降のバージョンと併用する必要があります。特殊イベントは特定の場面でしか適用されないので、TAのクライアントとアナリストのもとに、特殊イベントのアップロードを行うようにしましょう。
# 7.1 初期イベント
初期イベントとは、あるデバイスや他のディメンションのIDに対して、一度しか記録されないイベントです。たとえば、特定のブラウザで最初に発生したイベントを記録したい場合があります(TA SDKでランダムで生成された#device_idによって一意性を判断)。初期イベントとしてアップロードすることができます。
// 例:初期イベントをアップロード. イベント名は DEVICE_FIRSTに仮定.
ta.trackFirstEvent({
eventName: "DEVICE_FIRST",
properties: { INT_PROPERTY: 0 }
});
デバイス以外のディメンションで初回かどうかを判断するには、初期イベントにFIRST_CHECK_IDを設定します。たとえば、あるアカウントの初期イベントを記録する必要がある場合、アカウントIDを初期イベントのFIRST_CHECK_IDに設定します。
// 例:初期イベントをアップロード. イベント名は USER_FIRSTに仮定.
// ユーザーIDを初期イベントのFIRST_CHECK_IDとして設定
ta.trackFirstEvent({
eventName: "USER_FIRST",
firstCheckId: "YOUR_ACCOUNT_ID",
properties: { INT_PROPERTY: 0 }
});
注意:サーバー側で初回かどうかをチェックするため、初期イベントはデフォルトで1時間遅れて格納します。
# 7.2 更新可能なイベント
更新可能なイベントを通して、特定の場面でのイベントデータの変更要件を満たすことができます。更新可能なイベントは、イベントを識別するIDを指定し、更新可能なイベントオブジェクトの作成時に読み込むする必要があります。TAプラットフォームは、イベント名とイベントIDに基づいて更新するデータを決定します。
// 例: 更新可能なイベントをアップロード,イベント名は UPDATABLE_EVENTに仮定
ta.trackUpdate({
eventName: "UPDATABLE_EVENT",
properties: { status: 3, price: 100 },
eventId: "test_event_id"
});
// イベントプロパティアップロード後に status は 3, price は 100
ta.trackUpdate({
eventName: "UPDATABLE_EVENT",
properties: { status: 5 },
eventId: "test_event_id"
});
// イベントプロパティアップロード後に status は 5に更新され, price は変わらない
# 7.3 書き換え可能なイベント
書き換え可能なイベントは更新可能なイベントと似ており、違いとしては書き換え可能なイベントは最新のデータで過去データを完全に上書きするので、過去データを削除し、最新のデータを格納することに相当します。TAプラットフォームは、イベント名とイベントIDに基づいて更新するデータを決定します。
// 例: 書き換え可能なイベントをアップロードし,イベント名は OVERWRITE_EVENTに仮定
ta.trackOverwrite({
eventName: "OVERWRITE_EVENT",
properties: { status: 3, price: 100 },
eventId: "test_event_id"
});
// イベントプロパティアップロード後に status は 3, price は 100
ta.trackOverwrite({
eventName: "OVERWRITE_EVENT",
properties: { status: 5 },
eventId: "test_event_id"
});
// イベントプロパティアップロード後に status は 5に更新され, price は削除される
注意:更新可能なイベントと書き換え可能なイベントは、デフォルトでデバイスの現在時間を使用して履歴データのイベント時間を更新します。イベント時間を指定したい場合は、更新可能なイベントを報告するときにイベント時間を指定します。
// trackUpdateを例とし,Date型のeventTimeを取り込み、イベント時間を指定
ta.trackUpdate({
eventName: "UPDATABLE_EVENT",
properties: { status: 5 },
eventId: "test_event_id",
eventTime: realEventTime
});
# ChangeLog
省略します。詳細は中国語版をご参照ください。