---
title: Google Vertex AI セットアップガイド
description: Tealiumのイベントデータを使用してVertex AIモデルを呼び出し、リアルタイムの訪問エンリッチメントのためにモデルのレスポンスを返すGoogle Vertex AIコネクタを構成します。
url: https://docs.tealium.com/ja/server-side-connectors/google-vertex-ai-connector/
---
AIコネクタの動作概要とAIコネクタまたはTealium機能を使用するタイミングに関するガイダンスについては、[AIコネクタとTealium機能](https://docs.tealium.com/ai-connectors-and-functions/)を参照してください。

## 動作方法

このコネクタは、カスタムプロンプトとマップされたTealiumデータを使用してGoogle Vertex AIモデルを呼び出し、その後、リアルタイムエンリッチメントのためにJSONイベントとしてTealium Collectにレスポンスを送信します。


<blockquote>
Google Vertex AIコネクタは、高頻度のイベントではなく、ターゲットを絞った高価値のインタラクションに使用すべきです。過度な使用は、Google Vertex AIアカウントでのレート制限やAPIコストの増加につながり、受信Tealiumイベントの量を増加させる可能性があります。
</blockquote>


### プロンプト

プロンプトは、モデルにコンテキストデータを送信し、特定の質問を行い、期待されるレスポンスを定義します。

**コンテキストデータ**  
モデルは、リクエストを評価するためにコンテキストデータを必要とします。コネクタアクションを構成してイベントデータまたは訪問データを使用し、このデータオブジェクトをプロンプトで参照します：

* イベントデータ: `{{event_payload}}`
* 訪問データ: `{{visitor_profile}}`

例えば、プロンプトの最初の行にこれを含めます：

```wrap
顧客イベントを説明するJSONオブジェクトを受け取ります：
{{event_payload}}
```

**質問**  
モデルにコンテキストデータを評価させ、値を生成するように依頼する必要があります。1つ以上の特定の値を求め、何を求めているのかを明確にしてください。

例えば、このプロンプトは3つの値のうちの1つを求めます：

```wrap
提供された製品レビューイベントに基づいて、顧客の感情を「不満足」、「中立」、または「満足」として分類します。
```

さらに、モデルが特定のJSON形式で応答するように指示する必要があります。これにより、有効なイベントとしてアカウントに送信できます。

例えば、このプロンプトの部分は正確なJSON形式を指定し、Tealium変数を中括弧を使用して参照します：

```wrap
次の構造で単一のJSONオブジェクトを1行でのみ返します：
{
  "tealium_account": "{{tealium_account}}",
  "tealium_profile": "{{tealium_profile}}",
  "tealium_visitor_id": "{{tealium_visitor_id}}",
  "tealium_event":  "vertexai_response",
  "vertexai_review_sentiment": "<customer review sentiment>"
}
```


<blockquote>
`tealium_event`にこのコネクタに固有の値を構成し、このプロンプトに特有のレスポンス属性の名前を付けます。これにより、これらのイベントに一致するイベントフィードやルールを簡単に作成できます。
</blockquote>


### レスポンスイベント

このコネクタは、Google Vertex AIモデルからのレスポンスを解析します。それが有効なJSONオブジェクトで必要なTealiumパラメータを含んでいる場合、コネクタはそれを受信イベントとしてアカウントに送り返します。

これらのイベントをキャプチャするには、Google Vertex AIレスポンスによって生成されたイベントに一致するエンリッチメントルールまたはイベントフィードを作成します。例えば、このルールは感情イベントをキャプチャします：


[
  [
    {
      "input": "tealium_event",
      "operator": "equals",
      "filter": "vertexai_response"
    },
    {
      "input": "vertexai_review_sentiment",
      "operator": "is populated"
    }
  ]  
]


### 例：イベントトリガー

この例では、顧客が製品レビューを提出したばかりで、プロンプトはモデルに感情を評価するよう依頼します。

**例のプロンプト**：

```wrap
顧客の製品レビューを説明するJSONオブジェクトを受け取ります：
{{event_payload}}

提供された製品レビューイベントに基づいて、顧客の感情を「不満足」、「中立」、または「満足」として分類します。

次の構造で単一のJSONオブジェクトを1行でのみ返します：
{
  "tealium_account": "{{tealium_account}}",
  "tealium_profile": "{{tealium_profile}}",
  "tealium_visitor_id": "{{tealium_visitor_id}}",
  "tealium_event":  "vertexai_response",
  "vertexai_review_sentiment": "<customer review sentiment>"
}
```

**例のレスポンスイベント**：

```json
{
  "tealium_account": "acme",
  "tealium_profile": "main",
  "tealium_visitor_id": "383...05d",
  "tealium_event": "vertexai_response",
  "vertexai_review_sentiment": "satisfied"
}
```

### 例：オーディエンストリガー

この例では、顧客が「頻繁なブラウザ、購入なし」というオーディエンスに参加し、プロンプトはモデルに顧客の意図を評価するよう依頼します。

**例のプロンプト**：

```wrap
小売り訪問を説明するJSONオブジェクトを受け取ります：
{{visitor_profile}}

提供された顧客データに基づいて、彼らの可能性のある意図を「お買い得品を探す」、「製品比較」、「後で調査」、または「興味なし」として分類します。データが不足している場合は、最善の推測を行ってください。

次の構造で単一のJSONオブジェクトを1行でのみ返します：
{
  "tealium_account": "{{tealium_account}}",
  "tealium_profile": "{{tealium_profile}}",
  "tealium_visitor_id": "{{tealium_visitor_id}}",
  "tealium_event":  "vertexai_response",
  "vertexai_intent": "<customer intent>"
}
```

**例のレスポンスイベント**：

```json
{
  "tealium_account": "acme",
  "tealium_profile": "main",
  "tealium_visitor_id": "383...05d",
  "tealium_event": "vertexai_response",
  "vertexai_intent": "bargain hunting"
}
```

## テスト

本番環境でGoogle Vertex AIコネクタを有効にする前に、コネクタマッピングで**デバッグモード**を有効にし、トレースを使用して構成とプロンプトの動作を検証します。デバッグモードでは、コネクタはVertex AIリクエストを実行しますが、レスポンスイベントをアカウントに送信せずに結果をログに記録します。トレースツールでリクエストとレスポンスをリアルタイムで検査し、生成された出力を確認し、トリガー条件と属性マッピングが正しく機能していることを確認します。これにより、本番コストを発生させたり、ライブデータに影響を与える前にエラーをキャッチし、プロンプトを最適化するのに役立ちます。

## 使用とコストの考慮事項

Google Vertex AIコネクタを有効にする前に、Google Cloudのクォータと制限を確認してください。コネクタは、イベントとオーディエンストリガーに応じて多くのリクエストを生成する可能性があり、予期しない使用や超過コストが発生する可能性があります。

詳細については、[Google: Vertex AIのクォータと制限](https://docs.cloud.google.com/vertex-ai/docs/quotas)を参照してください。

**主な考慮事項**

* **使用層とレート制限**  
  Google Vertex AIは、アカウント層に基づいてレート制限を適用します（分あたりのリクエスト数と分あたりのトークン数）。高頻度のイベントや大規模なオーディエンスは、これらの制限にすぐに達し、スロットリングやリクエストの失敗を引き起こす可能性があります。
* **価格とトークンの消費**  
  Google Vertex AIは、モデルによって処理される入力トークンと出力トークンの数に基づいて課金します。長いプロンプト、大きなペイロード、高容量モデルは、リクエストごとのコストを増加させます。使用する予定の特定のモデルの価格を確認してください。
* **月間支出と予算管理**  
  予定外の支出を防ぐために、Google Cloudアカウントで使用制限またはアラートを構成します。制限がない場合、自動化されたワークフローは莫大なコストを蓄積する可能性があります。
* **トリガーボリューム**
  ページビューなどの高頻度で低価値のイベントにコネクタを接続することは避けてください。意味のある顧客アクションを表し、管理可能な頻度で発生するイベントやオーディエンスを使用してください。
## ベストプラクティス

このコネクターから最大の価値を得るために、効果的なソリューションを構築するための以下のガイドラインに従ってください：

* **高価値トリガー**：豊富なコンテキストまたは意味のある顧客入力を含むイベントフィードまたはオーディエンストリガーを選択してください。このコネクターを高ボリュームのユースケースでトリガーすると、Google Cloudアカウントで追加費用が発生するか、リクエストが失敗する可能性があります。
* **具体的に**：モデルが評価すべき内容と期待する値について詳細を含めてください。期待する正確な値をリストアップしてください。
* **JSON形式**：Tealiumイベントとして送信できる有効なJSONレスポンステンプレートを含めてください。
* **レスポンス値**：キャプチャするレスポンス値を参照してください。例えば、プロンプトが購買意向を評価するように求める場合、イベントJSONでその値が表示される場所で`<customer purchase intent>`を参照してください。
* **Tealiumデータ**：二重中括弧を使用してTealiumデータとマップされたパラメータを参照してください。例えば、`tealium_account`のマップされた値を参照するには、プロンプトで`{{tealium_account}}`と記述します。

## API情報

このコネクターは以下のベンダーAPIを使用します：

* API名：Vertex API
* APIバージョン：v1
* APIエンドポイント：`https://aiplatform.googleapis.com/v1`
* ドキュメント：[Google API](https://docs.cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/projects.locations.endpoints/generateContent)

## 構成

コネクターマーケットプレイスにアクセスし、新しいコネクターを追加します。コネクターを追加する一般的な手順については、[コネクターについて](https://docs.tealium.com/about-connectors/)を参照してください。

コネクターを追加した後、以下の構成を構成します：

* **Google Cloud PlatformプロジェクトID**：（必須）Vertex AIが有効になっているGoogle CloudプロジェクトID。
* **プライベートキーJSONファイル**：（必須）サービスアカウント用に生成されたJSONキーの内容を貼り付けます。プロジェクトでサービスアカウントにVertex AIユーザーロール（`roles/aiplatform.user`）を付与します。このロールにより、コネクターは利用可能なモデルをリストアップし、選択したモデルをVertex AI Generative APIを通じて呼び出すことができます。
* **場所**：モデルが実行されるVertex AIの場所を選択します。GoogleパブリッシャーのGeminiモデルの場合は**global**を使用します。データ居住性が必要な場合や、Vertexリソースが地域にある場合は、地域の場所を選択してください。

## アクション

| アクション名 | AudienceStream | EventStream |
| --- | :---: | :---: |
| Vertex AIへのプロンプト送信 | ✓ | ✓ |

アクションの名前を入力し、アクションタイプを選択します。

次のセクションでは、各アクションのパラメータとオプションの構成方法について説明します。

### Vertex AIへのプロンプト送信

このアクションは、カスタムプロンプトとマップされたTealiumデータを使用してVertex AIモデルを呼び出します。モデルが有効なJSONイベントオブジェクトで応答する場合、このイベントはアカウントに送り返され、リアルタイムエンリッチメントで生成された値をキャプチャすることができます。

#### パラメータ

| パラメータ | 説明 |
| --- | --- |
| モデル | <ul><li>このプロンプトに使用するVertexモデルを選択します。</li><li>リストには、テキストまたはJSONスタイルのレスポンスに適したGoogleのGemini生成モデルが表示されます。</li><li>チームがプライベートまたはファインチューニングされたVertex AIモデルを使用している場合は、そのモデルリソース名を手動で入力できます（例：`projects/{{PROJECT}}/locations/{{REGION}}/models/{{MODEL_ID}}`）。</li><li>構造化出力（JSON）に最適化されており、パフォーマンスとコスト要件をサポートするモデルの使用をお勧めします。</li></ul> |

#### プロンプトパラメータ

| パラメータ | 説明 |
| --- | --- |
| イベントペイロード追加 | (イベントアクション用に利用可能) このボックスをチェックすると、プロンプトテンプレートで変数`{{event_payload}}`としてイベントペイロードを含めることができます。 |
| 訪問プロファイル追加 | (オーディエンスアクション用に利用可能) このボックスをチェックすると、プロンプトテンプレートで変数`{{visitor_profile}}`として訪問プロファイルを含めることができます。 |
| 現在の訪問追加 | (オーディエンスアクション用に利用可能) このボックスをチェックすると、変数`{{visitor_profile}}`内で現在の訪問を含めることができます。 |
| プロンプト | <ul><li>選択したVertex AIモデルに送信されるプロンプトを入力します。以下のガイドラインに従って、一貫性のある機械可読の出力を確保してください：</li><li>マップされたパラメータを参照するには、二重中括弧を使用します。例：`{{tealium_account}}`, `{{visitor_id}}`, `{{event_value}}`。</li><li>訪問アクションを使用する場合は、**訪問プロファイル追加**チェックボックスを有効にした後、`{{visitor_profile}}`を使用してプロンプトに訪問プロファイルを含めます。</li><li>あいまいな表現を避け、プロンプトは決定論的であるべきです。そのため、出力を確実に解析できます。</li><li>レスポンスで期待するJSONフィールドと構造を定義してください。</li><li>モデルに`tealium_account`, `tealium_profile`, `tealium_visitor_id`をレスポンスに含めるように明示的に指示してください。これにより、コネクターはレスポンスを正しく解析し、Collectエンドポイントに転送することができます。</li><li>リクエストに`response_mime_type`: `application/json`を含めることで、モデルがJSONを返すように強制します。</li><li>このコネクターに関する詳細情報と例については、Tealiumのドキュメントを参照してください。</li></ul> |
| デバッグモード | デバッグモードが有効になっている場合、コネクターはTealium Collectに送信することなく、生のVertex AIレスポンスを受け入れます。完全な処理を有効にする前に、トレースを使用してレスポンス形式を検証してください。 |

#### 高度なモデル構成

| パラメータ | 説明 |
| --- | --- |
| `temperature` | ランダム性と創造性を制御します。低い値はより鋭い分布曲線をもたらし、予測可能で集中的な回答が得られますが、高い値はより平坦な分布曲線と多様で創造的な回答が得られます。許可される値は`0`から`2`です。 |
| `maxOutputTokens` | レスポンスで生成するトークンの最大数です。 |
| `topP` | 核サンプリングの閾値を指定します。低い`topP`値はより安全で集中的ですが、高い`topP`値はより多様で創造的です。許可される値は`0`から`1`です。例えば、`topP`が`0.9`に構成されている場合、累積確率が90%に達するトークンのみが考慮され、低確率の末尾トークンは除外されます。 |
| `topK` | トップkサンプリングの閾値を指定します。低い`topK`値はより決定論的で多様性が少なく、高い`topK`値はより多様ですが、場合によっては一貫性が低くなる可能性があります。例えば、`topK`が`40`に構成されている場合、次のトークンは（確率的に、温度を使用して）最も高い確率のトークン40個のみから選択され、それ以外は無視されます。 |