目录
此内容是否有帮助?

# 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
  1. X Code で、プロジェクトナビゲーターで、「ライブラリ」を右クリックライブラリ``[プロジェクト名]にファイルを追加
  2. に移動しノードモジュール``リアクションネイティブシンキングデータを追加しRNThinking D
  3. X Code では、プロジェクトナビゲーターで、プロジェクトを選択します。を追加libRNThinking Data. aプロジェクトのビルドフェーズ``Link Binary With Library
  4. プロジェクトを実行する(Cm2+R)
  • Android
  1. 開きますアンドロイド/アプリ/src/メイン/ジャバ/[を開きます。。。/MainActivity.java
  • 追加取り込みにRNThinking DataPackage;をファイル上部の取り込みに
  • を追加新しいRNThinking DataPackage()で返されるリストにGet Packages()メソッド
  1. 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')
  1. アンドロイド/アプリ/の依存関係ブロック内に以下の行アンドロイド/アプリ/の依存関係ブロック内に以下の行を挿入します
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 プラットフォームで現在サポートされているユーザープロパティ設定インターフェイスはuserSetuserSetOnceuserAdduserUnsetuserDeluserAppendです

# 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 インターフェイスが追加され、インスタンスのレポート機能
  • サポートイベントとユーザー属性データの報告
  • パブリックイベントプロパティのサポート