লয়ালটি কাস্টমার ম্যাচ পরিষেবা সম্পর্কে এক নজরে

এই নির্দেশিকায় Merchant API-তে Loyalty Customer Match পরিষেবা কীভাবে ব্যবহার করতে হয় তা বর্ণনা করা হয়েছে। এই পরিষেবা, Google Search-এ অর্গ্যানিক পছন্দমতো অভিজ্ঞতার জন্য, অ্যাক্টিভ Google Ads অ্যাকাউন্ট না থাকলেও, মার্চেন্ট ও মার্চেন্টের হয়ে কাজ করা থার্ড-পার্টি লয়ালটি প্রদানকারীকে গ্রাহকের লয়ালটি ডেটা ম্যানেজ করতে দেয়, যেমন ব্যবহারকারীর আইডেন্টিফায়ার ও টিয়ার সংক্রান্ত তথ্য।

এক নজরে

লয়ালটি ডেটা আপলোড করতে লয়ালটি কাস্টমার ম্যাচ পরিষেবা ব্যবহার করুন, যা পরে Google Search-এ অর্গ্যানিক লয়ালটি পছন্দমতো সাজিয়ে নেওয়ার ফিচার প্রদান করতে ব্যবহার করা হয়, যেমন মেম্বার-নির্দিষ্ট প্রাইসিং দেখানো। আপনি লয়ালটি প্রোগ্রামের বিভিন্ন লেভেলের সাথে গ্রাহকদের যুক্ত করতে ManageLoyaltyCustomerMatch কাস্টম পদ্ধতি ব্যবহার করেন, এর ফলে আপনি ব্যবহারকারীর আইডেন্টিফায়ারের উপর ভিত্তি করে তাদের লয়ালটি স্ট্যাটাস যোগ করতে, আপডেট করতে বা সরিয়ে দিতে পারেন।

মূল ধারণা

  • ইউনিফায়েড ইন্টারফেস: গ্রাহকের লয়ালটি টিয়ারের বিবরণ যোগ, আপডেট বা সরানোর জন্য একটি অনন্য এন্ডপয়েন্ট।
  • গোপনীয়তাকে অগ্রাধিকার দিয়ে ডিজাইন করা: ব্যবহারকারীর গোপনীয়তা রক্ষা করতে এবং অননুমোদিত অ্যাকাউন্ট প্রোবিং প্রতিরোধ করতে, API GET বা LIST অপারেশন কাজ করে না, এর ফলে নিশ্চিত করা যায় যে ডেটা পুনরুদ্ধার বা অডিট করা ছাড়াই ম্যানেজ করা হয়।
  • ফ্লেক্সিবল শনাক্তকরণ: অন্তত একটি বৈধ শনাক্তকারী ব্যবহার করে ব্যবহারকারীদের ম্যাচ করুন যেমন, ইমেল আইডি, আসল ঠিকানা বা ফোন নম্বর।
  • সম্মতি-ভিত্তিক প্রসেসিং: পরিষেবা শুধুমাত্র তখনই গ্রাহকের ডেটা স্টোর ও ব্যবহার করে যখন এন্ড-ইউজার প্রয়োজনীয় Google-কে সম্মতি দিয়েছেন। অ্যাকাউন্ট আছে কিনা তা খতিয়ে দেখা বা সম্মতি স্ট্যাটাস থেকে অ্যাকাউন্টকে রক্ষা করতে এবং তা প্রতিরোধ করতে, কোনও মিল না পাওয়া গেলে বা সম্মতি না দেওয়া হলে পরিষেবা একটি সাইলেন্ট সাকসেস রিটার্ন করে।

পূর্বশর্ত

