このページでは

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.

ドメインプロキシを使用してイベントをリレーする

ドメインプロキシは、AmplitudeイベントをAmplitudeに転送する前に、独自のドメイン(例:your.domain.com/amplitude)を通じてリレーする自己所有のサービスです。この方法でイベントをルーティングすることで、収集したデータを管理することができ、イベントがAmplitudeに到達する前にフィルタリング、匿名化、ブロックする機能などがあります。

このガイドでは、AmplitudeのHTTP V2 API(api2.amplitude.com)へのプロキシの構築に焦点を当てています。この設定は、イベントをプロキシサービスからAmplitudeに直接送信します。

プロキシサーバーを選択して導入する前に、開発者運用チームや情報セキュリティチームと相談してください。

ドメインプロキシの仕組み

プロキシサービスは、クライアントと他のサービスとの間でリクエストを中継する、仲介ステップとして機能します。 Amplitude組織用のプロキシサービスを構築することで、独自のドメインを通じてAmplitude APIへのリクエストをプロキシできます。 たとえば、クライアントブラウザ上のリクエストをapi2.amplitude.comに直接送信するのではなく、your.domain.com/amplitudeに送信できます。プロキシサービスはリクエストをAmplitudeプラットフォームに中継します。

プロキシサービスは既存のAPIエンドポイントに統合することも、スタンドアロンサービスとして構築することもできます。多くのクラウドプロバイダーは、柔軟で信頼性の高いプロキシサービスを設定するためのツールを提供しています。

独自のプロキシサービスを通じてデータを送信することで、収集してAmplitudeに送信するデータをより詳細に制御できます。プロキシサービスには次のような利点があります。

  • イベントフローをAmplitudeに切り替える機能。
  • 自己所有のデータ監査ログ記録。
  • イベントのデバッグ、フィルタリング、ブロックの容易化。
  • エンドユーザーの匿名化。たとえば、送信元のIPアドレス、場所、ユーザーIDなどを削除します。

プロキシサービスとJavaScriptスニペット

Amplitude JavaScriptスニペットの読み込みをサポートするプロキシを構築することはできますが、Amplitudeでは、npmディストリビューションを使用してAmplitudeを本番ビルドにバンドルすることを推奨します。

主要なクラウドプロバイダーで利用可能なサービス

ほとんどの主要なクラウドプロバイダーは、スケーラブルなAPIを開発および導入するためのサービスを提供しています。APIサービスを使用して、Amplitudeへのアウトバウンドトラフィックを設定することもできます。クラウドプロバイダーを使用してAPI サービスをデプロイする場合は、そのプロバイダーのドキュメントを参照してプロキシサービスを設定してください。

プロキシソリューションを構築する

このガイドの例では、NGINXを使用してプロキシサーバーを構築しています。NGINXはオープンソースのプロキシソリューションです。 すでにNode APIサーバーをお持ちの場合は、Node SDKを使用して、独自のエンドポイントからメインのAmplitudeイベントサーバーにイベントを渡すことを検討してください。

NGINXサーバーの設定

まず、ローカル開発用にNGINXをインストールします。次に、特定のURLに対するリクエストをAmplitudeにプロキシするようNGINXを設定します。 この例のnginx.confファイルは、/amplitudeルートからのリクエストをapi2.amplitude.comにプロキシします。

nginx
worker_processes  1;
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8080;
        server_name  localhost;
        location /amplitude {
          proxy_pass https://api2.amplitude.com/;
        }
    }
}

検証とデプロイメント

設定ファイルを作成したら、プロキシを起動してテストしてください。Amplitude HTTP APIを使用して、リクエストをAmplitudeのエンドポイントではなくお客様のエンドポイントに送信します。

HTTP APIはSDKとはわずかに異なるエンドポイントを使用しているため、テストするには一時的にproxy_passをhttps://api2.amplitude.com/2/httpapi/に設定する必要があります。

このcurlコマンドはリバースプロキシをテストします。

curl
curl -X POST http://localhost:8888/amplitude -H "Content-Type: application/json" --data '{"api_key":"API_Key","events":[{"user_id":"12345", "event_type":"test_proxy_event", "time":1396381378123}]}

この呼び出しは200応答コードを返すはずです。ウェブアプリで、ユーザールックアップを使用してAmplitudeがイベントを受信したことを確認します。プロキシがローカルで動作することを確認したら、この設定を本番サーバーにデプロイします。詳細については、NGINXデプロイメントガイドを参照してください。

代替エンドポイントと連携するようにSDKを設定する

プロキシが正常に動作したら、SDKを設定してください。AmplitudeのSDKはオープンソースであり、定義済みのサーバーエンドポイントにイベントを送信するためのオプションが組み込まれています。

SDKは、カスタムペイロード用の特殊なエンドポイントを指します。この表で、お使いのSDKのエンドポイントを確認できます。

SDKを設定した後、プロキシ経由でイベントを送信し、Amplitudeにログ記録されていることを確認できます。

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