プロモーションを使用して、Google で販売する商品のスペシャル オファーを紹介します。プロモーションは、Google 検索、ショッピング、Chrome などのさまざまな Google サービスに表示されます。プロモーションが承認されるには、特定の基準を満たしている必要があります。詳細については、昇格条件をご覧ください。
商品にプロモーションを追加すると、ユーザーにスペシャル オファーのリンクが表示されます。例: 「15% オフ」、「送料無料」。特典リンクを使用すると、商品の魅力を高め、買い物客に購入を促すことができます。すべてのプロモーションはご購入手続き時または POS で適用されます。
詳しくは、プロモーションの基本をご覧ください。
前提条件
プロモーションを掲載するには、お客様のビジネスと商品に関して具体的な情報を提供していただく必要があります。以下をご用意ください。
- Google Merchant Center の有効な商品フィード。
- Google Merchant Center の有効なプロモーション フィード。
- ショッピング キャンペーン用の Google 広告アカウント。
また、Merchant Center アカウントをプロモーション プログラムに登録する必要があります。すでに登録済みかどうか不明な場合は、Merchant Center をご確認ください。
登録していない場合は、リクエスト フォームに入力します。実装を始める準備が整うと、プロモーション チームから通知が届きます。
詳しくは、参加条件とポリシーをご覧ください。
データソースを作成する
プロモーション データソースを作成するには、accounts.dataSources.create メソッドを使用します。既存のプロモーション データソースが利用可能な場合は、accounts.dataSources.list
メソッドを使用してすべてのデータソースを取得します。プロモーション データソースの name
フィールドを使用して、プロモーションを作成できます。
次のリクエストは、プロモーションを追加するためのデータソースを作成する方法を示しています。
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
リソースとデータソース名を入力として受け取ります。成功した場合は、新しいプロモーションまたは更新されたプロモーションを返します。
プロモーションを作成するには、データソースの名前が必要です。リクエストでは、次のフィールドの値も指定する必要があります。
contentLanguage
redemptionChannel
promotionId
targetCountry
attributes.offerType
attributes.genericRedemptionCode
attributes.couponValueType
attributes.productApplicability
attributes.promotionEffectiveTimePeriod.endTime
attributes.promotionEffectiveTimePeriod.startTime
attributes.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 [YOUR_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.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();
PromotionsServiceSettings merchantPromotionsServiceSettings =
PromotionsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.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 [YOUR_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 [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
レスポンスには、アカウント内のすべてのプロモーションのリストが含まれます。各プロモーションについて、promotionId
、redemptionChannel
、dataSource
、promotionStatus
などの詳細を確認できます。
プロモーションのステータスを表示する
プロモーションのステータスを確認するには、promotions.get
メソッドまたは promotions.list
メソッドから返される promotionStatus
属性を確認します。
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 からの移行については、プロモーション管理を移行するをご覧ください。