Engage SDK Shopping: คำแนะนำการผสานรวมทางเทคนิคของบุคคลที่สาม

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

คู่มือนี้มีวิธีสำหรับพาร์ทเนอร์นักพัฒนาแอปในการผสานรวม คอนเทนต์ช็อปปิ้งโดยใช้ Engage SDK เพื่อป้อนข้อมูลทั้งพื้นที่ใหม่นี้ และแพลตฟอร์มที่มีอยู่ของ Google เช่น Entertainment Space

รายละเอียดการผสานรวม

คำศัพท์

การผสานรวมนี้ประกอบด้วยคลัสเตอร์ 5 ประเภทต่อไปนี้ คําแนะนํา, สินค้าแนะนำ รถเข็นช็อปปิ้ง รายการช็อปปิ้ง สั่งซื้ออีกครั้ง และ การติดตามคำสั่งซื้อ Shopping

  • คลัสเตอร์คำแนะนำแสดงคำแนะนำการเลือกซื้อที่ปรับเปลี่ยนในแบบของคุณจาก พาร์ทเนอร์นักพัฒนาซอฟต์แวร์แต่ละราย คำแนะนำเหล่านี้สามารถนำไปปรับเปลี่ยนให้สอดคล้องกับ ผู้ใช้ หรือแบบทั่วไป (เช่น รายการมาแรง) ใช้ตัวกรองเหล่านี้เพื่อแสดงเนื้อหา ผลิตภัณฑ์ กิจกรรม การลดราคา โปรโมชัน การสมัครใช้บริการ ตามความเหมาะสม

    คำแนะนำจะมีโครงสร้างต่อไปนี้

    • คลัสเตอร์คำแนะนำ: มุมมอง UI ที่มีกลุ่มของ คำแนะนำจากพาร์ทเนอร์นักพัฒนาซอฟต์แวร์รายเดียวกัน

    • ShoppingEntity: ออบเจ็กต์ที่แสดงถึงสินค้ารายการเดียวในคลัสเตอร์

  • คลัสเตอร์แนะนำจะแสดง Hero ShoppingEntity ที่เลือกจาก พาร์ทเนอร์นักพัฒนาซอฟต์แวร์ใน การจัดกลุ่ม UI เดียว มีแท็บแนะนำ 1 รายการ ซึ่งแสดงอยู่บริเวณด้านบนของ UI โดยมีลำดับความสำคัญ ตำแหน่งด้านบนคลัสเตอร์คำแนะนำทั้งหมด พาร์ทเนอร์นักพัฒนาแอปแต่ละราย ได้รับอนุญาตให้เผยแพร่ ShoppingEntity รายการเดียวในคลัสเตอร์ "แนะนำ"

  • คลัสเตอร์รถเข็นช็อปปิ้งจะแสดงตัวอย่างภาพรถเข็นช็อปปิ้งจาก พาร์ทเนอร์นักพัฒนาซอฟต์แวร์ในการจัดกลุ่ม UI เดียว โดยยุยงให้ผู้ใช้ดำเนินการ รถเข็นที่ยังไม่ได้ชำระ มีคลัสเตอร์รถเข็นช็อปปิ้งรายการเดียวซึ่งก็คือ ปรากฏใกล้กับด้านบนของ UI โดยมีลำดับความสำคัญเหนือตำแหน่งทั้งหมด คลัสเตอร์คำแนะนำ พาร์ทเนอร์นักพัฒนาซอฟต์แวร์แต่ละรายได้รับอนุญาตให้เผยแพร่ ShoppingCart รายการเดียวในคลัสเตอร์รถเข็นช็อปปิ้ง

    รถเข็นช็อปปิ้งของคุณมีโครงสร้างต่อไปนี้

    • คลัสเตอร์รถเข็นช็อปปิ้ง: มุมมอง UI ที่มีกลุ่มรถเข็นช็อปปิ้ง ตัวอย่างรถเข็นจากพาร์ทเนอร์นักพัฒนาแอปหลายราย

    • รถเข็นช็อปปิ้ง: ออบเจ็กต์ที่แสดงตัวอย่างรถเข็นช็อปปิ้ง สำหรับพาร์ทเนอร์นักพัฒนาซอฟต์แวร์รายเดียว แสดงในรถเข็นช็อปปิ้ง คลัสเตอร์ ShoppingCart ต้องแสดงจำนวนรายการทั้งหมดใน รถเข็นและอาจใส่รูปภาพสินค้าบางรายการในรถเข็นของผู้ใช้ด้วย

  • คลัสเตอร์รายการช็อปปิ้งแสดงตัวอย่างการช็อปปิ้ง จากพาร์ทเนอร์นักพัฒนาซอฟต์แวร์หลายรายในการจัดกลุ่ม UI เดียว ซึ่งกระตุ้นให้ผู้ใช้ดำเนินการ กลับไปยังแอปที่เกี่ยวข้องเพื่ออัปเดตและทำรายการให้เสร็จสมบูรณ์ มี คลัสเตอร์รายการช็อปปิ้งเดียว

  • คลัสเตอร์สั่งซื้อใหม่จะแสดงตัวอย่างคำสั่งซื้อก่อนหน้านี้จาก พาร์ทเนอร์นักพัฒนาซอฟต์แวร์หลายรายในการจัดกลุ่ม UI เดียว เพื่อกระตุ้นให้ผู้ใช้สั่งซื้อใหม่ มีคลัสเตอร์ "เรียงลำดับใหม่" เดียว

    • คลัสเตอร์ที่เรียงลำดับใหม่ต้องแสดงจำนวนรายการทั้งหมดใน คำสั่งซื้อก่อนหน้าของผู้ใช้ และต้องรวมรายการใดรายการหนึ่งต่อไปนี้ด้วย:

      • รูปภาพสำหรับสินค้า X ในคำสั่งซื้อก่อนหน้าของผู้ใช้
      • ป้ายกำกับสำหรับรายการ X ในคำสั่งซื้อก่อนหน้านี้ของผู้ใช้
  • คลัสเตอร์การติดตามคำสั่งซื้อของ Shopping แสดงตัวอย่างของคำว่ารอดำเนินการ หรือเพิ่งเสร็จสิ้นคำสั่งซื้อจาก พาร์ทเนอร์นักพัฒนาซอฟต์แวร์หลายรายได้ใน UI เดียว การจัดกลุ่ม เพื่อช่วยให้ผู้ใช้ติดตามคำสั่งซื้อของตนได้

    มีคลัสเตอร์ ShoppingOrderTracking เดี่ยวที่ปรากฏขึ้น ใกล้ด้านบนของ UI โดยมีตำแหน่งลำดับความสำคัญอยู่เหนือคำแนะนำทั้งหมด คลัสเตอร์ พาร์ทเนอร์นักพัฒนาซอฟต์แวร์แต่ละรายได้รับอนุญาตให้เผยแพร่ สินค้า ShoppingOrderTrackingEntity ในคลัสเตอร์การติดตามคำสั่งซื้อช็อปปิ้ง

    • ShoppingOrderTrackingCluster ของคุณมีโครงสร้างต่อไปนี้

      • คลัสเตอร์ ShoppingOrderTracking: มุมมอง UI ที่มีกลุ่มของ ตัวอย่างการติดตามคำสั่งซื้อจากพาร์ทเนอร์นักพัฒนาแอปหลายราย
      • ShoppingOrderTrackingEntity: ออบเจ็กต์ที่แสดงคำสั่งซื้อช็อปปิ้ง สำหรับการติดตามพาร์ทเนอร์นักพัฒนาซอฟต์แวร์ รายเดียวที่จะแสดงใน คลัสเตอร์การติดตามคำสั่งซื้อช็อปปิ้ง ShoppingOrderTrackingEntity ต้องแสดง สถานะของคำสั่งซื้อและเวลาสั่งซื้อ เราขอแนะนำ ป้อนเวลานำส่งที่คาดไว้สำหรับ ShoppingOrderTrackingEntity แสดงต่อผู้ใช้หากมี

