ภาพรวมของบริการการจับคู่ข้อมูลลูกค้าตามโปรแกรมสะสมคะแนน

คู่มือนี้อธิบายวิธีใช้บริการจับคู่ข้อมูลลูกค้าตามโปรแกรมสะสมคะแนนใน Merchant API บริการนี้ช่วยให้ผู้ขายและผู้ให้บริการโปรแกรมสะสมคะแนนบุคคลที่สามที่ดำเนินการในนามของผู้ขายสามารถจัดการข้อมูลการสะสมคะแนนของลูกค้า เช่น ตัวระบุผู้ใช้และข้อมูลระดับขั้น เพื่อการปรับเปลี่ยนในแบบของคุณแบบทั่วไปใน Google Search โดยไม่ต้องมีบัญชี Google Ads ที่ใช้งานอยู่

ภาพรวม

ใช้บริการจับคู่ข้อมูลลูกค้าตามโปรแกรมสะสมคะแนนเพื่ออัปโหลดข้อมูลโปรแกรมสะสมคะแนน ซึ่งจะใช้เพื่อให้บริการฟีเจอร์การปรับเปลี่ยนโปรแกรมสะสมคะแนนในแบบของคุณในการค้นหาทั่วไปบน Google Search เช่น การแสดงราคาเฉพาะสมาชิก คุณใช้เมธอด ManageLoyaltyCustomerMatch ที่กำหนดเองเพื่อเชื่อมโยงลูกค้ากับระดับขั้นในโปรแกรมสะสมคะแนน ซึ่งช่วยให้คุณแทรก อัปเดต หรือนำสถานะการสะสมคะแนนออกตามตัวระบุผู้ใช้ได้

แนวคิดสำคัญ

  • อินเทอร์เฟซแบบรวม: ปลายทางที่ไม่ซ้ำกันสำหรับเพิ่ม อัปเดต หรือนำรายละเอียดระดับขั้นการสะสมคะแนนของลูกค้าออก
  • การออกแบบที่ให้ความสำคัญกับความเป็นส่วนตัวเป็นอันดับแรก: API ไม่รองรับการดำเนินการ GET หรือ LIST เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้และป้องกันการตรวจสอบบัญชีโดยไม่ได้รับอนุญาต ซึ่งช่วยให้มั่นใจได้ว่าระบบจะจัดการข้อมูลโดยไม่มีการดึงข้อมูลหรือการตรวจสอบ
  • การระบุตัวตนที่ยืดหยุ่น: จับคู่ผู้ใช้โดยใช้ตัวระบุที่ถูกต้องอย่างน้อย 1 รายการ เช่น อีเมล ที่อยู่จริง หรือหมายเลขโทรศัพท์
  • การประมวลผลตามความยินยอม: บริการจะจัดเก็บและใช้ข้อมูลลูกค้าก็ต่อเมื่อผู้ใช้ปลายทางได้ให้ความยินยอมแก่ Google แล้วเท่านั้น เพื่อปกป้องและป้องกันการตรวจสอบการมีอยู่ของบัญชีหรือสถานะความยินยอม บริการจะแสดงผลว่าสำเร็จโดยไม่มีการแจ้งเตือนหากไม่มีการจับคู่หรือไม่ได้ให้ความยินยอม

ข้อกำหนดเบื้องต้น

