प्रमोशन सब-एपीआई के बारे में खास जानकारी

Google पर बेचे जाने वाले प्रॉडक्ट के लिए, खास ऑफ़र दिखाने के लिए प्रमोशन का इस्तेमाल करें. प्रमोशन, Google की अलग-अलग प्रॉपर्टीज़ पर दिखते हैं. जैसे, Google Search, Shopping, और Chrome. प्रमोशन को मंज़ूरी मिलने के लिए, कुछ ज़रूरी शर्तें पूरी करनी होंगी. ज़्यादा जानकारी के लिए, प्रमोशन के मानदंड देखें.

अपने प्रॉडक्ट में प्रमोशन जोड़ने पर, खरीदारों को एक खास ऑफ़र का लिंक दिखता है. उदाहरण के लिए, "15% की छूट" या "मुफ़्त शिपिंग". ऑफ़र के लिंक से, आपके प्रॉडक्ट में लोगों की दिलचस्पी बढ़ सकती है. इससे आपके प्रॉडक्ट के बिकने की संभावना भी बढ़ सकती है. सभी प्रमोशन, चेकआउट के दौरान या बिक्री की जगह पर लागू होते हैं.

ज़्यादा जानकारी के लिए, प्रमोशन के बारे में बुनियादी जानकारी लेख पढ़ें.

ज़रूरी शर्तें

Google पर प्रमोशन दिखाने के लिए, आपको कारोबार और प्रॉडक्ट की खास जानकारी 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 के यूज़र इंटरफ़ेस (यूआई) में दिखता है.
  • {DISPLAY_NAME}: डेटा सोर्स का डिसप्ले नेम.
  • {CONTENT_LANGUAGE}: डेटा सोर्स में मौजूद प्रॉडक्ट के लिए, दो अक्षरों वाला 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

प्रमोशन आईडी सेट करने के लिए लागू होने वाले नियमों के बारे में जानने के लिए, प्रमोशन आईडी एट्रिब्यूट के लिए ज़रूरी शर्तें लेख पढ़ें.

ज़रूरी offerType फ़ील्ड के लिए मान्य वैल्यू NO_CODE और GENERIC_CODE हैं. इनमें से कोई भी वैल्यू न देने पर, एपीआई अनुरोध पूरा नहीं होगा. साथ ही, HTTP 400 रिस्पॉन्स [offer_type] validation/missing_required: Invalid or missing required attribute: offer_type मिलेगा. अगर आपने ज़रूरी फ़ील्ड में से किसी की भी वैल्यू नहीं दी है, तो आपको इसी तरह का गड़बड़ी का मैसेज दिखेगा.

attributes.genericRedemptionCode फ़ील्ड के लिए वैल्यू न देने पर, अनुरोध पूरा नहीं होगा. साथ ही, एचटीटीपी 400 रिस्पॉन्स [genericRedemptionCode] No redemption code provided मिलेगा.

promotion.attributes.promotionDisplayTimePeriod.startTime और promotion.attributes.promotionDisplayTimePeriod.endTime फ़ील्ड की वैल्यू, yyyy-mm-ddThh:mm:ssZ फ़ॉर्मैट में होनी चाहिए. पक्का करें कि आपने इन फ़ील्ड की वैल्यू को आने वाले समय की तारीखों से बदल दिया हो.

ज़्यादा जानकारी के लिए, प्रमोशन डेटा स्पेसिफ़िकेशन देखें.

प्रमोशन बनाने के सबसे सही तरीकों के बारे में जानने के लिए, प्रमोशन के सबसे सही तरीके लेख पढ़ें.

प्रमोशन से जुड़े एट्रिब्यूट की सूची देखने के लिए, स्ट्रक्चर्ड डेटा एट्रिब्यूट जोड़ना लेख पढ़ें.

प्रमोशन बनाने का अनुरोध पूरा होने के बाद, एपीआई का इस्तेमाल करके प्रमोशन को वापस पाने में कुछ मिनट लग सकते हैं. इसके अलावा, प्रमोशन को 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 खाते में मौजूद सभी प्रॉडक्ट और लिंक किए गए Business Profile खाते में जोड़े गए सभी स्टोर पर लागू होता है.

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 और प्रमोशन के आईडी की ज़रूरत होती है. 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} है.

ध्यान दें कि एपीआई का इस्तेमाल करके, हाल ही में बनाए गए प्रमोशन को वापस पाने में कुछ मिनट लगते हैं.

लोकल प्रमोशन देखना

यहां दिए गए सैंपल अनुरोध में, ऐसे स्थानीय प्रमोशन की जानकारी मिलती है जिसका प्रमोशन आईडी 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 फ़ील्ड को शामिल न करने पर, स्थानीय इन्वेंट्री विज्ञापनों के प्रमोशन में गड़बड़ी दिखती है.

ऑनलाइन प्रमोशन देखना

यहां दिए गए अनुरोध के सैंपल में, ऐसे ऑनलाइन प्रमोशन की जानकारी मिलती है जिसका प्रमोशन आईडी 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 फ़ील्ड में, उन प्रॉडक्ट के बारे में बताया गया है जिन पर प्रमोशन लागू किया जा सकता है. ज़्यादा जानकारी के लिए, प्रमोशन के लिए प्रॉडक्ट आईडी लेख पढ़ें.

प्रमोशन की सूची बनाना

बनाए गए सभी प्रमोशन देखने के लिए, 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": []
  }

ज़्यादा जानकारी के लिए, प्रमोशन की स्थिति के बारे में अक्सर पूछे जाने वाले सवाल देखें.

प्रमोशन मिटाएं

एपीआई का इस्तेमाल करके, प्रमोशन को नहीं मिटाया जा सकता. किसी प्रमोशन को मिटाने के लिए, आपको Merchant Center के यूज़र इंटरफ़ेस (यूआई) को ऐक्सेस करना होगा. ज़्यादा जानकारी के लिए, प्रमोशन में बदलाव करना या प्रमोशन की स्थिति बदलना लेख पढ़ें.

किसी मौजूदा प्रमोशन को खत्म करने के लिए, accounts.promotions.insert तरीके का इस्तेमाल करके, attributes.promotionEffectiveTimePeriod.endTime फ़ील्ड को पिछली तारीख पर अपडेट किया जा सकता है.

ज़्यादा जानें