งานก่อนเริ่มเวิร์กช็อป

ระดับ API ขั้นต่ำ: 19

เพิ่มไลบรารี com.google.android.engage:engage-core ลงในแอปโดยทำดังนี้

dependencies {
    // Make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.engage:engage-core:1.5.2'
}

ดูข้อมูลเพิ่มเติมได้ที่การแสดงแพ็กเกจใน Android 11

สรุป

การออกแบบนี้มาจากการใช้ ขอบเขต service [บริการ]

ข้อมูลที่ไคลเอ็นต์เผยแพร่ได้จะขึ้นอยู่กับขีดจำกัดต่อไปนี้สำหรับ ประเภทคลัสเตอร์

ประเภทคลัสเตอร์ ขีดจำกัดของคลัสเตอร์ ขีดจำกัดเอนทิตีสูงสุดในคลัสเตอร์
คลัสเตอร์คำแนะนำ สูงสุด 5 รายการ สูงสุด 25 ShoppingEntity
คลัสเตอร์แนะนำ มากที่สุด 1 สูงสุด 1 ShoppingEntity
คลัสเตอร์รถเข็นช็อปปิ้ง มากที่สุด 1 สูงสุด 1 ShoppingCart
คลัสเตอร์รายการช็อปปิ้ง มากที่สุด 1 สูงสุด 1 ShoppingListEntity
คลัสเตอร์ของ Shopping การจัดลําดับใหม่ มากที่สุด 1 สูงสุด 1 ReorderEntity
คลัสเตอร์การติดตามคำสั่งซื้อ สูงสุด 3 สูงสุด 3 ShoppingOrderTrackingEntity

ขั้นตอนที่ 1: ระบุข้อมูลเอนทิตี

SDK ได้กำหนดเอนทิตีที่แตกต่างกันเพื่อแสดงรายการแต่ละประเภท หมวดหมู่ Shopping รองรับเอนทิตีต่อไปนี้

  1. ShoppingEntity
  2. ShoppingCart
  3. ShoppingList
  4. Reorder
  5. ShoppingOrderTracking

แผนภูมิด้านล่างแสดงแอตทริบิวต์และข้อกำหนดสำหรับแต่ละประเภท

ShoppingEntity

ออบเจ็กต์ ShoppingEntity แสดงถึงผลิตภัณฑ์ โปรโมชัน ดีล การสมัครใช้บริการ หรือเหตุการณ์ที่พาร์ทเนอร์นักพัฒนาซอฟต์แวร์ต้องการเผยแพร่

ShoppingEntity
แอตทริบิวต์ ข้อกำหนด คำอธิบาย รูปแบบ
ภาพโปสเตอร์ ต้องระบุ ต้องระบุรูปภาพอย่างน้อย 1 รูป โปรดดูข้อกำหนดเกี่ยวกับรูปภาพสำหรับคำแนะนำ
การดำเนินการ Uri ต้องระบุ

Deep Link ไปยังหน้าในแอปที่แสดงรายละเอียดเกี่ยวกับ เอนทิตี

หมายเหตุ: คุณสามารถใช้ Deep Link สําหรับการระบุแหล่งที่มาได้ ดูคำถามที่พบบ่อยนี้

URI
ชื่อ ไม่บังคับ ชื่อของเอนทิตี

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 90 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

ราคา - ปัจจุบัน ต้องระบุแบบมีเงื่อนไข

ราคาปัจจุบันของเอนทิตี

ต้องระบุหากมีการระบุราคาที่มีขีดทับ

ข้อความอิสระ
ราคา - ขีดทับ ไม่บังคับ ราคาเดิมของนิติบุคคล ซึ่งมีการขีดฆ่าใน UI ข้อความอิสระ
ข้อความเสริม ไม่บังคับ ข้อความไฮไลต์เพื่อแสดงโปรโมชัน กิจกรรม หรือการอัปเดตสําหรับเอนทิตี หาก พร้อมใช้งาน

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 45 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

ข้อความอย่างละเอียดของข้อความไฮไลต์ ไม่บังคับ พิมพ์ข้อความอย่างละเอียดสำหรับข้อความไฮไลต์

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 45 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

การให้คะแนน (ไม่บังคับ) - หมายเหตุ: การให้คะแนนทั้งหมด โดยใช้ระบบการให้ดาวมาตรฐานของเรา
การให้คะแนน - ค่าสูงสุด ไม่บังคับ

ค่าสูงสุดของสเกลการให้คะแนน

ต้องระบุหากค่าปัจจุบันของคะแนนรวมอยู่ ไว้ให้

จำนวน >= 0.0
การจัดประเภท - ค่าปัจจุบัน ไม่บังคับ

ค่าปัจจุบันของสเกลการให้คะแนน

ต้องระบุหากมีค่าสูงสุดของคะแนนด้วย ไว้ให้

จำนวน >= 0.0
คะแนน - จำนวน ไม่บังคับ

จำนวนการให้คะแนนสำหรับเอนทิตี

หมายเหตุ: ระบุข้อมูลในช่องนี้หากแอปของคุณ ควบคุมวิธีการแสดงจำนวนที่แสดงต่อผู้ใช้ ใช้สตริงที่สั้นกระชับ ตัวอย่างเช่น หากจำนวนนับคือ 1,000,000 ให้พิจารณาใช้ตัวย่อ เช่น 1M เพื่อให้ระบบไม่ตัดตัวเลขที่แสดงในขนาดการแสดงผลขนาดเล็ก

สตริง
คะแนน - ค่าของจำนวน ไม่บังคับ

จำนวนการให้คะแนนสำหรับเอนทิตี

หมายเหตุ: โปรดป้อนช่องนี้หากคุณไม่ได้จัดการ ตรรกะตัวย่อการแสดงผล ด้วยตัวคุณเอง ถ้ามีทั้งค่า "นับ" และ "ค่าการนับ" แสดง จำนวนจะปรากฏต่อผู้ใช้

