テストを準備する
Node.js 18 以降のアプリと、読み取り権限のある LogBrew プロジェクトを使います。テレメトリを送信したことがない場合は、クイックスタートから始めてください。このテストは顧客のアクティビティと分けて行います。 アプリのディレクトリでパッケージをインストールします。LOGBREW_SERVER_API_KEY に保管します。サーバー用のキーをブラウザーのバンドルに含めないでください。アカウントのアクセストークンは結果の読み取りに使います。SDK の設定には使いません。
1つのイベントが何を意味するか決める
プロダクトに関する問いから始めます。たとえば、ユーザーはチェックアウトを開いた後に送信しているか、という問いです。各イベントには、固定の名前、正確なきっかけ、記録するアプリ内の場所を1つずつ決めます。
イベント名は、リリースや言語が変わっても同じにします。メールアドレス、注文番号、URL、ユーザーが入力したテキストから名前を作らないでください。
カスタムプロパティには、承認済みの少数の値だけを使います。たとえば、
checkout_mode は guest または signed_in にします。値ごとに新しいイベント名を追加しないでください。フォームの内容は送信しないでください。
1つの業務上の操作は、1か所だけで記録します。ブラウザーとサーバーの両方で同じ操作を記録すると、合計が2倍になります。
正しいアクティビティの種類を使う
createProductActionAttributes は、イベントのメタデータに analyticsSchemaVersion: 1 と analyticsKind: "interaction" を設定します。ルートのテンプレートまたは画面名で analyticsSurface が設定されます。具体的な URL ではなく、/orders/:id のようなルートのテンプレートを使います。
イベント名で種類は決まりません。page_view という名前のインタラクションも、インタラクションのままです。ログ、課題、スパンはプロダクトイベントではありません。その他のランタイムについては SDK 連携を参照してください。
各イベントにユーザーとセッションを設定する
- サインインしたユーザーには、
context.subjectにkind: "user"の安定した ID を設定します。 - 匿名の訪問者には、
kind: "anonymous"の別の ID を使います。 - アプリのセッション ID を
context.session.idに入れます。セッションの間は同じ ID を使い続けます。
ローカルで例を実行する
この例をproduct-events.mjs として保存します。匿名の訪問、サインイン、2人のユーザーにわたる5件のテストアクションを記録します。クライアントは、共有のサービスとデプロイのコンテキストだけを持ちます。このテストでは自動送信をオフにしています。
--send を付けずにスクリプトを実行します。このコマンドはリクエストを送信しません。
previewJson() を出力しないでください。
ログインとログアウトを扱う
- ログイン前は、各イベントに現在の匿名サブジェクトを付けて送信します。
- ログイン後は、種類
userでユーザーの安定した ID を送信します。 - ログアウトしたら、そのユーザーのコンテキストを使うのをやめます。プライバシーポリシーに沿って新しい匿名サブジェクトを作ります。
- アカウントを切り替えたら、新しいユーザーの ID を使います。
1回送信して結果を読む
テスト用プロジェクトのサーバー用キーをプロセスの環境に設定します。次のコマンドを1回実行します。- 分析 を開きます。
- プロジェクト でテスト用プロジェクトを選びます。
- 期間 で 24時間 を選びます。
- 上位イベント に3つのイベント名、上位サーフェス に
/checkoutがあることを確認します。
/checkoutサーフェスで、すべてセッションのコンテキストを持つ5件のインタラクション。- ユーザーからのイベントが3件、匿名サブジェクトからのイベントが2件。
- ユーザーが2人、匿名サブジェクトが2個、セッションが4件。
アプリでイベントをテストする
取得の呼び出しをアプリのハンドラーに移します。各イベントの意味、種類、識別のルールは変えません。まずは合成のテストアカウントでテストします。
ローカルのプレビューで確認できるのは取得です。受け付けられたバッチで確認できるのは送信です。どちらも、取得の呼び出しがアプリの正しい箇所で実行されることまでは示しません。
