データフィードを使って レストラン、サービス、メニューを [エンドツーエンドの注文] で利用できるようにします。
このドキュメントでは、サンドボックスと本番環境のインベントリをホストし、バッチ取り込みを使用する方法について説明します。 [Ordering End-to-End(エンドツーエンドの注文)] で在庫を更新します。
データフィード環境
統合の開発には、次の 3 つのデータフィード環境を使用できます。
フィード環境 | 説明 | オフライン ストアへの |
---|---|---|
サンドボックス | フィード開発用のテスト環境。 | 必須 |
本番環境 | リリースする広告枠の本番環境。 | 必須 |
データフィードのホスティング
エンドツーエンドの注文では、サンドボックス フィードと本番環境データフィードをバッチ処理します。 使用するには、Google Cloud Storage、Amazon S3、または HTTPS でデータフィード ファイルを 作成します。
サンドボックス環境と本番環境のデータフィードをホストすることをおすすめします。 個別に選択できます。この方法により、サンドボックスのフィード環境で開発とテストを行うことができます デプロイする必要があります。
たとえば、ホスティング オプションとして Google Cloud Storage を使用する場合、次のようになります。 パス:
- サンドボックス フィード:
gs://foorestaurant-google-feed-sandbox/
- 本番環境フィード:
gs://foorestaurant-google-feed-prod/
インベントリをホストする手順は次のとおりです。
- データフィード ファイルを生成します。
- ホスティング ソリューションを選択する。
- データフィードをホストします。
- データフィード ファイルは定期的に更新してください。本番環境のデータフィードを更新する必要があります できます。
在庫フィードの作成方法については、
Restaurant
Service
、
および Menu
エンティティと
データフィードを作成する
。
データフィード ファイルに関するガイドライン
各ファイルには複数のエンティティを含めることができます。各ファイルは 200 MB を超えないようにする必要があります。最上位レベルの
エンティティ Restaurant
、Service
、Menu
と、
子エンティティのサイズを合わせて 4 MB 以下にする必要があります。
ホスティング ソリューションを選択する
次の表に、データフィードをホストするためのオプションと、これらのホストが連携する仕組みを示します。 エンドツーエンドの注文:
Amazon S3 | Google Cloud Storage | HTTPS とサイトマップの使用 | |
---|---|---|---|
認証情報とアクセス権 |
以下の情報を Google に提供します。
S3 バケットには、次の情報を含める必要があります。
|
本番環境とサンドボックスのバケットのディレクトリへのパスを Google に提供し、
Google コンサルタントから提供されたサービス アカウントを Google Cloud の閲覧者として追加 Cloud Storage バケットです。 Google Cloud Storage(GCS)へのアクセスを制御する方法について詳しくは、以下をご覧ください。 Google Cloud Platform Console: バケットの権限の設定をご覧ください。 GCS バケットには次の情報を含める必要があります。
|
以下の情報を Google に提供します。
|
取得する必要があるファイルを Google が認識する方法 | バケット内のすべてのファイルのディレクトリ リスト。 | バケット内のすべてのファイルのディレクトリ リスト。 | サイトマップに記載されているファイルの個々の URL。 |
ファイルを取得する準備ができたことを Google が認識する方法 | データフィードの生成が完了したら、marker.txt ファイルを更新します
タイムスタンプが付けられます。 |
データフィードの生成が完了したら、marker.txt ファイルを更新します
タイムスタンプが付けられます。 |
データフィードの生成が完了したら、レスポンス ヘッダーを更新します。
sitemap.xml の last-modified を最新のタイムスタンプに置き換えます。 |
ファイルの上限 |
ファイルの最大数: 100,000 Amazon S3 バケットには、合計で 100,000 未満のファイルが含まれている必要があります。 |
ファイルの最大数: 100,000 Google Cloud Storage バケット内に保存するファイルは、合計 100,000 個未満である必要があります。 |
ファイルの最大数: 100,000 サイトマップ XML ファイル内のファイルパスの数は 100,000 未満にする必要があります。 |
データフィードを接続してバッチ取り込みを行う
フィードをホストしたら、アクション センターでフィードをプロジェクトに接続する必要があります。「 本番環境フィードの初期設定は、[オンボーディング タスク] ページで行います。後で 本番環境とサンドボックスのフィードの設定は、ポータル ユーザーが [Configuration] > [Feeds] ページでいつでも更新できます。 付与します。サンドボックス環境は開発とテストの目的で使用され、 製品版フィードがユーザーに表示されます。
Amazon S3 でデータフィードをホストする場合
- アクション センターで、[Configuration] > に移動します。 フィード。
-
[編集] をクリックし、[フィードの更新] フォームに入力します。
- フィードの配信方法: Amazon S3 に設定します。
- マーカー ファイル:
marker.txt
ファイルの URL を指定します。 - データファイル: データフィードを含む S3 バケットの URL を指定します。
- Access ID: S3 からの読み取り権限を持つ IAM アクセスキー ID を入力します。 説明します。
- Access Key: S3 からの読み取り権限を持つ IAM シークレット アクセスキーを入力します。 説明します。
- [送信] をクリックします。
- 1 ~ 2 時間後、バッチ取り込みでフィード ファイルが取得されるかどうかを確認します。
Google Cloud Storage でデータフィードをホストする場合
- アクション センターで、[Configuration] > に移動します。 フィード。
-
[編集] をクリックし、[フィードの更新] フォームに入力します。
- フィードの配信方法: [Google Cloud Storage] に設定します。
- マーカー ファイル:
marker.txt
ファイルの URL を指定します。 - データファイル: データフィードを含む GCS バケットの URL を指定します。
- [送信] をクリックします。
- GCS バケットにアクセスするためのサービス アカウントが作成されます。アカウント名は次の場所で確認できます: オンボーディング タスク後の [設定] > [フィード] 確認します。このサービス アカウントには、「Storage レガシー オブジェクト読み取り」のロールが必要です。このロールは、 Google Cloud コンソールの [IAM] ページで、サービス アカウントに付与する必要があります。
- 1 ~ 2 時間後、バッチ取り込みでフィード ファイルが取得されるかどうかを確認します。
データフィードを HTTPS でホストしている場合
- アクション センターで、[Configuration] > に移動します。 フィード。
-
[編集] をクリックし、[フィードの更新] フォームに入力します。
- フィードの配信方法: [HTTPS] に設定します。
- サイトマップ ファイル:
sitemap.xml
ファイルの URL を指定します。 - ユーザー名: HTTPS サーバーにアクセスするためのユーザー名の認証情報を入力します。
- パスワード: HTTPS サーバーにアクセスするためのパスワードを入力します。
- [送信] をクリックします。
- 1 ~ 2 時間後、バッチ取り込みでフィード ファイルが取得されるかどうかを確認します。
パスの例
次の表に、各ホスティング オプションのパスの例を示します。
Amazon S3 | Google Cloud Storage | HTTPS とサイトマップの使用 | |
---|---|---|---|
パス | s3://foorestaurant-google-feed-sandbox/ |
gs://foorestaurant-google-feed-sandbox/ |
https://sandbox-foorestaurant.com/sitemap.xml |
マーカー ファイル | s3://foorestaurant-google-feed-sandbox/marker.txt |
gs://foorestaurant-google-feed-sandbox/marker.txt |
該当なし |
HTTPS ホスティングのサイトマップ
サイトマップを定義する際は、次のガイドラインに従ってください。
- サイトマップ内のリンクは、ファイル自体を指している必要があります。
- サイトマップに独自のドメイン名ではなくクラウド プロバイダへの参照が含まれている場合、
https://www.yourcloudprovider.com/your_id
のような URL の先頭を、 安定性があり、バッチジョブに固有です。 - 部分的なデータをアップロードする場合など、部分的なサイトマップをアップロードしないように注意してください。行うこと サイトマップ内のファイルのみが Google に取り込まれるため、 レベルが下がると、フィードの取り込みがブロックされる可能性があります。
- サイトマップで参照されているファイルのパスが変更されないようにします。たとえば、
サイトマップの参照
https://www.yourcloudprovider.com/your_id/10000.json
があるか 現在はhttps://www.yourcloudprovider.com/your_id/20000.json
ですが、 明日開始されます。
サイトマップの例
データフィード ファイルを配信する sitemap.xml
ファイルの例を次に示します。
例 1: 販売者別にグループ化されたエンティティ(推奨)。
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
例 2: タイプでグループ化されたエンティティ。
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/menu.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/service.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
データフィードの更新
データフィードを接続すると、Google は 1 時間に 1 回更新を確認しますが、
marker.txt
または sitemap.xml
ファイルが
あります。在庫切れを防ぐため、1 日に 1 回データフィードを更新することを想定しています。
データフィードが変更され、バッチ取り込みの準備ができたことを指定するには、
marker.txt
ファイルの last-modified
オブジェクト メタデータ フィールド(GCP と
S3 など)または sitemap.xml
ファイルの last-modified
レスポンス ヘッダー。Google
これらの値を使用して、データフィードの更新頻度を決定します。
バッチフィードが取り込まれている間
- 現在の「エンドツーエンドの注文」インベントリに存在せず、 エラーが挿入されます。
-
インベントリにすでに存在し、エラーがないエンティティ
より新しい
dateModified
が取り込まれているdateModified
がない場合は、 フィードの取り込み開始時刻が、現在のエントリよりも新しい時刻になっています。 そうしないと、古いものとしてマークされます。 - 以前のフィードに含まれていたエンティティが、 ファイルがない場合、処理中のバッチフィードは削除されます 検出できます。
タイムスタンプまたは last-modified
レスポンス ヘッダーは、すべてのデータが完了した後にのみ更新する必要があります。
フィード ファイルの生成と更新が行われます。データフィードを更新するバッチジョブを実行のみに制限する
1 日に 1 回。または、各バッチジョブの間に少なくとも 3 時間のギャップを設けます。この操作を
行うと、Google が古いファイルを取得する場合があります。