ยาว
DisplayTimeWindow (ไม่บังคับ) - ตั้งค่ากรอบเวลา เนื้อหาจะแสดงบนแพลตฟอร์ม
การประทับเวลาเริ่มต้น ไม่บังคับ

การประทับเวลา Epoch ที่เนื้อหาควรแสดงใน แพลตฟอร์ม

หากไม่ได้ตั้งค่า เนื้อหาจะมีสิทธิ์แสดงบนแพลตฟอร์ม

การประทับเวลา Epoch ในหน่วยมิลลิวินาที
การประทับเวลาสิ้นสุด ไม่บังคับ

การประทับเวลา Epoch ที่เนื้อหาไม่แสดงอีกต่อไป บนพื้นผิว

หากไม่ได้ตั้งค่า เนื้อหาจะมีสิทธิ์แสดงบนแพลตฟอร์ม

การประทับเวลา Epoch ในหน่วยมิลลิวินาที

ShoppingCart

แอตทริบิวต์ ข้อกำหนด คำอธิบาย รูปแบบ
การดำเนินการ Uri ต้องระบุ

ลิงก์ในรายละเอียดไปยังรถเข็นช็อปปิ้งในแอปของพาร์ทเนอร์

หมายเหตุ: คุณสามารถใช้ Deep Link สําหรับการระบุแหล่งที่มาได้ ดูคำถามที่พบบ่อยนี้

URI
จำนวนรายการ ต้องระบุ

จำนวนสินค้า (ไม่ใช่แค่จำนวนผลิตภัณฑ์) ในรถเข็นช็อปปิ้ง

เช่น หากมีเสื้อเชิ้ตที่เหมือนกัน 3 ตัวและหมวก 1 ใบในรถเข็น หมายเลขนี้ควรเป็น 4

จำนวนเต็ม >= 1
ข้อความดำเนินการ ไม่บังคับ

ข้อความกระตุ้นการตัดสินใจของปุ่มบนรถเข็นช็อปปิ้ง (เช่น ถุงช็อปปิ้งของคุณ)

หากนักพัฒนาแอปไม่ได้ระบุข้อความการดำเนินการ โดยดูรถเข็นเป็นค่าเริ่มต้น

แอตทริบิวต์นี้รองรับในเวอร์ชัน 1.1.0 เป็นต้นไป

สตริง
ชื่อ ไม่บังคับ

ชื่อรถเข็น (เช่น ถุงช็อปปิ้งของคุณ)

หากนักพัฒนาซอฟต์แวร์ไม่ได้ระบุรายการไว้ รถเข็นของคุณ เป็นค่าเริ่มต้น

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 25 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

รูปภาพรถเข็น ไม่บังคับ

รูปภาพของผลิตภัณฑ์แต่ละรายการในรถเข็น

ใส่รูปภาพได้สูงสุด 10 รูปตามลำดับความสำคัญ เวลา จำนวนรูปภาพที่แสดงจริงจะขึ้นอยู่กับรูปแบบของอุปกรณ์ ของ Google

โปรดดูข้อกำหนดเกี่ยวกับรูปภาพสำหรับคำแนะนำ
ป้ายกำกับรายการ ไม่บังคับ

รายการป้ายกำกับของสินค้าในรายการช็อปปิ้ง

จำนวนป้ายกำกับที่แสดงจริง จะขึ้นอยู่กับรูปแบบของอุปกรณ์

รายการป้ายกำกับข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

DisplayTimeWindow (ไม่บังคับ) - ตั้งค่ากรอบเวลา เนื้อหาจะแสดงบนแพลตฟอร์ม
การประทับเวลาเริ่มต้น ไม่บังคับ

การประทับเวลา Epoch ที่เนื้อหาควรแสดงใน แพลตฟอร์ม

หากไม่ได้ตั้งค่า เนื้อหาจะมีสิทธิ์แสดงบนแพลตฟอร์ม

การประทับเวลา Epoch ในหน่วยมิลลิวินาที
การประทับเวลาสิ้นสุด ไม่บังคับ

การประทับเวลา Epoch ที่เนื้อหาไม่แสดงอีกต่อไป บนพื้นผิว

หากไม่ได้ตั้งค่า เนื้อหาจะมีสิทธิ์แสดงบนแพลตฟอร์ม

การประทับเวลา Epoch ในหน่วยมิลลิวินาที

ShoppingList

แอตทริบิวต์ ข้อกำหนด คำอธิบาย รูปแบบ
การดำเนินการ Uri ต้องระบุ

ลิงก์ในรายละเอียดที่ไปยังรายการช็อปปิ้งในแอปของพาร์ทเนอร์

หมายเหตุ: คุณสามารถใช้ Deep Link สําหรับการระบุแหล่งที่มาได้ ดูคำถามที่พบบ่อยนี้

URI
จำนวนรายการ ต้องระบุ จำนวนสินค้าในรายการช็อปปิ้ง จำนวนเต็ม >= 1
ชื่อ ไม่บังคับ

ชื่อรายการ (เช่น รายการร้านขายของชำ)

หากนักพัฒนาแอปไม่ได้ระบุชื่อไว้ โดยรายการช็อปปิ้งเป็นค่าเริ่มต้น

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 25 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

ป้ายกำกับรายการ ต้องระบุ

รายการป้ายกำกับของสินค้าในรายการช็อปปิ้ง

คุณต้องระบุป้ายกำกับอย่างน้อย 1 ป้าย โดยจะให้ป้ายกำกับได้สูงสุด 10 ป้าย ที่ให้ไว้ตามลำดับความสำคัญ จำนวนป้ายกำกับที่แสดงจริง จะขึ้นอยู่กับรูปแบบของอุปกรณ์

รายการป้ายกำกับข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

ShoppingReorderCluster

แอตทริบิวต์ ข้อกำหนด คำอธิบาย รูปแบบ
การดำเนินการ Uri ต้องระบุ

Deep Link สำหรับสั่งซื้อใหม่ในแอปของพาร์ทเนอร์

หมายเหตุ: คุณสามารถใช้ Deep Link สําหรับการระบุแหล่งที่มาได้ ดูคำถามที่พบบ่อยนี้

URI
ข้อความดำเนินการ ไม่บังคับ

ข้อความกระตุ้นการตัดสินใจของปุ่มในหน้า "เรียงลำดับใหม่" (ตัวอย่างเช่น สั่งซื้ออีกครั้ง)

หากนักพัฒนาแอปไม่ได้ระบุข้อความการดำเนินการ ค่าเริ่มต้นคือจัดลำดับใหม่

แอตทริบิวต์นี้รองรับในเวอร์ชัน 1.1.0 เป็นต้นไป

สตริง
จำนวนรายการ ต้องระบุ

จำนวนรายการ (ไม่ใช่แค่จำนวนผลิตภัณฑ์) ก่อนหน้านี้ คำสั่งซื้อ

