この記事では、トラックイベントを設定するためのさまざまな方法について説明します。トラックイベントに関する一般的な情報は、トラックイベントを参照してください。
トラックイベントでは、発生した訪問者のアクションを記録することができます。それぞれのアクションをイベントと呼びます。各イベントには、名前とプロパティがあります。たとえば、「Registered(登録済み)」イベントには「plan」や「accountType」などのプロパティがあります。
トラックイベントをPendoに送信するには、次の3つの方法があります。
- Segment.com
- サーバー側
- クライアント側
トラックイベントの制限
トラックイベントを導入する際には、いくつかのハードおよびソフト面での制限を考慮する必要があります。Pendoのプラットフォームによって固定で設定されているものもあれば、パフォーマンスを最適化するためのベストプラクティスとしておすすめしているものもあります。
キー
サブスクリプションでは、クリックイベントプロパティを含む、最大10,000個の個別のカスタムイベントプロパティキーを持つことができます。
種類
Pendoは、Pendoアプリケーションあたり最大5,000種類のトラックイベントをサポートしています。
フィールド名
トラックイベントの名前に使われる値についてはサーバー側"event":
にもクライアント側pendo.track("name"
にも制限はありません。
プロパティ名:
- 文字、数字、アンダースコアのみを使用してください。
- 名前の始まりと終わりには、アンダースコア
__*__
を使用できません。 - 32文字以下にしてください。
- 名前の始まりに数字は使用できません。
サポートされていない形式のプロパティは、Pendoでは表示されません。Pendoでデータを表示する際の混乱を避けるため、サブスクリプション全体で各プロパティに固有の名前を使用することをお勧めします。
値
512バイトを超える値は、Pendo UIにevent properties JSON too large
と表示されます。この制限は、単一のイベントプロパティの値ではなく、JSONのプロパティ全体に適用されます。
データエクスプローラで[グループ化(Group By)]を使用するには、プロパティの値を文字列またはブール値として分類する必要があります。データエクスプローラでグループ化できる値の数に制限はありません。
お知らせ:トラックイベントのプロパティは、プロパティ固有の値の総数が10,000を超える可能性がある場合の使用を意図していません。これについて厳密な制限は設定していませんが、プロパティの濃度が非常に高いと、トラックイベントと集計のでパフォーマンスの問題が発生する可能性があります。
量
Pendoは、大量のインバウンドのトラックイベントに対応できます。
1つのトラックイベントの種類に対して受け渡すことができるプロパティの数に制限はありませんが、プロパティのデータサイズによっては、数が多いとパフォーマンスが低下する場合があります。
基本的なガイドラインとしては、文字列が大きい場合は20個のプロパティ、そうでなければ50個のプロパティでパフォーマンスの問題が発生する可能性が高くなります。文字列は500バイト未満である必要があります。
Segment.com
SegmentとPendoのインテグレーションの詳細については、Segment.comインテグレーションの概要をご覧ください。
サーバー側
インテグレーションを設定するには、トラックイベントの共有秘密鍵(Track Event Shared Secret Key)が必要です。この鍵は、Pendoのインストールやインテグレーションキーに記載されているサブスクリプションキーとは異なります。Pendo管理者は、[サブスクリプション設定(Subscription Settings)] > [アプリケーション(Applications)からこのキーにアクセスできます。アプリを見つけて開き、[トラックイベントの共有秘密(Track Event Shared Secret)]行で[表示(Show)]選択します。
API要件
https://app.pendo.io/data/track
エンドポイントの技術的な説明やコード例については、追跡エンドポイントAPIの資料(Track endpoint API documentation)を参照してください。
- アクセスレベル:トラックイベントの共有秘密鍵
- 手法:
POST
- APIエンドポイント:
https://app.pendo.io/data/track
- パラメータ:該当なし
リクエストのヘッダー
-
x-pendo-integration-key
:トラックイベントの共有秘密鍵(必須) -
content-type
:サーバーがリクエストを適切に処理できるように、入力内容をrawテキストからJSONにフォーマットします
リクエスト本文
-
type
:「track」にする必要があります(必須) -
event
:ユーザーが実行したアクションの名前(必須) -
visitorId
:訪問者の一意の文字列識別子(必須) -
accountId
:訪問者が属するアカウントの一意な文字列識別子(強く推奨) -
timestamp
:イベントが発生した時間(エポック変換後のミリ秒単位のint64)(必須) -
properties
:イベントのプロパティを示す自由形式の辞書(任意) -
context
:ブラウザのコンテキストは、イベントに関する有用なコンテキストを提供します。リクエストには必要ですが、空欄のままでも構いません("context":{}
)
訪問者IDまたはアカウントIDのトラックイベントがPendoにまだ存在しない場合、Pendoがそのイベントを受信した最初の訪問から新しいレコードが作成されます。[訪問者が受信したトラックイベントをアプリケーションの時間としてカウント(Count Track Events Received for a Visitor as Time in the Application)]の設定は、アプリケーションの詳細にあるサブスクリプション設定で確認できます。
- [訪問者に対して受信したトラックイベントをアプリケーションの時間としてカウント]の設定が有効になっている場合、新しく作成された訪問者またはアカウントは、テーブル、レポート、ダッシュボード、トラックイベントに表示される指標として表示され、アプリケーションの滞在時間としてカウントされます。この設定は遡及的ではなく、Pendoがすでに受信しているトラックイベントには影響しませんが、今後のイベントには影響します。
- [訪問者に対して受信したトラックイベントをアプリケーションの時間としてカウント]の設定が無効になっている場合、新しく作成された訪問者またはアカウントは、テーブル、レポート、ダッシュボード、トラックイベントの指標として表示されず、アプリケーションの滞在時間としてカウントされません。
訪問者に対して受信したトラックイベントをアプリケーション滞在時間としてカウント(Count Track Events Received for Visitor as Time in Application)の設定について詳しくは、こちらのテクニカルノート を参照してください。
注:タイムスタンプが7日を超えているトラックイベントは処理されません。トラックイベントタイプ作成前のタイムスタンプのトラックイベントは処理されません。サブスクリプション作成前のタイムスタンプのトラックイベントは処理されません。
ブラウザのコンテキスト
ブラウザのコンテキストは、イベントに関する有用なコンテキストを提供します。
-
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",
BROWSERPROPERTY: "BROWSER.VARIABLE",
...
});
入力例
pendo.track("Registered", {
plan: "Pro Annual",
accountType: "Facebook",
activeGuide: pendo.getActiveGuide().guide.name,
width: JSON.stringify(window.innerWidth),
height: JSON.stringify(window.innerHeight)
});
トラブルシューティング
トラックイベントを送りましたが、トラックイベントページに表示されません。
トラックイベントがトラックイベントのページに表示されるまで、最長で15分かかることがあります。また、イベントのタイムスタンプが、Pendoのサブスクリプションが作成された後の日付であることも確認してください。
pendo.track
がコンソールの関数ではなく、トラックイベントがトラックイベントのページに表示されていません。
これは、Pendoエージェントがロードされる前にトラックイベント関数が実行されるためです。トラックイベント関数を実行する前にエージェントがロードされたかどうかを確認するには、以下の例を使用してください。
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だった場合。