メインコンテンツへスキップ
日本語版は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構造にデコードする必要があります。 デコード済みメッセージのサンプル