ปฏิบัติตามข้อกำหนดต่อไปนี้เพื่อใช้บริการการจับคู่ข้อมูลลูกค้าตามโปรแกรมสะสมคะแนน

  • การสร้างบัญชี: ตรวจสอบว่าคุณมีบัญชี Merchant Center ที่ใช้งานอยู่ (หรือสิทธิ์เข้าถึงที่ได้รับอนุญาตในบัญชีของผู้ขายหากคุณเป็นผู้ให้บริการโปรแกรมสะสมคะแนนบุคคลที่สาม) คุณไม่จำเป็นต้องสร้างบัญชี Google Ads เพื่อใช้บริการการจับคู่ข้อมูลลูกค้าสำหรับโปรแกรมสะสมคะแนน
  • การกำหนดค่าโปรแกรมสะสมคะแนน: เปิดใช้โปรแกรมสะสมคะแนนในบัญชี Merchant Center และตรวจสอบว่าคุณได้กำหนดระดับขั้นของโปรแกรมสะสมคะแนนแล้ว
  • ลำดับระดับขั้น: โปรดคำนึงถึงลำดับการกำหนดระดับขั้นของโปรแกรมสะสมคะแนนใน UI ของ Merchant Center API ใช้ลำดับที่แน่นอนนี้สำหรับการแมป enum

วิธีการ: ManageLoyaltyCustomerMatch

เมธอด ManageLoyaltyCustomerMatch ทำหน้าที่เป็นอินเทอร์เฟซส่วนกลางสำหรับจัดการการเชื่อมโยงความภักดีของลูกค้า บริการจะพิจารณาโดยอัตโนมัติว่าจะแทรก อัปเดต หรือนำสถานะระดับขั้นในโปรแกรมสะสมคะแนนของลูกค้าออก โดยอิงตามข้อมูลที่ระบุ การดำเนินการนี้เป็นแบบ Idempotent: คำขอที่เหมือนกันซ้ำๆ จะมีผลเหมือนกับคำขอเดียว

คำขอต่อไปนี้แสดงวิธีจัดการการเชื่อมโยงการสะสมคะแนนของลูกค้าผ่าน 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: ชุดตัวระบุที่ใช้ในการจับคู่ลูกค้า ต้องระบุช่องอย่างน้อย 1 ช่องภายใน userIdentifier และต้องถูกต้อง
  • loyaltyTier: ระดับความภักดีที่จะเชื่อมโยงกับลูกค้า แมปกับลำดับของระดับในการตั้งค่า Merchant Center โปรดดูรายละเอียดที่หัวข้อทำความเข้าใจการแมป loyaltyTier ใช้ NON_MEMBER เพื่อนำการเชื่อมโยงที่มีอยู่ออก
  • pointBalance: ยอดคะแนนคงเหลือปัจจุบันของลูกค้า

ฟิลด์ userIdentifier

ระบุช่องต่อไปนี้อย่างน้อย 1 ช่อง

  • emailAddress: อีเมลของลูกค้า
  • address: ที่อยู่จริงของลูกค้า ต้องระบุรหัสไปรษณีย์
  • phoneNumber: หมายเลขโทรศัพท์ของลูกค้า ขอแนะนำให้ใช้รูปแบบ E.164

ทำความเข้าใจการแมป loyaltyTier

API จะไม่ใช้ชื่อที่กำหนดเอง ค่า enum loyaltyTier (TIER1 ถึง TIER7) เป็นป้ายกำกับเชิงความหมาย โดยจะไม่ใช้ชื่อที่กำหนดเอง (เช่น "Gold Rewards") หรือป้ายกำกับที่กำหนดเอง (เช่น "gold_tier") ที่คุณกำหนดใน UI ของ Merchant Center แต่จะแมปตามลำดับที่คุณกำหนดระดับในการตั้งค่าโปรแกรมสะสมคะแนนใน Merchant Center อย่างเคร่งครัด ดังนี้

  • TIER1: สอดคล้องกับระดับแรกที่แสดงในการกำหนดค่าโปรแกรมสะสมคะแนนของ Merchant Center
  • TIER2: สอดคล้องกับระดับที่ 2 ที่แสดงในการกำหนดค่าโปรแกรมสะสมคะแนนของ Merchant Center
  • TIER3 ถึง TIER7: สอดคล้องกับระดับขั้นที่ 3 ถึง 7 ที่แสดงในการกำหนดค่าโปรแกรมสะสมคะแนนของ Merchant Center

ตัวอย่างเช่น

