トラックイベントの設定

この記事では、トラックイベントを設定するためのさまざまな方法について説明します。このフィーチャーに関する一般的な情報は、トラックイベントについての記事を参照してください。

トラックイベントでは、訪問者のアクションを記録することができます。それぞれのアクションをイベントと呼びます。各イベントには、名前とプロパティがあります。たとえば、「Registered(登録済み)」イベントは、「plan」または「accountType」のようなプロパティを持つことができます。

トラックイベントをPendoに送信するには、3つの方法があります。

  • Segment.com
  • サーバー側
  • クライアント側

トラックイベントの制限

トラックイベントを導入する際には、いくつかのハードおよびソフト面での制限を考慮する必要があります。Pendoのプラットフォームによって固定で設定されているものもあれば、パフォーマンスを最適化するためのベストプラクティスとしておすすめしているものもあります。

種類

Pendoは、Pendoアプリケーションあたり最大5,000種類のトラックイベントをサポートしています。

フィールド名

トラックイベントの名前に使われる値についてはサーバー側"event":にもクライアント側pendo.track("name"にも制限はありません。

プロパティ名:

  • 文字、数字、アンダースコアのみを使用してください。
  • 名前の始まりと終わりには、アンダースコア__*__を使用できません。
  • 32文字以下にしてください。
  • 名前の始まりに数字は使用できません。

サポートされていない形式のプロパティは、Pendoでは表示されません。Pendoでデータを表示する際の混乱を避けるため、サブスクリプション全体で各プロパティに固有の名前を使用することをお勧めします。

512バイトを超える値は、Pendo UIにevent properties JSON too largeと表示されます。この制限は、単一のイベントプロパティの値ではなく、JSONのプロパティ全体に適用されます。

データエクスプローラでグループ化を使用するには、プロパティの値を文字列またはブール値として分類する必要があります。データエクスプローラでグループ化できる値の数に制限はありません。

Pendoは、大量のインバウンドのトラックイベントに対応できます。

1つのトラックイベントの種類に対して受け渡すことができるプロパティの数に制限はありませんが、プロパティのデータサイズによっては、数が多いとパフォーマンスが低下する場合があります。

基本的なガイドラインとしては、文字列が大きい場合は20個のプロパティ、そうでなければ50個のプロパティでパフォーマンスの問題が発生する可能性が高くなります。文字列は500バイト未満である必要があります。

Segment.com

SegmentとPendoのインテグレーションの詳細については、Segment.comインテグレーションの概要をご覧ください。

サーバー側

重要:インテグレーションを設定するには、トラックイベントの共有秘密鍵(Track Event Shared Secret Key)が必要です。この鍵は、Pendoのインストールやインテグレーションキーに記載されているサブスクリプションキーとは異なります。Pendo管理者は、[サブスクリプション設定(Subscription Settings)] > [アプリの選択(Choose your App)]>[アプリの詳細(App Details)]からこのキーにアクセスできます

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":{}

訪問者IDまたはアカウントIDのトラックイベントがPendoにまだ存在しない場合、Pendoがそのイベントを受信した最初の訪問から新しいレコードが作成されます。[訪問者に対して受信したトラックイベントをアプリケーションの時間としてカウント(Count Track Events Received for a Visitor as Time in the Application)]の設定は、サブスクリプションの設定で[アプリの詳細を表示(View App Details)]を選択すると確認できます。

[訪問者に対して受信したトラックイベントをアプリケーションの時間としてカウント]の設定が有効になっている場合、新しく作成された訪問者またはアカウントは、テーブル、レポート、ダッシュボード、トラックイベントに表示される指標として表示され、アプリケーションの滞在時間としてカウントされます。この設定は遡及的ではなく、Pendoがすでに受信しているトラックイベントには影響しませんが、今後のイベントには影響します。

[訪問者に対して受信したトラックイベントをアプリケーションの時間としてカウント]の設定が無効になっている場合、新しく作成された訪問者またはアカウントは、テーブル、レポート、ダッシュボード、トラックイベントの指標として表示されず、アプリケーションの滞在時間としてカウントされません。

注:タイムスタンプが7日を超えているトラックイベントは処理されません。トラックイベントタイプ作成前のタイムスタンプのトラックイベントは処理されません。サブスクリプション作成前のタイムスタンプのトラックイベントは処理されません。

ブラウザのコンテキスト

ブラウザのコンテキストは、イベントに関する有用なコンテキストを提供します。

  • ip:現在のユーザーのIPアドレス
  • userAgent:リクエストを行うデバイスのユーザーエージェント(推奨)
  • url:ブラウザの現在のページのURL(任意)
  • title:ブラウザの現在のページのタイトル(任意)
注: Pendoのインストール時にリモートIPやタイトルをブロックしている場合は、ここで設定してもブラウザのコンテキストは収集されません。

レスポンス:

  • 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)で作成されたガイドのコードブロックビルディングブロックでサポートされています。

注:エージェント/クライアント側のトラックイベントは、エージェントのバージョンが2.14.3以降でのみ利用可能です。

 

入力フォーマット

pendo.track("NAME", {
  PROPERTY1: "PROPERTY1VALUE",
  PROPERTY2: "PROPERTY2VALUE",
  PROPERTYN: "PROPERTYNVALUE",
  ...
});
 

入力例

pendo.track("Registered", {
  plan: "Pro Annual",
  accountType: "Facebook"
});

 

モバイルトラックイベント

この方法では、Pendo SDKを使ってトラックイベント情報を受け渡すことができます。

備考:モバイルトラックイベントは、SDKバージョン2.1以降でのみ利用可能です。それ以前のバージョンについては、モバイルカスタムイベントの記事を参照してください。

iOS

Objective C

[[PendoManager sharedManager] track:@"event_name" properties:@{ @"key1" : @"val1" , @"key2" : @"val2"}];

Swift

PendoManager.shared().track("event_name",properties: ["key1":"val1", "key2":"val2"])

Android

HashMap<String, String> properties = new HashMap<>();
properties.put("item",view.toString());
properties.put("index",String.valueOf(i));
Pendo.track("item_selected",properties);

 

トラブルシューティング

トラックイベントを送りましたが、トラックイベントページに表示されません。

トラックイベントがトラックイベントのページに表示されるまで、最長で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だった場合。