Loyalty Customer Match পরিষেবা ব্যবহার করতে এইসব প্রয়োজনীয়তা মেনে চলুন:

  • অ্যাকাউন্ট সেট-আপ: আপনার একটি অ্যাক্টিভ Merchant Center অ্যাকাউন্ট আছে কিনা তা নিশ্চিত করুন (অথবা আপনি থার্ড-পার্টি লয়ালটি প্রদানকারী হলে মার্চেন্টের অ্যাকাউন্টে অনুমোদিত অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন)। Loyalty Customer Match পরিষেবা ব্যবহার করার জন্য আপনাকে Google Ads অ্যাকাউন্ট তৈরি করতে হবে না।
  • লয়ালটি প্রোগ্রাম কনফিগারেশন: আপনার Merchant Center অ্যাকাউন্টে লয়ালটি প্রোগ্রাম চালু করুন এবং নিশ্চিত করুন যে আপনি লয়ালটি টিয়ার নির্ধারণ করেছেন।
  • টিয়ারের ক্রম সম্পর্কে সচেতনতা: Merchant Center UI-তে আপনার লয়ালটি টিয়ার যে ক্রমে দেখানো হয় সেই সম্পর্কে সচেতন থাকুন। API-এর এনুম ম্যাপিংয়ের জন্য এই ক্রমিক সংখ্যা ব্যবহার করা হয়।

পদ্ধতি: ManageLoyaltyCustomerMatch

ManageLoyaltyCustomerMatch পদ্ধতিটি গ্রাহকের লয়ালটি অ্যাসোসিয়েশন ম্যানেজ করার জন্য কেন্দ্রীয় ইন্টারফেস হিসেবে কাজ করে। প্রদত্ত ইনপুটের উপর ভিত্তি করে, পরিষেবা অটোমেটিক নির্ধারণ করে যে কোনও গ্রাহকের লয়ালটি টিয়ার স্ট্যাটাস যোগ, আপডেট বা সরিয়ে দিতে হবে কিনা। অপারেশনটি হল আইডেমপোটেন্ট: একই ধরনের বারবার অনুরোধের প্রভাব একটি অনুরোধের মতোই হয়।

API-এর মাধ্যমে কীভাবে গ্রাহকের লয়ালটি অ্যাসোসিয়েশন ম্যানেজ করতে হয় তা নিম্নলিখিত অনুরোধ থেকে বোঝা যায়:

POST https://merchantapi.googleapis.com/{API_VERSION}/accounts/{ACCOUNT_ID}/loyaltyCustomers:manage

এই অনুরোধে নিম্নলিখিত প্রয়োজনীয় পাথ প্যারামিটারগুলি উল্লেখ করা হয়েছে:

  • API_VERSION: API ভার্সন, যেমন v1.
  • ACCOUNT_ID: Merchant Center অ্যাকাউন্ট আইডি।

অনুরোধের বডিতে একটি loyaltyCustomer অবজেক্ট যোগ করুন।

{
    "userIdentifier": {
      "emailAddress": "string",
      "address": {
        "addressLines": ["string"],
        "locality": "string",
        "administrativeArea": "string",
        "postalCode": "string",
        "regionCode": "string"
      },
      "phoneNumber": "string"
    },
    "loyaltyTier": "LoyaltyTier",
    "pointBalance": "integer"
  }

loyaltyCustomer ফিল্ড

  • userIdentifier: গ্রাহককে ম্যাচ করানোর জন্য ব্যবহৃত শনাক্তকারীর সেট। userIdentifier-এর মধ্যে অন্তত একটি ফিল্ড প্রদান করতে হবে এবং সেটি বৈধ হতে হবে।
  • loyaltyTier: গ্রাহকের সাথে অ্যাসোসিয়েট করার জন্য লয়ালটি টিয়ার। Merchant Center সেট-আপে টিয়ারের ক্রম অনুযায়ী ম্যাপ করে। আরও বিবরণের জন্য, দেখুন ম্যাপিং loyaltyTier বোঝা। আগে থেকে থাকা কোনও অ্যাসোসিয়েশন সরাতে NON_MEMBER ব্যবহার করুন।
  • pointBalance: গ্রাহকের বর্তমান পয়েন্ট ব্যালেন্স।

userIdentifier ফিল্ড

নিম্নলিখিত ফিল্ডের মধ্যে অন্তত একটির তথ্য দিন:

  • emailAddress: গ্রাহকের ইমেল আইডি।
  • ঠিকানা: গ্রাহকের আসল ঠিকানা। পিন কোড দিতে হবে।
  • phoneNumber: গ্রাহকের ফোন নম্বর। E.164 ফর্ম্যাট সাজেস্ট করা হয়।

loyaltyTierম্যাপিং সম্পর্কে জানুন

