Skip to main content
日本語版はAIによる翻訳です。正確な情報については英語版をご参照ください。

概要

このドキュメントでは、Pub/Sub 上の Auxia システムを使用してユーザーイベントとユーザー属性をパブリッシュする方法を説明します。Auxia が想定するメッセージフォーマット、スキーマ、および Pub/Sub からの結果メッセージのサンプルについて解説します。

お客様側の要件

Pub/Sub 統合を設定するには、以下を提供してください。
  1. トピック名(フルパス)
    • 例: projects/my-company/topics/user-events
  2. トピックに対する権限
    • Auxia のサービスアカウント(data-transfer@auxia-gcp.iam.gserviceaccount.com)に上記トピックの pubsub.subscriptions.create 権限を付与してください。これにより、Auxia 側でサブスクリプションを作成できます。

メッセージフォーマットの要件

Auxia が処理できるよう、トピックにパブリッシュする各メッセージは以下の要件に従ってください。
  1. メッセージデータはバイナリエンコードされた protobuf であること。 各 LogEventsRequest(イベント)または UserAttributePb(ユーザー属性)を標準の protobuf バイナリエンコーディングでシリアライズし(例: Python の SerializeToString()、Java および Kotlin の toByteArray())、その結果のバイト列をメッセージデータとしてパブリッシュしてください。textproto および JSON のペイロードはサポートされていません。このページの textproto サンプルは読みやすさのために記載しています。
  2. 各メッセージに data_type 属性があること。 イベントには EventData、ユーザー属性には UserAttribute を設定してください。
イベントおよびユーザー属性の Auxia スキーマは、フィールド名、フィールド番号、型を含めて記載どおりに使用してください。これらの要件に従っていないメッセージは処理できません。

イベント:

ユーザーイベントのスキーマ:

Event Transaction データのドキュメントに記載されているスキーマを参照してください。以下のリンクで提供されている正確なスキーマを使用してください: Auxia ユーザーイベントスキーマ

イベントパブリッシュ用の Textproto フォーマット:

以下のサンプルは、読みやすさのために LogEventsRequest を textproto で示したものです。メッセージフォーマットの要件に従い、バイナリエンコードされた protobuf としてパブリッシュしてください。LogEventsRequest および ExternalEventPb メッセージのスキーマはドキュメントに従います。 サンプル textproto:

Pub/Sub からプルしたサンプルメッセージ:

Pub/Sub からのメッセージのデコード:

Pub/Sub からメッセージをプルした後、読み取り可能なフォーマットにデコードする必要があります。メッセージの data フィールドには base64 エンコードされた文字列が含まれています。この文字列を LogEventsRequest のスキーマに一致する JSON 構造にデコードする必要があります。 サンプルデコード済みメッセージ:

ユーザー属性:

ユーザー属性のスキーマ:

ユーザー属性のドキュメントを参照してください。以下の正確なスキーマを使用してください。

ユーザー属性パブリッシュ用の Textproto フォーマット:

以下のサンプルは、読みやすさのために UserAttributePb を textproto で示したものです。メッセージフォーマットの要件に従い、バイナリエンコードされた protobuf としてパブリッシュしてください。UserAttributePb メッセージのスキーマは上記のスキーマに従います。 サンプル textproto:

Pub/Sub からプルしたサンプルメッセージ:

Pub/Sub からのメッセージのデコード:

Pub/Sub からメッセージをプルした後、読み取り可能なフォーマットにデコードする必要があります。メッセージの data フィールドには base64 エンコードされた文字列が含まれています。この文字列を AuxiaUserAttribute のスキーマに一致する JSON 構造にデコードする必要があります。 サンプルデコード済みメッセージ: