ミニプログラムでのアプリの使用状況、閲覧履歴、購入行動などのユーザー情報を収集・分析するには、WebTracking JavaScript SDK を使用してユーザーログを直接 Logstore にアップロードします。この SDK は、ミニプログラムのクライアントから直接ログをアップロードするため、アプリケーションサーバーをバイパスし、その負荷を軽減します。このトピックでは、WebTracking JavaScript SDK を使用してログをアップロードする方法について説明します。
前提条件
Logstore で WebTracking 機能が有効化されていること。WebTracking とその有効化方法の詳細については、「WebTracking を使用したフロントエンドログの収集」をご参照ください。
データセキュリティのため、ミニプログラムプラットフォームでは、許可されたリクエストドメインのリストを設定する必要があります。 このリストに WebTracking 用のセキュアな通信ドメインを追加します。 ドメインは
https://${project}.${host}というフォーマットである必要があります。 用語projectおよびhostについては、以下で説明します。
制限事項
ミニプログラム向けの WebTracking JavaScript SDK では、各ログのアップロードは 10 MB に制限されています。
WebTracking は、WeChat ミニプログラム、WeChat ミニゲーム、Alipay ミニプログラム、ByteDance ミニプログラム、DingTalk ミニプログラム、QQ ミニプログラム、QQ ミニゲーム、Baidu ミニプログラムなどのミニプログラムをサポートしています。
ステップ 1: SDK のインストールと設定
Node.js がインストールされていること。
ご利用のサーバーで次のコードを実行して、依存関係をインストールします。
npm install --save @aliyun-sls/web-track-mini次のコードをプログラムに追加して、SDK を設定します。
重要クイックアプリを開発する場合、SlsTracker オブジェクトを作成する前に、リクエストモジュール用の追加の設定オプションを追加します。たとえば、
requesttaskモジュールを使用する場合:// request API をカプセル化するために quickappSDK オブジェクトを定義します。 const quickappSDK = { request: requesttask.request } const tracker = new SlsTracker({ ...opts, platformSDK: quickappSDK, platformRequestName: 'request', })import SlsTracker from '@aliyun-sls/web-track-mini' const opts = { host: '${host}', // リージョンのエンドポイント。例:cn-hangzhou.log.aliyuncs.com project: '${project}', // プロジェクトの名前。 logstore: '${logstore}', // Logstore の名前。 time: 10, // ログを送信する間隔 (秒単位)。デフォルト:10。 count: 10, // 各バッチで送信するログの数。デフォルト:10。 topic: 'topic',// カスタムログトピック。 source: 'source', tags: { tags: 'tags', }, } const tracker = new SlsTracker(opts) // SlsTracker オブジェクトを作成します。パラメーター
必須
説明
host
はい
ご利用のリージョンにおける Simple Log Service のエンドポイント。この例では、中国 (杭州) リージョンのエンドポイントを使用しています。他のリージョンのエンドポイントの詳細については、「エンドポイント」をご参照ください。
project
はい
プロジェクトの名前。
logstore
はい
Logstore の名前。
time
いいえ
ログが送信される間隔 (秒単位)。デフォルト値は 10 です。
count
いいえ
各バッチで送信するログの数。デフォルト値は 10 です。
topic
いいえ
ログトピック。カスタムトピックを指定してログを識別します。
source
いいえ
ログソース。カスタムソースを指定してログを識別します。
tags
いいえ
ログタグ。カスタムタグを指定してログを識別します。
ステップ 2: ログのアップロード
単一のログをアップロードする場合、単一の Object として扱われます。複数のログをアップロードする場合、データ構造は複数の Object を含む Array になります。
単一のログは
Objectとしてアップロードされます。例:tracker.send({ eventType:'view_product', productName: 'Tablet', price: 500 })単一ログの即時アップロードの場合、
timeおよびcountパラメーターは無視され、型はObjectになります。例:tracker.sendImmediate({ eventType:'view_product', productName: 'Tablet', price: 500 })バッチログアップロードの場合、型は
Arrayになります。例:tracker.sendBatchLogs([ { eventType: 'view_product', productName: 'Tablet', price: 500 }, { eventType: 'view_product', productName: 'Laptop', price: 1200 } ])バッチログを即時にアップロードします (time および count パラメーターは無視されます)。型は
Arrayです。例:tracker.sendBatchLogsImmediate([ { eventType:'view_product', productName: 'Tablet', price: 500 }, { eventType:'view_product', productName: 'Laptop', price: 1200 } ])
ステップ 3: アップロード結果の表示
ログが Logstore にアップロードされた後、それらをクエリおよび分析するには、インデックスを作成する必要があります。
クイック表示
インデックスを作成していない場合は、Logstore の 検索 & 分析 のクイックスタートページに移動し、[プレビュー] をクリックしてログをクイック表示できます。
ログのクエリと分析
フルテキストインデックスまたはフィールドインデックスを作成するには、Create-Index 操作を呼び出します。SQL ステートメントを使用してクエリを実行する場合は、フィールドインデックスを作成する必要があります。
GetLogs 操作を呼び出して、Logstore 内のログデータをクエリします。この操作はログの配列を返します。各要素は単一のログエントリです。
参考資料
エラー応答は、API 呼び出しが失敗したことを示します。一般的な API エラーの解決方法の詳細については、「API エラーコード」をご参照ください。
自社開発の SDK に加えて、Simple Log Service は他の Alibaba Cloud SDK もサポートしています。Alibaba Cloud SDK の使用方法の詳細については、SDK センターの Simple Log Service - Alibaba Cloud OpenAPI 開発者ポータル をご参照ください。
Simple Log Service は、設定を自動化するためのコマンドラインインターフェイス (CLI) を提供しています。詳細については、「Simple Log Service コマンドラインインターフェイス (CLI)」をご参照ください。