API কাস্টম নাম ব্যবহার করে না। loyaltyTier এনুম ভ্যালু (TIER1 থেকে TIER7) হল সিম্যান্টিক লেবেল। আপনার Merchant Center UI-তে অ্যাসাইন করা কাস্টম নাম (যেমন, "গোল্ড রিওয়ার্ড") বা কাস্টম লেবেল (যেমন, "gold_tier") তারা ব্যবহার করে না। পরিবর্তে, সেগুলি Merchant Center-এ লয়ালটি প্রোগ্রাম সেটিংসে আপনি যেভাবে টিয়ারগুলি সংজ্ঞায়িত করেছেন সেই ক্রম অনুসারে ম্যাপ করা হয়:

  • TIER1: আপনার Merchant Center-এ তালিকাভুক্ত লয়ালটি প্রোগ্রামের কনফিগারেশনের প্রথম টিয়ারের সাথে সম্পর্কিত।
  • TIER2: আপনার Merchant Center-এ তালিকাভুক্ত দ্বিতীয় টিয়ারের সাথে লয়ালটি প্রোগ্রাম কনফিগারেশন সম্পর্কিত।
  • TIER3-এর মাধ্যমে TIER7: আপনার Merchant Center লয়ালটি প্রোগ্রাম কনফিগারেশনে তালিকাভুক্ত থার্ড থেকে সেভেন্থ টিয়ারের সাথে সম্পর্কিত।

উদাহরণ:

আপনার Merchant Center লয়ালটি প্রোগ্রামে যদি এই ক্রমে টিয়ারের সংজ্ঞা দেওয়া থাকে:

  1. টিয়ারের নাম: "সিলভার স্ট্যাটাস", টিয়ারের লেবেল: "সিলভার"
  2. টিয়ারের নাম: "গোল্ড মেম্বার", টিয়ারের লেবেল: "gold"
  3. টিয়ারের নাম: "Platinum Elite", টিয়ারের লেবেল: "platinum"

তারপর, accounts.loyaltyCustomers.manage API কল:

  • "সিলভার স্ট্যাটাস"-এ কোনও গ্রাহককে অ্যাসাইন করতে, আপনাকে অবশ্যই loyaltyTier: TIER1 ব্যবহার করতে হবে।
  • "গোল্ড মেম্বার" হিসেবে কোনও গ্রাহককে অ্যাসাইন করতে, আপনাকে অবশ্যই loyaltyTier: TIER2 ব্যবহার করতে হবে।
  • "Platinum Elite" লেভেলে কোনও গ্রাহককে অ্যাসাইন করতে, আপনাকে অবশ্যই loyaltyTier: TIER3 ব্যবহার করতে হবে।

LoyaltyTier enum ভ্যালু

  • TIER1
  • TIER2
  • TIER3
  • TIER4
  • TIER5
  • TIER6
  • TIER7
  • NON_MEMBER (গ্রাহকের লয়ালটি অ্যাসোসিয়েশন সরিয়ে দেওয়ার সিগন্যাল দিতে ব্যবহৃত হয়)

ManageLoyaltyCustomerMatch রেসপন্স বডি সম্পর্কে জানুন

ManageLoyaltyCustomerMatch পদ্ধতি একটি ManageLoyaltyCustomerMatchResponse অবজেক্ট রিটার্ন করে:

{
  "loyaltyCustomer": {
    // loyaltyCustomer object from the request
  }
}

উত্তরের ক্ষেত্রে গুরুত্বপূর্ণ বিষয়

  • সফলভাবে আপসার্ট করা হয়েছে (ডেটা সেভ করা হয়েছে): কোনও গ্রাহকের লয়ালটি টিয়ার অ্যাসোসিয়েশন সফলভাবে সেভ বা আপডেট করতে, নিম্নলিখিত শর্ত পূরণ করুন:

    • প্রদত্ত userIdentifier-এর মাধ্যমে আপনি কোনও Google ব্যবহারকারীর সাথে ম্যাচ করেন
    • আপনি সেট করেছেন, অনুরোধে loyaltyTier-এর মান NON_MEMBER-এর থেকে আলাদা কোনও সঠিক মান
    • ম্যাচ করা ব্যবহারকারী লয়ালটি ডেটা ব্যবহারের ব্যাপারে সম্মতি দিয়েছেন

উত্তরে আপনার অনুরোধ থেকে loyaltyCustomer অবজেক্ট রয়েছে, যা থেকে বোঝা যায় যে পরিষেবাটি ডেটা সফলভাবে প্রসেস ও স্টোর করেছে:

{
  "loyaltyCustomer": {
    "userIdentifier": {
     "emailAddress": "customer@example.com"
    },
    "loyaltyTier": "TIER2",
    "pointBalance": 1500
    }
}
  • সফলভাবে মুছে দেওয়া: এই মার্চেন্টের সাথে গ্রাহকের আগে থেকে থাকা কোনও লয়ালটি অ্যাসোসিয়েশন সফলভাবে সরাতে, নিম্নলিখিত শর্তগুলি পূরণ করতে হবে:
    • প্রদত্ত userIdentifier-এর মাধ্যমে আপনি কোনও Google ব্যবহারকারীর সাথে ম্যাচ করেন
    • NON_MEMBER-এর কাছে করা অনুরোধে আপনি loyaltyTier সেট করলে

উত্তরটি একটি খালি JSON অবজেক্ট:

{}
  • কোনও মিল নেই / সম্মতি নেই (নীরবে সফল): প্রদান করা userIdentifier কোনও Google অ্যাকাউন্টের সাথে না মিললে অথবা মিলে যাওয়া ব্যবহারকারী লয়ালটি ডেটা ব্যবহারের সম্মতি না দিয়ে থাকলে, API একটি খালি JSON অবজেক্ট সহ HTTP 200 OK স্ট্যাটাস রিটার্ন করে: {}। আপসার্ট ও সরানোর চেষ্টার ক্ষেত্রে এটি ঘটে।

উদাহরণ

TIER1 প্রথম সংজ্ঞায়িত টিয়ারের সাথে সম্পর্কিত (যেমন, 'বেসিক') এবং TIER2 দ্বিতীয় টিয়ারের সাথে সম্পর্কিত (যেমন, 'প্রিমিয়াম')।

TIER2-এ কোনও গ্রাহককে যোগ করতে বা ইমেল আইডি ব্যবহার করে তার স্ট্যাটাস আপডেট করতে, নিম্নলিখিত অনুরোধ পাঠান:

POST
"https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/loyaltyCustomers:manage"
  -d '{
      "userIdentifier": {
        "emailAddress": "customer@example.com"
      },
      "loyaltyTier": "TIER2",
      "pointBalance": 1500
  }'

কোনও ব্যবহারকারী সফলভাবে ম্যাচ করলে এবং সম্মতি দিলে, API নিম্নলিখিত উত্তর দেয়:

{
  "loyaltyCustomer": {
    "userIdentifier": {
      "emailAddress": "customer@example.com"
    },
    "loyaltyTier": "TIER2",
    "pointBalance": 1500
  }
}

কোনও ম্যাচ না থাকলে বা ব্যবহারকারী সম্মতি না দিয়ে থাকলে, API নিম্নলিখিত উত্তর দেয়:

{}

ফোন নম্বর ব্যবহার করে কোনও গ্রাহকের লয়ালটি অ্যাসোসিয়েশন সরাতে, নিম্নলিখিত অনুরোধ পাঠান:

POST
"https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/loyaltyCustomers:manage" \
  -d '{
      "userIdentifier": {
        "phoneNumber": "+18005550132"
      },
      "loyaltyTier": "NON_MEMBER"
  }'

রেকর্ড থাকুক বা না থাকুক, API নিম্নলিখিত সফল উত্তর দেয়:

{}

একাধিক শনাক্তকারী ব্যবহার করে কোনও গ্রাহককে যোগ বা আপডেট করতে, নিম্নলিখিত অনুরোধ পাঠান:

POST
"https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/loyaltyCustomers:manage" \
  -d '{
      "userIdentifier": {
        "emailAddress": "user@example.com",
        "address": {
          "postalCode": "94043",
          "regionCode": "US"
        }
      },
      "loyaltyTier": "TIER1"
  }'

প্রথম উদাহরণের মতো উত্তর, ম্যাচ ও সম্মতির উপর নির্ভর করে।

সমস্যা ম্যানেজ করা

API স্ট্যান্ডার্ড HTTP কোড ব্যবহার করে। সাধারণ সমস্যার স্ট্রিংয়ের মধ্যে এগুলি পড়ে:

HTTP কোড সমস্যা সংক্রান্ত স্ট্রিং বিবরণ
400 INVALID_ARGUMENT user_identifier বা loyalty_tier নেই অথবা শনাক্তকারী ফাঁকা আছে।
401 যাচাই করা হয়নি ভুল বা অনুপস্থিত ক্রেডেনশিয়াল।
403 PERMISSION_DENIED যে ব্যবহারকারীকে যাচাই করা হয়েছে তার নির্দিষ্ট Merchant Center অ্যাকাউন্টে অ্যাক্সেস নেই।
404 NOT_FOUND আপনার কনফিগারেশনে উল্লেখ করা লয়ালটি টিয়ার লেবেল নেই।
412 FAILED_PRECONDITION আপনার অ্যাকাউন্টে কোনও লয়ালটি প্রোগ্রাম কনফিগার করা নেই।
429 RESOURCE_EXHAUSTED কোটার সীমায় পৌঁছে গেছেন।

সমস্যার উদাহরণ

404 NOT_FOUND-এর উদাহরণ:

লয়ালটি প্রোগ্রাম কনফিগার করা নেই এমন অ্যাকাউন্ট আইডির জন্য যেকোনও সঠিক অনুরোধ ।

API নিম্নলিখিত সমস্যার উত্তর দেয়:

{
  "error": {
    "code": 404,
    "message": "The loyalty program is not found for account: {ACCOUNT_ID}.",
    "status": "NOT_FOUND",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "notFound",
        "domain": "merchantapi.googleapis.com",
        "metadata": {
          "ACCOUNT_ID": "{ACCOUNT_ID}",
          "REASON": "NOT_FOUND_LOYALTY_PROGRAM"
        }
      }
    ]
  }
}

কারণ: পাথে থাকা মার্চেন্ট অ্যাকাউন্টে কোনও অ্যাক্টিভ লয়ালটি প্রোগ্রাম নেই।

400 INVALID_ARGUMENT:-এর উদাহরণ:

অনুরোধে loyaltyTier ফিল্ডের ভুল মান থাকলে সমস্যা হয়:

{
  "loyaltyCustomer": {
    "userIdentifier": {
      "emailAddress": "customer@example.com"
    },
    "loyaltyTier": "TIER11",
    "pointBalance": 100
  }
}

API নিম্নলিখিত সমস্যার উত্তর দেয়:

{
  "error": {
    "code": 400,
    "message": "Invalid value at 'loyalty_customer.loyalty_tier' (type.googleapis.com/google.shopping.merchant.loyaltycustomers.v1.LoyaltyCustomer.LoyaltyTier), \"TIER11\"",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "loyalty_customer.loyalty_tier",
            "description": "Invalid value at 'loyalty_customer.loyalty_tier' (type.googleapis.com/google.shopping.merchant.loyaltycustomers.v1.LoyaltyCustomer.LoyaltyTier), \"TIER11\""
          }
        ]
      }
    ]
  }
}

কারণ: loyaltyTier-এর জন্য TIER11 সঠিক এনুম ভ্যালু নয়। একটিই টিয়ার উপলভ্য থাকাকালীন আপনি TIER2 উল্লেখ করার চেষ্টা করলে একই সমস্যা হতে পারে।

অনুরোধের বডিতে প্রয়োজনীয় loyaltyTier ফিল্ড না থাকলে সমস্যা হয়:

{
  "loyaltyCustomer": {
    "userIdentifier": {
      "emailAddress": "customer@example.com"
    },
    "pointBalance": 100
  }
}

API নিম্নলিখিত সমস্যার উত্তর দেয়:

{
  "error": {
    "code": 400,
    "message": "[loyalty_customer.loyalty_tier] Required field not provided: loyalty_customer.loyalty_tier",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "required",
        "domain": "merchantapi.googleapis.com",
        "metadata": {
          "FIELD_LOCATION": "loyalty_customer.loyalty_tier",
          "REASON": "MISSING_REQUIRED_FIELD"
        }
      }
    ]
  }
}

কারণ: loyaltyTier ফিল্ডটি পূরণ করা আবশ্যক।

ঠিকানার শনাক্তকারী সম্পূর্ণ না হলে সমস্যা হয়, যেমন postalCode ফিল্ড না থাকলে:

{
  "loyaltyCustomer": {
    "userIdentifier": {
      "address": {
        "locality": "Sunnyvale",
        "administrativeArea": "CA",
        "regionCode": "US"
      }
    },
    "loyaltyTier": "TIER1",
    "pointBalance": 100
  }
}

API নিম্নলিখিত সমস্যার উত্তর দেয়:

{
  "error": {
    "code": 400,
    "message": "[loyalty_customer.user_identifier] The format of loyalty_customer.user_identifier does not match the expected format ... Value: at least one valid user identifier should be provided.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "invalid",
        "domain": "merchantapi.googleapis.com",
        "metadata": {
          "FIELD_NAME": "loyalty_customer.user_identifier",
          "REASON": "INVALID_VALUE"
        }
      }
    ]
  }
}

কারণ: একটি ঠিকানা প্রদান করা হয়েছে, কিন্তু এতে প্রয়োজনীয় postalCode ফিল্ড নেই, তাই এটি বৈধ শনাক্তকারী হিসেবে বিবেচিত হয় না।

আপনি যদি এমন কোনও টিয়ার ইন্ডেক্সের জন্য অনুরোধ করেন যা কনফিগার করা প্রোগ্রামের জন্য সীমার বাইরে, তাহলে একটি সমস্যা দেখা দেয়:

পরিস্থিতি: Merchant Center-এ মার্চেন্টের শুধুমাত্র একটি টিয়ার কনফিগার করা আছে।

{
  "loyaltyCustomer": {
    "userIdentifier": {
      "emailAddress": "customer@example.com"
    },
    "loyaltyTier": "TIER2",
    "pointBalance": 100
  }
}

API নিম্নলিখিত সমস্যার উত্তর দেয়:

{
  "error": {
    "code": 400,
    "message": "[loyalty_customer.loyalty_tier] The format of loyalty_customer.loyalty_tier does not match the expected format `valid LoyaltyTier`. Value: TIER2.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "invalid",
        "domain": "merchantapi.googleapis.com",
        "metadata": {
          "FIELD_NAME": "loyalty_customer.loyalty_tier",
          "PATTERN": "valid LoyaltyTier",
          "FIELD_VALUE": "TIER2",
          "REASON": "INVALID_VALUE"
        }
      }
    ]
  }
}

কারণ: TIER2-এর অনুরোধ করা হয়েছে, কিন্তু অ্যাকাউন্টের সাথে লিঙ্ক করা লয়ালটি প্রোগ্রামে দ্বিতীয় টিয়ারের সংজ্ঞা দেওয়া নেই।

অনুরোধে ভুলভাবে ফর্ম্যাট করা emailAddress থাকলে সমস্যা হয়:

{
  "loyaltyCustomer": {
    "userIdentifier": {
      "emailAddress": "customer@google"
    },
    "loyaltyTier": "TIER1",
    "pointBalance": 100
  }
}

API নিম্নলিখিত সমস্যার উত্তর দেয়:

{
  "error": {
    "code": 400,
    "message": "[loyalty_customer.user_identifier] The format of loyalty_customer.user_identifier does not match the expected format `email_address: \t \"customer@google\"\n`. Value: at least one valid user identifier should be provided.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "invalid",
        "domain": "merchantapi.googleapis.com",
        "metadata": {
          "FIELD_NAME": "loyalty_customer.user_identifier",
          "REASON": "INVALID_VALUE"
        }
      }
    ]
  }
}

কারণ: ইমেল আইডির ফর্ম্যাট সঠিক নয়।

userIdentifier অবজেক্ট খালি থাকলে সমস্যা হয়:

{
  "loyaltyCustomer": {
    "userIdentifier": {},
    "loyaltyTier": "TIER1",
    "pointBalance": 100
  }
}

API নিম্নলিখিত সমস্যার উত্তর দেয়:

{
  "error": {
    "code": 400,
    "message": "[loyalty_customer.user_identifier] Required field not provided: loyalty_customer.user_identifier",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "required",
        "domain": "merchantapi.googleapis.com",
        "metadata": {
          "FIELD_LOCATION": "loyalty_customer.user_identifier",
          "REASON": "MISSING_REQUIRED_FIELD"
        }
      }
    ]
  }
}

কারণ: userIdentifier অবজেক্টটি উপস্থিত থাকলেও এতে কোনও প্রকৃত আইডেন্টিফায়ার ফিল্ড নেই।

