প্রোমোশন সাব-API-এর ওভারভিউ

Google-এ বিক্রি করা প্রোডাক্টের বিশেষ অফার দেখানোর জন্য প্রোমোশন ব্যবহার করুন। Google Search, Shopping এবং Chrome সহ বিভিন্ন Google প্রপার্টি জুড়ে প্রচার দেখানো হয়। অনুমোদন পেতে প্রোমোশনকে নির্দিষ্ট কিছু মাপকাঠি পূরণ করতে হবে। আরও তথ্যের জন্য, প্রোমোশন সংক্রান্ত মানদণ্ড দেখুন।

আপনার প্রোডাক্টে প্রোমোশন যোগ করলে, ক্রেতারা একটি বিশেষ অফারের লিঙ্ক দেখতে পান। যেমন, "১৫% ছাড়" বা "ফ্রি শিপিং"। অফার লিঙ্ক আপনার প্রোডাক্টের আকর্ষণ বাড়াতে পারে এবং ক্রেতাদের কেনাকাটা করতে উৎসাহিত করতে পারে। সব প্রোমোশন চেক-আউট বা পয়েন্ট অফ সেলে প্রয়োগ করা হয়।

আরও তথ্যের জন্য, প্রোমোশনের প্রাথমিক বিষয় দেখুন।

পূর্বশর্ত

আপনার প্রচার দেখানোর আগে, Google-এর আপনার ব্যবসা ও প্রোডাক্ট সম্পর্কে নির্দিষ্ট তথ্য প্রয়োজন। আপনার কাছে নিম্নলিখিতগুলি থাকতে হবে:

এছাড়াও, আপনাকে অবশ্যই Merchant Center অ্যাকাউন্টকে প্রোমোশন প্রোগ্রামে নথিভুক্ত করতে হবে। আপনি আগে থেকেই এনরোল করেছেন কিনা সেই ব্যাপারে নিশ্চিত না হলে, Merchant Center চেক করুন।

আপনি এনরোল না করে থাকলে, অনুরোধ ফর্ম পূরণ করুন। আপনি কখন প্রয়োগ শুরু করার জন্য প্রস্তুত হবেন তা প্রোমোশন টিম আপনাকে জানাবে।

আরও তথ্যের জন্য, অংশগ্রহণ সংক্রান্ত মাপকাঠি ও নীতি দেখুন।

ডেটা সোর্স তৈরি করা

প্রোমোশন ডেটা সোর্স তৈরি করতে আপনি accounts.dataSources.create মেথড ব্যবহার করতে পারেন। আগে থেকে থাকা কোনও প্রোমোশন ডেটা সোর্স উপলভ্য থাকলে, সব ডেটা সোর্স রিট্রিভ করতে accounts.dataSources.list পদ্ধতি ব্যবহার করুন। তারপরে, আপনি প্রোমোশন তৈরি করতে প্রোমোশন ডেটা সোর্সেরname ফিল্ড ব্যবহার করতে পারবেন।

ভবিষ্যতে API কলের সময় সরাসরি এগুলি রেফার করতে, আমরা প্রতিটি প্রোমোশনের জন্য আপনার লোকাল ডেটাবেসে accounts.dataSources.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}: ডেটা সোর্সে থাকা প্রোডাক্টের দুটি অক্ষরের 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 আপনার প্রচার পর্যালোচনা করে এবং সেগুলি ডিস্ট্রিবিউট করার আগে অনুমোদন করে। আরও তথ্যের জন্য, প্রোমোশন অনুমোদনের প্রসেস দেখুন।

আমরা সাজেস্ট করি যে আপনি প্রোমোশন সংক্রান্ত নীতি পড়ে দেখুন যাতে নিশ্চিত হতে পারেন যে আপনার তৈরি করা প্রোমোশন ভ্যালু যোগ করে এবং Shopping বিজ্ঞাপন সংক্রান্ত নীতি মেনে চলে।

অনলাইন প্রোমোশন কীভাবে তৈরি করতে হয় তা নিম্নলিখিত অনুরোধ থেকে বোঝা যায়:

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

আপনার প্রচার আইডি সেট করার ক্ষেত্রে প্রযোজ্য নিয়ম সম্পর্কে জানতে, প্রচার আইডি অ্যাট্রিবিউটের জন্য ন্যূনতম প্রয়োজনীয়তা দেখুন।

আবশ্যিক offerType ফিল্ডের সঠিক ভ্যালু হল NO_CODE এবং GENERIC_CODE। আপনি এই মানগুলির মধ্যে একটি না দিলে, HTTP 400 উত্তর সহ API অনুরোধটি ব্যর্থ হয় [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 অ্যাকাউন্টের সব প্রোডাক্ট এবং আপনার লিঙ্ক করা 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 {ACCESS_TOKEN}' \
   --header 'Accept: application/json' \
   --compressed

নিম্নলিখিত বিষয়গুলি পরিবর্তন করুন:

  • {ACCOUNT_ID}: আপনার Merchant Center অ্যাকাউন্টের অনন্য শনাক্তকারী।
  • {PROMOTION_ID}: আপনি যে প্রোমোশন ফিরিয়ে আনতে চান তার অনন্য শনাক্তকারী। ফর্ম্যাট হল {CHANNEL} ~{CONTENT_LANGUAGE}~ {TARGET_COUNTRY}~{PROMOTION_ID} .

মনে রাখবেন, API ব্যবহার করে নতুন তৈরি করা প্রোমোশনকে আবার পেতে কয়েক মিনিট সময় লাগে।

স্থানীয় প্রোমোশন দেখা

নিচে দেওয়া অনুরোধের নমুনা থেকে এমন একটি স্থানীয় প্রচার পাওয়া যায় যার প্রচার আইডি হল 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 {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 ফিল্ডকে অতীতের কোনও সময়ে আপডেট করতে পারেন।

আরও জানুন