概要
この記事では、トラックイベントを設定するためのさまざまな方法について説明します。この機能に関する一般的な情報は、トラックイベントについての記事を参照してください。
トラックイベントでは、ユーザーが行ったアクションを、そのアクションを表すプロパティとともに記録できます。それぞれのアクションをイベントと呼びます。各イベントには、名前とプロパティがあります。たとえば、「Registered(登録済み)」イベントは、「plan」や「accountType」のようなプロパティを持つことができます。
トラックイベントをPendoに送信するには、Segment.com、Server Side(サーバー側)、Client Side(クライアント側)の3つの方法があります。
トラックイベントの制限
トラックイベントを導入する際には、いくつかのハード面およびソフト面での制限を考慮する必要があります。Pendoのプラットフォームによって固定で設定されているものもあれば、パフォーマンスを最適化するためにおすすめしているものもあります。
種類
Pendoは、Pendoアプリケーションあたり最大5,000種類のトラックイベントをサポートしています。
フィールド名
トラックイベントの名前に使われる値についてはサーバー側"event":
にもクライアント側pendo.track("name"
にも制限はありません。
プロパティ名は、アルファベット小文字、数字、アンダースコアのみを使用してください。名前の始まりと終わりには、アンダースコア __*__
を使用できません。サポートされていない形式のプロパティは、Pendoでは表示されません。Pendoでデータを表示する際の混乱を避けるため、サブスクリプション全体で各プロパティに固有の名前を使用することをお勧めします。
値
512バイトを超える値は、Pendo UIにevent properties JSON too large
と表示されます。
Pendoが受け取った値が200種類以上あるプロパティでは、データエクスプローラのGroup By(グループ化)機能を使用できません。これは一般的に、プロパティが数値やフリーテキストフィールドを収集している場合に問題となります。
量
Pendoは、大量のインバウンドのトラックイベントに対応できます。唯一の制限は、訪問者ごとに1秒間に1つのトラックイベントとなることです。
1つのトラックイベントの種類に対して受け渡すことができるプロパティの数に制限はありませんが、プロパティのデータサイズによっては、数が多いとパフォーマンスが低下する場合があります。一般的なガイドラインとしては、文字列が大きい場合は20個のプロパティ、そうでなければ50個のプロパティでパフォーマンスの問題が発生する可能性が高くなります。文字列は500バイト未満である必要があります。
Segment.com
PendoのSegmentとのインテグレーションについては、こちらの記事で詳しく紹介しています。
サーバー側
API要件
https://app.pendo.io/data/track
エンドポイントの技術的な説明やコード例については、追跡エンドポイントAPIの資料(Track endpoint API documentation)を参照してください。
- アクセスレベル:トラックイベントの共有秘密鍵
- 手法:
POST
- APIエンドポイント:
https://app.pendo.io/data/track
- パラメータ:該当なし
リクエスト本文
-
type
:「track」にする必要があります(必須) -
event
:ユーザーが実行したアクションの名前(必須) -
visitorId
:訪問者の一意の文字列識別子(必須) -
accountId
:訪問者が属するアカウントの一意な文字列識別子(強く推奨) -
timestamp
:イベントが発生した時間(エポック変換後のミリ秒単位のint64)(必須) -
properties
:イベントのプロパティを示す自由形式の辞書(任意) -
context
:ブラウザのコンテキストは、イベントに関する有用なコンテキストを提供します。リクエストには必要ですが、空欄のままでも構いません("context":{}
)
ブラウザのコンテキスト
ブラウザのコンテキストは、イベントに関する有用なコンテキストを提供します。
-
ip
:現在のユーザーのIPアドレス -
userAgent
:リクエストを行うデバイスのユーザーエージェント(推奨) -
url
:ブラウザの現在のページのURL(任意) -
title
:ブラウザの現在のページのタイトル(任意)
レスポンス:
-
200
:トラックイベントがリクエストどおりに送信されました
サンプルペイロード
{
"type": "track",
"event": "Registered",
"visitorId": "unique-string-id",
"accountId": "account-id-of-visitor",
"timestamp": 1524069206000,
"properties": {
"plan": "Pro Annual",
"accountType": "Facebook"
},
"context": {
"ip": "76.253.187.23",
"userAgent": "Chrome/65.0.3325.181",
"url": "https://mypage.com/admin",
"title": "My Page - Admin"
}
}
クライアント側/エージェント
この方法では、Pendoクライアント/エージェントを使ってイベントの追跡情報を受け渡すことができます。このフォーマットは、Visual Design Studioで作成されたガイドのコードブロックビルディングブロックでサポートされています。
入力フォーマット
pendo.track("NAME", {
PROPERTY1: "PROPERTY1VALUE",
PROPERTY2: "PROPERTY2VALUE",
PROPERTYN: "PROPERTYNVALUE",
...
});
入力例
pendo.track("Registered", {
plan: "Pro Annual",
accountType: "Facebook"
});
FAQ/トラブルシューティング
トラックイベントを送りましたが、トラックイベントページに表示されません
イベントがトラックイベントページに表示されるまで、最大で15分かかることがあります。また、イベントのタイムスタンプが、Pendoのサブスクリプションが作成された後の日付であることも確認してください。
pendo.track
がコンソールの関数ではなく、トラックイベントがトラックイベントページに表示されていません
これは、Pendo Agentが読み込まれる前にトラックイベントの関数が実行されるためです。トラックイベントの関数を実行する前にエージェントが読み込まれたかどうかを確認するには、以下の例を参照してください。
function pendoTrack(name, data) {
</wbr> </wbr>if (pendo && pendo.isReady && pendo.isReady()){
return pendo.track(name, data);
}
</wbr> </wbr>setTimeout(function() {
pendoTrack(name, data);
}, 500);
}
pendoTrack("NAME", { PROPERTY1: "PROPERTY1VALUE", ... });
トラックイベントを送ったところ、トラックイベントのページに追跡種類は表示されていますが、実際のイベントが表示されていません。
Pendoでは、直前1時間のデータの処理を次の正時(00時)から開始します。データがUIに完全に表示されるまでに最大15分かかることがあります。当日のデータを探している場合は、「今日」の日付範囲を使用しているか、日付範囲に当日が含まれていることを確認してください。
イベントのタイムスタンプは、追跡の種類が作成された後の時間である必要があります。
このような状況を引き起こす可能性のある、問題のあるタイムスタンプ例をいくつか紹介します。
- サブスクリプションが追加される前に設定されたタイムスタンプ
- 追跡の種類を作成するために送られた最初のイベントの何時間も前に設定されたタイムスタンプ – 例:イベントの時刻は5時なのに、イベントが送信され追跡の種類が作成されたのは15時だった場合
- 最初のイベントが送信され追跡の種類が作成される前日に設定されているタイムスタンプ - 例:イベントの日付は7/18なのに、イベントが送信され追跡の種類が作成されたのは7/19だった場合