Omówienie interfejsu API promocji sprzedawcy

Korzystaj z promocji, aby prezentować oferty specjalne produktów, które sprzedajesz w Google. Promocje wyświetlają się w różnych usługach Google, takich jak wyszukiwarka Google, Zakupy Google i Chrome.

Gdy dodajesz promocje do produktów, kupujący widzą link do oferty specjalnej, np. „15% zniżki” lub „Bezpłatna dostawa”. Linki do ofert mogą zwiększać atrakcyjność Twoich produktów i zachęcać klientów do zakupu.

Więcej informacji znajdziesz w artykule Podstawy promocji.

Wymagania wstępne

Zanim będziemy mogli wyświetlać Twoje promocje, musisz podać konkretne informacje na temat swojej firmy i produktów. Musisz mieć:

Dodatkowo musisz zarejestrować swoje konto sprzedawcy w programie Promocje. Jeśli nie masz pewności, czy jesteś już zarejestrowany, sprawdź Merchant Center.

Jeśli nie jesteś zarejestrowany, wypełnij formularz prośby. Zespół promocji poinformuje Cię, kiedy będzie można rozpocząć wdrażanie.

Więcej informacji znajdziesz w artykule Kryteria i zasady uczestnictwa.

Tworzenie źródła danych

Aby utworzyć plik danych o promocjach, użyj interfejsu datasource.create. Jeśli jest dostępny istniejący plik danych o promocjach, użyj metody accounts.dataSources.get, aby pobrać nazwę źródła danych.

Ma ono następującą formę:

POST https://merchantapi.googleapis.com/datasources/v1beta/accounts/{ACCOUNT}/dataSources

Przykład

Przykład pokazuje typowe żądanie i odpowiedź.

Prośba:

POST https://merchantapi.googleapis.com/datasources/v1beta/accounts/123/dataSources {"displayName": "test api feed", "promotionDataSource":{"targetCountry":"US", "contentLanguage":"en"}}

Odpowiedź:

{
  "name": "accounts/123/dataSources/1000000573361824",
  "dataSourceId": "1000000573361824",
  "displayName": "test api feed",
  "promotionDataSource": {
    "targetCountry": "US",
    "contentLanguage": "en"
  },
  "input": "API"
}

Zorganizuj promocję

Aby utworzyć lub zaktualizować promocję, możesz użyć metody accounts.promotions.insert. Metoda accounts.promotions.insert przyjmuje jako dane wejściowe zasób promotions i nazwę źródła danych. W razie powodzenia zwraca nową lub zaktualizowaną promocję.

Aby utworzyć promocję, musisz podać nazwę źródła danych.

Google sprawdza i zatwierdza Twoje promocje, zanim zostaną rozpowszechnione. Więcej informacji znajdziesz w procesie zatwierdzania promocji.

Formularz prośby:

POST https://merchantapi.googleapis.com/promotions/v1beta/{parent=accounts/*/}promotions:insert

Zapoznaj się z przykładowymi promocjami.

Przykład 1. Promocja lokalna dotycząca wszystkich produktów i wszystkich sklepów

POST https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/promotions:insert

{
  "promotion": {
    "promotionId": "buy_2_get_10_off",
    "contentLanguage": "en",
    "targetCountry": "US",
    "redemptionChannel": [
      "IN_STORE"
    ],
    "attributes": {
      "longTitle": "Buy 2 and get 10$ OFF purchase",
      "productApplicability": "ALL_PRODUCTS",
      "offerType": "NO_CODE",
      "couponValueType": "BUY_M_GET_MONEY_OFF",
      "promotionDisplayTimePeriod": {
        "startTime": "2024-2-06T00:47:44Z",
        "endTime": "2024-5-06T00:47:44Z"
      },
      "promotionEffectiveTimePeriod": {
        "startTime": "2024-2-06T00:47:44Z",
        "endTime": "2024-5-06T00:47:44Z"
      },
      "moneyOffAmount": {
        "amountMicros": "1000000",
        "currencyCode": "USD"
      },
      "minimumPurchaseQuantity": 2,
      "storeApplicability": "ALL_STORES",
      "promotionUrl": "http://promotionnew4url.com/",
      "promotionDestinations": [
        "LOCAL_INVENTORY_ADS"
      ],
    }
  },
  "dataSource": "accounts/123/dataSources/1000000573361824"
}