หากโปรแกรมสะสมคะแนน Merchant Center มีระดับขั้นที่กำหนดไว้ตามลำดับต่อไปนี้

  1. ชื่อระดับขั้น: "Silver Status", ป้ายกำกับระดับขั้น: "silver"
  2. ชื่อระดับขั้น: "Gold Member", ป้ายกำกับระดับขั้น: "gold"
  3. ชื่อระดับขั้น: "Platinum Elite", ป้ายกำกับระดับขั้น: "platinum"

จากนั้นในการเรียก API ของ accounts.loyaltyCustomers.manage ให้ทำดังนี้

  • หากต้องการกำหนดลูกค้าเป็น "สถานะ Silver" คุณต้องใช้ loyaltyTier: TIER1
  • หากต้องการกำหนดลูกค้าเป็น "สมาชิกระดับโกลด์" คุณต้องใช้ loyaltyTier: TIER2
  • หากต้องการกำหนดลูกค้าเป็น "Platinum Elite" คุณต้องใช้ loyaltyTier: TIER3

ค่า enum ของ LoyaltyTier

  • TIER1
  • TIER2
  • TIER3
  • TIER4
  • TIER5
  • TIER6
  • TIER7
  • NON_MEMBER (ใช้เพื่อส่งสัญญาณการนำการเชื่อมโยงการสะสมคะแนนของลูกค้าออก)

ทำความเข้าใจเนื้อหาการตอบกลับของ ManageLoyaltyCustomerMatch

เมธอด ManageLoyaltyCustomerMatch จะแสดงผลออบเจ็กต์ ManageLoyaltyCustomerMatchResponse ดังนี้

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

ข้อควรพิจารณาที่สำคัญสำหรับคำตอบ

  • การอัปเดตหรือแทรกสำเร็จ (จัดเก็บข้อมูลแล้ว): หากต้องการจัดเก็บหรืออัปเดตการเชื่อมโยงระดับขั้นความภักดีของลูกค้าให้สำเร็จ ให้ปฏิบัติตามเงื่อนไขต่อไปนี้

    • คุณจับคู่ผู้ใช้ Google กับ userIdentifier ที่ระบุ
    • คุณตั้งค่า loyaltyTier ในคำขอเป็นค่าที่ถูกต้องซึ่งไม่ใช่ NON_MEMBER
    • ผู้ใช้ที่ตรงกันได้ให้ความยินยอมในการใช้ข้อมูลความภักดี

การตอบกลับจะมีออบเจ็กต์ loyaltyCustomer จากคำขอของคุณ ซึ่งบ่งชี้ว่าบริการประมวลผลและจัดเก็บข้อมูลเรียบร้อยแล้ว

{
  "loyaltyCustomer": {
    "userIdentifier": {
     "emailAddress": "customer@example.com"
    },
    "loyaltyTier": "TIER2",
    "pointBalance": 1500
    }
}
  • การลบที่สำเร็จ: หากต้องการนำการเชื่อมโยงโปรแกรมสะสมคะแนนที่มีอยู่สำหรับลูกค้ากับผู้ขายรายนี้ออกให้สำเร็จ คุณต้องปฏิบัติตามเงื่อนไขต่อไปนี้
    • คุณจับคู่ผู้ใช้ Google กับ userIdentifier ที่ระบุ
    • คุณตั้งค่า loyaltyTier ในคำขอเป็น NON_MEMBER

การตอบกลับเป็นออบเจ็กต์ JSON ว่าง:

{}
  • ไม่ตรงกัน/ไม่ได้รับความยินยอม (สำเร็จแบบไม่มีการแจ้งเตือน): หาก userIdentifier ที่ระบุไม่ตรงกับบัญชี Google หรือหากผู้ใช้ที่ตรงกันไม่ได้ให้ความยินยอมในการใช้ข้อมูลการสะสมคะแนน API จะแสดงสถานะ HTTP 200 OK พร้อมออบเจ็กต์ JSON ที่ว่างเปล่า: {} ซึ่งจะเกิดขึ้นทั้งในกรณีที่พยายามอัปเดตและนำออก