เช่น ถ้ามีกาแฟแก้วเล็ก 3 แก้ว และครัวซองต์ 1 แก้ว ลำดับก่อนหน้า หมายเลขนี้ควรเป็น 4

จำนวนเต็ม >= 1
ชื่อ ต้องระบุ ชื่อของสินค้าที่สั่งซื้อใหม่

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: ไม่เกิน 40 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

ป้ายกำกับรายการ

ไม่บังคับ

(ควรใส่ภาพโปสเตอร์ด้วยหากไม่ได้ระบุไว้)

รายการป้ายกำกับสินค้าสำหรับคำสั่งซื้อก่อนหน้า

ระบุป้ายกำกับได้สูงสุด 10 ป้ายตามลำดับความสำคัญ เวลา จำนวนป้ายกำกับที่แสดงจริงจะขึ้นอยู่กับรูปแบบของอุปกรณ์ ของ Google

รายการข้อความอิสระ

ขนาดข้อความที่แนะนำต่อป้ายกำกับ: น้อยกว่า 20 อักขระ (ข้อความที่ยาวเกินไปอาจแสดงจุดไข่ปลา)

ภาพโปสเตอร์

ไม่บังคับ

(ควรระบุป้ายกำกับสินค้าหากไม่ระบุไว้)

รูปภาพสินค้าในลำดับก่อนหน้า

ใส่รูปภาพได้สูงสุด 10 รูปตามลำดับความสำคัญ เวลา จำนวนรูปภาพที่แสดงจริงจะขึ้นอยู่กับรูปแบบของอุปกรณ์ ของ Google

โปรดดูข้อกำหนดเกี่ยวกับรูปภาพสำหรับคำแนะนำ

ShoppingOrderTrackingCluster

แอตทริบิวต์ ข้อกำหนด คำอธิบาย รูปแบบ
ชื่อ ต้องระบุ

ชื่อย่อของพัสดุ/สินค้าที่ติดตามหรือการติดตาม หมายเลข

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: 50 อักขระ (ข้อความยาวเกินไปจะ แสดงจุดไข่ปลา)

ประเภทใบสั่งซื้อ ต้องระบุ

ชื่อย่อของพัสดุ/สินค้าที่ติดตามหรือการติดตาม หมายเลข

Enum: IN_STORE_PICKUP, SAME_DAY_DELIVERY, MULTI_DAY_DELIVERY

สถานะ ต้องระบุ

สถานะปัจจุบันของคำสั่งซื้อ

เช่น "ล่าช้า" "อยู่ระหว่างการขนส่ง" "ล่าช้า" "จัดส่งแล้ว" "นำส่งแล้ว" "สินค้าหมด" "พร้อมสั่งซื้อ"

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: 25 อักขระ (ข้อความยาวเกินไปจะ แสดงจุดไข่ปลา)

เวลาที่สั่งซื้อ ต้องระบุ

การประทับเวลา Epoch ในหน่วยมิลลิวินาทีที่ใช้สั่งซื้อ

ระบบจะแสดงข้อมูลเวลาสั่งซื้อหากกรอบเวลาการนำส่งที่คาดไว้ ไม่มีอยู่

การประทับเวลา Epoch ในหน่วยมิลลิวินาที
การดำเนินการ Uri ต้องระบุ

ลิงก์ในรายละเอียดไปยังการติดตามคำสั่งซื้อในแอปของพาร์ทเนอร์

URI
Order DeliveryTimeWindow (ไม่บังคับ) - ตั้งเวลา สำหรับคำสั่งซื้อที่กำลังติดตามตั้งแต่วันที่สั่งซื้อ จนถึงเวลาที่จัดส่งที่คาดไว้/เกิดขึ้นจริง
Order DeliveryTimeWindow - เวลาเริ่มต้น ไม่บังคับ

การประทับเวลา Epoch ในหน่วยมิลลิวินาที ณ วันที่/หลังจากนั้น คําสั่งซื้อจะเป็น หรือพร้อมให้มารับแล้ว

การประทับเวลา Epoch ในหน่วยมิลลิวินาที
Order DeliveryTimeWindow - เวลาสิ้นสุด ไม่บังคับ

การประทับเวลา Epoch ในหน่วยมิลลิวินาที เมื่อเปิด/ก่อนหน้านั้น ลำดับ หรือพร้อมให้มารับแล้ว

การประทับเวลา Epoch ในหน่วยมิลลิวินาที
ภาพโปสเตอร์ ไม่บังคับ

รูปภาพสินค้า/ผลิตภัณฑ์ 1 รายการซึ่งเป็นส่วนหนึ่งของคำสั่งซื้อ

สัดส่วนภาพที่แนะนำคือ 1:1

โปรดดูข้อกำหนดเกี่ยวกับรูปภาพสำหรับคำแนะนำ
จำนวนรายการ ไม่บังคับ จำนวนสินค้าในคำสั่งซื้อ จำนวนเต็ม >= 1
คำอธิบาย ไม่บังคับ

ย่อหน้าข้อความ 1 ย่อหน้าเพื่ออธิบายสินค้าในคำสั่งซื้อ

หมายเหตุ: คำอธิบายหรือรายการคำบรรยายจะ แสดงต่อผู้ใช้ ไม่ใช่ทั้ง 2 อย่าง

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: 180 อักขระ

รายการคำบรรยาย ไม่บังคับ

คำบรรยายสูงสุด 3 รายการ โดยแต่ละคำบรรยายมีข้อความ 1 บรรทัด

หมายเหตุ: คำอธิบายหรือรายการคำบรรยายจะ แสดงต่อผู้ใช้ ไม่ใช่ทั้ง 2 อย่าง

ข้อความอิสระ

ขนาดข้อความที่แนะนำสำหรับคำบรรยายแต่ละรายการ: สูงสุด 50 อักขระ

มูลค่าการสั่งซื้อ - ราคาปัจจุบัน ไม่บังคับ มูลค่าปัจจุบันของคำสั่งซื้อ ข้อความอิสระ
หมายเลขคำสั่งซื้อ ไม่บังคับ หมายเลข/รหัสคำสั่งซื้อที่ใช้ระบุคำสั่งซื้อโดยไม่ซ้ำกันได้

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: สูงสุด 25 อักขระ

หมายเลขติดตามพัสดุ ไม่บังคับ หมายเลขติดตามสำหรับสินค้าที่สั่งซื้อ/พัสดุภัณฑ์ในกรณีที่มีการสั่งซื้อ ต้องมีการนำส่ง

ข้อความอิสระ

ขนาดข้อความที่แนะนำ: สูงสุด 25 อักขระ

ข้อกำหนดเกี่ยวกับรูปภาพ

ข้อกำหนดที่จำเป็นสำหรับชิ้นงานรูปภาพมีดังต่อไปนี้

สัดส่วนภาพ พิกเซลขั้นต่ำ พิกเซลแนะนํา

