データ同期スキーマの定義

最終更新日:

Pendoのデータ同期機能を使用すると、AvroファイルをGoogle Cloud Storage(GCS)バケットまたはAmazon S3にエクスポートできます。「抽出、変換、読み込み」(ETL)パイプラインでの使用に適しているため、Avroファイルタイプを使用します。この記事では、データ同期プロセスの一環としてエクスポートされるAvroファイルと、Avroファイルの各タイプに含まれる値について説明します。

データ同期のエクスポート

エクスポートされる内容には、イベントファイルやイベントタイプの定義のほか、コンテキスト情報が含まれるため、追加のルックアップやAPIコールを行うことなく、イベントから最大限の価値を引き出すことができます。エクスポートされる内容は以下のとおりです。

  • すべてのイベントのイベントファイル(チームで未定義のものを含む)
  • ページ、フィーチャー、トラックイベントなど、定義された各イベントタイプ(「一致」)のイベントファイル。
  • 各イベントタイプの定義ファイルと、定義された各イベントのメタデータと詳細を含むガイドイベント。
  • 上記のすべてのファイルを参照するエクスポートマニフェスト。クラウドストレージからデータウェアハウスにデータを読み込むのに使用します。

日付とタイムスタンプは協定世界時(UTC)です。

イベントファイルスキーマ

イベントファイルスキーマは、データ同期用のAvroファイルでエクスポートするイベントデータの構造と形式を定義します。スキーマは、以下のイベントファイルのすべてのタイプに適用されます。

  • すべてのイベント
  • ページ
  • フィーチャー
  • トラックイベント

ガイドイベントは上記のイベントタイプファイルに含まれているため、独自のイベントファイルはありませんが、独自の定義ファイルがあります。

以下のスキーマ定義には、生成できるさまざまなイベントタイプ、各イベントタイプに関連付けられているフィールド、および各フィールドの定義に使用するデータタイプに関する情報が含まれています。

