Pendoデータ同期を使用すると、Pendoデータをデータレイクやデータウェアハウスに送信し、他のデータソースと組み合わせて、AIワークフロー、機械学習モデル、ビジネスインテリジェンスダッシュボードに組み込むことができます。詳細については、「Pendoのデータ同期機能の概要」をご参照ください。
この記事では、イベントデータやアカウント、訪問者のメタデータを含む、データ同期エクスポートで使用されるスキーマについて説明します。サポートされているエクスポート方法は次の2つです。
- クラウドストレージにエクスポート。データは、イベント、訪問者、アカウント用の3つの個別のAvroファイルで提供されます。
- Snowflakeに同期。データは構造化されたテーブルで提供されます。標準のウェアハウステーブルスキーマの詳細については、「Snowflake ERDへのPendoデータ同期機能」をご覧ください。ERDにアクセスするには、パスワード「datasync」を入力する必要があります。
イベントデータの場合、基になるデータはどちらの形式でも同じです。アカウントおよび訪問者のメタデータについては、エクスポート方法によって構造が異なります。本記事のスキーマ表にフォーマットの違いが記載されています。
すべての日付とタイムスタンプは協定世界時(UTC)です。詳細については、 「データ同期のエクスポート処理」の「タイムスタンプとタイムゾーン」 をご参照ください。
イベント
データ同期には、ページ、フィーチャー、トラックイベントなどのタグ付きイベントを含む、Pendoがキャプチャしたすべてのイベントが含まれます。これらは、エクスポート方法に応じて、統合されたファイルとイベント固有のファイルまたはテーブルの組み合わせで提供されます。
すべてのイベントは包括的なエクスポートファイルまたはテーブルに含まれます。
タグ付きイベント(ページ、フィーチャー、トラックイベント)は、別々のイベント固有のエクスポートにも表示されます。
ガイドイベントはすべてのイベントエクスポートに含まれます。
以下の表は、これらのイベントタイプがAvroファイルおよびSnowflakeテーブルにどのように対応しているかを示しています。
| イベントタイプ | Avroファイル | ウェアハウステーブル |
|---|---|---|
| すべてのイベント | allevents.avro |
ALLEVENTS |
| ページイベント | matchedEvents/Page/{pageId}.avro |
MATCHEDPAGEEVENTS |
| フィーチャーイベント | matchedEvents/Feature/{featureId}.avro |
MATCHEDFEATUREEVENTS |
| トラックイベント | matchedEvents/TrackType/{trackId}.avro |
MATCHEDTRACKTYPEEVENTS |
以下のスキーマ定義は、ALLEVENTS、MATCHEDPAGEEVENTS、MATCHEDFEATUREEVENTS、MATCHEDTRACKTYPEEVENTSの4つのイベントテーブルすべてに適用されます。matchableIdとlastUpdatedAtはALLEVENTSではなく、マッチしたイベントテーブルにのみ表示されます。これらの例外は、該当するフィールドの説明に記載されています。
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
matchableId |
文字列 | STRING NOT NULL |
このイベントに一致するルールを持つページ、フィーチャー、またはトラックイベントのID。すべてのイベントデータには存在しません。
ID には、大文字(A~Z)、小文字(a~z)、数字(0~9)、ハイフン(-)、アンダースコア(_)が含まれます。最大文字数は500字です。 |
periodId |
DATE | NUMBER(38,0) NOT NULL | データウェアハウスへの読み込みを支援する便利なフィールドで、特定のイベントのbrowserTimestampの日付部分に相当します。日付はすべてUTCです。フォーマットはYYYY-MM-DDです。 |
visitorId |
文字列 | STRING NOT NULL |
イベントを実行した訪問者。最大文字数は500文字です。 訪問者および訪問者メタデータに結合できます。 Pendoのインストール時に顧客が設定した訪問者ID。 |
accountId |
文字列 | STRING NOT NULL |
訪問者に関連付けられているアカウント。最大文字数は500字です。 アカウントおよびアカウントメタデータに結合できます。アカウント情報が利用できない場合は、空の文字列が使用されます。 Pendoインストール時に顧客が設定したアカウントID。 |
analyticsSessionId |
文字列 | 文字列 | このイベントが記録されたときにアクティブだったウェブアナリティクスセッションの一意の識別子。セッションは、ブラウザで以前のセッションがアクティブでないときに開始され、30分間の非アクティブ状態が続くと終了します。ウェブアナリティクスのセッションはCookieまたはローカルストレージを使用して追跡され、同じドメイン内のブラウザタブ全体で保持されます。16桁の英数字文字列。 |
browserTimestamp |
LONG | NUMBER(38,0) | イベントのタイムスタンプ。use_avro_logical_typesフラグで日付としてデータウェアハウスに読み込むことができます。 |
country |
文字列 | 文字列 |
remoteIpに関連付けられた国。ISO 3166-1 alpha-2の国コードを使用します。このフィールドは空白でもかまいません。 |
deletedAt |
LONG | DATE | オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。 |
destinationStepId |
文字列 | 文字列 | フローを示すガイドの宛先ステップのIDを指定するguideAdvancedイベントに関連します。前のステップIDまたは次のステップIDにできます。singleEventsおよびguideEventsソースに表示されます。最大文字数は500字です。 |
elementPath |
文字列 | 文字列 | ウェブイベント用。空白か、イベントに関連するDOM要素を指定するCSSスタイルの文字列。モバイルの場合、イベントに関連するウィジェットのJSON形式の説明。最大文字数は60,000文字です。 |
eventClass |
文字列 | 文字列 | イベントはuiまたはtrackいずれかに分類できます。 |
eventId |
文字列 | 文字列 |
データ同期における
|
eventSource |
文字列 | 文字列 | 次のいずれかになります。web:Webページから発生したイベントの場合。mobile:モバイルアプリから発生したイベントの場合。email:メールから発生したイベントの場合。この値には小文字(a~z)のみが含まれ、最大長は9字です。 |
eventType |
文字列 | 文字列 | イベントのタイプ。次のような例が挙げられます。change:訪問者がアプリ内の要素を変更しました。click:訪問者がアプリ内の要素をクリックしました。focus:訪問者がアプリ内の要素にフォーカスしました。group:Twilioセグメントのインテグレーションによる「グループ」呼び出しに応答するイベント。guideActivity:訪問者がPendoガイドを使用しました。guideDismissed:訪問者がPendoガイドを閉じたことを示します。guideSeen:訪問者がPendoガイドを閲覧しました。identify:アプリが訪問者やアカウントのアイデンティティを特定しました。load:ページがロードされたことを示します。meta:アプリが訪問者やアカウントのメタデータを送信しました。pollResponse:訪問者がPendoの投票とアンケート調査を送信しました。trackトラックイベントが送信されました。モバイルイベントには、AppButtonClicked、AppScreenViewed、AppSessionStart、AppSessionEndなどがあります。 |
guideId |
文字列 | 文字列 | ガイド関連イベントや投票調査関連イベントを生成するガイドの一意の識別子。このフィールドは空白でもかまいません。最大文字数は500字です。 |
guideSeenReason |
文字列 | 文字列 |
guideSeenイベントタイプの場合、ガイドがユーザーに表示された理由。 |
guideSeenTimeoutMS |
LONG | NUMBER(38,0) |
guideTimeoutイベントの場合、guideTimeoutイベントの送信前に、特定のガイドステップが表示されるまでエージェントが待機した時間。 |
guideSessionId |
文字列 | 文字列 | ガイドや同時に読み込まれたその他納品物のリストの識別子。このIDは、クライアントからガイドがリクエストされるたびに変更され、読み込み中に発生するイベントは同じIDを持ちます。最大文字数は500字です。 |
guideSnoozeDurationMS |
LONG | NUMBER(38,0) |
guideSnoozedイベントタイプの場合、ガイドのスヌーズ時間(ミリ秒単位)。 |
guideStepId |
文字列 | 文字列 | ガイド関連イベントや投票調査関連イベントを生成するガイドステップの一意の識別子。このフィールドは空白でもかまいません。最大文字数は500字です。 |
language |
文字列 | 文字列 |
guideSeenイベントタイプの場合、表示されているガイドの言語。このフィールドは空白でもかまいません。https://datatracker.ietf.org/doc/html/bcp47 言語タグ(例: en-US)を使用します。 |
latitude |
小数 | 小数 | イベントのremoteIpの緯度。PendoがremoteIpを収集していない場合、このフィールドは空白です。 |
lastUpdatedAt |
JPNデータセンターではFeedback機能は提供していません。 | NUMBER(38,0) | Snowflakeのみ。一致したイベントが最後に転送に含まれた時点を示すエポックタイムスタンプ。このフィールドは、遡及処理中を含め、一致するイベントが転送に含まれるたびに更新されます。このフィールドを使用して、新しいデータと古いデータを区別します。 |
longitude |
小数 | 小数 | イベントのremoteIpの経度。PendoがremoteIpを収集していない場合、このフィールドは空白です。 |
loadDurationMS |
LONG | NUMBER(38,0) |
loadイベントの場合、ウェブページのレンダリングにかかった時間(ミリ秒単位)。ページの動的部分の読み込みにかかる時間は含まれません。 |
oldVisitorId |
文字列 | 文字列 | Pendoが認証を通じて識別する前に、訪問者に割り当てられた匿名の訪問者 ID。 |
pollId |
文字列 | 文字列 |
pollResponseイベントを生成した投票とアンケート調査の識別子。最大文字数は500字です。この識別子に関連する投票とアンケート調査オブジェクトは、allguides.avroファイル内のpollsリストにあり、具体的にはこのイベントのguideIdという識別子を持つガイドにあります。 |
pollResponse |
文字列 | 文字列 |
pollResponseイベントを生成した投票調査に対するJSON形式の回答。eventTypeがpollResponseでない限り、空になります。投票調査でのみ利用可能なデータへのインデックスにできます。投票とアンケート調査で定義されたカスタムレスポンスのセットに対応するレスポンスの場合、pollResponseの値は、allguides.avroファイル内のレスポンスマップのインデックスです。このマップは、識別子guideId(このイベントのもの)を持つガイドと、識別子pollId(このイベントのもの)を持つ投票とアンケート調査のpollsリストにあります。最大文字数は5,000文字です。 |
pollType |
文字列 | 文字列 |
pollResponseイベントを生成した投票調査のタイプ。NumberScale、PositiveNegative、FreeForm、PickListのいずれかです。 |
propertiesJson |
文字列 | 文字列 | イベントのすべてのユーザー定義イベントプロパティのJSON形式のマップ。 |
region |
文字列 | 文字列 | イベントのremoteIpに関連する米国地域。このフィールドは空白でもかまいません。州を表す2文字のコードとして提示されます。 |
remoteIp |
文字列 | 文字列 | イベントを生成したremoteIp。このデータを収集しない場合、代わりに0.0.0.0が保存されます。ipv6アドレスにすることもできます。一部のプロキシとモバイルネットワークでは、有用なIPアドレスは収集されません。 |
server |
文字列 | 文字列 | イベントのURLのサーバー名部分。このフィールドは空白でもかまいません。値はURLセーフ文字列(https://datatracker.ietf.org/doc/html/rfc3986 に準拠)であり、最大60,000字まで使用できます。 |
uiElementActions |
文字列 | 文字列 | エージェントによってguideActivityイベントが送信されるガイドとのインタラクションに関連付けられた要素アクション(openLinkやguideSnoozedなど)。これは、singleEventsおよびguideEventsのソースに表示されます。値はURLセーフ(Base64 スタイル)でエンコードされ (https://datatracker.ietf.org/doc/html/rfc4648 に準拠)、最大60,000字まで使用できます。 |
uiElementId |
文字列 | 文字列 | ガイド内のUI要素がクリックされたときのガイド要素の一意の識別子。これにより、guideActivityイベントがエージェントに送信されます。これは、singleEvents、guideEvents、guideElementClick、およびguideElementClickEverのソースに表示されます。最大文字数は60,000字です。 |
uiElementText |
文字列 | 文字列 | エージェントがguideActivityイベントの一環としてフィールドを送信するときのガイド要素のテキスト。guideActivityイベントがガイド要素のテキストと共に送信されると、ui_element_textがsingleEventsおよびguideEventsのソースに表示されます。ui_element_textフィールドなしでguideActivityイベントが送信された場合でも、処理は実行されます。サブスクリプションによりすべてのテキストの除外を選択した場合、イベントが同時に送信されたとしても、ui_element_textは保存されません。最大文字数は60,000字です。 |
uiElementType |
文字列 | 文字列 |
guideActivityイベントの送信時にクリックされた要素のタイプ。これは、singleEventsおよびguideEventsのソースに表示されます。これは任意の有効なHTML要素タグ(例:button)で、最大60,000字まで指定できます。 |
url |
文字列 | 文字列 | ウェブイベントを生成したページの正規化されたURL。モバイルイベントの場合、URLは画面構造をJSON形式で表したものになります。 |
userAgent |
文字列 | 文字列 | ウェブイベントを受信した際のHTTPSリクエストのユーザーエージェント文字列。モバイルイベントの場合、これはイベントを生成したデバイスタイプのテキスト表現です。userAgent値はすべてのイベントに含まれ、集計とセグメント化に使用されます。Pendoは、サードパーティのユーザーエージェント解析ライブラリの独自のコピーを使用して、ブラウザ、OS、デバイスタイプなどの詳細を抽出します。入力された文字列がライブラリ内の既知のパターンと一致しない場合、「Unknown」として記録されます。 |
ページ、フィーチャー、トラックイベント、ガイドの定義
ページ、フィーチャー、トラックイベントの定義は、それぞれ独自のファイルまたはテーブルに含まれており、matchableIdを使用してイベントデータに結合できます。
次の表は、エクスポート方法に応じて各定義が表示される場所を示しています。
| ビジネスオブジェクト | Avroファイル | ウェアハウステーブル |
|---|---|---|
| ページ | allpages.avro |
ページ |
| フィーチャー | allfeatures.avro |
フィーチャー |
| トラックイベント | alltracktypes.avro |
TRACKTYPES |
| ガイド | allguides.avro |
ガイド |
ページ
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
pageId |
文字列 | STRING NOT NULL | ページの識別子。最大文字数は500字です。 |
kind |
文字列 | 文字列 | オブジェクトの種類の説明。常にPageになります。 |
name |
文字列 | 文字列 | ページに付けられた名前。最大文字数は1500字です。 |
lastUpdatedAt |
LONG | NUMBER(38,0) | ページが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。 |
isCoreEvent |
ブール値 | ブール値 | イベントがPendo Coreイベントかどうか。 |
deletedAt |
LONG | DATE | オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。 |
rulesUpdatedAt |
JPNデータセンターではFeedback機能は提供していません。 | NUMBER(38,0) | Snowflakeのみ。ページのルールが更新された時点を示すエポックタイムスタンプ。 |
softDeleteMethod |
JPNデータセンターではFeedback機能は提供していません。 | NUMBER(38,0) | Snowflakeのみ。どのソフト削除方法が適用されるかを示します(1 = オリジナル、2 = 新しいタイムスタンプの比較)。 |
rulesJson |
文字列 | 文字列 | このフィールドはPendoクラシック(レガシー)デザイナーのみが使用し、ほとんどのページでは空になることが予想されます。UTF-8形式のJSON文字列です。 |
フィーチャー
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
featureId |
文字列 | STRING NOT NULL | フィーチャーの識別子(サブスクリプションごとに一意)。最大文字数は500字です。 |
kind |
文字列 | 文字列 | オブジェクトの種類の説明。常にFeatureになります。 |
name |
文字列 | 文字列 | フィーチャーに付けられた名前。 |
lastUpdatedAt |
LONG | NUMBER(38,0) | フィーチャーが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。 |
isCoreEvent |
ブール値 | ブール値 | イベントがPendo Coreイベントかどうか。 |
deletedAt |
LONG | DATE | オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。 |
rulesUpdatedAt |
JPNデータセンターではFeedback機能は提供していません。 | NUMBER(38,0) | Snowflakeのみ。フィーチャーのルールが更新された時点のエポックタイムスタンプ。 |
softDeleteMethod |
JPNデータセンターではFeedback機能は提供していません。 | NUMBER(38,0) | Snowflakeのみ。どのソフト削除方法が適用されるかを示します(1 = オリジナル、2 = 新しいタイムスタンプの比較)。 |
トラックイベント
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
trackTypeId |
文字列 | STRING NOT NULL | トラックイベントの識別子(サブスクリプションごとに一意)。最大文字数は500字です。 |
kind |
文字列 | 文字列 | オブジェクトの種類の説明。常にTrackTypeになります。 |
name |
文字列 | 文字列 | トラックイベントに付けられた名前。 |
trackTypeName |
文字列 | 文字列 | トラックイベントの表示名。 |
lastUpdatedAt |
LONG | NUMBER(38,0) | トラックイベントが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。 |
isCoreEvent |
ブール値 | ブール値 | イベントがPendo Coreイベントかどうか。 |
trackTypeRules |
文字列 | 配列 | トラックイベントを定義するために使用されるルールのリスト。 |
eventPropertyNames |
文字列 | 配列 | 含まれているトラックイベントプロパティの名前。 |
deletedAt |
LONG | DATE | オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。 |
rulesUpdatedAt |
JPNデータセンターではFeedback機能は提供していません。 | NUMBER(38,0) | Snowflakeのみ。トラックイベントのルールが更新された時点のタイムスタンプ。この値はトラックイベントが作成されたときに設定され、その後は更新されません。 |
softDeleteMethod |
JPNデータセンターではFeedback機能は提供していません。 | NUMBER(38,0) | Snowflakeのみ。どのソフト削除方法が適用されるかを示します(1 = オリジナル、2 = 新しいタイムスタンプの比較)。 |
ガイド
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
guideId |
文字列 | 文字列 | ガイドの識別子(サブスクリプションごとに一意)。最大文字数は500字です。 |
kind |
文字列 | 文字列 | オブジェクトの種類の説明。常にGuideになります。 |
lastUpdatedAt |
LONG | NUMBER(38,0) | ガイドが最後に更新されたときのエポックタイムスタンプ(ミリ秒単位)。 |
createdAt |
LONG | NUMBER(38,0) | ガイドが作成されたときのエポックタイムスタンプ(ミリ秒単位)。 |
state |
文字列 | 文字列 | ガイドの可視性の状態(draft、staged、public、disabled)。 |
name |
文字列 | 文字列 | ガイドに付けられた名前。 |
emailState |
文字列 | 文字列 | NPSのメールバックアップの状態(無効の場合はdraft、有効の場合はpublic)。 |
launchMethod |
文字列 | 文字列 | ハイフンで区切られた、ガイドに適用される起動方法のセット。 |
isMultiStep |
ブール値 | ブール値 | ガイドに複数のステップがあるかどうか。 |
isTraining |
ブール値 | ブール値 | ガイドが「Adopt for Partners」のエンドユーザーアプリケーションに属するかどうか。 |
recurrence |
LONG | NUMBER(38,0) | NPSガイドの反復期間(ミリ秒単位)。 |
recurrenceEligibilityWindow |
LONG | NUMBER(38,0) | 均等配信が有効になっている場合に、個々の訪問者がNPSガイドの対象となる時間(ミリ秒単位)。 |
attributeJson |
文字列 | 文字列 | ガイドのタイプ、バッジの説明、ガイドが有効になるデバイスのタイプ、最後にガイドを編集したビジュアルデザインスタジオ(Visual Design Studio)のバージョンなどを含む、ガイド属性のJSON表現。 |
audience |
文字列 | 文字列 | ガイドがターゲットとする訪問者を定義するロジック。 |
audienceUiHint |
文字列 | 文字列 | ガイドに適用されたセグメントを人間が判読できる形式で表したもの。 |
resetAt |
LONG | NUMBER(38,0) | ガイドが最後にリセットされたときのタイムスタンプ。 |
publishedAt |
LONG | NUMBER(38,0) | ガイドが最後に公開されたときのタイムスタンプ。 |
steps |
レコード | 配列 |
次の値を含むガイドステップ:
|
アンケート調査 |
レコード | 配列 |
次の値を含む投票とアンケート調査の質問:
|
deletedAt |
LONG | DATE | オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。 |
アカウントと訪問者
アカウントと訪問者の定義は、エクスポート方法に応じて、メインオブジェクトテーブルと補足メタデータファイルまたはテーブルの両方に表示されます。以下の表は、各タイプのデータが表示される場所を示しています。
| データ型 | Avroファイル | ウェアハウステーブル |
|---|---|---|
| アカウント | accounts.avro |
アカウント |
| アカウントメタデータ | accountmetadata.avro |
ACCOUNTMETADATA |
| 訪問者 | visitors.avro |
訪問者 |
| 訪問者メタデータ | visitormetadata.avro |
VISITORMETADATA |
アカウント
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
id |
文字列 | STRING NOT NULL | アカウントの一意の識別子。最大文字数は500字です。 |
auto.id |
文字列 | STRING NOT NULL |
idと同じ一意の識別子。Snowflakeエクスポートのスキーマ正規化のために含まれます。最大文字数は500字です。 |
deletedAt |
LONG | DATE | オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。 |
firstvisitMS |
LONG | NUMBER(38,0) | アカウントに対してイベントが最初にキャプチャされた時刻のタイムスタンプ(ミリ秒単位)。 |
idhash |
整数 | NUMBER(38,0) | アカウントIDのハッシュ。 |
lastvisitMS |
LONG | NUMBER(38,0) | アカウントに対してイベントが最後にキャプチャされた時刻のタイムスタンプ(ミリ秒単位)。 |
lastupdatedMS |
LONG | NUMBER(38,0) | アカウントが最後に更新された時刻のタイムスタンプ(ミリ秒単位)。 |
値 |
VARIANT | VARIANT | このメタデータフィールドに関連付けられた値。形式とタイプは、メタデータスキーマ内のフィールドの定義によって異なります。 |
<fieldname>_<APP_ID> |
場合により異なる | 場合により異なる | 複数アプリケーションのサブスクリプションの場合、Pendoは<fieldname>_<APP_ID>の値を、アプリケーションによって異なる可能性のある上記のフィールドに対して送信します。これが可能なメタデータフィールドには、メタデータスキーマファイルでisPerAppがtrueに設定されています(以下を参照)。 |
agent_<fieldname> |
場合により異なる | 場合により異なる | すべてのエージェントメタデータフィールドに対して、アカウントのavroファイルにagent_<fieldname>という名前のフィールドが作成されます。Pendoメタデータのフィールドタイプとavroタイプのマッピングについては、以下をご覧ください。 |
<metadata_group> |
文字列 | 文字列 |
エージェント以外のメタデータグループに対しては、そのメタデータグループとすべてのフィールドのJSON表現を送信します。メタデータスキーマファイルには、メタデータグループの各フィールドの名前、タイプ、その他の情報が含まれます。 |
incompleteFields |
STRINGのリスト | 配列 | メタデータスキーマで指定されたタイプと互換性のない値を持つメタデータフィールドのリスト。 |
訪問者
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
id |
文字列 | STRING NOT NULL | 訪問者の一意の識別子。最大文字数は500字です。 |
accountids |
配列 | 配列 | 訪問者に割り当てられた一意のアカウントID(STRING値)のリスト。各アカウントの最大文字数制限は500字です。 |
accountId |
文字列 | 文字列 | 訪問者が最後に関連付けられたアカウントID。最大文字数は500字です。 |
deletedAt |
LONG | DATE | オブジェクトが削除された日付。オブジェクトが削除されていない場合は空になります。 |
firstvisitMS |
LONG | NUMBER(38,0) | イベントが訪問者に対して最初にキャプチャされたときのタイムスタンプ(ミリ秒単位) |
idhash |
整数 | NUMBER(38,0) | 訪問者IDのハッシュ。 |
lastbrowsername |
文字列 | 文字列 | 最後に使用したブラウザ名。この値には大文字(A~Z)または小文字(a~z)のみが含まれ、最大長は13字です。 |
lastbrowserversion |
文字列 | 文字列 | 最後に使用したブラウザのバージョン。最大文字数は5,000字です。 |
lastoperatingsystem |
文字列 | 文字列 | 最後に使用したオペレーティングシステム。最大文字数は5,000字です。 |
lastservername |
文字列 | 文字列 | 最後に使用したサーバー名。最大文字数は60,000字です。 |
lastvisitMS |
LONG | NUMBER(38,0) | 訪問者に対してイベントが最後に記録された時刻のタイムスタンプ(ミリ秒単位)。 |
lastupdatedMS |
LONG | NUMBER(38,0) | 訪問者が最後に更新された時刻のタイムスタンプ(ミリ秒単位)。 |
lastuseragent |
文字列 | 文字列 | 最後に使用したユーザーエージェント(未解析)。最大文字数は512字です。 |
lastvisitorid |
文字列 | 文字列 | 最新の訪問者ID。最大文字数は500字です。 |
identifiedvisitoratMS |
LONG | NUMBER(38,0) | Pendoアイデンティティマッピングによって匿名の訪問者IDと識別済みの訪問者IDが統合された際に、訪問者が特定された時刻のタイムスタンプ(ミリ秒単位)が表示されるフィールドです。 |
identifiedvisitorid |
文字列 | 文字列 | PendoのIDマッピングによって匿名訪問者IDが識別済みの訪問者と統合された場合、このフィールドは識別済みの訪問者IDで更新されます。識別された訪問者 ID を利用することで、ユーザージャーニーを一元的に把握できます。最大文字数は500文字です。 |
値 |
VARIANT | VARIANT | このメタデータフィールドに関連付けられた値。形式とタイプは、メタデータスキーマ内のフィールドの定義によって異なります。 |
<fieldname>_<APP_ID> |
場合により異なる | 場合により異なる | 複数アプリケーションのサブスクリプションの場合、Pendoは<fieldname>_<APP_ID>の値を、アプリケーションによって異なる可能性のある上記のフィールドに対して送信します。これが可能なメタデータフィールドには、メタデータスキーマファイルでisPerAppがtrueに設定されています(以下を参照)。 |
agent_<fieldname> |
場合により異なる | 場合により異なる | すべてのエージェントメタデータフィールドに対して、訪問者のavroファイルにagent_<fieldname>というフィールドが作成されます。Pendoメタデータのフィールドタイプとavroタイプのマッピングについては、以下をご覧ください。 |
<metadata_group> |
文字列 | 文字列 |
エージェント以外のメタデータグループに対しては、そのメタデータグループとすべてのフィールドのJSON表現を送信します。メタデータスキーマファイルには、メタデータグループの各フィールドの名前、タイプ、その他の情報が含まれます。 |
incompleteFields |
STRINGのリスト | 配列 | メタデータスキーマで指定されたタイプと互換性のない値を持つメタデータフィールドのリスト。 |
メタデータ
アカウントと訪問者のメタデータは、エクスポート方法によって表現が異なります。
クラウドストレージ
各エクスポートでは、2種類のファイルが生成されます。
エンティティファイル(
accounts.avroおよびvisitors.avro)。各エンティティにつき1行。メタデータ値は動的列として埋め込まれています。エージェントのメタデータグループフィールドはagent_<fieldname>として表示され、他のグループ(例えばカスタムやSalesforce)はグループ名を冠した単一のJSONエンコードされた文字列列として表示されます。メタデータスキーマファイル(
accountmetadata.avroおよびvisitormetadata.avro)。各メタデータフィールド定義につき1行。これらのファイルはエンティティIDやエンティティごとの値を含みません。avroFieldNameフィールドを使ってエンティティファイルの列名をメタデータ定義にマッピングします。
Snowflake
データ同期は、一般的なクラウドストレージメタデータスキーマファイルとは異なるSnowflake固有の内部ファイル形式を生成します。このフォーマットはlong形式(正規化済み)です。エンティティIDとエンティティごとの値の両方を含む、エンティティとメタデータフィールドごとに1行ずつあります。
ACCOUNTMETADATAとVISITORMETADATAテーブルは、このSnowflakeフォーマットに基づいて構築されています。これらは、クラウドストレージのaccountmetadata.avroファイルとvisitormetadata.avroファイルの直接のコピーではありません。
注:SnowflakeストアドプロシージャACCOUNTMETADATA_LOAD_AND_MERGEおよびVISITORMETADATA_LOAD_AND_MERGEは、AccountIDおよびVisitorIDを参照していますが、これはaccountmetadata.avroやvisitormetadata.avroからではなく、このSnowflake固有のロングフォーマットファイルからロードするためです。
サンプルレコード:クラウドストレージとSnowflakeの比較
以下のサンプルレコードは、2つのエクスポート方法の構造的な違いを示しています。
クラウドストレージのレコード例(accountmetadata.avroまたはvisitormetadata.avro )。これはスキーマ定義のみであり、エンティティIDも値も含まれていません。
グループ |
name |
avroFieldName |
displayName |
type |
isDeleted |
isPerApp |
|---|---|---|---|---|---|---|
カスタム |
role |
agent_role |
役割 |
string |
誤り |
誤り |
Snowflakeレコードのサンプル(VISITORMETADATA)。エンティティIDとエンティティごとの値を含み、訪問者とメタデータフィールドの組み合わせごとに1行となります。
visitorID |
metadataGroup |
name |
displayName |
type |
isDeleted |
isPerApp |
値 |
|---|---|---|---|---|---|---|---|
visitor_abc |
カスタム |
role |
役割 |
string |
誤り |
誤り |
"admin" |
メタデータスキーマフィールド
以下の表は、メタデータスキーマのフィールドについて説明しています。特定のエクスポート方法に固有の項目は、「クラウドストレージのみ」または「Snowflakeのみ」としてマークされます。
クラウドストレージのメタデータスキーマファイル(accountmetadata.avroとvisitormetadata.avro)には、フィールド定義のみが含まれており、エンティティIDやエンティティごとの値は含まれていません。avroFieldName列は、各フィールド定義をaccounts.avroまたはvisitors.avroの対応する列にリンクします。その代わりに、SnowflakeのACCOUNTMETADATAテーブルとVISITORMETADATAテーブルには、エンティティIDと値が直接含まれます。
| フィールド名 | Avroタイプ | Snowflakeのタイプ | 説明 |
|---|---|---|---|
accountIdまたはvisitorId
|
JPNデータセンターではFeedback機能は提供していません。 | STRING NOT NULL | エンティティ識別子。Snowflakeのみ。accountmetadata.avroまたはvisitormetadata.avroには存在しません。 |
avroFieldName |
文字列 | JPNデータセンターではFeedback機能は提供していません。 | クラウドストレージのみ。Avroエンティティファイル(accounts.avroまたはvisitors.avro)内のフィールド名。このフィールドを使ってメタデータ定義をエンティティファイルの対応する列にマッピングします。最大文字数は5,002文字です。このフィールドは、SnowflakeのACCOUNTMETADATAテーブルまたはVISITORMETADATAテーブルには存在しません。 |
name |
文字列 | STRING NOT NULL | Pendoのメタデータフィールド名。最大文字数は5000字です。 |
グループ |
文字列 | 文字列 | Pendoのメタデータフィールドのグループ名。最大文字数は5,000文字です。Snowflakeテーブルでは、このフィールドはmetadataGroupという名前です。 |
displayName |
文字列 | 文字列 | Pendoのメタデータフィールドの表示名。最大文字数は5000字です。 |
type |
文字列 | 文字列 | フィールドのデータ型。string、int、float、boolean、time、listなどをオプションとして選択できます。 |
elementType |
文字列 | 文字列 |
typeがlistの場合、各要素のデータ型。該当しない場合は空白になります。この値には小文字(a-z)のみが含まれ、最大長は7文字です。 |
elementformat |
文字列 | 文字列 | メタデータフィールドのデータ形式。例えば、typeがtimeの場合、elementFormatはmillisecondsなどになります。該当しない場合は空白になります。最大文字数は40字です。 |
isDeleted |
ブール値 | BOOLEAN NOT NULL DEFAULT FALSE | フィールドが削除済みの場合はtrue。 |
isPerApp |
ブール値 | BOOLEAN NOT NULL DEFAULT FALSE | フィールドが各アプリケーションに存在できる場合はtrue(複数アプリケーションのサブスクリプションのみ可能です)。 |
値 |
JPNデータセンターではFeedback機能は提供していません。 | VARIANT | エンティティごとのメタデータ値。Snowflakeのみ。クラウドストレージの場合、エンティティごとの値はaccounts.avroまたはvisitors.avroの動的列として保存されます。(エージェントグループのフィールドはagent_<fieldname>の形式、その他のグループはグループ名を冠したJSONエンコードされた文字列列の形式)。 |
AvroエクスポートからSnowflakeメタデータテーブルを再現する
クラウドストレージのエクスポートを使用し、SnowflakeのVISITORMETADATAテーブルやACCOUNTMETADATAテーブルに相当するものを構築したい場合は、以下の手順でAvroファイルから再構築することができます。
-
visitors.avroまたはaccounts.avroを読み込みます。各ファイルはエンティティごとに1行ずつあり、メタデータ値は動的列として使われます。 -
visitormetadata.avroまたはaccountmetadata.avroをロードします。各ファイルはメタデータフィールド定義ごとに1行ずつ構成されます。 - ステップ1の動的列を次の構造を持つ行にピボット解除します:
(visitorId/accountId, group, name, value)-
agent_<fieldname>列は、フィールド名<fieldname>のagentメタデータグループにマッピングされます。 -
<group>JSON文字列列では、JSONを解析して個々のフィールド名と値を抽出する必要があります。
-
- ステップ3の結果をステップ2の
avroFieldNameに結合し、各行にdisplayName、type、elementType、elementFormat、isDeleted、isPerAppを追加します。 - 結果は、Snowflakeの
VISITORMETADATAまたはACCOUNTMETADATAテーブルの構造と一致します。
タイプマッピング
Pendoのフィールドタイプは、以下の方法でAvroおよびSnowflakeのデータタイプにマッピングできます。
| Pendoフィールドタイプ | Pendoデータマッピングのフィールドタイプ | Avroタイプ | Snowflakeのタイプ |
|---|---|---|---|
| string | テキスト(string) | 文字列 | 文字列 |
| int | 数値型(整数) | 整数 | NUMBER(38,0) |
| float | 数値型(小数) | 小数 | 小数 |
| boolean | ブール値(boolean) | ブール値 | ブール値 |
| time | 日付(time) | LONG(ミリ秒の論理タイプ) | NUMBER(38,0) |
| リスト | リスト(list) | 配列 | 配列 |