สี่เหลี่ยมจัตุรัส (1x1)

เหมาะสำหรับคลัสเตอร์ที่ไม่ใช่รายการแนะนำ

300x300 1200x1200

แนวนอน (1.91x1)

เหมาะสำหรับคลัสเตอร์แนะนำ

600x314 1200x628
แนวตั้ง (4x5) 480x600 960x1200

รูปแบบไฟล์

PNG, JPG, GIF แบบภาพนิ่ง, WebP

ขนาดไฟล์สูงสุด

5,120 KB

คำแนะนำเพิ่มเติม

  • พื้นที่ปลอดภัยของรูปภาพ: ใส่เนื้อหาสําคัญไว้ตรงกลาง 80% ของ รูปภาพ
  • ใช้พื้นหลังโปร่งใสเพื่อให้แสดงภาพได้อย่างถูกต้องใน การตั้งค่าธีมมืดและสว่าง

ขั้นตอนที่ 2: ระบุข้อมูลคลัสเตอร์

ขอแนะนำให้ดำเนินการเผยแพร่เนื้อหาในเบื้องหลัง (เช่น ใช้ WorkManager) เป็นประจำหรือตามเหตุการณ์ (เช่น ทุกครั้ง ผู้ใช้เปิดแอปหรือเมื่อผู้ใช้เพิ่งเพิ่มสินค้าลงในรถเข็น)

AppEngageShoppingClient ทำหน้าที่เผยแพร่คลัสเตอร์ Shopping

มีการเปิดเผย API ต่อไปนี้เพื่อเผยแพร่คลัสเตอร์ในไคลเอ็นต์

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishShoppingCart
  • publishShoppingList
  • publishShoppingReorderCluster
  • publishShoppingOrderTrackingCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteShoppingCartCluster
  • deleteShoppingListCluster
  • deleteShoppingReorderCluster
  • deleteShoppingOrderTrackingCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

API นี้ใช้เพื่อตรวจสอบว่าบริการพร้อมผสานรวมหรือไม่ และ สามารถนำเสนอเนื้อหาบนอุปกรณ์ได้ไหม

Kotlin


client.isServiceAvailable.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // Handle IPC call success
        if(task.result) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
}

Java


client.isServiceAvailable().addOnCompleteListener(task - > {
    if (task.isSuccessful()) {
        // Handle success
        if(task.getResult()) {
          // Service is available on the device, proceed with content
          // publish calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
});

publishRecommendationClusters

API นี้ใช้เพื่อเผยแพร่รายการออบเจ็กต์ RecommendationCluster รายการ

ออบเจ็กต์ RecommendationCluster อาจมีแอตทริบิวต์ต่อไปนี้

แอตทริบิวต์ ข้อกำหนด คำอธิบาย
รายการของ ShoppingEntity ต้องระบุ รายการออบเจ็กต์ ShoppingEntity ที่ประกอบขึ้นเป็นคำแนะนำสำหรับ คลัสเตอร์การแนะนำนี้
ชื่อ ต้องระบุ

ชื่อของคลัสเตอร์คำแนะนำ

ขนาดข้อความที่แนะนำ: ไม่เกิน 25 อักขระ (ข้อความที่ ยาวเกินไป อาจแสดงจุดไข่ปลา)

ชื่อรอง ไม่บังคับ คำบรรยายของคลัสเตอร์คำแนะนำ
การดำเนินการ Uri ไม่บังคับ

Deep Link ไปยังหน้าในแอปพาร์ทเนอร์ซึ่งผู้ใช้สามารถดู รายการคำแนะนำทั้งหมด

หมายเหตุ: คุณสามารถใช้ Deep Link สําหรับการระบุแหล่งที่มาได้ ดูคำถามที่พบบ่อยนี้

Kotlin


client.publishRecommendationClusters(
            PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Black Friday Deals")
                        .build())
                .build())

Java


client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Black Friday Deals")
                        .build())
                .build());

เมื่อบริการได้รับคำขอ การดำเนินการต่อไปนี้จะเกิดขึ้นภายใน ธุรกรรมรายการเดียว:

  • นำข้อมูลคลัสเตอร์คำแนะนำที่มีอยู่ทั้งหมดออกแล้ว
  • ระบบจะแยกวิเคราะห์และจัดเก็บข้อมูลจากคำขอไว้ในคลัสเตอร์คำแนะนำใหม่

ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธและสถานะที่มีอยู่คือ บำรุง

publishFeaturedCluster

API นี้ใช้เพื่อเผยแพร่ออบเจ็กต์ FeaturedCluster

Kotlin


client.publishFeaturedCluster(
            PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    FeaturedCluster.Builder()
                        ...
                        .build())
                .build())

Java


client.publishFeaturedCluster(
            new PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    new FeaturedCluster.Builder()
                        ...
                        .build())
                .build());

เมื่อบริการได้รับคำขอ การดำเนินการต่อไปนี้จะเกิดขึ้นภายใน ธุรกรรมรายการเดียว:

  • ระบบจะนำข้อมูล FeaturedCluster ที่มีอยู่จากพาร์ทเนอร์นักพัฒนาแอปออก
  • ระบบจะแยกวิเคราะห์และจัดเก็บข้อมูลจากคำขอไว้ในคลัสเตอร์เด่นที่มีการอัปเดต

ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธและสถานะที่มีอยู่คือ บำรุง

publishShoppingCart

API นี้ใช้เพื่อเผยแพร่ออบเจ็กต์ ShoppingCartCluster

Kotlin


client.publishShoppingCart(
            PublishShoppingCartRequest.Builder()
                .setShoppingCart(
                    ShoppingCart.Builder()
                        ...
                        .build())
                .build())

Java


client.publishShoppingCart(
            new PublishShoppingCartRequest.Builder()
                .setShoppingCart(
                    new ShoppingCart.Builder()
                        ...
                        .build())
                .build())

เมื่อบริการได้รับคำขอ การดำเนินการต่อไปนี้จะเกิดขึ้นภายใน ธุรกรรมรายการเดียว:

  • ระบบจะนำข้อมูล ShoppingCart ที่มีอยู่จากพาร์ทเนอร์นักพัฒนาแอปออก
  • ระบบจะแยกวิเคราะห์และจัดเก็บข้อมูลจากคำขอไว้ในรถเข็นช็อปปิ้งที่อัปเดตแล้ว คลัสเตอร์

ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธและสถานะที่มีอยู่คือ บำรุง

publishShoppingList

API นี้ใช้เพื่อเผยแพร่ออบเจ็กต์ FoodShoppingList

Kotlin


client.publishFoodShoppingList(
            PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build())

Java


client.publishFoodShoppingList(
            new PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    new FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build());