指標 タイプ 説明
matchableId 文字列 各イベントと一致するルールを持つ一致(ページ、フィーチャー、トラックイベント)への参照。すべてのイベントファイルには存在しません。
periodId 整数 データウェアハウスへの読み込みを支援する便利なフィールドで、特定のイベントのbrowserTimestampの日付部分に等しい。日付はすべてUTCです。
visitorId 文字列 イベントの訪問者ID。
accountId 文字列 イベントのアカウントID。アカウント情報が利用できない場合は、空の文字列が使用されます。
browserTimestamp 整数 イベントのタイムスタンプ。use_avro_logical_typesフラグで日付としてデータウェアハウスに読み込むことができます。
country 文字列 remoteIpに関連付けられた国。このフィールドは空白でもかまいません。
destinationStepId 文字列 フローを示すガイドの宛先ステップのIDを指定するguideAdvancedイベントに関連します。前のステップIDまたは次のステップIDにできます。singleEventsおよびguideEventsソースに表示されます。
elementPath 文字列 ウェブイベント用。空白か、イベントに関連するDOM要素を指定するCSSスタイルの文字列。モバイルの場合、イベントに関連するウィジェットのJSON形式の説明。
eventClass 文字列 uiまたはtrack
eventId 文字列 一意のイベント識別子。
eventSource 文字列 イベントソースには、email(実際のメールにより発生したイベント)、mobile(モバイルアプリで発生したイベント)、pendo(Pendoプラットフォームで発生したイベント)、web(ウェブページで発生したイベント)などがあります。
eventType 文字列 イベントのタイプ。changeclickfocusgroupguideActivityguideDismissedguideSeenidentifyloadmetapollResponserecordingsyntheticなどがあります。
guideId 文字列 ガイド関連イベントや投票調査関連イベントを生成するガイドの一意の識別子。このフィールドは空白でもかまいません。
guideSeenReason 文字列 guideSeenイベントタイプの場合、ガイドがユーザーに表示された理由。
guideSeenTimeoutMS 整数 guideTimeoutイベントの場合、guideTimeoutイベントの送信前に、特定のガイドステップが表示されるまでエージェントが待機した時間。
guideSessionId 文字列 ガイドや同時に読み込まれたその他納品物のリストの識別子。このIDは、クライアントからガイドがリクエストされるたびに変更され、読み込み中に発生するイベントは同じIDを持ちます。
guideSnoozeDurationMS 整数 guideSnoozedイベントタイプの場合、ガイドのスヌーズ時間(ミリ秒単位)。
guideStepId 文字列 ガイド関連イベントや投票調査関連イベントを生成するガイドステップの一意の識別子。このフィールドは空白でもかまいません。
language 文字列 guideSeenイベントタイプの場合、表示されているガイドの言語。このフィールドは空白でもかまいません。
latitude 小数 イベントのremoteIpの緯度。このフィールドは空白でもかまいません。
longitude 小数 イベントのremoteIpの経度。このフィールドは空白でもかまいません。
loadDurationMS 整数 loadイベントの場合、ウェブページのレンダリングにかかった時間(ミリ秒単位)。ページの動的部分の読み込みにかかる時間は含まれません。
pollId 文字列 pollResponseイベントを生成した投票調査の識別子。
pollResponse 文字列 pollResponseイベントを生成した投票調査に対するJSON形式の回答。投票調査でのみ利用可能なデータへのインデックスにできます。
pollType 文字列 pollResponseイベントを生成した投票調査のタイプ。NumberScalePositiveNegativeFreeFormPickListのいずれかです。
propertiesJson 文字列 イベントのすべてのユーザー定義イベントプロパティのJSON形式のマップ。
region 文字列 イベントのremoteIpのうち、州を表す2文字のコードで示される米国の地域。このフィールドは空白でもかまいません。
remoteIp 文字列 イベントを生成したremoteIp。このデータを収集しない場合、代わりに0.0.0.0が保存されます。ipv6アドレスにすることもできます。一部のプロキシとモバイルネットワークでは、有用なIPアドレスは収集されません。
sever 文字列 イベントのURLのサーバー名部分。このフィールドは空白でもかまいません。
uiElementActions 文字列 エージェントによってguideActivityイベントが送信されるガイドとのインタラクションに関連付けられた要素アクション(openLinkguideSnoozedなど)。これは、singleEventsおよびguideEventsのソースに表示されます。
uiElementId 文字列 ガイド内のUI要素がクリックされたときのガイド要素の一意の識別子。これにより、guideActivityイベントがエージェントに送信されます。これは、singleEventsguideEventsguideElementClick、およびguideElementClickEverのソースに表示されます。
uiElementText 文字列 エージェントがguideActivityイベントの一環としてフィールドを送信するときのガイド要素のテキスト。guideActivityイベントがガイド要素のテキストと共に送信されると、ui_element_textsingleEventsおよびguideEventsのソースに表示されます。ui_element_textフィールドなしでguideActivityイベントが送信された場合でも、処理は実行されます。サブスクリプションによりすべてのテキストの除外を選択した場合、イベントが同時に送信されたとしても、ui_element_textは保存されません。
uiElementType 文字列 guideActivityイベントの送信時にクリックされた要素のタイプ。これは、singleEventsおよびguideEventsのソースに表示されます。
url 文字列 ウェブイベントを生成したページの正規化されたURL。モバイルイベントの場合、URLは画面構造をJSON形式で表したものになります。
userAgent 文字列 ウェブイベントを受信したときの、HTTPSリクエストからのユーザーエージェント。モバイルイベントの場合、userAgentはイベントを生成したデバイスタイプをテキスト形式で表したものになります。どちらのタイプの値も、ユーザーエージェントの解析機能と集計によって適切に解析されます。

イベントタイプの定義

ページ、フィーチャー、およびトラックイベントの定義は、それぞれのAvroファイルに含まれており、該当するイベントファイルに含まれるイベントデータに追加できます。

ページ

指標 タイプ 説明
pageId 文字列 ページの識別子。
kind 文字列 オブジェクトの種類の説明。常にPageになります。
lastUpdatedAt 整数 ページが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
createdAt 整数 ページが作成されたときのエポックタイムスタンプ(ミリ秒単位)。
rulesJson 文字列 ページを定義する正規表現ルール。
名前 文字列 ページに付けられた名前。
isCoreEvent ブール値 イベントがPendo Coreイベントかどうか。

フィーチャー

