このドキュメントでは、CSS API の使用に関するベスト プラクティスについて説明します。このページで説明する内容は、API の使用に必須ではありませんが、想定される使用方法の一部を明確にするのに役立つ可能性があります。
環境をセットアップする
開発環境を設定するには、クイックスタート ドキュメントの手順に沿って操作します。
- Google Cloud コンソールでユーザーと権限の JSON ファイルを生成する
- Google Cloud コンソールで CSS API を有効にする
- 管理者権限を持つユーザーを CSS アカウント(CSS グループまたは CSS ドメイン)に追加します。
- 正しい OAuth スコープ(
https://www.googleapis.com/auth/content
)を使用していることを確認します。
クライアント ライブラリは、ほとんどのプログラミング言語の標準リポジトリにあります。一覧については、クライアント ライブラリ ページをご覧ください。
正しい ID を使用する
正しい API エンドポイントで正しい ID を使用します。
- CSS API(
css.googleapis.com
): CSS サービス(accounts/{cssDomainId}/cssProductInputs:insert
)。 - Merchant API(
merchantapi.googleapis.com
): 標準の販売者向け商品には Merchant API を使用します。
これらを混同するとエラーが発生します。詳しくは、CSS API の概要をご覧ください。
始めるのに適した方法
次の方法でテストすることをおすすめします。
ListChildAccounts
ListChildAccounts は、すべての CSS ドメイン(CSS グループに対して呼び出された場合)または販売者(CSS ドメインに対して呼び出された場合)を一覧表示する読み取り専用の呼び出しです。そのため、すべてが正しく設定されているかどうかをテストするのに適した方法です。
商品を挿入、一覧表示、更新、削除する
API 自体が機能していることを確認したら、商品を登録してみます。忘れない raw_provided_id
を使用してください。
- InsertCssProductInput を使用してテスト商品を挿入します。送信する属性についてご不明な点がある場合は、サンプルコードをご利用ください。
- ListCssProducts を使用して、すべての商品を一覧表示します。商品を挿入してから表示されるまでに少し時間がかかることがあります。表示されない場合は、数秒後に再度お試しください。
cssproductinput.name
を使用して UpdateCssProductInput を使用して単一の商品を更新します。更新に必要な属性のみを送信する必要があります。サンプルコードについては、こちらをご覧ください。- DeleteCssProductInput を使用してテスト商品を削除します。
raw_provided_id
を使用する必要があります。
Async を使用してパフォーマンスを改善する
CSS API は並列呼び出し用に設計されています。単一のオペレーションのパフォーマンスは遅くなる可能性がありますが、同じオペレーションを並行して複数回呼び出すと、パフォーマンスは大幅に向上します。この機能を最大限に活用するには、プログラミング言語の非同期機能を使用することをおすすめします。
プログラミング言語の例:
- Java の場合は、insertCssProductInputCallable().futureCall() を使用します。
- Python の場合は、CssProductInputsServiceAsyncClient を使用します。
- C# の場合は、InsertCssProductInputAsync を使用します。
プログラミング言語の非同期機能を見つけて使用し、複数の商品を同時に挿入します。システムが過負荷になる心配はありません。これは割り当て上限の目的です。
詳しくは、パフォーマンス ページをご覧ください。
ペイロードを検証する
一般的なエラーを回避するには、JSON ペイロードが正しくフォーマットされていることを確認します。
- 公式ドキュメントを参照する: フィールド定義、列挙型、データ型、ペイロード構造については、常に最新の CSS API リファレンスを参照してください。
- サンプル ペイロードを確認する: ペイロードを、提供されているコードサンプルと比較して、不一致を特定します。
- データ型: ドキュメントで指定されている正しいデータ型(文字列、オブジェクト、配列など)を使用していることを確認します。
- 段階的にテストする: 最小限の有効なペイロードから始めて、基本的な接続を確認し、徐々に属性を追加します。
商品を更新する
商品をアップロードすると、更新、削除、期限切れになるまでシステムに保存されます。
- 最初に使ったのと同じ
raw_provided_id
を使ってInsertCssProductInput
リクエストを再度送信することで、商品全体を更新できます。現時点では、一部の属性(価格や在庫状況など)のみが変更された場合でも、完全な商品データを送信する必要があります。 - PATCH メソッド
UpdateCssProductInput
を使用して、商品の一部を更新できます。商品の名前と、更新する商品のデータを含む JSON 本文を指定します。InsertCssProductInput
では該当するすべてのフィールドを指定する必要がありますが、UpdateCssProductInput
では変更するフィールドのみを指定します。 - 同じ
raw_provided_id
を指定してDeleteCssProductInput
を呼び出すことで、商品を削除できます。 - プロダクトは、最後の更新から約 1 か月後に自動的に期限切れになります。
継続動作モード
連続オペレーション モードは次のようになります。
- 独自の内部 ID を
raw_provided_id
として使用します。 - すべての商品を定期的に(毎週など)再アップロードします。これにより、有効なアイテムの有効期限が切れるのを防ぐことができます。
- 販売者から変更されたデータを受け取ったら、すぐに個々の商品を更新します。
- 変更にすぐに対応できない場合は、変更された商品を頻繁に(1 時間ごとなど)検索し、それらの商品のみを再アップロードします。
- 販売を終了した商品については、削除呼び出しを使用するか、利用可能な販売情報の数を 0 に設定します。
- 変更のない商品を頻繁に送信しないでください。これらの呼び出しは、API 割り当ての対象になります。毎週更新すれば十分です。
ヘッドライン オファーの選択
ヘッドライン オファーは、サイトで最もお得なオファーや最も安いオファーである必要はありませんが、目立つように表示する必要があります。この機能は、上位の提案が頻繁に変わる場合に便利です。より安定した別の提案を選択できます。
このドキュメントを定期的に再確認する
この API の改善方法についてフィードバックをお寄せいただき、ありがとうございます。現在、これらの改善の一部を実装中です。CSS API の使用を簡素化する新しい機能が利用可能になったら、このページを更新します。