เมื่อบริการได้รับคำขอ การดำเนินการต่อไปนี้จะเกิดขึ้นภายใน ธุรกรรมรายการเดียว:

  • ระบบจะนำข้อมูล FoodShoppingList ที่มีอยู่จากพาร์ทเนอร์นักพัฒนาแอปออก
  • ระบบจะแยกวิเคราะห์ข้อมูลจากคำขอและจัดเก็บไว้ในรายการช็อปปิ้งที่อัปเดตแล้ว คลัสเตอร์

ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธและสถานะที่มีอยู่คือ บำรุง

publishShoppingReorderCluster

API นี้ใช้เพื่อเผยแพร่ออบเจ็กต์ ShoppingReorderCluster

Kotlin


client.publishShoppingReorderCluster(
            PublishShoppingReorderClusterRequest.Builder()
                .setReorderCluster(
                    ShoppingReorderCluster.Builder()
                        ...
                        .build())
                .build())

Java


client.publishShoppingReorderCluster(
            new PublishShoppingReorderClusterRequest.Builder()
                .setReorderCluster(
                    new ShoppingReorderCluster.Builder()
                        ...
                        .build())
                .build());

เมื่อบริการได้รับคำขอ การดำเนินการต่อไปนี้จะเกิดขึ้นภายใน ธุรกรรมรายการเดียว:

  • ระบบจะนำข้อมูล ShoppingReorderCluster ที่มีอยู่จากพาร์ทเนอร์นักพัฒนาแอปออก
  • ระบบจะแยกวิเคราะห์ข้อมูลจากคำขอและจัดเก็บไว้ในคลัสเตอร์จัดเรียงใหม่ที่อัปเดต

ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธและสถานะที่มีอยู่คือ บำรุง

publishShoppingOrderTrackingCluster

API นี้ใช้เพื่อเผยแพร่ออบเจ็กต์ ShoppingOrderTrackingCluster

Kotlin


client.publishShoppingOrderTrackingCluster(
            PublishShoppingOrderTrackingClusterRequest.Builder()
                .setShoppingOrderTrackingCluster(
                    ShoppingOrderTrackingCluster.Builder()
                        ...
                        .build())
                .build())

Java


client.publishShoppingOrderTrackingCluster(
            new PublishShoppingOrderTrackingClusterRequest.Builder()
                .setShoppingOrderTrackingCluster(
                    new ShoppingOrderTrackingCluster.Builder()
                        ...
                        .build())
                .build());

เมื่อบริการได้รับคำขอ การดำเนินการต่อไปนี้จะเกิดขึ้นภายใน ธุรกรรมรายการเดียว:

  • ข้อมูล ShoppingOrderTrackingCluster ที่มีอยู่จากพาร์ทเนอร์นักพัฒนาแอปคือ ลบแล้ว
  • ระบบจะแยกวิเคราะห์และจัดเก็บข้อมูลจากคำขอในคำสั่งซื้อ Shopping ที่อัปเดตแล้ว คลัสเตอร์การติดตาม

ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธและสถานะที่มีอยู่คือ บำรุง

publishUserAccountManagementRequest

API นี้ใช้เพื่อเผยแพร่การ์ดการลงชื่อเข้าใช้ การดำเนินการลงชื่อเข้าใช้จะนำผู้ใช้ไปยัง หน้าลงชื่อเข้าใช้ของแอปเพื่อให้แอปสามารถเผยแพร่เนื้อหา (หรือให้ เนื้อหาที่ปรับเปลี่ยนในแบบของคุณ)

ข้อมูลเมตาต่อไปนี้เป็นส่วนหนึ่งของการ์ดลงชื่อเข้าใช้ -

แอตทริบิวต์ ข้อกำหนด คำอธิบาย
การดำเนินการ Uri ต้องระบุ Deep Link ไปยังการดำเนินการ (เช่น ไปที่หน้าลงชื่อเข้าใช้แอป)
รูปภาพ ไม่บังคับ - หากไม่ได้ระบุ คุณต้องระบุชื่อ

รูปภาพที่แสดงในการ์ด

รูปภาพอัตราส่วน 16x9 ที่มีความละเอียด 1264x712

ชื่อ ไม่บังคับ - หากไม่ได้ให้ไว้ ต้องระบุรูปภาพ ชื่อบนการ์ด
ข้อความดำเนินการ ไม่บังคับ ข้อความที่แสดงใน CTA (เช่น ลงชื่อเข้าใช้)
ชื่อรอง ไม่บังคับ คำบรรยายเสริมบนการ์ด

Kotlin


