Omówienie interfejsu API promocji sprzedawcy

Korzystaj z promocji, aby prezentować oferty specjalne na produkty, które sprzedajesz w Google. Promocje wyświetlają się w różnych usługach Google, m.in. w wyszukiwarce Google, Zakupach i Chrome.

Gdy dodasz promocje do swoich produktów, kupujący zobaczą link do oferty specjalnej, na przykład „15% zniżki” lub „Bezpłatna dostawa”. Linki do ofert mogą zwiększyć atrakcyjność produktów i zachęcić klientów do zakupu.

Więcej informacji znajdziesz w artykule Podstawowe informacje o promocjach.

Wymagania wstępne

Przed wyświetleniem promocji musisz podać konkretne informacje o swojej firmie i jej produktach. Musisz mieć:

Dodatkowo musisz zarejestrować swoje konto sprzedawcy w programie Promocje. Jeśli nie wiesz, czy jesteś już zarejestrowanym użytkownikiem, zajrzyj do Merchant Center.

Jeśli nie jesteś jeszcze zarejestrowanym użytkownikiem, wypełnij formularz prośby. Zespół ds. promocji poinformuje Cię, kiedy będzie można rozpocząć implementację.

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

Utwórz źródło danych

Użyj interfejsu API datasource.create, aby utworzyć plik danych o promocjach. Jeśli istniejący plik danych o promocjach jest dostępny, użyj polecenia datasource.get, aby pobrać datasource.name.

Formularz prośby jest następujący:

POST https://merchantapi.googleapis.com/promotions/v1beta/accounts/{account}/dataSources/{datasource}

Przykład

Przykład przedstawia 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ę

Do tworzenia lub aktualizowania promocji możesz użyć metody accounts.promotions.insert. Metoda accounts.promotions.insert pobiera jako dane wejściowe zasób promotions i nazwę źródła danych. W przypadku powodzenia zwraca nową lub zaktualizowaną promocję.

Do utworzenia promocji potrzebny jest plik datasource.name.

Google sprawdza i zatwierdza Twoje promocje przed ich dystrybucją. Więcej informacji znajdziesz w artykule Proces zatwierdzania promocji.

Forma żądania:

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

Zapoznaj się z tymi przykładowymi promocjami.

Przykład 1. Promocja lokalna obejmująca wszystkie produkty i wszystkie sklepy

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"
      },
      "minimum_purchase_quantity": 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 promocyjnym

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.

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

Zanim zaczniesz tworzyć promocje i nimi zarządzać, zapoznaj się ze sprawdzonymi metodami dotyczącymi promocji.

Wyświetl promocje

Aby wyświetlić promocję, użyj adresu accounts.promotions.get. Ta funkcja jest tylko do odczytu. Wymaga to Twojego atrybutu merchantId oraz identyfikatora promocji. Metoda get zwraca odpowiedni zasób promocji.

Na przykład:

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

Przeanalizuj przykłady.

Przykład 1. Promocja lokalna

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"
   },
   "minimum_purchase_quantity": 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świetl listę promocji

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

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

Stan promocji

Aby zobaczyć 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 udanymi i nieudanych.

Przykład 1. Ten tekst odpowiedzi przedstawia promocję online, która zostałaby 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. Następująca treść odpowiedzi przedstawia zatwierdzoną promocję.

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

Przykład 3. zatwierdzona i aktywna promocja

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

Więcej informacji

Więcej informacji znajdziesz w Centrum pomocy dotyczącym promocji.

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