# ReactNative SDK使用ガイド
このガイドでは、React NativeでSDKの機能を使用する方法について説明します。
最新バージョンバージョン: 2.1.2
更新時間は: 2021-04-16
# I.統合SDK
React-native-thinking-data自動と手動の2つの統合方法があり、自動統合を推奨
# 1.1自動統合
# 1. npm react-native-thinking-dataモジュールのインストール
npm install react-native-thinking-data --save
# 2.リンクリアクションネイティブシンキングデータ模範
react-native link react-native-thinking-data(React Native 0.60 以下版本)
cd ios&&pod install(React Native 0.60 以上版本)
# 1.2マニュアルインテグレーション
# 1. npm react-native-thinking-dataモジュールのインストール
npm install react-native-thinking-data --save
# 2.Android&iOSプラットフォームの設定
- iOS
- X Codeで、プロジェクトナビゲーターで、「ライブラリ」を右クリック
ライブラリ``[プロジェクト名]にファイルを追加
- に移動し
ノードモジュール``リアクションネイティブシンキングデータ
を追加しRNThinking D
- X Codeでは、プロジェクトナビゲーターで、プロジェクトを選択します。を追加
libRNThinking Data. a
プロジェクトのビルドフェーズ``Link Binary With Library
- プロジェクトを実行する(
Cm2+R
)
- Android
- 開きます
アンドロイド/アプリ/src/メイン/ジャバ/[を開きます。。。/MainActivity.java
- 追加
取り込みにRNThinking DataPackage;を
ファイル上部の取り込みに - を追加
新しいRNThinking DataPackage()
で返されるリストにGet Packages()
メソッド
- Android/Android/Android/Androidに以下の行を追加し
settings.gradle/Android/Android
に以下の行を追加します。
include ':react-native-thinking-data'
project(':react-native-thinking-data').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-thinking-data/android')
- アンドロイド/アプリ/の依存関係ブロック内に以下の行
アンドロイド/アプリ/の依存関係ブロック内に以下の行を挿入します
ま
compile project(':react-native-thinking-data')
インポートが完了したら、ReactNativeでSDK関連機能
# 第二に、ユーザIDを設定
# 2.1ゲストIDの設定(オプション)
アプリがユーザーごとに独自のゲストID管理システムを持っている場合は、identify
を呼び出してゲストIDを設定できます
RNThinkingAnalyticsModule.identify({
appid: "YOUR_APPID",
distinctId: "distinctId1"
});
# 2.2アカウントIDの設定
ユーザーがログインすると、login
を呼び出してユーザーのアカウントIDを設定し、アカウントIDを設定した後、アカウントIDを識別IDとして設定し、設定したアカウントIDはlogoutを呼び出すlogout
まで保持します
RNThinkingAnalyticsModule.login({ appid: "YOUR_APPID", loginId: "account_id" });
login
は何度も呼び出すことができ、呼び出しのたびに、着信したアカウントIDが以前に保存したIDと一致するかどうかを判断し、一致する場合は呼び出しを無視し、一致しない場合は以前のIDを上書きします。
この方法では、ユーザーがログインしたイベントはアップロードされません
# 2.3アカウントIDのクリア
ユーザーがログアウトした後、ログアウト
てアカウントIDをクリアできます
。次回ログインする前に、ゲストIDをIDとして使用します
RNThinkingAnalyticsModule.logout({ appid: "YOUR_APPID" });
ユーザーがアカウントをキャンセルした場合など、明示的なログアウトイベント時にログアウト
、明示的なログアウトイベント時にログアウトを呼び出すことをお勧めします。
この方法では、ユーザーが登録したイベントはアップロードされません
# 三、事件を送る
# 3.1送信イベント
を呼び出しtrack
てイベントをアップロードできます。このインターフェイスはSDKのtrack
インターフェイスを呼び出します。詳細な使用方法はSDKドキュメントのtrack
インターフェイスの紹介を参照してください
RNThinkingAnalyticsModule.track({
appid: "YOUR_APPID",
eventName: "rn_texttrack"
});
RNThinkingAnalyticsModule.track({
appid: "YOUR_APPID",
eventName: "rn_texttrack",
properties: {
KEY_NUMBER: 1.02,
KEY_STRING: "name",
KEY_LIST: [1, 2, 3],
KEY_BOOL: true,
KEY_DateTime: "2020-05-12 06:27:18.371"
},
time: new Date().getTime(),
timeZone: "UTC"
});
eventName
はイベントのイベント名で、プロパティ
はイベントのすべての属性で、Android SDK v2.2.0でイベントトリガー時間とタイムシフトを設定するメソッドオーバーロードが追加され、着信time
型のパラメータをサポートしてイベントトリガー時間を設定し、timeZone
でタイムシフトを設定します。このパラメーターを渡さないと、track
呼び出されたときのネイティブ時刻とオフセットがイベントトリガー時刻およびタイムゾーンオフセットとして取得されます。
注意:イベントはトリガー時間を設定できますが、受信側は次のような制限をして、相対サーバー時間の10日前から3日後までのデータしか受信しません。期限を超えたデータは異常データとみなされ、データ全体が入庫できません。
Android SDK v2.3.1以降、SDKのデフォルトのタイムゾーンを設定することで、複数のタイムゾーンでのイベント時間を揃えることができます。Android SDK使用ガイド設定してください。Android SDK v2.5.0以降では、SDKタイムインターフェイスのキャリブレーションを使用して、サービス側の時間を使用してデータ収集を完了できます。キャリブレーションタイムのセクションを参照キャリブレーションタイムのセクション。
# 3.2パブリックイベントプロパティの設定
ユーザーのメンバーシップレベル、ソースチャネルなどの重要な属性は、イベントごとに設定する必要があります。共通イベントプロパティとは、各イベントに含まれるプロパティのことです。setSuperPropertiesを呼び出し呼び出し
て共通イベントプロパティを設定できます。イベントを送信する前に、共通イベントプロパティを設定することをお勧めします。
共通イベント属性のフォーマット要件は、イベント属性と一致します。
RNThinkingAnalyticsModule.setSuperProperties({
appid: "YOUR_APPID",
properties: { superKey: 1, superKey2: "value" }
});
パブリックイベントプロパティを削除する必要がある場合は、unsetSuperProperty``呼び出して指定されたパブリックイベントプロパティをクリアできます
RNThinkingAnalyticsModule.unsetSuperProperty({
appid: "YOUR_APPID",
properties: "superKey"
});
RNThinkingAnalyticsModule.clearSuperProperties({ appid: "YOUR_APPID" });
# 3.3記録された事件の長さ
を呼び出してtimeEvent
タイミングを開始し、タイミングを設定するイベント名を設定します。イベントをアップロードすると、自動的にイベントプロパティに#duration
というプロパティを追加して、レコードの長さを秒単位で表します。
RNThinkingAnalyticsModule.timeEvent({
appid: "YOUR_APPID",
eventName: "track"
});
渡されたパラメータは、時間を記録する必要があるイベントのイベント名で、イベントがトリガーされるとタイミングが停止し、#duration
というタイミング属性がイベントに記録され
RNに設定されたタイミングでAndroid SDKがアップロードした対応イベントを記録でき、同様にAndroid SDKに設定されたタイミングでRNにアップロードした対応イベント
# 四、ユーザー属性
TAプラットフォームで現在サポートされているユーザープロパティ設定インターフェイスはuserSet
、userSetOnce
、userAdd
、userUnset
、userDel
とuserAppendです
# 4.1ユーザーセット
一般的なユーザープロパティの場合は、userSet
を呼び出して設定できます。このインターフェイスを使用してアップロードされたプロパティは、元のプロパティ値を上書きします。ユーザープロパティが存在しない場合は、新しいユーザープロパティが作成されます。ユーザー名を設定する例として、受信プロパティのタイプと一致します。
RNThinkingAnalyticsModule.userSet({
appid: "YOUR_APPID",
properties: { usersetkey: 2, usersetkey2: "usersetvalue" }
});
userSet設定のユーザープロパティ形式は、イベントプロパティと一致する必要があります。
# 4.2ユーザーSetOnce
アップロードするユーザープロパティが一度設定されている場合は、userSetOnceを呼び出して
を呼び出して設定することができます。このプロパティに以前に値がある場合、この情報は無視されます。たとえば、最初の支払い時間を設定します
RNThinkingAnalyticsModule.userSetOnce({
appid: "YOUR_APPID",
properties: { name: "yea" }
});
userSetOnce設定のユーザープロパティの書式設定は、イベントプロパティと一致する必要があります。
# 4.3 userAdd
数値型のプロパティをアップロードする場合は、userAdd
を呼び出してアキュムレータ操作を実行します。プロパティが設定されていない場合は、0を割り当ててから計算します。負の値を入力します。減算操作と同じです。ここでは累積支払い額を例にとる
RNThinkingAnalyticsModule.userAdd({
appid: "YOUR_APPID",
properties: { age: 1 }
});
userAdd設定のプロパティの型とKey値の制限はuserSetと一致しますが、ValueではNumber型のみが許可されます。
# 4.4 userUnset
ユーザーのユーザープロパティ値を空にする場合は、userUnset
を呼び出して指定されたプロパティを空にすることます
ができません
RNThinkingAnalyticsModule.userUnset({
appid: "YOUR_APPID",
properties: "usersetkey"
});
userUnset渡されたパラメーターはユーザープロパティのプロパティ名で、型は文字列または文字列の配列で、可変長パラメーターの形式をサポートします。
# 4.5ユーザーデル
を削除する場合は、userDel
を呼び出して削除できます。
RNThinkingAnalyticsModule.userDel({ appid: "YOUR_APPID" });
# 4.6ユーザー追加
Android SDK v2.4.0からuserAppendを呼び出し、
Arrayタイプのユーザープロパティを追加できます。
RNThinkingAnalyticsModule.userAppend({
appid: "YOUR_APPID",
properties: { key: ["age", "2"] }
});
# V.自動収集イベント
自動取得機能を使用するには、自動取得機能の関連する依存関係を統合しして依存コードを追加
自動収集イベントの具体的な使用方法については、Android SDK自動収集ガイド章を参照してください。
RNの呼び出し方法は次のとおりです。
RNThinkingAnalyticsModule.enableAutoTrack({
appid: "YOUR_APPID",
autoTrackType: {
appStart: true,
appEnd: true,
appViewCrash: true,
appInstall: true
}
});
# VI。SDK構成
# 6.1データ報告の一時停止/停止
Android SDK v2.1.0では、SDKインスタンスの報告を停止する機能が追加されました。
# 6.1.1 SDK報告の一時停止
ユーザーがテスト環境にいる場合や、ユーザーがテストアカウントにログインしている場合など、データ収集と報告を一時的に停止したい場合は、次のインターフェイスを呼び出してSDKインスタンスの報告を一時的に停止できます。
特定のインスタンス(メインインスタンスとライトインスタンスを含む)
と、false
を渡すと、SDKインスタンスの報告を一時停止でき#distinct_id
、#account_id
、パブリックプロパティなどが保持されます設定された共通属性とデバイスID、ゲストID、アカウントIDなどの情報。
インスタンスの停止状態はローカルキャッシュに保存され、enableTrackingが呼び出される
まで、true
、SDKインスタンスはデータ収集と報告を再開します。ライトインスタンスはキャッシュされないため、アプリを開くたびにライトインスタンスの一時停止状態は保持されず、報告を再開します。
RNThinkingAnalyticsModule.enableTracking({
appid: "YOUR_APPID",
enableTracking: true
});
RNThinkingAnalyticsModule.enableTracking({
appid: "YOUR_APPID",
enableTracking: false
});
# 6.1.2 SDK報告の停止(optOutTracking)
GDPRが適用される地域でユーザーがデータ収集権限を提供しないことを選択した場合、次のインターフェイスを呼び出してSDKインスタンスを完全にシャットダウンする機能など、SDKインスタンスの機能を完全に停止する必要がある場合があります。
optOutTracking
メインインスタンスからのみ呼び出すことができ、と
の最大の違いは、インスタンスのゲストID、アカウントID、パブリックプロパティ、レポートされていないデータキューなど、インスタンスのローカルキャッシュを空にすることです。その後、このインスタンスの取得と報告機能をオフにします。
RNThinkingAnalyticsModule.optOutTracking({ appid: "YOUR_APPID" });
SDK機能をオフにしながら、TAクラスタ内のユーザーデータを削除する場合は、optOutTrackingAndDeleteUserを呼び出し
、SDKインスタンスの機能を停止する前にuserDel
データを報告してユーザーデータを削除します。
RNThinkingAnalyticsModule.optOutTrackingAndDeleteUser({ appid: "YOUR_APPID" });
インスタンスの停止状態もローカルキャッシュに保存され、optInTrackingが呼び出さ呼び出さ
、その後も報告を続けることができますが、この時点では新しいインスタンス
RNThinkingAnalyticsModule.optInTracking({ appid: "YOUR_APPID" });
# 6.2キャリブレーション時間
SDKはデフォルトでイベント発生時刻としてネイティブ時刻を使用し、ユーザーが手動でデバイス時刻を変更するとビジネス分析に影響を与える場合、Android SDK v2.5.0以降、サービス側から取得した現在のタイムスタンプを使用してSDKの時刻を校正できます。その後、イベントデータやユーザー属性設定操作など、指定されていない時間の呼び出しはすべて、キャリブレーション後の時間を発生時間として使用します。
// 1585633785954 为当前 unix 时间戳,单位为毫秒,对应北京时间 2020-03-31 13:49:45
RNThinkingAnalyticsModule.calibrateTime({ timeStampMillis: 1585633785954 });
NTPから時間を取得してSDKを校正する機能も提供しています。ユーザーがアクセスできるNTPサーバーアドレスを渡す必要があります。その後、SDKは着信NTPサービスアドレスから現在の時刻を取得し、SDK時刻をキャリブレーションします。デフォルトのタイムアウト時間(3秒)以内に正しい結果が得られない場合、その後、ローカル時間を使用してデータを報告します。
// 使用苹果公司 NTP 服务对时间进行校准
RNThinkingAnalyticsModule.calibrateTimeWithNtp({
ntp_server: "time.apple.com"
});
注意:
- NTPサーバーのアドレスを慎重に選択して、ネットワークの状態が良好な場合、ユーザーデバイスがすぐにサーバーに到達できるようにする必要があります。
- NTPサービスを使用した時間キャリブレーションには不確実性があります。
上記のキャリブレーションタイムインターフェイスに加えて、Android SDK v2.5.0では、すべてのユーザープロパティインターフェイスのタイム関数オーバーロードが提供されています。ユーザープロパティ関連インターフェイスを呼び出すと、Dateオブジェクトが渡され、渡されたDateオブジェクトを使用してデータの#time
フィールドを設定できます。
# 七、高度な機能
v2.1.0以降、SDKは、最初のイベント、更新可能なイベント、書き換え可能なイベントの3つの特別なタイプのイベントの報告をサポートしています。これらの3つのイベントは、TAシステム2.8以降のバージョンで使用する必要があります。特別なイベントは特定のシナリオでのみ適用されるため、デジタルテクノロジーのカスタマーサクセスとアナリストの助けを借りて、特別なイベントを使用してデータを報告してください。
# 7.1初の事件
初回イベントとは、あるデバイスや他の次元のIDに対して、一度だけ記録されるイベントです。たとえば、デバイスで最初に発生したイベントを記録したい場合は、最初のイベントでデータを報告できます。
// 示例:上报设备首次事件, 假设事件名为 DEVICE_FIRST
RNThinkingAnalyticsModule.trackFirstEvent({
appid: "YOUR_APPID",
eventName: "DEVICE_FIRST",
properties: {
KEY_NUMBER: 1.02,
KEY_STRING: "name",
KEY_LIST: [1, 2, 3],
KEY_BOOL: true,
KEY_DateTime: "2020-05-12 06:27:18.371"
}
});
デバイス以外の他のディメンションで初めてかどうかを判断する場合は、初めてのイベントに設定できますファーストチェックIDたとえば、アカウントの最初のイベントを記録する必要があります。アカウントIDを最初のイベントのFIRST_CHECK_IDに設定できます
// 示例:上报用户账号的首次事件, 假设事件名为 USER_FIRST
RNThinkingAnalyticsModule.trackFirstEvent({
appid: "YOUR_APPID",
eventName: "DEVICE_FIRST",
properties: {
KEY_NUMBER: 1.02,
KEY_STRING: "name",
KEY_LIST: [1, 2, 3],
KEY_BOOL: true,
KEY_DateTime: "2020-05-12 06:27:18.371"
},
eventId: "YOUR_ACCOUNT_ID"
});
注意:サービス側で初めてかどうかのチェックが完了するため、初めてのイベントはデフォルトで1時間遅れて入庫する。
# 7.2更新可能イベント
更新可能なイベントを使用すると、特定のシナリオでイベントデータを変更する必要がある要件を満たすことができます。更新可能なイベントには、イベントを識別するIDを指定し、更新可能なイベントオブジェクトを作成するときに着信する必要があります。TAバックグラウンドは、イベント名とイベントIDに基づいて更新するデータを決定します。
// 示例: 上报可被更新的事件,假设事件名为 UPDATABLE_EVENT
RNThinkingAnalyticsModule.trackUpdate({
appid: "YOUR_APPID",
eventName: "UPDATABLE_EVENT",
properties: { status: 3, price: 100 },
eventId: "test_event_id",
});
// 上报后事件属性 status 为 3, price 为 100
RNThinkingAnalyticsModule.trackUpdate({
appid: "YOUR_APPID",
eventName: "UPDATABLE_EVENT",
properties: { status: 5 },
eventId: "test_event_id",
});
更新可能なイベントは、デフォルトでデバイスの現在時刻を使用して履歴データのイベント時刻を更新します。イベント時刻を指定する場合は、更新可能なイベントを報告するときにイベント時刻を指定できます
RNThinkingAnalyticsModule.trackUpdate({
appid: "YOUR_APPID",
eventName: "OVERWRITE_EVENT",
eventId: "test_event_id",
properties: {
KEY_NUMBER: 1.02,
KEY_STRING: "name",
KEY_LIST: [1, 2, 3],
KEY_BOOL: true,
KEY_DateTime: "2020-05-12 06:27:18.371",
},
time: new Date().getTime(),
timeZone: "UTC",
});
# 7.3書き換え可能イベント
書き換え可能イベントは更新可能イベントと類似しており、書き換え可能イベントは最新のデータで履歴データを完全にカバーし、効果的には前のデータを削除し、最新のデータを入庫することに相当する。TAバックグラウンドは、イベント名とイベントIDに基づいて更新するデータを決定します。
// 示例: 上报可被重写的事件,假设事件名为 OVERWRITE_EVENT
RNThinkingAnalyticsModule.trackOverwrite({
appid: "YOUR_APPID",
eventName: "OVERWRITE_EVENT",
properties: { status: 3, price: 100 },
eventId: "test_event_id",
});
// 上报后事件属性 status 为 3, price 为 100
RNThinkingAnalyticsModule.trackOverwrite({
appid: "YOUR_APPID",
eventName: "OVERWRITE_EVENT",
properties: { status: 5 },
eventId: "test_event_id",
});
// 上报后事件属性 status 被更新为 5, price 属性被删除
書き換え可能なイベントは、デフォルトでデバイスの現在時刻を使用して履歴データのイベント時刻を書き換えます。イベント時刻を指定する場合は、書き換え可能なイベントを報告するときにイベント時刻を指定できます
RNThinkingAnalyticsModule.trackOverwrite({
appid: "YOUR_APPID",
eventName: "OVERWRITE_EVENT",
properties: { status: 5 },
eventId: "test_event_id",
time: new Date().getTime(),
timeZone: "UTC",
});
# チェンジログ
# v2.1.2 2021/03/16
- iOS 14に適合
- 適応Android 11
- 新しいプリセットプロパティ#bundle_id(アプリ固有ID)
- ネットワーク信号取得ロジックの最適化
# v2.1.1 2020/10/29
- iOS 5Gネットワークに適応
- 最適化install, startイベント報告ロジック
- データ転送フォーマットの最適化
- デフォルトのネットワーク報告ポリシーは、2G/3G/4G/5G/WIFI
# v2.1.0 2020/08/27
- 新しいtrackUpdate, trackOverwrite, trackFirstEventインタフェース
# v2.0.1 2020/06/05
- サポートJSONArrayタイプ
# v2.0.0 2020/05/25
- 新しいAPIインターフェース
- マルチインスタンスのサポート
- 自動収集イベントのサポート(新しいAPPインストールイベント、起動イベント、クローズイベント、クラッシュイベント)
- クライアントSDKのタイムキャリブレーション機能をサポート
- 新しいoptOutTracking/optInTrackingインターフェイス
- enableTrackingインターフェイスが追加され、インスタンスのレポート機能
- サポートイベントとユーザー属性データの報告
- パブリックイベントプロパティのサポート