このページでは

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

Google Cloud Storage

AmplitudeイベントデータとマージされたユーザーデータをGoogle Cloud Storage(GCS)アカウントにエクスポートできます。 Google Cloudのバケットポリシーを使用すると、このデータを管理したり、プログラムでGoogle Cloudバケットにエクスポートしたりできます。Amplitude UIから、1時間に1回程度の頻度で定期同期を設定できます。

前提条件

連携を構成する前に、GCSサービスアカウントを作成し、権限を設定してください。

まだ作成していない場合は、Google Cloud コンソール内でAmplitudeのサービスアカウントを作成してください。 このサービスアカウントを使用すると、AmplitudeはデータをGoogle Cloudプロジェクトにエクスポートできます。

サービスアカウントを作成したら、サービスアカウントキーファイルを生成してダウンロードし、Amplitudeにアップロードしてください。 AmplitudeのアカウントキーをJSON形式でエクスポートします。

このサービスアカウントを、データをエクスポートしたいバケットのメンバーとして追加してください。 このメンバーにストレージ管理者の役割を付与することで、Amplitudeがデータをバケットにエクスポートする権限を得られます。

また、独自の役割を作成することもできます。 エクスポート プロセスには、少なくとも次の権限が必要です。

  • storage.buckets.get
  • storage.objects.get
  • storage.objects.create
  • storage.objects.delete
  • storage.objects.list

連携を設定する

Amplitudeでの管理者権限と、GCSでリソースを有効にできる役割が必要です。

  1. Amplitudeデータで、**[カタログ]をクリックし、[宛先]**タブを選択します。
  2. [Warehouse送信先] セクションで、[Google Cloud Storage] をクリックします。
  3. 「はじめに」タブで、エクスポートするデータを選択します。 今日取り込まれたイベントを今後エクスポートするか、マージされたすべてのAmplitude IDをエクスポートするか、またはその両方を行うことができます。 イベントに対しては、特定の基準を満たすイベントのみをエクスポートするようにフィルタリング条件を指定することもできます。

これら2つのデータタイプを別々のバケットにエクスポートできます。セットアップフローを2回完了してください。データタイプごとに一度です。

  1. イベント テーブルとマージ ID テーブルのスキーマを確認し、次へ をクリックしてください。
  2. 「Google Cloud Credentials For Amplitude」セクションで、サービスアカウントキーファイルをアップロードします。 このファイルはJSON形式である必要があります。
  3. アカウントサービスキーをアップロードした後、Google Cloudバケットの詳細セクションでGoogle Cloudバケットの詳細情報を入力してください。
  4. 次へ をクリックします。Amplitudeは認証情報が機能しているかどうかを確認するためにテストアップロードを試みます。 アップロードが成功したら、完了 をクリックして GCS の送信先設定とアクティベーションを完了します。

Amplitudeは、今後のすべてのイベントとマージされたユーザーを自動的にGCSに送信します。Amplitudeはベストエフォートベースでファイルをお客様の GCS アカウントにエクスポートします。 エクスポートは通常、1 時間ごとに実行され、1 時間のデータが含まれますが、実行頻度が低く、複数時間のデータが含まれている場合もあります。

手動エクスポートを実行する

データを手動でエクスポートすることにより、履歴データをGCSにバックフィルできます。

  1. Google Cloud Storageのエクスポート接続ページに移動します。
  2. [バックフィル] タブに移動します。
  3. 希望する日付範囲を選択します。
  4. [バックフィルの開始] をクリックします。

バックフィル範囲が以前にエクスポートされたデータと重複する場合、Amplitudeは重複するデータの重複除外を行います。

エクスポートされたデータ形式

GCS エクスポートを設定する際には、バケット名とオプションのフォルダ/プレフィックスを指定します。 このプレフィックスは、エクスポートされたデータがバケット内のどこに表示されるかを決定します。 プレフィックスを空のままにしておくと、Amplitudeはバケットルートにオブジェクトを直接書き込みます。

生のイベントファイルとデータ形式

AmplitudeはデータをJSONファイルの圧縮アーカイブとしてエクスポートします。JSONファイルは時間ごとに1つ以上のファイルで分割されています。 各ファイルには、1 行あたり 1 つのイベント JSON オブジェクトが含まれています。

オブジェクトキー構造

AmplitudeはエクスポートされたイベントファイルをプロジェクトIDと一致する{appId}ディレクトリに整理します。 完全なオブジェクトキー構造は次のとおりです。

{gcsPrefix}/{appId}/{filename}

プレフィクスを設定しない場合、パスは次のようになります。

{appId}/{filename}