var SIGN_IN_CARD_ENTITY =
      SignInCardEntity.Builder()
          .addPosterImage(
              Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build()

client.publishUserAccountManagementRequest(
            PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

Java


SignInCardEntity SIGN_IN_CARD_ENTITY =
      new SignInCardEntity.Builder()
          .addPosterImage(
              new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build();

client.publishUserAccountManagementRequest(
            new PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

เมื่อบริการได้รับคำขอ การดำเนินการต่อไปนี้จะเกิดขึ้นภายใน ธุรกรรมรายการเดียว:

  • ข้อมูล UserAccountManagementCluster ที่มีอยู่จากพาร์ทเนอร์นักพัฒนาแอปคือ ลบแล้ว
  • ข้อมูลจากคำขอจะได้รับการแยกวิเคราะห์และจัดเก็บไว้ใน คลัสเตอร์ UserAccountManagementCluster

ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธและสถานะที่มีอยู่คือ บำรุง

updatePublishStatus

หากไม่มีการเผยแพร่คลัสเตอร์ใดเลยด้วยเหตุผลทางธุรกิจภายใน เราขอแนะนำเป็นอย่างยิ่งให้อัปเดตสถานะการเผยแพร่โดยใช้ updatePublishStatus API ซึ่งเป็นสิ่งสำคัญเนื่องจาก :

  • การแจ้งสถานะในทุกสถานการณ์ แม้ว่าจะมีการเผยแพร่เนื้อหาแล้วก็ตาม (STATUS == PUBLISHED) เป็นส่วนสำคัญในการสร้างหน้าแดชบอร์ดที่ใช้ สถานะที่ชัดเจนเพื่อแสดงข้อมูลเกี่ยวกับสุขภาพและเมตริกอื่นๆ ของการผสานรวม
  • หากไม่ได้เผยแพร่เนื้อหาแต่สถานะการผสานรวมยังไม่เสียหาย (STATUS == NOT_PUBLISHED) Google สามารถหลีกเลี่ยงการทริกเกอร์การแจ้งเตือนในแอปได้ แดชบอร์ดประสิทธิภาพการทำงาน เป็นการยืนยันว่าเนื้อหาไม่ถูกเผยแพร่เนื่องจาก สถานการณ์ที่คาดหวังจากมุมมองของผู้ให้บริการ
  • ช่วยให้นักพัฒนาซอฟต์แวร์ให้ข้อมูลเชิงลึกเกี่ยวกับเวลาที่เผยแพร่ข้อมูล ไม่ได้
  • Google อาจใช้รหัสสถานะเพื่อกระตุ้นให้ผู้ใช้ดำเนินการบางอย่างใน ให้พวกเขาสามารถเห็นเนื้อหาของแอปหรือจะเอาชนะเนื้อหานั้นได้

รายการรหัสสถานะการเผยแพร่ที่มีสิทธิ์มีดังนี้

// Content is published
AppEngagePublishStatusCode.PUBLISHED,

// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,

// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,

// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,

// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,

// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,

// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,

// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,

// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER

หากเนื้อหาไม่ได้รับการเผยแพร่เนื่องจากผู้ใช้ไม่ได้เข้าสู่ระบบ Google ขอแนะนำให้เผยแพร่การ์ดลงชื่อเข้าใช้ หากผู้ให้บริการไม่สามารถเผยแพร่การ์ดลงชื่อเข้าใช้ได้ ไม่ว่าจะด้วยเหตุผลใดก็ตาม เราขอแนะนำให้เรียกใช้ updatePublishStatus API มีรหัสสถานะ NOT_PUBLISHED_REQUIRES_SIGN_IN

Kotlin


client.updatePublishStatus(
   PublishStatusRequest.Builder()
     .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
     .build())

Java


client.updatePublishStatus(
    new PublishStatusRequest.Builder()
        .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
        .build());

deleteRecommendationClusters

API นี้ใช้เพื่อลบเนื้อหาของคลัสเตอร์คำแนะนำ

Kotlin


client.deleteRecommendationClusters()

Java


client.deleteRecommendationClusters();

เมื่อบริการได้รับคำขอ จะนำข้อมูลที่มีอยู่ออกจาก คลัสเตอร์คำแนะนำ ในกรณีที่เกิดข้อผิดพลาด ระบบจะปฏิเสธคำขอทั้งหมด และสภาวะเดิมจะยังคงอยู่

deleteFeaturedCluster

API นี้ใช้เพื่อลบเนื้อหาของคลัสเตอร์ที่แนะนำ

Kotlin


client.deleteFeaturedCluster()

Java


client.deleteFeaturedCluster();

เมื่อบริการได้รับคำขอ จะนำข้อมูลที่มีอยู่ออกจาก คลัสเตอร์แนะนำ ในกรณีที่เกิดข้อผิดพลาด ระบบจะปฏิเสธคำขอทั้งหมด และสภาวะเดิมจะยังคงอยู่

deleteShoppingCartCluster

API นี้ใช้เพื่อลบเนื้อหาของคลัสเตอร์รถเข็นช็อปปิ้ง

Kotlin


client.deleteShoppingCartCluster()

Java


client.deleteShoppingCartCluster();

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

deleteShoppingListCluster

ระบบใช้ API นี้เพื่อลบเนื้อหาของคลัสเตอร์รายการช็อปปิ้ง

Kotlin


client.deleteShoppingListCluster()

Java


client.deleteShoppingListCluster();

เมื่อบริการได้รับคำขอ จะนำข้อมูลที่มีอยู่ออกจาก คลัสเตอร์รายการช็อปปิ้ง ในกรณีที่เกิดข้อผิดพลาด ระบบจะปฏิเสธคำขอทั้งหมด และสภาวะเดิมจะยังคงอยู่

deleteShoppingReorderCluster

API นี้ใช้เพื่อลบเนื้อหาของคลัสเตอร์ Shopping ชี้แจงใหม่

Kotlin


client.deleteShoppingReorderCluster()

Java


client.deleteShoppingReorderCluster();

เมื่อบริการได้รับคำขอ จะนำข้อมูลที่มีอยู่ออกจาก คลัสเตอร์ Shopping ใหม่ ในกรณีที่เกิดข้อผิดพลาด ระบบจะปฏิเสธคำขอทั้งหมด และสภาวะเดิมจะยังคงอยู่

deleteShoppingOrderTrackingCluster

API นี้ใช้เพื่อลบเนื้อหาของคลัสเตอร์การติดตามคำสั่งซื้อช็อปปิ้ง

Kotlin


client.deleteShoppingOrderTrackingCluster()

Java


client.deleteShoppingOrderTrackingCluster();

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

deleteUserManagementCluster

API นี้ใช้เพื่อลบเนื้อหาของคลัสเตอร์ UserAccountManagement

Kotlin


client.deleteUserManagementCluster()

Java


client.deleteUserManagementCluster();

เมื่อบริการได้รับคำขอ จะนำข้อมูลที่มีอยู่ออกจาก คลัสเตอร์ UserAccountManagement ในกรณีที่มีข้อผิดพลาด คำขอทั้งหมดจะ ถูกปฏิเสธและคงสถานะเดิมไว้

deleteClusters

API นี้ใช้เพื่อลบเนื้อหาของประเภทคลัสเตอร์ที่ระบุ

Kotlin


client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      ...
      .build())

Java


client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                ...
                .build());

เมื่อบริการได้รับคำขอ ระบบจะนำข้อมูลที่มีอยู่ออกจาก คลัสเตอร์ที่ตรงกับประเภทคลัสเตอร์ที่ระบุ ลูกค้าเลือกได้ว่าจะให้ผ่าน หลายๆ ประเภท ในกรณีที่เกิดข้อผิดพลาด คำขอทั้งหมดจะถูกปฏิเสธ สถานะเดิมจะยังคงอยู่

การจัดการข้อผิดพลาด

ขอแนะนำให้ฟังผลลัพธ์งานจาก API การเผยแพร่ เช่น การดำเนินการติดตามผลสามารถทำได้เพื่อกู้คืนและส่งงานที่สำเร็จอีกครั้ง

Kotlin


client.publishRecommendationClusters(
        PublishRecommendationClustersRequest.Builder()
          .addRecommendationCluster(..)
          .build())
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          // do something
        } else {
          val exception = task.exception
          if (exception is AppEngageException) {
            @AppEngageErrorCode val errorCode = exception.errorCode
            if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
              // do something
            }
          }
        }
      }

Java


client.publishRecommendationClusters(
              new PublishRecommendationClustersRequest.Builder()
                  .addRecommendationCluster(...)
                  .build())
          .addOnCompleteListener(
              task -> {
                if (task.isSuccessful()) {
                  // do something
                } else {
                  Exception exception = task.getException();
                  if (exception instanceof AppEngageException) {
                    @AppEngageErrorCode
                    int errorCode = ((AppEngageException) exception).getErrorCode();
                    if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
                      // do something
                    }
                  }
                }
              });

ข้อผิดพลาดจะแสดงผลเป็น AppEngageException พร้อมระบุสาเหตุเป็น รหัสข้อผิดพลาด