Przykład 2. Promocja online dotycząca wybranych produktów z kodem do wykorzystania

POST https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/promotions:insert

{
 "promotion": {
   "promotionId": "25_pct_off",
   "contentLanguage": "en",
   "targetCountry": "US",
   "redemptionChannel": [
     "ONLINE"
   ],
   "attributes": {
     "longTitle": "10% off on selected items",
     "productApplicability": "SPECIFIC_PRODUCTS",
     "offerType": "GENERIC_CODE",
     "genericRedemptionCode": "SPRINGSALE",
     "couponValueType": "PERCENT_OFF",
     "promotionDisplayTimePeriod": {
       "startTime": "2024-2-06T00:47:44Z",
       "endTime": "2024-5-06T00:47:44Z"
     },
     "promotionEffectiveTimePeriod": {
       "startTime": "2024-2-06T00:47:44Z",
       "endTime": "2024-5-06T00:47:44Z"
     },
     "percentOff": 25,
     "promotionDestinations": [
       "FREE_LISTINGS"
     ],
     "itemIdInclusion": [
       "1499860100",
       "1499860101",
       "1499860102",
       "1499860103",
       "1499860104"
     ],
   }
 },
 "dataSource": "accounts/123/dataSources/1000000573361824"
}

Uwagi specjalne

Po utworzeniu promocji może minąć kilka minut, zanim pojawi się ona w bazie danych Zakupów Google.

Listę atrybutów związanych z promocjami znajdziesz w artykule Dodawanie atrybutów danych strukturalnych.

Zanim utworzysz promocję i zaczniesz nią zarządzać, zapoznaj się ze sprawdzonymi metodami dotyczącymi promocji.

Wyświetl promocje

Aby wyświetlić promocję, użyj właściwości accounts.promotions.get. Ta operacja GET jest tylko do odczytu. Wymaga to podania merchantId i identyfikatora promocji. Metoda get zwraca odpowiedni zasób promocji.

Na przykład:

GET https://merchantapi.googleapis.com/promotions/v1beta/{name=accounts/*/promotions/*}

Zapoznaj się z tymi przykładami.

Przykład 1. Promowanie produktów dostępnych lokalnie

GET https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/promotions/in_store~en~US~buy_2_get_10_off

{
 "name": "accounts/123/promotions/in_store~en~US~buy_2_get_10_off",
 "promotionId": "buy_2_get_10_off",
 "contentLanguage": "en",
 "targetCountry": "US",
 "redemptionChannel": [
   "IN_STORE"
 ],
 "attributes": {
   "longTitle": "Buy 2 and get 10$ OFF purchase",
   "productApplicability": "ALL_PRODUCTS",
   "offerType": "NO_CODE",
   "couponValueType": "BUY_M_GET_MONEY_OFF",
   "promotionDisplayTimePeriod": {
     "startTime": "2024-2-06T00:47:44Z",
     "endTime": "2024-5-06T00:47:44Z"
   },
   "promotionEffectiveTimePeriod": {
     "startTime": "2024-2-06T00:47:44Z",
     "endTime": "2024-5-06T00:47:44Z"
   },
   "moneyOffAmount": {
     "amountMicros": "1000000",
     "currencyCode": "USD"
   },
   "minimumPurchaseQuantity": 2,
   "storeApplicability": "ALL_STORES",
   "promotionUrl": "http://promotionnew4url.com/",
   "promotionDestinations": [
     "LOCAL_INVENTORY_ADS"
   ],
 }
 "dataSource": "accounts/123/dataSources/1000000573361824"
}

Przykład 2. promocja online,

