ステップ1 : 製品カタログを作成する

最初のステップは、商品カタログの作成です。カタログには、商品の広告を配信するために必要な商品の詳細が含まれています。

  • 1回のリクエストで1つのカタログまたは複数のカタログを作成できます。複数のカタログを作成する場合、1回のリクエストでカタログ100件まで配列できます。
  • カタログを作成すると、catalogIdが返されます。このcatalogIdは、カタログに商品の詳細を追加するときに必要であり、カタログの一意の識別子として機能します。
  • このドキュメントに記載されているAPIを使用してカタログを作成できない場合は、カスタマー統合エンジニア(CIE)にお問い合わせください。エンジニアが代理でカタログを作成できます。
  • カタログが作成されると、デフォルトでは非表示になるため、CIE に連絡して名前空間で表示できるようにする必要があります。

前提条件

カタログの作成をリクエストする前に、APIキーとベースURLが必要です。

  1. 有効なAPIキーが必要になります。APIキーを取得するには、次の手順を実行します。

    1. EpsilonのRetail Mediaチームアカウントにログインします。

    2. ページの右上に移動し、ドロップダウンメニューをクリックします。

    3. ドロップダウンメニューから[統合設定]を選択します。

    4. APIキータブをクリックします。シークレットAPIキーは最初は非表示になっています。表示するには、[表示]ボタンをクリックします。表示されたら、シークレットAPIキーをコピーします。このキーをAPI呼び出しを行うために使用します。

  2. APIエンドポイントのベースURLが必要になります。たとえば、https://staging-test.citrusad.com/v1/ads/generate HTTP/1.1. ベースURLについては、テクニカルアカウントマネージャーに確認してください。

単一のカタログを作成する

このAPIエンドポイントを使用すると、新しいカタログを作成できます。各カタログは、商品詳細をカタログに追加するときなど、以降の操作に必要となるidによって一意に識別されます。

リクエスト指標

対象type説明
カタログ配列、必須作成するカタログオブジェクトの配列。
name文字列、必須カタログの名前。小売業者を簡単に識別して関連付けることができる意味のある名前を使用することをお勧めします。

リクエスト例

POST $BASE_URL/v1/catalogs HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogs": [
        {
            "name": "Retailer A"
        }
    ]
}

レスポンス例

レスポンスは標準的なJSON形式に従い、以下の詳細を配列で返します。

  • teamId:カタログに関連付けられているチームのID。
  • name: カタログの名前。
  • id: カタログの一意の識別子。このIDは、商品の詳細をカタログに追加するときなど、以降の操作に必要になります。
{
    "catalogs": [
        {
            "teamId": "9f48572c-0a5b-4997-9a0e-ed74f4d32dc6",
            "name": "Retailer A",
            "id": "216af452-d219-4807-b8ca-578bba446541"
        }
    ]
}
📘

オブジェクトが正常に返されると、新しいカタログのIDを受け取ります。同じリクエストを再度送信すると、新しいIDが付与され、カタログが2件作成されます。

複数のカタログを作成する

このAPIエンドポイントを使用すると、複数のカタログを作成できます。複数のカタログを作成する場合、1回のリクエストでカタログ100件まで配列できます。以下は、2つのカタログを作成するためのコンテキストの例です。

リクエスト例

POST $BASE_URL/v1/catalogs HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogs": [
        {
            "name": "Retailer A"
        },
        {
            "name": "Retailer B"
        }
    ]
}

レスポンス例

レスポンスは標準的なJSON形式に従い、以下の詳細を配列で返します。各カタログには個別のteamidnameidがあります。

  • teamId:カタログに関連付けられているチームのID。
  • name: カタログの名前。
  • id: カタログの一意の識別子。このIDは、商品の詳細をカタログに追加するときなど、以降の操作に必要になります。
{
    "catalogs": [
        {
            "teamId": "9f48572c-0a5b-4997-9a0e-ed74f4d32dc6",
            "name": "Retailer A",
            "id": "216af452-d219-4807-b8ca-578bba446541"
        },
        {
            "teamId": "9f48572c-0a5b-4997-9a0e-ed74f4d32dc6",
            "name": "Retailer B",
            "id": "75047339-65f5-41b8-8f2c-e76b04716cd4"
        }
    ]
}

小売業者ごとに複数のカタログを作成する

複数のカタログを管理するには以下の手順に従います。

  • 各カタログごとに個別の「子」小売業者チームと単一の「親」小売業者チームを作成します。
  • 親チームと各子チームの間に親子関係を設定し、親チームがすべての子チームに正しく関連付けられるようにします。
  • 親チームを設定したら、すべての子チームのコンテンツ標準を更新して、親チームにリンクします。これについては、カスタマー統合エンジニア(CIE)にお問い合わせください。

小売業者向けに複数のカタログを作成する場合は、次の点を考慮します。

  • 1対1の関係:最も安全な設定は、カタログと小売業者チームの間に1対1の関係を持たせることです。厳密には必須ではありませんが、複雑化を避けるのに役立ちます。

  • 構造の例:次の図では、親チームは小売業者の名前空間内にネストされています。各子チーム(A、B、C)には、それぞれ関連するカタログ(A、B、C)があります。この構造により、注文確認で使用されるチームのAPIキーに基づいて、購入がそれぞれのカタログに正しく関連付けられるようになります。

  • Multiple Catalogs Under One Team: You can create multiple catalogs under the same retailer team. However, ensure that SKUs and SessionIDs are not shared across these catalogs to maintain correct attribution. Including the catalogId in the order API call helps in distinguishing the catalogs and prevents attribution errors. For more information, see Syncing order data via API.

  • Attribution Issues: Sharing SKUs and session IDs across catalogs can cause attribution problems. For example, if you have a website in two languages (e.g., ES and FR) with one retailer team associated with two catalogs (one for each language) and shared SKUs, a user identified by the same sessionID in both versions could result in a purchase on the ES site being attributed to the FR site, and vice versa. Including the catalogId in the order API call remedies this issue by ensuring that the attribution is correctly assigned to the respective catalog. For more information, see Syncing order data via API.