รหัสข้อผิดพลาด โน้ต
SERVICE_NOT_FOUND บริการไม่พร้อมใช้งานในอุปกรณ์ที่ระบุ
SERVICE_NOT_AVAILABLE บริการพร้อมใช้งานในอุปกรณ์ที่ระบุ แต่ไม่พร้อมใช้งาน ณ เวลาที่โทร (เช่น ปิดใช้งานอย่างชัดแจ้ง)
SERVICE_CALL_EXECUTION_FAILURE การดําเนินงานล้มเหลวเนื่องจากปัญหาเกี่ยวกับการแยกชุดข้อความ ในกรณีนี้ ลองอีกครั้งได้
SERVICE_CALL_PERMISSION_DENIED ผู้โทรไม่ได้รับอนุญาตให้เรียกใช้บริการ
SERVICE_CALL_INVALID_ARGUMENT คำขอนี้มีข้อมูลที่ไม่ถูกต้อง (ตัวอย่างเช่น มากกว่าที่อนุญาต จำนวนคลัสเตอร์)
SERVICE_CALL_INTERNAL เกิดข้อผิดพลาดที่ฝั่งบริการ
SERVICE_CALL_RESOURCE_EXHAUSTED มีการเรียกใช้บริการบ่อยเกินไป

ขั้นตอนที่ 3: จัดการการออกอากาศ Intent

นอกจากการเผยแพร่การเรียก Content API ผ่านงานแล้ว ที่จำเป็นต่อการตั้งค่า BroadcastReceiver เพื่อรับ คำขอสำหรับการเผยแพร่เนื้อหา

เป้าหมายของการออกอากาศเพื่อการเผยแพร่นั้นหลักๆ แล้วคือการเปิดใช้แอปอีกครั้งและการบังคับให้ใช้ข้อมูล การซิงค์ ความตั้งใจในการออกอากาศไม่ได้ออกแบบมาให้ส่งบ่อยครั้ง แต่เป็นเพียง ทริกเกอร์เมื่อบริการ Engage ระบุว่าเนื้อหาอาจไม่มีอัปเดต (สำหรับ เช่น 1 สัปดาห์) วิธีนี้จะเพิ่มความมั่นใจให้ผู้ใช้ ประสบการณ์การใช้งานเนื้อหาแบบใหม่ แม้ว่าแอปพลิเคชันจะไม่มีการเรียกใช้เพื่อ เป็นเวลานาน

ต้องตั้งค่า BroadcastReceiver ด้วย 2 วิธีต่อไปนี้

  • ลงทะเบียนอินสแตนซ์ของคลาส BroadcastReceiver แบบไดนามิกโดยใช้ Context.registerReceiver() การดำเนินการนี้จะทำให้แอปพลิเคชันสามารถสื่อสารกันได้ ที่ยังหลงเหลืออยู่ในความทรงจำ

Kotlin

class AppEngageBroadcastReceiver : BroadcastReceiver(){
  // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION
  // broadcast is received
  // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is
  // received
  // Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast
  // is received
  // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast
  // is received
  // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is
  // received
  // Trigger shopping order tracking cluster publish when
  // PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER broadcast is received
}

fun registerBroadcastReceivers(context: Context){
  var  context = context
  context = context.applicationContext

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION))

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED))

// Register Shopping Cart Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_CART))

// Register Shopping List Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_LIST))

// Register Reorder Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_REORDER_CLUSTER))

// Register Shopping Order Tracking Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER))
}

Java

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received

// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received

// Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast is
// received

// Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast is
// received

// Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is
// received

// Trigger reorder cluster publish when PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER
// broadcast is received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));

// Register Shopping Cart Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_CART));

// Register Shopping List Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_LIST));

// Register Reorder Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER));

// Register Shopping Order Tracking Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER));

}
  • ประกาศการติดตั้งใช้งานที่มีแท็ก <receiver> แบบคงที่ในบัญชี AndroidManifest.xml วิธีนี้ช่วยให้แอปพลิเคชันสามารถรับการออกอากาศ เมื่อไม่ได้ทำงานอยู่ และอนุญาตให้แอปพลิเคชันสามารถเผยแพร่ เนื้อหานั้น
<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:exported="true"
      android:enabled="true">
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER" />
      </intent-filter>
   </receiver>
</application>

ความตั้งใจต่อไปนี้จะส่งโดย บริการ:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION ขอแนะนำให้เริ่มการโทร publishRecommendationClusters เมื่อกรณีนี้ ได้รับ Intent แล้ว
  • com.google.android.engage.action.PUBLISH_FEATURED ขอแนะนำให้เริ่มการโทร publishFeaturedCluster เมื่อ Intent นี้ ได้รับ
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART ขอแนะนำให้เริ่มการโทร publishShoppingCart เมื่อ Intent นี้ ได้รับ
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST ขอแนะนำให้เริ่มการโทร publishShoppingList เมื่อ Intent นี้ ได้รับ
  • com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER ขอแนะนำให้เริ่มการโทร publishReorderCluster เมื่อ Intent นี้ ได้รับ
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER ขอแนะนำให้เริ่มการโทร publishShoppingOrderTrackingCluster เมื่อ ความตั้งใจนี้ยังคงได้รับ

เวิร์กโฟลว์การผสานรวม

ดูคำแนะนำทีละขั้นตอนเกี่ยวกับการยืนยันการผสานรวมหลังจากที่เสร็จสมบูรณ์ได้ที่ มีส่วนร่วมกับเวิร์กโฟลว์การผสานรวมของนักพัฒนาซอฟต์แวร์

คำถามที่พบบ่อย

ดูคำถามที่พบบ่อยเกี่ยวกับ Engage SDK สำหรับ คำถามที่พบบ่อย

รายชื่อติดต่อ

ข้อมูลติดต่อ Engage-developers@google.com หากมี คำถามใดๆ ระหว่างขั้นตอนการผสานรวม ทีมของเราจะตอบกลับโดยเร็วที่สุด เท่าที่จะเป็นไปได้

ขั้นตอนถัดไป

หลังจากผสานรวมเสร็จแล้ว ขั้นตอนถัดไปของคุณมีดังนี้

  • ส่งอีเมลถึง Engage-developers@google.com และแนบ APK ที่ผสานรวมซึ่งพร้อมสำหรับการทดสอบโดย Google
  • Google จะดำเนินการยืนยันและตรวจสอบเป็นการภายใน ทำงานตามที่คาดไว้ หากจำเป็น Google จะติดต่อคุณ พร้อมรายละเอียดที่จำเป็น
  • เมื่อการทดสอบเสร็จสิ้นและไม่จำเป็นต้องทำการเปลี่ยนแปลงใดๆ Google จะติดต่อหาคุณ คุณสามารถเริ่มเผยแพร่ APK ที่อัปเดตและผสานรวมไปยัง Play Store
  • หลังจากที่ Google ยืนยันว่า APK ที่อัปเดตแล้วของคุณได้รับการเผยแพร่ไปยัง Play Store, คำแนะนำ, แนะนำ, รถเข็นช็อปปิ้ง รายการช็อปปิ้ง เรียงลำดับคลัสเตอร์ใหม่ และคลัสเตอร์การติดตามคำสั่งซื้อ Shopping อาจมีการเผยแพร่คลัสเตอร์และผู้ใช้มองเห็นได้