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ź to w Merchant Center.

Jeśli nie jesteś zarejestrowany, wypełnij formularz prośby. Zespół ds. 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 tymi 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 internetowa 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. Ten tekst odpowiedzi zawiera 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. Treść odpowiedzi poniżej 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.