指標 タイプ 説明
featureId 文字列 フィーチャーの識別子(サブスクリプションごとに一意)。
kind 文字列 オブジェクトの種類の説明。常にFeatureになります。
lastUpdatedAt 整数 フィーチャーが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
createdAt 整数 フィーチャーが作成されたときのエポックタイムスタンプ(ミリ秒単位)。
pageId 文字列 フィーチャーを含むページの識別子。
名前 文字列 フィーチャーに付けられた名前。
isCoreEvent ブール値 イベントがPendo Coreイベントかどうか。

トラックイベント

指標 タイプ 説明
trackTypeId 文字列 トラックイベントの識別子(サブスクリプションごとに一意)。
kind 文字列 オブジェクトの種類の説明。常にTrackTypeになります。
lastUpdatedAt 整数 トラックイベントが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
createdAt 整数 トラックイベントが作成されたときのエポックタイムスタンプ(ミリ秒単位)。
eventPropertyNames 文字列 含まれているトラックイベントプロパティの名前。
名前 文字列 トラックイベントに付けられた名前。
isCoreEvent ブール値 イベントがPendo Coreイベントかどうか。

ガイド

指標 タイプ 説明
guideId 文字列 ガイドの識別子(サブスクリプションごとに一意)。
kind 文字列 オブジェクトの種類の説明。常にGuideになります。
lastUpdatedAt 整数 ガイドが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。
createdAt 整数 ガイドが作成されたときのエポックタイムスタンプ(ミリ秒単位)。
state 文字列 ガイドの可視性の状態(draftstagedpublicdisabled)。
名前 文字列 ガイドに付けられた名前。
emailState 文字列 NPSのメールバックアップの状態(無効の場合はdraft、有効の場合はpublic)。
launchMethod 文字列 ハイフンで区切られた、ガイドに適用される起動方法のセット。
isMultiStep ブール値 ガイドに複数のステップがあるかどうか。
isTraining ブール値 ガイドが「Adopt for Partners」のエンドユーザーアプリケーションに属するかどうか。
recurrence 整数 NPSガイドの反復期間(ミリ秒単位)。
recurrenceEligibilityWindow 整数 均等配信が有効になっている場合に、個々の訪問者がNPSガイドの対象となる時間(ミリ秒単位)。
attributJson 文字列 ガイドのタイプ、バッジの説明、ガイドが有効になるデバイスのタイプ、最後にガイドを編集したビジュアルデザインスタジオ(Visual Design Studio)のバージョンなどを含む、ガイド属性のJSON表現。
audienceUiHint 文字列 ガイドに適用されたセグメントを人間が判読できる形式で表したもの。
resetAt 整数 ガイドが最後にリセットされたときのタイムスタンプ。
publishedAt 整数 ガイドが最後に公開されたときのタイムスタンプ。
steps レコード guideStepIdnamepageId、およびappRelayUrlの文字列値を含むガイドステップ。

イベントファイルスキーマは、各イベントタイプ(すべてのイベントページフィーチャートラックイベント)のすべてのファイルに適用されます。ガイド専用のファイルはありません。代わりに、ガイドイベントは、該当するページフィーチャー、およびトラックイベントのファイルと同様に、すべてのイベントファイルに含まれます。

たとえば、「ガイドY」が「ページX」で起動された場合、guideActivityイベントはすべてのイベントファイルおよび「ページX」のイベントストリームに存在し、guideIdは「Y」に設定されます。イベントがguideActivityイベントでない場合、ガイドイベントに関連付けられたフィールドは空白になります。

さらに、イベントタイプごとに複数のイベントファイルが存在する場合があります。たとえば、アプリケーションに3件のタグ付きページ、2件のタグ付きフィーチャー、および2件の定義済みトラックイベントがある場合、エクスポートごとに以下の12個のAvroファイルを受け取ります。

  • ガイド定義(allguides.avro)
  • ページ定義(allpages.avro)
  • フィーチャー定義(allfeatures.avro)
  • トラックイベント定義(alltracktypes.avro)
  • すべてのイベントファイル(allevents.avro)
  • 3件のページイベントファイル(page1.avro、page2.avro、page3.avro)
  • 2件のフィーチャーイベントファイル(feature1.avro、feature2.avro)
  • 2件のトラックイベントファイル(tracktype1.avro、tracktype2.avro)

上記リスト内のファイル名は、説明を目的としたものです。実際のページ、フィーチャー、トラックイベントのファイル名は、各エクスポートの「billofmaterials.json」にある適切なIDを反映したものになります。