プロモーションを使用して、Google で販売する商品のスペシャル オファーを紹介できます。 プロモーションは、Google 検索、ショッピング、Chrome など、さまざまな Google サービスに表示されます。プロモーションが承認されるには、特定の条件を満たしている必要があります。詳しくは、 プロモーションの条件をご覧ください。
商品にプロモーションを追加すると、買い物客にスペシャル オファーのリンクが表示されます。 たとえば、「15% オフ」や「送料無料」などです。オファーのリンクによって商品の魅力が高まり、買い物客に購入を促すことができます。すべてのプロモーションはご購入手続き時または POS で適用されます。
詳しくは、 プロモーションの基本をご覧ください。
前提条件
プロモーションを掲載するには、お客様のビジネスと商品に関して具体的な情報を提供していただく必要があります。以下をご用意ください。
- Google Merchant Center の商品データソース 。
- Google Merchant Center の プロモーション データソース 。
- ショッピング キャンペーン用の Google 広告アカウント 。
また、Merchant Center アカウントをプロモーション プログラムに登録する必要があります。すでに登録済みかどうかわからない場合は、 Merchant Centerでご確認ください。
登録していない場合は、リクエスト フォームに入力してください。実装を始める準備が整うと、プロモーション チームから通知が届きます。
詳しくは、参加条件と ポリシーをご覧ください。
データソースの作成
プロモーション データソースを作成するには、
accounts.dataSources.create
メソッドを使用します。既存のプロモーション データソース
がある場合は、
accounts.dataSources.list
メソッドを使用してすべてのデータソースを取得します。プロモーション データソースの
name フィールドを使用して プロモーションを作成できます。
今後の API 呼び出しで直接参照できるように、各プロモーションの accounts.dataSources.name をローカル データベースに保存することを強くおすすめします。ローカル データベースの 1 回限りのバックフィルを実行できます。
次のリクエストは、プロモーションを追加するためのデータソースを作成する方法を示しています。
POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources
{
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"contentLanguage": "{CONTENT_LANGUAGE}",
"targetCountry": "{TARGET_COUNTRY}"
}
}
次のように置き換えます。
- {ACCOUNT_ID}: Merchant Center UI に表示されるアカウントの 一意の識別子。
- {DISPLAY_NAME}: データソースの表示名。
- {CONTENT_LANGUAGE}: データソース内の商品の 2 文字の ISO 639-1 言語コード。
- {TARGET_COUNTRY}: プロモーションを表示する 対象国の CLDR 地域コード。
リクエストが正常に実行されると、新しく作成されたプロモーション データソースの詳細を含む次のレスポンスが表示されます。
{
"name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
"dataSourceId": "{DATASOURCE_ID}",
"displayName": "{DISPLAY_NAME}",
"promotionDataSource": {
"targetCountry": "{TARGET_COUNTRY}",
"contentLanguage": "{CONTENT_LANGUAGE}"
},
"input": "API"
}
プロモーションを実施する
accounts.promotions.insert
メソッドを使用して、プロモーションを作成または更新できます。accounts.promotions.insert メソッド
は、
promotions
リソースとデータソース名を入力として受け取ります。成功した場合は、新規または更新されたプロモーションを返します。
プロモーションを作成するには、データ ソースの名前が必要です。 リクエストでは、次のフィールドの値も指定する必要があります。
contentLanguageredemptionChannelpromotionIdtargetCountryattributes.offerTypeattributes.genericRedemptionCodeattributes.couponValueTypeattributes.productApplicabilityattributes.promotionEffectiveTimePeriod.endTimeattributes.promotionEffectiveTimePeriod.startTimeattributes.longTitle
プロモーション フィードと商品フィードの処理が完了すると、Google がプロモーションの審査と承認を行って配信します。詳しくは、プロモーションの承認プロセスをご覧ください。
プロモーション ポリシーを確認して、作成するプロモーションが価値を高め、ショッピング広告のポリシーに準拠していることを確認することをおすすめします。
次のリクエストは、オンライン プロモーションを作成する方法を示しています。
HTTP
POST https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions:insert
{
"promotion": {
"name": "{PROMOTION_NAME}",
"promotionId": "{PROMOTION_ID}",
"targetCountry": "{TARGET_COUNTRY}",
"redemptionChannel": [
"ONLINE"
],
"contentLanguage": "{CONTENT_LANGUAGE}",
"attributes": {
"promotionDisplayTimePeriod": {
"endTime": "{PROMOTION_END_TIME}",
"startTime": "{PROMOTION_START_TIME}"
},
"offerType": "{OFFER_TYPE}",
"longTitle": "{LONG_TITLE}"
}
},
"dataSource": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}"
}
cURL
curl --request POST \
'https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions:insert?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"dataSource":"{DATASOURCE_ID}","promotion":{"name":"accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}y","promotionId":"abc","contentLanguage":"en","targetCountry":"US","redemptionChannel":["ONLINE"]}}' \
--compressed
プロモーション ID 属性の最小要件については、 プロモーション ID の設定に適用されるルールをご覧ください。
必須の offerType フィールドの有効な値は NO_CODE と GENERIC_CODE です。これらの値のいずれかを指定しない場合、API リクエストは HTTP 400 レスポンス [offer_type] validation/missing_required: Invalid or
missing required attribute: offer_type で失敗します
。必須フィールドを指定しない場合も、同様のエラー メッセージが返されます。
attributes.genericRedemptionCode フィールドに値を指定しない場合、
リクエストは HTTP 400 レスポンス [genericRedemptionCode] No
redemption code provided で失敗します。
promotion.attributes.promotionDisplayTimePeriod.startTime フィールドと promotion.attributes.promotionDisplayTimePeriod.endTime フィールドの値は、yyyy-mm-ddThh:mm:ssZ 形式にする必要があります。これらのフィールドの値は、将来の日付に置き換えてください。
詳しくは、 プロモーション データ仕様をご覧ください。
プロモーションの作成に関するベスト プラクティスについては、 プロモーションのベスト プラクティスをご覧ください。
プロモーション関連の属性の一覧については、 構造化データ属性の追加をご覧ください。
プロモーション作成リクエストが正常に実行された後、API を使用してプロモーションを取得したり、Merchant Center に表示したりできるようになるまで数分かかることがあります。
複数のプロモーションを非同期で挿入するために使用できるサンプルを次に示します。
Java
import com.google.api.core.ApiFuture;
import com.google.api.core.ApiFutureCallback;
import com.google.api.core.ApiFutures;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.api.gax.grpc.ChannelPoolSettings;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.protobuf.Timestamp;
import com.google.shopping.merchant.promotions.v1.Attributes;
import com.google.shopping.merchant.promotions.v1.CouponValueType;
import com.google.shopping.merchant.promotions.v1.InsertPromotionRequest;
import com.google.shopping.merchant.promotions.v1.OfferType;
import com.google.shopping.merchant.promotions.v1.ProductApplicability;
import com.google.shopping.merchant.promotions.v1.Promotion;
import com.google.shopping.merchant.promotions.v1.PromotionsServiceClient;
import com.google.shopping.merchant.promotions.v1.PromotionsServiceSettings;
import com.google.shopping.merchant.promotions.v1.RedemptionChannel;
import com.google.shopping.type.CustomAttribute;
import com.google.shopping.type.Destination.DestinationEnum;
import com.google.type.Interval;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to insert multiple promotions asynchronously. */
public class InsertPromotionsAsyncSample {
private static String generateRandomString() {
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuilder sb = new StringBuilder(8);
for (int i = 0; i < 8; i++) {
sb.append(characters.charAt(random.nextInt(characters.length())));
}
return sb.toString();
}
private static Promotion createPromotion(String accountId) {
String merchantPromotionId = generateRandomString();
Attributes attributes =
Attributes.newBuilder()
.setProductApplicability(ProductApplicability.ALL_PRODUCTS)
.setOfferType(OfferType.GENERIC_CODE)
.setGenericRedemptionCode("ABCD1234")
.setLongTitle("My promotion")
.setCouponValueType(CouponValueType.PERCENT_OFF)
.addPromotionDestinations(DestinationEnum.SHOPPING_ADS)
.setPercentOff(10)
// Note that promotions have a 6-month limit.
// For more information, read here: https://support.google.com/merchants/answer/2906014
// Also note that only promotions valid within the past 365 days are shown in the UI.
.setPromotionEffectiveTimePeriod(
Interval.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1726842472))
.setEndTime(Timestamp.newBuilder().setSeconds(1726842473))
.build())
.build();
return Promotion.newBuilder()
.setName(String.format("accounts/%s/merchantPromotions/%s", accountId, merchantPromotionId))
.setPromotionId(merchantPromotionId)
.setContentLanguage("fr")
.setTargetCountry("CH")
.addRedemptionChannel(RedemptionChannel.ONLINE)
.setAttributes(attributes)
// Custom attributes allow you to add additional information which is not available in
// Attributes. For example, you might want to pilot experimental functionality.
.addCustomAttributes(
CustomAttribute.newBuilder()
.setName("another example name")
.setValue("another example value")
.build())
.build();
}
public static void asyncInsertPromotions(String accountId, String dataSourceId) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
// Creates a channel provider. This provider manages a pool of gRPC channels
// to enhance throughput for bulk operations. Each individual channel in the pool
// can handle up to approximately 100 concurrent requests.
//
// Channel: A single connection pathway to the service.
// Pool: A collection of multiple channels managed by this provider.
// Requests are distributed across the channels in the pool.
//
// We recommend estimating the number of concurrent requests you'll make, divide by 50 (50%
// utilization of channel capacity), and set the pool size to that number.
InstantiatingGrpcChannelProvider channelProvider =
InstantiatingGrpcChannelProvider.newBuilder()
.setChannelPoolSettings(ChannelPoolSettings.staticallySized(30))
.build();
PromotionsServiceSettings merchantPromotionsServiceSettings =
PromotionsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.setTransportChannelProvider(channelProvider)
.build();
try (PromotionsServiceClient merchantPromotionsServiceClient =
PromotionsServiceClient.create(merchantPromotionsServiceSettings)) {
// Arbitrarily creates five merchant promotions with random IDs.
List<InsertPromotionRequest> requests = new ArrayList<>();
for (int i = 0; i < 5; i++) {
InsertPromotionRequest request =
InsertPromotionRequest.newBuilder()
.setParent(String.format("accounts/%s", accountId))
.setPromotion(createPromotion(accountId))
.setDataSource(String.format("accounts/%s/dataSources/%s", accountId, dataSourceId))
.build();
requests.add(request);
}
// Inserts the merchant promotions.
List<ApiFuture<Promotion>> futures =
requests.stream()
.map(
request ->
merchantPromotionsServiceClient.insertPromotionCallable().futureCall(request))
.collect(Collectors.toList());
// Creates callback to handle the responses when all are ready.
ApiFuture<List<Promotion>> responses = ApiFutures.allAsList(futures);
ApiFutures.addCallback(
responses,
new ApiFutureCallback<List<Promotion>>() {
@Override
public void onSuccess(List<Promotion> results) {
System.out.println("Inserted merchant promotions below:");
System.out.println(results);
}
@Override
public void onFailure(Throwable throwable) {
System.out.println(throwable);
}
},
MoreExecutors.directExecutor());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
asyncInsertPromotions(config.getAccountId().toString(), "<YOUR_DATA_SOURCE_ID>");
}
}
以下は、使用を開始する際に役立つプロモーションのサンプルです。
すべての商品とすべての店舗に適用されるローカル プロモーション
次のリクエストのサンプルは、Merchant Center アカウント内のすべての商品と、リンクされた ビジネス プロフィール アカウントに追加されたすべての店舗に適用されるローカル プロモーションを作成する方法を示しています。
POST https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/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/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}"
}
productApplicability フィールドは必須です。プロモーションがすべての商品に適用されるのか、特定の商品にのみ適用されるのかを示します。サポートされている値は ALL_PRODUCTS と SPECIFIC_PRODUCTS です。詳しくは、プロモーションの商品を選択する
をご覧ください。
couponValueType フィールドは必須です。実施するプロモーションのタイプを示します。サポートされている値の一覧については、
クーポンの値タイプをご覧ください。選択したクーポン値のタイプによっては、
一部の属性が必須になります。
minimumPurchaseQuantity フィールドを使用すると、プロモーションの特典を利用するために必要な最低購入数量の値を設定できます。詳しくは、
プロモーションの
プロモーションの対象となる購入数の下限をご覧ください。
同様に、minimumPurchaseAmount フィールドを使用して、プロモーションの特典を利用するために必要な最小購入金額を設定できます。詳しくは、
最小購入金額をご覧ください。
ローカル プロモーションの作成に必要な値について詳しくは、 ローカル プロモーションのデータソース仕様をご覧ください。
クーポンコードを使用して選択した商品に適用されるオンライン プロモーション
次のリクエストのサンプルは、クーポンコードを使用して選択した商品に適用されるオンライン プロモーションを作成する方法を示しています。
POST https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/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/{ACCOUNT_ID}/dataSources/1000000573361824"
}
プロモーションを表示
プロモーションを表示するには、
accounts.promotions.get を使用します。
この GET リクエストは読み取り専用です。merchantId とプロモーションの ID が必要です。GET メソッドは、対応するプロモーション リソースを返します。
次に例を示します。
HTTP
GET https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/{PROMOTION_ID}?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Accept: application/json' \
--compressed
次のように置き換えます。
- {ACCOUNT_ID}: Merchant Center アカウントの一意の識別子 。
- {PROMOTION_ID}: 取得する プロモーションの一意の識別子。形式は {CHANNEL} ~{CONTENT_LANGUAGE}~ {TARGET_COUNTRY}~{PROMOTION_ID} です。
新しく作成されたプロモーションを API で取得できるようになるまでには数分かかります。
ローカル プロモーションを表示する
次のリクエストのサンプルは、プロモーション ID が in_store~en~US~buy_2_get_10_off のローカル プロモーションを取得します。
GET https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/in_store~en~US~buy_2_get_10_off
リクエストが成功すると、次のレスポンスが表示されます。
{
"name": "accounts/{ACCOUNT_ID}/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/{ACCOUNT_ID}/dataSources/1000000573361824"
}
このサンプルの moneyOffAmount フィールドは、プロモーションで提供される割引額を示しています。詳しくは、プロモーションの金額割引額
をご覧ください。
このサンプルの promotionUrl フィールドは、買い物客がプロモーションの詳細を確認できる店舗のウェブサイトへのリンクを示しています。ローカル在庫広告のプロモーションで promotionUrl フィールドを指定しないと、エラーが返されます。
オンライン プロモーションを表示する
次のリクエストのサンプルは、プロモーション ID が online~en~US~25_pct_off のオンライン プロモーションを取得します。
GET https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions/online~en~US~25_pct_off
{
"name": "accounts/{ACCOUNT_ID}/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_ID}/dataSources/{dataSource}"
}
このサンプルで使用されている itemIdInclusion フィールドは、プロモーションの対象となる商品を示しています。詳しくは、プロモーションの
商品 ID をご覧ください。
プロモーションを一覧表示する
promotions.list
メソッドを使用して、作成したすべてのプロモーションを表示できます。
リクエストの例を次に示します。
HTTP
GET https://merchantapi.googleapis.com/promotions/v1/{ACCOUNT_ID}/promotions
cURL
curl \
'https://merchantapi.googleapis.com/promotions/v1/accounts/{ACCOUNT_ID}/promotions?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Accept: application/json' \
--compressed
レスポンスには、アカウント内のすべてのプロモーションのリストが含まれます。各プロモーションについて、promotionId、redemptionChannel、dataSource、promotionStatus などの詳細を確認できます。
プロモーションのステータスを表示する
プロモーションのステータスを確認するには、promotionStatus 属性をご覧ください。この属性は、
promotions.get
または
promotions.list
メソッドから返されます。
promotionStatus フィールドには次の値を指定できます。
IN_REVIEW: プロモーションは審査中です。REJECTED: プロモーションは不承認です。LIVE: プロモーションは承認され、有効になっています。STOPPED: プロモーションはアカウントによって停止されています。EXPIRED: プロモーションは有効期限が切れています。PENDING: プロモーションは停止されておらず、すべての審査が承認されていますが、有効日はまだ先です。STATE_UNSPECIFIED: プロモーションの状態が不明です。
作成したプロモーションの承認プロセスについては、 プロモーションの承認 プロセスをご覧ください。
プロモーション ステータスのサンプル
次のサンプルは、リクエストが成功した場合と失敗した場合の違いを示しています。
商品マッピングがない
次のレスポンスの本文は、商品マッピングがないために不承認となったオンライン プロモーションを示しています。
"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"
]
}
]
}
不承認となったプロモーションのトラブルシューティングと、今後不承認にならないようにする方法については、不承認となったプロモーションの問題を解決するをご覧ください。
作成したプロモーションが承認されない場合は、不承認の理由と問題を解決するための手順が記載されたメールが届きます。
プロモーションは審査中です
次のレスポンスの本文は、プロモーションがまだ審査中であることを示しています。
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "PENDING"
},
{
"destination": "SHOPPING_ADS",
"status": "PENDING"
}
],
"itemLevelIssues": []
}
承認され、有効なプロモーション
次のレスポンスの本文は、買い物客に表示されるプロモーションを示しています。
"promotionStatus": {
"destinationStatuses": [
{
"reportingContext": "FREE_LISTINGS",
"status": "LIVE"
},
{
"destination": "SHOPPING_ADS",
"status": "LIVE"
} ],
"itemLevelIssues": []
}
詳しくは、 プロモーション ステータスに関するよくある質問をご覧ください。
プロモーションの削除
API を使用してプロモーションを削除することはできません。プロモーションを削除するには、Merchant Center UI にアクセスする必要があります。詳しくは、 プロモーションの編集またはプロモーション ステータスの変更をご覧ください。
既存のプロモーションを終了するには、
accounts.promotions.insert
メソッドを使用して、attributes.promotionEffectiveTimePeriod.endTimeフィールドを
過去の時刻に更新します。
詳細
- 詳しくは、プロモーション ヘルプ センターをご覧ください。
- 一般的な問題のトラブルシューティングについては、プロモーション サブ API に関連する問題のトラブルシューティングをご覧ください。
- Content API for Shopping から移行する方法については、プロモーション管理の移行をご覧ください。