場所:

  • {gcsPrefix} は、Amplitude UIで設定できるオプションのフォルダ/プレフィックスです。
  • {appId} は、AmplitudeプロジェクトIDです(ファイル名に表示されるものと同じIDです)。
  • {filename} 以下の形式に従います。

ファイル名の形式

ファイル名の構文は次のとおりです。ここで、時刻はAmplitudeサーバーがデータを受信した時刻(UTC)を表します(server_upload_time):

projectID_yyyy-MM-dd_H#partitionInteger.json.gz

たとえば、2020年1月25日午後5時から6時 (UTC) の間にこのプロジェクトにアップロードされたデータの最初のパーティションは、次のファイルにあります。

187520_2020-01-25_17#1.json.gz

例

バケットが amplitude-data で、プレフィックスが events で、プロジェクトIDが 187520 の場合、このファイルのGCSフルパスは次のとおりです。

gs://amplitude-data/events/187520/187520_2020-01-25_17#1.json.gz

エクスポートされたデータの JSON オブジェクトスキーマは次のとおりです。

json
{
  "server_received_time": UTC ISO-8601 timestamp,
  "app": int,
  "device_carrier": string,
  "$schema":int,
  "city": string,
  "user_id": string,
  "uuid": UUID,
  "event_time": UTC ISO-8601 timestamp,
  "platform": string,
  "os_version": string,
  "amplitude_id": long,
  "processed_time": UTC ISO-8601 timestamp,
  "version_name": string,
  "ip_address": string,
  "paying": boolean,
  "dma": string,
  "group_properties": dict,
  "user_properties": dict,
  "client_upload_time": UTC ISO-8601 timestamp,
  "$insert_id": string,
  "event_type": string,
  "library":string,
  "amplitude_attribution_ids": string,
  "device_type": string,
  "device_manufacturer": string,
  "start_version": string,
  "location_lng": float,
  "server_upload_time": UTC ISO-8601 timestamp,
  "event_id": int,
  "location_lat": float,
  "os_name": string,
  "amplitude_event_type": string,
  "device_brand": string,
  "groups": dict,
  "event_properties": dict,
  "data": dict,
  "device_id": string,
  "language": string,
  "device_model": string,
  "country": string,
  "region": string,
  "is_attribution_event": bool,
  "adid": string,
  "session_id": long,
  "device_family": string,
  "sample_rate": null,
  "idfa": string,
  "client_event_time": UTC ISO-8601 timestamp,
 }

マージされたAmplitude IDのファイルとデータ形式

AmplitudeはデータをJSONファイルの圧縮アーカイブとしてエクスポートします。 各ファイルには、1行につき1つのマージされたAmplitude ID JSONオブジェクトが含まれています。

オブジェクトキー構造

Amplitudeは、マージされたIDファイルをお客様の組織IDと一致する-{orgId}ディレクトリに整理します。 完全なオブジェクトキー構造は次のとおりです。

{gcsPrefix}/-{orgId}/{filename}

プレフィクスを設定しない場合、パスは次のようになります。

-{orgId}/{filename}

場所:

  • {gcsPrefix} は、Amplitude UIで設定できるオプションのフォルダ/プレフィックスです。
  • -{orgId} はAmplitudeの組織IDで、先頭にハイフンが付いています。
  • {filename} 以下の形式に従います。

ファイル名の形式

ファイル名の構文は次のとおりです。ここで、時刻はAmplitudeサーバーがデータを受信した時刻(UTC)を表します(server_upload_time):

-{orgId}_yyyy-MM-dd_H.json.gz

たとえば、組織 ID 189524 の場合、Amplitudeは2020年1月25日午後5時から午後6時(UTC)の間に受信したデータをファイルにエクスポートします。

-189524_2020-01-25_17.json.gz

例

バケットが amplitude-data で、プレフィックスが merged で、組織 ID が 189524 の場合、このファイルの GCS フル パスは次のとおりです。

gs://amplitude-data/merged/-189524/-189524_2020-01-25_17.json.gz

レガシー組織

一部のレガシー組織では、組織 ID ではなくアプリ ID でマージされた ID がエクスポートされていることがあります。この場合、ディレクトリとファイル名は {appId} を使用し、先頭に - は付けません。Amplitude サポートにお問い合わせいただき、お客様の組織に適用されるフォーマットをご確認ください。

マージされた ID JSON オブジェクトには、次のスキーマがあります。

json
{
 "scope": int,
 "merge_time": long,
 "merge_server_time": long,
 "amplitude_id": long,
 "merged_amplitude_id": long
}

これは役に立ちましたか?