このページでは、リアルタイムのユーザー イベントを記録する方法について説明します。AI Commerce Search は、リアルタイムのユーザー イベントを使用してレコメンデーションと検索結果を生成します。有効な商品情報を使用してできるだけ多くの種類のユーザー イベントを記録することで、結果の品質が向上します。
このページの記録手順は、レコメンデーションと検索の両方に適用されます。データをいったん記録すると、両方のサービスでこれらのイベントを使用できるようになります。そのため、両方のサービスを使用する場合、同じデータを 2 回アップロードする必要はありません。
始める前に
ユーザー イベントを記録する前に、次のことが必要です。
作成された、認証が設定された Google Cloud プロジェクト。
API を使用して直接書き込む場合は、有効な API キー(JavaScript Pixel またはタグ マネージャーの場合)、または Retail 閲覧者のロールが割り当てられた有効なサービス アカウント。
必須のコンポーネント
アトリビューション トークン: 記録されたユーザー イベントのパフォーマンス指標を有効にして、以前に提示されたレコメンデーションまたは検索結果に基づいてユーザーが初めてプロダクトを操作したときのインタラクションをキャプチャします。詳しくは、アトリビューション トークンを含めるをご覧ください。
訪問者 ID: ユーザー イベントを記録する際に必要です。詳しくは、ユーザー情報についてをご覧ください。
録画を開始する
イベントへの再参加、カタログの最新の状態の維持、できるだけ多くの情報の提供など、ベスト プラクティスに従います。
ユーザー イベントタイプの例とスキーマのサンプル JSON は、ユーザー イベントについてのページで確認できます。
ライブ ユーザー イベントをストリーミングする
一括インポートとリアルタイム ストリーミングはどちらも AI Commerce Search でユーザー イベントを取り込むための効果的なメカニズムですが、リアルタイム ストリーミングには次のような微妙な利点があります。
即時のスケーラビリティ: リアルタイム ストリーミングでは、追加の ETL(抽出、変換、読み込み)パイプラインが不要になることが多く、イベント量の増加に伴うスケーラビリティが容易になります。通常、インフラストラクチャは大幅な調整なしで成長に対応できます。
Google アナリティクス(GA4)との統合: GA4 で計測されたウェブサイトでは、Google タグ マネージャーを使用してリアルタイム イベントをキャプチャして AI Commerce Search にストリーミングできるため、カスタム イベント トラッキングの実装が不要になります。
API の直接呼び出し: REST API を使用して、フロントエンドから直接、またはプロキシ サーバー経由でリアルタイム イベントを送信できます。これにより、プロセス全体が統合され、障害が発生する可能性のあるポイントが削減されます。
最新の KPI 測定とエラー レポート: リアルタイム イベントの処理が高速化されるため、KPI の測定とエラー レポートが最新の状態になります。これにより、問題を迅速に特定して解決できます。
リアルタイムのパーソナライズ: ユーザー イベントをリアルタイムでキャプチャして処理することで、AI Commerce Search は最近の閲覧や購入の行動に基づいてパーソナライズされた検索結果を提供できます。
ライブユーザー イベントのストリーミング方法
以下の複数の方法で、ユーザー イベントを記録できます。
JavaScript ピクセルを使用します。
タグ マネージャーを使用した Google アナリティクス(GA4)をおすすめします。
user.Events.writeメソッドを使用して、バックエンド サーバーから API にイベントを直接送信します。タグ マネージャー(単独または Google アナリティクス 4 と組み合わせて使用)。
サーバーサイド タグ設定では、多数のダウンストリーム クライアントで単一のサーバーサイド コンテナをデプロイしてイベントを記録します。
リアルタイム ストリーミングの潜在的なデメリット
リアルタイム ストリーミングの潜在的なデメリットは、次のように現れる可能性があります。
再取り込みの制限: データを BigQuery または Cloud Storage にステージングできる一括インポートとは異なり、エラーや形式が正しくないデータが発生した場合、リアルタイム イベントの再取り込みは困難です。そのため、データの完全性を確保するために、取り込みポイントで堅牢な検証メカニズムが必要になります。
カスタム分析の課題: イベントデータのカスタム分析が必要な場合、多くの場合、イベントを BigQuery にエクスポートしてさらに処理する必要があります。これは大量のイベント ストリームのボトルネックとなり、分析とレポート作成が遅くなる可能性があります。
過去のデバッグとイベントデータ転送の制限: ステージングなしでイベントを直接送信すると、すでに取り込まれているイベントに対して過去のフォレンジックを実行する機能が制限されます。もう 1 つの潜在的な制限は、下位環境でモデルをトレーニングする際に十分なイベントがない可能性があることです。イベントデータのステージング エリア(BigQuery または Cloud Storage)を用意すると、軽微なデータ変換後に他の環境でイベントをインポートまたは転送することもできます。
こうしたニュアンスを理解することで、AI Commerce Search エコシステム内の特定のニーズや優先事項に最適なユーザー イベント取り込み戦略について、十分な情報に基づいて意思決定を行うことができます。
ユーザー イベントの記録に関するおすすめの方法
AI Commerce Search で高品質な結果を生成するには、高品質なデータが必要です。データが不完全または不正確である場合、結果の品質が損なわれます。
ユーザー イベントを記録するときは、次のおすすめの方法を実施するようにしてください。
カタログのインポート前またはインポート中にユーザー イベントを記録する場合は、カタログのインポートが完了する前に記録されたイベントをすべて再結合する。
ユーザー イベントを記録する前、後、または同時に、カタログをインポートできます。カタログが大きく、ユーザー イベントが多数存在する場合、このようなタスクを同時に行うことで、時間を節約できます。カタログのインポートが完了したら、インポートが完了する前にアップロードされたイベントを再結合するために、API を使用する必要があります。
AI Commerce Search は、ユーザー イベントの作成時に、記録されたユーザー イベントを商品カタログのメタデータと結合しようとします。トレーニングには正常に結合されたイベントのみが使用されるため、カタログが完全にインポートされる前に、記録されたイベントの再結合を確実に行ってください。イベントでカタログに存在しないアイテムを参照している場合、そのイベントは破棄されるか、正しい商品に関連付けられません。同様に、過去のユーザー イベントをインポートする場合、カタログにはユーザー イベントが参照する商品すべてを含める必要があります。カタログから以前のアイテムを削除するのではなく、古い商品を
OUT_OF_STOCKとしてマークできます。-
ユーザー イベントを記録すると、ユーザー イベントに含まれる商品は現在のカタログに関連付けられます。現在のカタログにない商品のイベントを記録する場合、モデルのトレーニングに使用できません。これは「未結合の」イベントと呼ばれます。カタログが完全にインポートされる前にイベントを記録した場合は、インポート時に記録されたイベントに再結合する必要があります。未結合のイベントがいくつかあることが想定されます。ただし、未結合イベントの割合がユーザー イベント合計の 5% 以上に達した場合は、カタログが最新であることを確認し、カタログが完全に更新される前に記録されたイベントを再結合して、未結合のイベントが作成される理由を調査してください。
未結合イベントを確認するには、イベントのフィルタリングを使用します。詳細
ユーザー イベントについて、できるだけ多くの情報を提供してください。
ユーザー イベントの種類ごとに、必要で受け入れられる情報が異なります。詳細については、ユーザー イベントについてをご覧ください。
ユーザー イベントの記録プロセスが停止した場合に把握できるように、Cloud Monitoring アラートを設定します。
ユーザー イベントの一括インポートでは、インポートするデータのサイズを制限する。
ユーザー イベントの一括インポートは最長で 24 時間かかることがあります。
各ファイルのサイズは 2 GB 以下である必要があります。1 回のインポート リクエストで最大 100 個のファイルを含めることができます。1 つの方法は、一度に 1 日分のユーザー イベントのみをインポートすることです。
一括インポートが完了したら、エラーレポートを確認して、データが正しくインポートされていることを確認する。
ユーザー イベント データをインポートする場合は、ユーザー イベントごとに正確なタイムスタンプを含め、同一のタイムスタンプを含む連続のユーザー イベントをインポートしないようにする。
誤ったユーザー イベントをインポートした場合は、問題をどのように修正するかについて、AI Commerce Search の担当者にお問い合わせください。
可能であれば、ユーザー イベントのデータを継続的に保持する。
ユーザー イベントデータのずれによって、モデルの品質が低下する可能性があります。
AI Commerce Search に対してはユーザーを匿名にして、ユーザーのプライバシー保護のために、安全な形式の一意の ID を使用してください。メールアドレスや自宅住所などの個人情報(PII)をデータから削除するのは、お客様の責任です。
ユーザー イベントの作成チュートリアル
このチュートリアルでは、userEvents.write メソッドを使用してユーザー イベントを記録する方法を説明します。
このタスクを Cloud Shell エディタで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。
JavaScript ピクセルでユーザー イベントを記録する
標準的なウェブページ(マルチページ アプリケーションまたは MPA)の場合、次の例では、JavaScript ピクセルを使用して detail-page-view
UserEvent を記録しています。
var user_event = { "eventType" : "detail-page-view", "visitorId": "visitor-id", "userInfo": { "userId": "user-id" }, "experimentIds": "experiment-id", "productDetails": [ { "product": {"id": "123"} } ] }; var _gre = _gre || []; // Credentials for project. _gre.push(['apiKey', 'api-key']); _gre.push(['logEvent', user_event]); _gre.push(['projectId', 'project-id']); _gre.push(['locationId', 'global']); _gre.push(['catalogId', 'default_catalog']); (function() { var gre = document.createElement('script'); gre.type = 'text/javascript'; gre.async = true; gre.src = 'https://www.gstatic.com/retail/v2_event.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gre, s); })();
Google アナリティクス 360 を使用してユーザー イベントをインポートした場合は、visitorID を Google アナリティクス クライアント ID に設定します。なお、Google アナリティクス クライアント ID は、完全な _ga Cookie 名の一部にすぎません(たとえば、クライアント ID 123456789.123456789 は _ga Cookie GA1.3.123456789.123456789 の一部です)。
次の例は、ユーザー イベントでクライアント ID を設定する形式を示す短縮例です。「G-XXXXXX」を Google アナリティクスのトラッキング ID に置き換えます。
var tracker = ga.getByName('G-XXXXXX'); var user_event = { "visitorId": tracker.get('clientId') };
高度な例: シングルページ アプリケーションと複数のイベント
シングルページ アプリケーションは JavaScript ピクセルで正式にサポートされていませんが、イベントを直接送信することは可能です。これには、適切なパラメータを指定して cloud_retail.logEvent() を直接呼び出す必要があります。
<html> <body> <p>This is a great product