SDK 初期化¶
このドキュメントでは、UniApp SDK の初期化とランタイムの基本機能について説明します。
基本設定¶
<script>
var ftModule = uni.requireNativePlugin("GCUniPlugin-MobileAgent");
export default {
onLaunch: function() {
ftModule.sdkConfig({
datakitUrl: 'your datakitUrl',
debug: true,
env: 'common',
globalContext: {
custom_key: 'custom value'
}
});
}
}
</script>
| パラメータ名 | パラメータタイプ | 必須 | パラメータ説明 |
|---|---|---|---|
| datakitUrl | string | いいえ | ローカル環境(Datakit)のデータ送信 URL アドレス。例:http://10.0.0.1:9529。datawayUrl と二択です。0.2.7 以降では初期化時に設定せず、後で setDatakitURL で動的に設定可能 |
| datawayUrl | string | いいえ | パブリックネットワーク DataWay のデータ送信 URL アドレス。datakitUrl と二択です。0.2.7 以降では初期化時に設定せず、後で setDatawayURL で動的に設定可能 |
| clientToken | string | datawayUrl 使用時は必須 |
認証トークン。datawayUrl と併用する必要があります |
| debug | boolean | いいえ | Debug ログを出力するかどうか。デフォルトは false |
| env | string | いいえ | 環境名。デフォルトは prod。test のような単一の単語を推奨 |
| service | string | いいえ | 所属するビジネスまたはサービス名。デフォルト:df_rum_ios、df_rum_android |
| globalContext | object | いいえ | 初期化時に追加するグローバルタグ |
| offlinePackage | boolean | いいえ | Android のみ対応。オフラインパッケージまたは uni ミニアプリを使用するかどうか。デフォルトは false。詳細はアプリケーション接続 FAQ を参照 |
| autoSync | boolean | いいえ | データ収集後に自動でサーバーに同期するかどうか。デフォルトは YES。NO の場合は flushSyncData を使用して手動で同期を管理 |
| syncPageSize | number | いいえ | 同期リクエストの項目数を設定。範囲 [5,)、デフォルトは 10 |
| syncSleepTime | number | いいえ | 同期のインターバル時間を設定。範囲 [0,5000]、デフォルトは未設定 |
| enableDataIntegerCompatible | boolean | いいえ | Web データと共存する場合に有効にすることを推奨。0.2.1 以降はデフォルトで有効 |
| compressIntakeRequests | boolean | いいえ | 同期データを deflate 圧縮するかどうか。デフォルトは無効。SDK 0.2.0 以上で対応 |
| enableLimitWithDbSize | boolean | いいえ | DB 容量制限を有効にするかどうか。デフォルトは無効。有効にすると logCacheLimitCount と rumCacheLimitCount は無効になります |
| dbCacheLimit | number | いいえ | DB キャッシュ制限サイズ。範囲 [30MB,)、デフォルトは 100MB、単位はバイト |
| dbDiscardStrategy | string | いいえ | DB データ破棄戦略:discard は新しいデータを破棄(デフォルト)、discardOldest は古いデータを破棄 |
| dataModifier | object | いいえ | 単一フィールドのマスキング変更。詳細はデータ収集マスキング を参照 |
| lineDataModifier | object | いいえ | 単一データのマスキング変更。詳細はデータ収集マスキング を参照 |
| remoteConfiguration | boolean | いいえ | データ収集のリモート設定を有効にするかどうか。デフォルトは false。有効にすると、SDK 初期化またはアプリのホットスタート時に設定が更新されます。Datakit バージョン 1.60 以上、またはパブリックネットワーク DataWay が必要です。SDK 0.2.7 以上で対応 |
| remoteConfigMiniUpdateInterval | number | いいえ | リモート設定の最小更新間隔。範囲 [0,)、単位は秒。デフォルトは 12 時間。SDK 0.2.7 以上で対応 |
| enableDataFilter | boolean | いいえ | DataKit 互換のデータフィルタリングを有効にするかどうか。デフォルトは true。ローカルルールとリモートルールの両方がこのスイッチの制御を受けます。SDK 0.2.7 以上で対応 |
| dataFilters | object | いいえ | ローカルデータフィルタリングルール。key は logging、rum をサポート。value はルールの文字列配列。SDK 0.2.7 以上で対応 |
リモート設定とデータフィルタリング¶
var ftModule = uni.requireNativePlugin("GCUniPlugin-MobileAgent");
ftModule.sdkConfig({
datakitUrl: 'http://10.0.0.1:9529',
remoteConfiguration: true,
remoteConfigMiniUpdateInterval: 600,
enableDataFilter: true,
dataFilters: {
logging: [
"{ message match [ 'password' ] }"
],
rum: [
"{ resource_status match [ '5..' ] }"
]
}
});
remoteConfigurationは、サンプリングレートなどの SDK 設定のリモート更新を有効にするために使用します。更新を手動でトリガーするには、updateRemoteConfigWithMiniUpdateIntervalを使用できます。dataFiltersは、アプリとともにリリースされるローカルのブラックリストルールです。いずれかのルールに一致したデータは、ローカルキャッシュに書き込まれる前に破棄されます。- ローカルルールとリモートルールは同時に有効になります。ルールは
lineDataModifierの後に実行されるため、変更後のデータに基づいて判定が行われます。 - 各ルールは
{ 条件 }で表現します。サポートされるフィールドと値の形式については、ブラックリストフィルタリングルール を参照してください。ルールが多すぎる場合や正規表現が複雑すぎる場合、データ書き込みのパフォーマンスに影響を与える可能性があります。
ユーザー情報のバインドとアンバインド¶
var ftModule = uni.requireNativePlugin("GCUniPlugin-MobileAgent");
ftModule.bindRUMUserData({
userId: 'Test userId',
userName: 'Test name',
userEmail: 'test@123.com',
extra: {
age: '20'
}
});
ftModule.unbindRUMUserData();
API - bindRUMUserData¶
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
| userId | string | はい | ユーザー ID |
| userName | string | いいえ | ユーザー名 |
| userEmail | string | いいえ | ユーザーのメールアドレス |
| extra | object | いいえ | ユーザーの追加情報 |
API - unbindRUMUserData¶
現在のユーザーをアンバインドします。
ランタイム機能¶
動的なデータ送信先更新¶
SDK 0.2.7 以上では、初期化後にデータ送信先を動的に設定できます。setDatakitURL と setDatawayURL は二択で使用します。DataWay に切り替える場合は、clientToken も同時に渡す必要があります。
初期化時に datakitUrl と datawayUrl の両方を省略できます。有効なデータ送信先が設定されるまで、SDK は初期化と収集データのキャッシュを続行できます。アドレスが設定されると、対応するアドレスへのアップロードが開始されます。
var ftModule = uni.requireNativePlugin("GCUniPlugin-MobileAgent");
ftModule.setDatakitURL({
datakitUrl: 'http://10.0.0.1:9529'
});
// DataWay を使用する場合は、setDatakitURL の代わりに以下のメソッドを呼び出します。
ftModule.setDatawayURL({
datawayUrl: 'https://open.dataway.url',
clientToken: 'client-token'
});
API - setDatakitURL¶
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
| datakitUrl | string | はい | 新しい Datakit データ送信先アドレス |
API - setDatawayURL¶
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
| datawayUrl | string | はい | 新しい DataWay データ送信先アドレス |
| clientToken | string | はい | DataWay アドレスに対応する認証トークン |
リモート設定の手動更新¶
呼び出す前に、sdkConfig で remoteConfiguration: true を設定する必要があります。miniUpdateInterval は、この呼び出しで指定された最小更新間隔を使用し、初期化時の remoteConfigMiniUpdateInterval は使用しません。
var ftModule = uni.requireNativePlugin("GCUniPlugin-MobileAgent");
ftModule.updateRemoteConfigWithMiniUpdateInterval({
miniUpdateInterval: 0
}, result => {
if (result.success) {
console.log('remote config: ' + result.rawJson);
} else {
console.log('remote config failed: ' + result.errorMessage);
}
});
API - updateRemoteConfigWithMiniUpdateInterval¶
| リクエストフィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
| miniUpdateInterval | number | いいえ | 今回の手動更新の最小間隔。範囲 [0,)、単位は秒。デフォルトは 0 |
コールバックパラメータ:
| 戻り値フィールド | タイプ | 説明 |
|---|---|---|
| success | boolean | 更新が成功したかどうか |
| platform | string | 現在のプラットフォーム:ios または android |
| rawJson | string | 更新成功時に返される、生のリモート設定 JSON 文字列。サーバー側にコンテンツがない場合は存在しない可能性があります |
| errorCode | number/string | 更新失敗時のエラーコード。iOS は数値、Android は文字列を返します |
| errorMessage | string | 更新失敗時のエラーメッセージ |
SDK のシャットダウン¶
API - shutDown¶
SDK をシャットダウンします。
SDK キャッシュデータのクリア¶
API - clearAllData¶
まだサーバーにアップロードされていないすべてのデータを消去します。
データの手動同期¶
API - flushSyncData¶
sdkConfig.autoSync を true に設定している場合、追加の操作は不要で、SDK が自動的に同期します。
sdkConfig.autoSync を false に設定している場合、このメソッドを手動で呼び出してデータ同期をトリガーする必要があります。