প্রচার সাব-এপিআই-এর ওভারভিউ,প্রমোশন সাব-এপিআই-এর ওভারভিউ

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

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

আরও তথ্যের জন্য, পদোন্নতির মূল বিষয়গুলো দেখুন।

পূর্বশর্ত

আপনার প্রচারগুলি দেখানোর আগে গুগল আপনার ব্যবসা এবং পণ্য সম্পর্কে নির্দিষ্ট তথ্য চায়। আপনার নিম্নলিখিত বিষয়গুলো অবশ্যই থাকতে হবে:

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

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

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

একটি ডেটা উৎস তৈরি করুন

আপনি একটি প্রোমোশন ডেটা সোর্স তৈরি করতে 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} : আপনার অ্যাকাউন্টের অনন্য শনাক্তকারী, যা মার্চেন্ট সেন্টার 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

গুগল আপনার প্রচারগুলো বিতরণ করার আগে পর্যালোচনা ও অনুমোদন করে। আরও তথ্যের জন্য, প্রচার অনুমোদন প্রক্রিয়া দেখুন।

আমরা আপনাকে প্রচার নীতিমালাগুলো পর্যালোচনা করার পরামর্শ দিচ্ছি, যাতে আপনি নিশ্চিত হতে পারেন যে আপনার তৈরি করা প্রচারগুলো মানসম্মত এবং শপিং বিজ্ঞাপন নীতিমালা মেনে চলে।

নিম্নলিখিত অনুরোধটি দেখায় কিভাবে একটি অনলাইন প্রচার তৈরি করতে হয়:

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 । আপনি যদি এই মানগুলির মধ্যে একটিও প্রদান না করেন, তাহলে API অনুরোধটি HTTP 400 প্রতিক্রিয়া [offer_type] validation/missing_required: Invalid or missing required attribute: offer_type সহ ব্যর্থ হয়। আপনি যদি বাধ্যতামূলক ফিল্ডগুলির কোনোটিই প্রদান না করেন, তাহলেও একই ধরনের ত্রুটি বার্তা ফেরত আসে।

আপনি যদি attributes.genericRedemptionCode ফিল্ডের জন্য কোনো মান প্রদান না করেন, তাহলে অনুরোধটি [genericRedemptionCode] No redemption code provided ” এই HTTP 400 প্রতিক্রিয়া সহ ব্যর্থ হয়।

promotion.attributes.promotionDisplayTimePeriod.startTime এবং promotion.attributes.promotionDisplayTimePeriod.endTime ফিল্ডগুলির মান অবশ্যই yyyy-mm-ddThh:mm:ssZ ফরম্যাটে হতে হবে। এই ফিল্ডগুলির মান ভবিষ্যতের তারিখ দিয়ে প্রতিস্থাপন করতে ভুলবেন না।

আরও তথ্যের জন্য, প্রমোশন ডেটা স্পেসিফিকেশন দেখুন।

প্রমোশন তৈরির সর্বোত্তম পদ্ধতি সম্পর্কে জানতে, প্রমোশনের সর্বোত্তম পদ্ধতি দেখুন।

প্রচার-সম্পর্কিত অ্যাট্রিবিউটগুলোর তালিকার জন্য, ‘স্ট্রাকচার্ড ডেটা অ্যাট্রিবিউট যোগ করুন’ দেখুন।

প্রোমোশন তৈরির অনুরোধ সফলভাবে সম্পন্ন হওয়ার পর, এপিআই (API) ব্যবহার করে প্রোমোশনটি পুনরুদ্ধারযোগ্য হতে বা মার্চেন্ট সেন্টারে প্রদর্শিত হতে কয়েক মিনিট সময় লাগতে পারে।

অ্যাসিঙ্ক্রোনাসভাবে একাধিক পদোন্নতি সন্নিবেশ করার জন্য এখানে একটি নমুনা দেওয়া হলো:

জাভা

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.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().setPoolSize(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>");
  }
}

শুরু করার জন্য আপনি নিম্নলিখিত কিছু নমুনা প্রচারণা ব্যবহার করতে পারেন।

একটি স্থানীয় অফার যা সকল পণ্য এবং সকল দোকানের জন্য প্রযোজ্য।

নিম্নলিখিত নমুনা অনুরোধটি দেখায় কিভাবে একটি স্থানীয় প্রচার তৈরি করতে হয় যা আপনার মার্চেন্ট সেন্টার অ্যাকাউন্টের সমস্ত পণ্য এবং আপনার লিঙ্ক করা বিজনেস প্রোফাইল অ্যাকাউন্টে যুক্ত সমস্ত স্টোরের জন্য প্রযোজ্য হবে।

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 রিকোয়েস্টটি শুধুমাত্র পঠনযোগ্য (read-only)। এর জন্য আপনার 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} : আপনার মার্চেন্ট সেন্টার অ্যাকাউন্টের অনন্য শনাক্তকারী।
  • {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 ফিল্ডটি প্রমোশনে প্রদত্ত ডিসকাউন্টের পরিমাণ দেখায়। আরও তথ্যের জন্য, `Monetary discount amount of a promotion` দেখুন।

এই নমুনায়, 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": []
  }

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

পদোন্নতিগুলি মুছুন

এপিআই (API) ব্যবহার করে কোনো প্রোমোশন ডিলিট করা সম্ভব নয়। একটি প্রোমোশন ডিলিট করতে হলে, আপনাকে মার্চেন্ট সেন্টার ইউআই (Merchant Center UI)-তে প্রবেশ করতে হবে। আরও তথ্যের জন্য, ‘একটি প্রোমোশন এডিট করুন’ অথবা ‘প্রোমোশনের স্ট্যাটাস পরিবর্তন করুন’ দেখুন।

চলমান কোনো প্রমোশন শেষ করতে, আপনি accounts.promotions.insert মেথডটি ব্যবহার করে attributes.promotionEffectiveTimePeriod.endTime ফিল্ডটিকে অতীতের কোনো একটি সময়ে আপডেট করতে পারেন।

আরও জানুন