মনে রাখবেন: শনাক্তকারী যাচাইকরণ.:

  • API, শনাক্তকারী (যেমন, ইমেল স্ট্রাকচার, ঠিকানায় postalCode-এর উপস্থিতি) সংক্রান্ত প্রাথমিক ফর্ম্যাট চেক করে।
  • তবে, প্রাথমিক যাচাইকরণে উত্তীর্ণ হওয়া কিছু শনাক্তকারী কোনও Google ব্যবহারকারীর অ্যাকাউন্টের সাথে নাও মিলতে পারে অথবা ব্যাকএন্ড ম্যাচিং সিস্টেমের স্বীকৃত ফর্ম্যাটে নাও থাকতে পারে। এইসব ক্ষেত্রে, আপনি HTTP স্ট্যাটাস 200 OK সহ সাইলেন্ট সাকসেস খালি রেসপন্স {} পাবেন।

পেশাদার পদ্ধতি

আপনার ইন্টিগ্রেশন অপ্টিমাইজ করতে এইসব পেশাদার পদ্ধতি অনুসরণ করুন।

  • বৃহৎ-স্কেল ইন্টিগ্রেশনের জন্য: API যেহেতু প্রতি অনুরোধের ভিত্তিতে কাজ করে, তাই বড় ডেটাসেটের জন্য প্রয়োজনীয় থ্রুপুট পেতে ক্লায়েন্ট-সাইড প্যারালালিজম প্রয়োজন। আপনাকে এমনভাবে ইন্টিগ্রেশন ডিজাইন করতে হবে যাতে একসাথে একাধিক অনুরোধ ম্যানেজ করা যায়। প্যারালাইজেশনের মাধ্যমে বেশি ভলিউম ম্যানেজ করার জন্য আপনার ইমপ্লিমেন্টেশন কীভাবে স্ট্রাকচার করবেন সেই বিষয়ে নির্দেশিকা পেতে, একাধিক অনুরোধ কীভাবে পাঠাতে হয় সেই বিষয়ে আমাদের গাইড দেখুন।

  • কোটা ম্যানেজমেন্ট: ডিফল্ট কোটা হল ১,০০০,০০০ অনুরোধ/দিন এবং ১০,০০০ অনুরোধ/মিনিট। আপনি কীভাবে কোটা মনিটর ও চেক করতে পারবেন তা জানতে, কোটা ও সীমা দেখুন।

  • ইমেল আইডিকে অগ্রাধিকার দিন: যখনই সম্ভব, গ্রাহকের emailAddress userIdentifier-এ অন্তর্ভুক্ত করুন। ইমেল আইডি সাধারণত ব্যবহারকারীদের তাদের Google অ্যাকাউন্টের সাথে ম্যাচ করানোর জন্য সবচেয়ে সঠিক ও নির্ভরযোগ্য শনাক্তকারী হিসেবে বিবেচিত হয়।

  • খালি উত্তর ম্যানেজ করা: আপনার অ্যাপ্লিকেশন এমনভাবে ডিজাইন করুন যাতে সেটি খালি {} উত্তরকে সঠিক উত্তর হিসেবে বুঝতে পারে। এর অর্থ হল, গোপনীয়তা সংক্রান্ত কারণে (কোনও মিল না থাকা বা সম্মতি না থাকা) ডেটা স্টোর করা হয়নি। অনুরোধটি আবার চেষ্টা করবেন না।

  • টিয়ারের ক্রম যাচাই করুন: আপনার API কলে সঠিক TIER1 through TIER7 এনুম ভ্যালু ব্যবহার করছেন কিনা তা নিশ্চিত করতে Merchant Center UI-তে সবসময় আপনার লয়ালটি টিয়ারের ক্রম কনফার্ম করুন। এই ম্যাপিং UI-তে নির্ধারিত ক্রমের উপর ভিত্তি করে করা হয়, নামের উপর ভিত্তি করে নয়।

  • সমস্যা মনিটর করা: API উত্তর লগ করুন ও মনিটর করুন, ইন্টিগ্রেশন সংক্রান্ত সমস্যা ধরতে কোনও 4xx সমস্যার দিকে নজর দিন, বিশেষ করে 404 সমস্যা যা টিয়ার বোঝার ক্ষেত্রে কোনও মিসম্যাচ নির্দেশ করতে পারে।