Skip to main content
プロダクトイベントを使うと、アプリでのユーザーの操作を名前付きで記録できます。たとえば、チェックアウトを開く、購入を完了するといった操作です。SDK はクリックのリスナーをインストールせず、フォームの内容も収集しません。各イベントはアプリのコードで記録します。 数え方のルールとレポートの種類については、プロダクト分析を参照してください。

テストを準備する

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 を使い続けます。
氏名、メールアドレス、IP アドレス、アクセストークンを ID に使わないでください。安定した ID は、1人のユーザーの操作を結び付けます。データを匿名にするものではありません。 共有のサーバークライアントに、デフォルトのユーザーやセッションを設定しないでください。各イベントを生んだリクエストのサブジェクトとセッションを渡します。SDK はこれらの ID を作らず、ログイン、ログアウト、アカウントの切り替えも検出しません。LogBrew は、ログイン後に匿名サブジェクトをユーザーに統合しません。

ローカルで例を実行する

この例を product-events.mjs として保存します。匿名の訪問、サインイン、2人のユーザーにわたる5件のテストアクションを記録します。クライアントは、共有のサービスとデプロイのコンテキストだけを持ちます。このテストでは自動送信をオフにしています。
--send を付けずにスクリプトを実行します。このコマンドはリクエストを送信しません。
想定される出力:
リリースと環境のマーカーはプロダクトアクションではありません。この結果はローカルのキューだけを示します。LogBrew がイベントを受け取ったことは示しません。実際の顧客のコンテキストを持つアプリでは、previewJson() を出力しないでください。

ログインとログアウトを扱う

  • ログイン前は、各イベントに現在の匿名サブジェクトを付けて送信します。
  • ログイン後は、種類 user でユーザーの安定した ID を送信します。
  • ログアウトしたら、そのユーザーのコンテキストを使うのをやめます。プライバシーポリシーに沿って新しい匿名サブジェクトを作ります。
  • アカウントを切り替えたら、新しいユーザーの ID を使います。
この例では、識別情報が変わると新しいセッションを始めます。セッションのルールは自分で決め、各イベントに適用してください。イベントのコンテキストは、そのイベントについてクライアントのサブジェクトとセッションを置き換えます。イベントでどちらかを省略すると、そのイベントはクライアントの値を使います。このため、この例ではクライアントにサブジェクトもセッションも設定していません。後で実行する処理では、その処理を始めたユーザーの識別情報を保持します。

1回送信して結果を読む

テスト用プロジェクトのサーバー用キーをプロセスの環境に設定します。次のコマンドを1回実行します。
実行するたびに新しいイベント ID が作られるため、2回目の実行ではさらに5件のイベントが追加されます。プロセスが失敗すると、出力に SDK のエラーコードが含まれます。キーが拒否された場合は次のようになります。
取り込みキーが有効で、テスト用プロジェクトのものであることを確認してください。アカウントにサインインしても、SDK のキーの問題は直りません。その他の失敗については API エラーとトラブルシューティングを参照してください。 LogBrew がバッチを受け付けたら、ダッシュボードでイベントを探します。
  1. 分析 を開きます。
  2. プロジェクト でテスト用プロジェクトを選びます。
  3. 期間 で 24時間 を選びます。
  4. 上位イベント に3つのイベント名、上位サーフェス に /checkout があることを確認します。
プロジェクトにほかのアクティビティがあると、合計が変わります。サービス、リリース、環境を正確に指定して確認するには、サインインした CLI で概要を読みます。
ほかにアクティビティのない期間で1回実行した場合、想定される結果は次のとおりです。
  • /checkout サーフェスで、すべてセッションのコンテキストを持つ5件のインタラクション。
  • ユーザーからのイベントが3件、匿名サブジェクトからのイベントが2件。
  • ユーザーが2人、匿名サブジェクトが2個、セッションが4件。
ユニークユーザー数、サブジェクト数、セッション数は概算です。イベントの合計は、選んだ期間の中では正確です。このテストでは、コンバージョンや再訪は測定しません。

アプリでイベントをテストする

取得の呼び出しをアプリのハンドラーに移します。各イベントの意味、種類、識別のルールは変えません。まずは合成のテストアカウントでテストします。 ローカルのプレビューで確認できるのは取得です。受け付けられたバッチで確認できるのは送信です。どちらも、取得の呼び出しがアプリの正しい箇所で実行されることまでは示しません。