ตัวอย่าง

TIER1 สอดคล้องกับระดับแรกที่กำหนด (เช่น 'Basic') และ TIER2 สอดคล้องกับระดับที่ 2 (เช่น 'Premium')

หากต้องการเพิ่มลูกค้าลงใน 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 Error String คำอธิบาย
400 INVALID_ARGUMENT ไม่มี user_identifier หรือ loyalty_tier หรือตัวระบุว่างเปล่า
401 UNAUTHENTICATED ข้อมูลเข้าสู่ระบบไม่ถูกต้องหรือไม่มีข้อมูลเข้าสู่ระบบ
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\""
          }
        ]
      }
    ]
  }
}

เหตุผล: TIER11 ไม่ใช่ค่า enum ที่ถูกต้องสำหรับ loyaltyTier ข้อผิดพลาดเดียวกันนี้อาจเกิดขึ้นเมื่อคุณพยายามระบุ 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 แต่โปรแกรมสะสมคะแนนที่ลิงก์กับบัญชีไม่ได้กำหนดระดับที่ 2 ไว้

ข้อผิดพลาดจะเกิดขึ้นหากคำขอมี 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 ทำงานตามคำขอ จึงจำเป็นต้องใช้การทำงานพร้อมกันฝั่งไคลเอ็นต์เพื่อให้ได้อัตราการส่งข้อมูลที่จำเป็นสำหรับชุดข้อมูลขนาดใหญ่ คุณควรออกแบบการผสานรวมเพื่อจัดการคำขอหลายรายการพร้อมกัน ดูคำแนะนำเกี่ยวกับวิธีจัดโครงสร้างการติดตั้งใช้งานเพื่อจัดการปริมาณที่มากขึ้นผ่านการโหลดพร้อมกันได้ที่คู่มือวิธีส่งคำขอหลายรายการ

  • การจัดการโควต้า: โควต้าเริ่มต้นคือ 1,000,000 คำขอ/วัน และ 10,000 คำขอ/นาที หากต้องการดูวิธีตรวจสอบและเช็กโควต้า โปรดดูหัวข้อโควต้าและขีดจำกัด

  • ให้ความสำคัญกับอีเมล: ระบุ emailAddress ของลูกค้าใน userIdentifier ทุกครั้งที่ทำได้ โดยทั่วไปแล้ว อีเมลเป็นตัวระบุที่ถูกต้องและเชื่อถือได้มากที่สุดสำหรับการจับคู่ผู้ใช้กับบัญชี Google

  • จัดการการตอบกลับที่ว่างเปล่า: ออกแบบแอปพลิเคชันให้ตีความการตอบกลับ {} ที่ว่างเปล่าว่าสำเร็จอย่างถูกต้อง โดยเข้าใจว่าหมายความว่าระบบไม่ได้จัดเก็บข้อมูลเนื่องจากเหตุผลด้านความเป็นส่วนตัว (ไม่มีการจับคู่หรือไม่ได้รับความยินยอม) อย่าลองส่งคำขออีกครั้ง

  • ยืนยันลำดับระดับ: ยืนยันลำดับระดับความภักดีใน UI ของ Merchant Center เสมอเพื่อให้แน่ใจว่าคุณใช้ค่า enum TIER1 ถึง TIER7 ที่ถูกต้องในการเรียก API การจับคู่นี้จะอิงตามลำดับที่กำหนดไว้ใน UI ไม่ใช่ชื่อ

  • ตรวจสอบข้อผิดพลาด: บันทึกและตรวจสอบการตอบกลับจาก API โดยให้ความสนใจกับข้อผิดพลาด 4xx เพื่อตรวจจับปัญหาการผสานรวม โดยเฉพาะข้อผิดพลาด 404 ซึ่งอาจบ่งชี้ถึงความเข้าใจที่ไม่ตรงกันเกี่ยวกับระดับ