GET https://merchantapi.googleapis.com/promotions/v1beta/accounts/123/promotions/online~en~US~25_pct_off
{
 "name": "accounts/123/promotions/online~en~US~25_pct_off",
 "promotionId": "25_pct_off",
 "contentLanguage": "en",
 "targetCountry": "US",
 "redemptionChannel": [
   "ONLINE"
 ],
 "attributes": {
   "longTitle": "10% off on selected items",
   "productApplicability": "SPECIFIC_PRODUCTS",
   "offerType": "GENERIC_CODE",
   "genericRedemptionCode": "WINTERGIFT",
   "couponValueType": "PERCENT_OFF",
   "promotionDisplayTimePeriod": {
     "startTime": "2024-2-06T00:47:44Z",
     "endTime": "2024-5-06T00:47:44Z"
   },
   "promotionEffectiveTimePeriod": {
     "startTime": "2024-2-06T00:47:44Z",
     "endTime": "2024-5-06T00:47:44Z"
   },
   "percentOff": 25,
   "promotionDestinations": [
     "FREE_LISTINGS"
   ],
   "itemIdInclusion": [
     "1499860100",
     "1499860101",
     "1499860102",
     "1499860103",
     "1499860104"
   ],
 }
 "dataSource": "accounts/{account}/dataSources/{dataSource}"
}

Wyświetlanie listy promocji

Aby wyświetlić wszystkie utworzone promocje, możesz użyć metody promotions.list.

GET https://merchantapi.googleapis.com/promotions/v1beta/{parent=accounts/*}/promotions

Stan promocji

Aby sprawdzić stan promocji, możesz wyświetlić atrybut promotionStatus zwracany przez promotions.get i promotions.list.

Aby dowiedzieć się więcej o procesie zatwierdzania, przeczytaj artykuł Proces zatwierdzania promocji.

Przykładowy stan promocji

Poniższe przykłady pokazują różnicę między żądaniami, które się powiodły, a tymi, które się nie powiodły.

Przykład 1. Treść odpowiedzi poniżej pokazuje promocję online, która zostanie odrzucona z powodu braku mapowania produktów.

  "promotionStatus": {
    "destinationStatuses": [
      {
        "reportingContext": "FREE_LISTINGS",
        "status": "REJECTED"
      }
    ],
    "itemLevelIssues": [
      {
        "code": "promotion_sku_unmapped",
        "severity": "DISAPPROVED",
        "resolution": "merchant_action",
        "reportingContext": "FREE_LISTINGS",
        "description": "Unmapped",
        "detail": "This promotion couldn't be tested during review because it doesn't apply to any products that are currently in your Products feed",
        "documentation": "https://support.google.com/merchants/answer/2906014",
        "applicableCountries": [
          "US"
        ]
      },
      {
        "code": "promotion_sku_additional_requirements",
        "severity": "DISAPPROVED",
        "resolution": "merchant_action",
        "reportingContext": "FREE_LISTINGS",
        "description": "Promotion conditions not allowed",
        "detail": "This promotion has additional requirements that are not allowed such as requiring customers to verify additional details like phone number or ID before showing the promotion details",
        "documentation": "https://support.google.com/merchants/answer/2906014",
        "applicableCountries": [
          "US"
        ]
      }
    ]
  }

Przykład 2. Poniższy tekst odpowiedzi pokazuje promocję, która jest nadal oceniana.

  "promotionStatus": {
    "destinationStatuses": [
      {
        "reportingContext": "FREE_LISTINGS",
        "status": "PENDING"
      },
      {
        "destination": "SHOPPING_ADS",
        "status": "PENDING"
      }
    ],
    "itemLevelIssues": []
  }

Przykład 3. zatwierdzona i aktywną promocję,

  "promotionStatus": {
    "destinationStatuses": [
      {
        "reportingContext": "FREE_LISTINGS",
        "status": "LIVE"
      },
      {
        "destination": "SHOPPING_ADS",
        "status": "LIVE"
 }  ],
    "itemLevelIssues": []
  }

Więcej informacji

Więcej informacji znajdziesz w Centrum pomocy Promocje.

Więcej informacji o migracji z interfejsu Content API for Shopping znajdziesz w artykule Przenoszenie zarządzania promocjami.