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

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

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

คำศัพท์

การผสานรวมนี้มีคลัสเตอร์ 3 ประเภท ได้แก่ คำแนะนำ แนะนำ และความต่อเนื่อง

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

    • คลัสเตอร์คําแนะนําอาจประกอบด้วย ArticleEntity, PersonEntity หรือ EventEntity แต่ต้องไม่ผสมเอนทิตีประเภทต่างๆ

    คำแนะนำของคุณควรมีโครงสร้างดังต่อไปนี้

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

    • เอนทิตี: ออบเจ็กต์ที่แสดงรายการเดียวในคลัสเตอร์ การผสานรวมนี้แสดงเอนทิตีบางอย่างที่จะแสดงโดยใช้กลุ่มคําแนะนํา ดังนี้

      • ArticleEntity: ArticleEntity แสดงคําแนะนําสําหรับเนื้อหาที่เป็นข้อความที่เกี่ยวข้องกับสุขภาพและการออกกำลังกาย สามารถใช้กับบทความ บล็อกโพสต์ เนื้อหาการตลาด ตัวอย่างข่าว ฯลฯ

        รูปที่ 1: UI ที่แสดง ArticleEntity รายการเดียวภายในคลัสเตอร์คําแนะนํา
      • PersonEntity: PersonEntity แสดงถึงบุคคล คำแนะนำนี้อาจเป็นการไฮไลต์โค้ชหรือบุคคลที่เกี่ยวข้องกับสุขภาพและการออกกำลังกาย เป็นต้น

        รูปที่ 2: UI ที่แสดง PersonEntity รายการเดียวภายในกลุ่มคําแนะนํา
      • EventEntity: EventEntity แสดงถึงเหตุการณ์ที่เกิดขึ้นในอนาคต เวลาเริ่มต้นของกิจกรรมเป็นข้อมูลสำคัญที่จำเป็นต้องสื่อให้ผู้ใช้ เอนทิตีนี้สามารถใช้ในการนำเสนอกิจกรรมต่างๆ เช่น ค่ายบริจาคเลือด เซสชันการฝึก ชั้นเรียนยิมหรือโยคะ ฯลฯ ที่เกี่ยวข้องกับสุขภาพและการออกกำลังกาย

        รูปที่ 3: UI แสดง EventEntity รายการเดียวภายในคลัสเตอร์คำแนะนำ
  • คลัสเตอร์ความต่อเนื่องจะแสดงเนื้อหาที่ผู้ใช้เพิ่งมีส่วนร่วมเมื่อเร็วๆ นี้จากพาร์ทเนอร์นักพัฒนาซอฟต์แวร์หลายรายในการจัดกลุ่ม UI เดียว พาร์ทเนอร์นักพัฒนาแอปแต่ละรายจะออกอากาศได้สูงสุด 10 รายการในกลุ่มการออกอากาศต่อเนื่อง

    เนื้อหาต่อสามารถมีโครงสร้างดังต่อไปนี้

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

      ภาพที่ 6 UI ที่แสดง ArticleEntity รายการเดียวภายในคลัสเตอร์การต่อเรื่อง
    • EventReservationEntity: EventReservationEntity แสดงถึงการจองกิจกรรมและช่วยให้ผู้ใช้ติดตามการจองกิจกรรมออกกำลังกายและสุขภาพที่กําลังจะเกิดขึ้นหรืออยู่ระหว่างดำเนินการ เช่น เซสชันการฝึกอบรม

      รูปที่ 8 UI ที่แสดง EventReservationEntity รายการเดียวภายในคลัสเตอร์การดําเนินการต่อ
  • คลัสเตอร์แนะนำจะแสดงเอนทิตีบางส่วนจากพาร์ทเนอร์นักพัฒนาซอฟต์แวร์หลายรายในการจัดกลุ่ม UI เดียว โดยจะมีคลัสเตอร์แนะนำกลุ่มเดียวที่แสดงอยู่ใกล้กับด้านบนของ UI ด้วยตำแหน่งที่มีลำดับความสำคัญเหนือคลัสเตอร์คำแนะนำทั้งหมด พาร์ทเนอร์นักพัฒนาแอปแต่ละรายจะออกอากาศได้สูงสุด 10 รายการในคลัสเตอร์แนะนํา

    • GenericFeaturedEntity: GenericFeaturedEntity แตกต่างจากรายการคำแนะนำตรงที่ควรใช้รายการแนะนำสำหรับเนื้อหายอดนิยมรายการเดียวจากนักพัฒนาแอป และควรแสดงเนื้อหาที่สำคัญที่สุดรายการเดียวที่จะน่าสนใจและเกี่ยวข้องกับผู้ใช้

      รูปที่ 12: UI แสดงการ์ด genericFeaturedEntity หลักรายการเดียวภายในคลัสเตอร์เด่น

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

ระดับ 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'
}

สรุป

การออกแบบนี้อิงตามการใช้งานบริการที่เชื่อมโยง

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

ประเภทคลัสเตอร์ ขีดจํากัดของคลัสเตอร์ ขีดจำกัดเอนทิตีขั้นต่ำในคลัสเตอร์ ขีดจำกัดเอนทิตีสูงสุดในคลัสเตอร์
คลัสเตอร์คำแนะนำ สูงสุด 5 รายการ อย่างน้อย 5 สูงสุด 25 (ArticleEntity, PersonEntity หรือ EventEntity)
คลัสเตอร์การต่อเรื่อง ไม่เกิน 1 อย่างน้อย 1 สูงสุด 10 (ArticleEntity หรือ EventReservationEntity)
คลัสเตอร์แนะนำ ไม่เกิน 1 อย่างน้อย 1 รายการ ไม่เกิน 10 (GenericFeaturedEntity)

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

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

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. PersonEntity
  4. EventEntity
  5. EventReservationEntity

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

GenericFeaturedEntity

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

Deep Link ไปยังเอนทิตีในแอปของผู้ให้บริการ

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

URI
ภาพโปสเตอร์ ต้องระบุ

เราจะแสดงรูปภาพเพียง 1 รูปเมื่อมีการระบุรูปภาพหลายรูป สัดส่วนภาพที่แนะนำคือ 16:9

หมายเหตุ: หากมีป้าย โปรดเว้นพื้นที่ปลอดภัย 24 dp ทั้งด้านบนและด้านล่างของรูปภาพ

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

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

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

คำอธิบาย ไม่บังคับ

ย่อหน้าข้อความ 1 ย่อหน้าเพื่ออธิบายเอนทิตี

หมายเหตุ: ระบบจะแสดงรายการคำบรรยายแทนเสียงหรือคำบรรยายแทนเสียงเท่านั้น

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

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

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

คำบรรยายได้สูงสุด 3 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

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

ป้าย ไม่บังคับ

ป้ายแต่ละป้ายจะเป็นข้อความอิสระ (ไม่เกิน 15 อักขระ) หรือรูปภาพขนาดเล็ก

การจัดการ UX แบบพิเศษทับรูปภาพ/วิดีโอ เช่น แสดงป้ายวางซ้อนบนรูปภาพ

  • "การอัปเดตแบบเรียลไทม์"
  • ระยะเวลาในการอ่านบทความ
ป้าย - ข้อความ ไม่บังคับ

ชื่อป้าย

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

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

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

ป้าย - ภาพ ไม่บังคับ

รูปภาพขนาดเล็ก

การจัดการ UX แบบพิเศษ เช่น การซ้อนทับป้ายบนภาพขนาดย่อของรูปภาพ/วิดีโอ

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

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

รายการ Enum

ดูคำแนะนำได้ที่ส่วนหมวดหมู่เนื้อหา

ArticleEntity

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

Deep Link ไปยังเอนทิตีในแอปของผู้ให้บริการ

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

URI
ชื่อ ต้องระบุ ชื่อของเอนทิตี

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

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

ภาพโปสเตอร์ ไม่บังคับ

เราจะแสดงรูปภาพเพียง 1 รูปเมื่อมีการระบุรูปภาพหลายรูป สัดส่วนภาพที่แนะนำคือ 16:9

หมายเหตุ: ขอแนะนําให้ใช้รูปภาพ หากมีป้าย โปรดเว้นพื้นที่ปลอดภัย 24 dp ทั้งด้านบนและด้านล่างของรูปภาพ

ดูคำแนะนำได้ที่ข้อกำหนดเกี่ยวกับรูปภาพ
แหล่งที่มา - ชื่อ ไม่บังคับ ชื่อผู้เขียน องค์กร หรือผู้รายงาน

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 25 อักขระ

แหล่งที่มา - รูปภาพ ไม่บังคับ รูปภาพของแหล่งที่มา เช่น ผู้เขียน องค์กร ผู้รายงาน ดูคำแนะนำได้ที่ข้อกำหนดเกี่ยวกับรูปภาพ
คำอธิบาย ไม่บังคับ

ย่อหน้าข้อความ 1 ย่อหน้าเพื่ออธิบายเอนทิตี

หมายเหตุ: ระบบจะแสดงรายการคำบรรยายแทนเสียงหรือคำบรรยายแทนเสียงเท่านั้น

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

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

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

คำบรรยายได้สูงสุด 3 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

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

ป้าย ไม่บังคับ

ป้ายแต่ละป้ายจะเป็นข้อความอิสระ (ไม่เกิน 15 อักขระ) หรือรูปภาพขนาดเล็ก

การจัดการ UX แบบพิเศษทับรูปภาพ/วิดีโอ เช่น แสดงป้ายวางซ้อนบนรูปภาพ

  • "การอัปเดตแบบเรียลไทม์"
  • ระยะเวลาในการอ่านบทความ
ป้าย - ข้อความ ไม่บังคับ

ชื่อป้าย

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

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

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

ป้าย - ภาพ ไม่บังคับ

รูปภาพขนาดเล็ก

การจัดการ UX แบบพิเศษ เช่น การซ้อนทับป้ายบนภาพขนาดย่อของรูปภาพ/วิดีโอ

หมายเหตุ: ป้ายต้องมีข้อความหรือรูปภาพ

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

การประทับเวลา Epoch ในหน่วยมิลลิวินาทีเมื่อผู้ใช้โต้ตอบกับเอนทิตีนี้ครั้งล่าสุด

หมายเหตุ: ต้องกรอกช่องนี้หากเอนทิตีนี้เป็นส่วนหนึ่งของคลัสเตอร์การต่อ

การประทับเวลา Epoch เป็นมิลลิวินาที
เปอร์เซ็นต์ความคืบหน้า ต้องระบุ (แบบมีเงื่อนไข)

เปอร์เซ็นต์ของเนื้อหาทั้งหมดที่ผู้ใช้บริโภคจนถึงปัจจุบัน

หมายเหตุ: ต้องกรอกช่องนี้หากเอนทิตีนี้เป็นส่วนหนึ่งของคลัสเตอร์การต่อ

ค่า int ระหว่าง 0 ถึง 100
หมวดหมู่เนื้อหา ไม่บังคับ อธิบายหมวดหมู่ของเนื้อหาในเอนทิตี

รายการ Enum

ดูคำแนะนำได้ที่ส่วนหมวดหมู่เนื้อหา

PersonEntity

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

Deep Link ไปยังเอนทิตีในแอปของผู้ให้บริการ

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

URI
โปรไฟล์ - ชื่อ ต้องระบุ ชื่อหรือรหัสหรือแฮนเดิลของโปรไฟล์ เช่น "John Doe", "@TeamPixel" ฯลฯ

สตริง

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

โปรไฟล์ - รูปโปรไฟล์ ต้องระบุ

รูปโปรไฟล์หรือรูปโปรไฟล์ของผู้ใช้

หมายเหตุ: ต้องเป็นรูปภาพสี่เหลี่ยมจัตุรัสขนาด 1:1

โปรดดูข้อกำหนดเกี่ยวกับรูปภาพสำหรับคำแนะนำ
โปรไฟล์ - ข้อความเพิ่มเติม ไม่บังคับ ข้อความอิสระ เช่น แฮนเดิลโปรไฟล์

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

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

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

เราจะแสดงรูปภาพเพียง 1 รูปเมื่อมีการระบุรูปภาพหลายรูป สัดส่วนภาพที่แนะนำคือ 16:9

หมายเหตุ: ขอแนะนําให้ใช้รูปภาพ หากมีป้าย โปรดเว้นพื้นที่ปลอดภัยให้ห่างจากจุด 24 d ทั้งด้านบนและด้านล่างของรูปภาพ

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

ระบุจำนวนผู้ติดตามหรือค่าความนิยม เช่น - "3.7 ล้านคน"

หมายเหตุ: หากระบุทั้งจํานวน (Count) และค่าจํานวน (Count Value) ระบบจะใช้จํานวน

สตริง

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

ความนิยม - ค่าการนับ ไม่บังคับ

จำนวนผู้ติดตามหรือค่าความนิยม

หมายเหตุ: ระบุค่าการนับหากแอปไม่ต้องการจัดการตรรกะเกี่ยวกับวิธีเพิ่มประสิทธิภาพตัวเลขจำนวนมากสำหรับขนาดการแสดงผลที่แตกต่างกัน หากระบุทั้ง Count และ Count Value ระบบจะใช้ Count

ยาว
ความนิยม - ป้ายกำกับ ไม่บังคับ ระบุป้ายกำกับความนิยม เช่น "ชอบ"

สตริง

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

ความนิยม - ภาพ ไม่บังคับ

ระบุวัตถุประสงค์ของการโต้ตอบ เช่น รูปภาพแสดงไอคอนชอบ อีโมจิ

ระบุรูปภาพได้มากกว่า 1 รูป แต่รูปภาพบางรูปอาจไม่แสดงในอุปกรณ์บางรูปแบบ

หมายเหตุ: ต้องเป็นรูปภาพสี่เหลี่ยมจัตุรัส 1:1

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

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

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

ตัวเลข >= 0.0
การจัดประเภท - ค่าปัจจุบัน ต้องระบุ

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

ต้องระบุหากระบุค่าสูงสุดของการจัดประเภทด้วย

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

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

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

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

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

หมายเหตุ: โปรดระบุช่องนี้หากคุณไม่ได้จัดการตรรกะตัวย่อของการแสดงผลด้วยตนเอง หากมีทั้งจํานวน (Count) และค่าจํานวน (Count Value) ระบบจะแสดงจํานวนต่อผู้ใช้

ยาว
สถานที่ - ประเทศ ไม่บังคับ ประเทศที่บุคคลนั้นอยู่หรือให้บริการ

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - เมือง ไม่บังคับ เมืองที่บุคคลนั้นอาศัยอยู่หรือให้บริการ

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ - ที่อยู่ที่แสดง ไม่บังคับ ที่อยู่ที่บุคคลนั้นตั้งอยู่หรือให้บริการจะแสดงแก่ผู้ใช้

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - ที่อยู่ ไม่บังคับ ที่อยู่ (หากมี) ของบุคคลที่อาศัยอยู่หรือให้บริการ

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - รัฐ ไม่บังคับ รัฐ (หากมี) ที่บุคคลนั้นอาศัยอยู่หรือให้บริการ

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

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

สถานที่ตั้ง - รหัสไปรษณีย์ ไม่บังคับ รหัสไปรษณีย์ (หากมี) ที่บุคคลนั้นอยู่หรือให้บริการ

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - ย่าน ไม่บังคับ ย่านใกล้เคียง (หากมี) ที่บุคคลอาศัยอยู่หรือให้บริการ

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

ป้าย ไม่บังคับ

แต่ละป้ายจะเป็นข้อความอิสระ (สูงสุด 15 อักขระ) หรือรูปภาพขนาดเล็ก

ป้าย - ข้อความ ไม่บังคับ

ชื่อป้าย

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

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

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

ป้าย - ภาพ ไม่บังคับ

รูปภาพขนาดเล็ก

การจัดการ UX แบบพิเศษ เช่น การซ้อนทับป้ายบนภาพขนาดย่อของรูปภาพ/วิดีโอ

หมายเหตุ: ป้ายต้องมีข้อความหรือรูปภาพ

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

ย่อหน้าข้อความ 1 ย่อหน้าเพื่ออธิบายเอนทิตี

หมายเหตุ: ระบบจะแสดงรายการคำบรรยายแทนเสียงหรือคำบรรยายแทนเสียงเท่านั้น

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

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

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

คำบรรยายได้สูงสุด 3 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

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

หมวดหมู่เนื้อหา ไม่บังคับ อธิบายหมวดหมู่ของเนื้อหาในเอนทิตี

รายการ Enum ที่มีสิทธิ์

  • TYPE_HEALTH_AND_FITENESS (เช่น ผู้ฝึกสอนโยคะ/ฟิตเนส)
  • TYPE_HOME_AND_AUTO (ตัวอย่าง - ช่างประปา)
  • TYPE_SPORTS (เช่น ผู้เล่น)
  • การเดทประเภท

ดูหลักเกณฑ์ในส่วนหมวดหมู่เนื้อหา

EventEntity

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

Deep Link ไปยังเอนทิตีในแอปของผู้ให้บริการ

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

URI
ชื่อ ต้องระบุ ชื่อของเอนทิตี

สตริง

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

เวลาเริ่มต้น ต้องระบุ

การประทับเวลาตามยุคสมัยเมื่อคาดว่ากิจกรรมจะเริ่ม

หมายเหตุ: ค่านี้จะแสดงเป็นมิลลิวินาที

การประทับเวลา Epoch เป็นมิลลิวินาที
โหมดเหตุการณ์ ต้องระบุ

ช่องสำหรับระบุว่ากิจกรรมจะเป็นแบบเสมือนจริง เข้าร่วมด้วยตนเอง หรือทั้ง 2 แบบ

Enum: VIRTUAL, IN_PERSON หรือ HYBRID
ภาพโปสเตอร์ ต้องระบุ

เราจะแสดงรูปภาพเพียง 1 รูปเมื่อมีการระบุรูปภาพหลายรูป สัดส่วนภาพที่แนะนำคือ 16:9

หมายเหตุ: ขอแนะนําให้ใช้รูปภาพ หากมีป้าย โปรดเว้นพื้นที่ปลอดภัย 24 dp ทั้งด้านบนและด้านล่างของรูปภาพ

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

ประเทศที่จัดกิจกรรม

หมายเหตุ: จำเป็นต้องใช้สำหรับกิจกรรมที่เป็น IN_PERSON หรือ HYBRID

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - เมือง ต้องระบุ (แบบมีเงื่อนไข)

เมืองที่จัดกิจกรรม

หมายเหตุ: จำเป็นต้องใช้สำหรับกิจกรรมที่เป็น IN_PERSON หรือ HYBRID

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ - ที่อยู่ที่แสดง ต้องระบุ (แบบมีเงื่อนไข)

ที่อยู่หรือชื่อสถานที่ที่จัดกิจกรรมซึ่งควรแสดงต่อผู้ใช้

หมายเหตุ: จำเป็นต้องใช้สำหรับกิจกรรมที่เป็น IN_PERSON หรือ HYBRID

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - ที่อยู่ ไม่บังคับ ที่อยู่ (หากมี) ของสถานที่จัดอีเวนต์

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - รัฐ ไม่บังคับ รัฐหรือจังหวัด (หากมี) ที่จัดกิจกรรม

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

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

สถานที่ตั้ง - รหัสไปรษณีย์ ไม่บังคับ รหัสไปรษณีย์ (หากมี) ของสถานที่จัดกิจกรรม

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - ย่าน ไม่บังคับ ย่าน (หากมี) ที่จัดกิจกรรม

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

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

เวลาสิ้นสุด ไม่บังคับ

การประทับเวลาตามยุคสมัยเมื่อคาดว่ากิจกรรมจะสิ้นสุด

หมายเหตุ: ค่านี้จะแสดงเป็นมิลลิวินาที

การประทับเวลา Epoch ในหน่วยมิลลิวินาที
คำอธิบาย ไม่บังคับ

ย่อหน้าข้อความ 1 ย่อหน้าเพื่ออธิบายเอนทิตี

หมายเหตุ: ระบบจะแสดงรายการคำบรรยายแทนเสียงหรือคำบรรยายแทนเสียงเท่านั้น

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

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

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

คำบรรยายได้สูงสุด 3 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

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

ป้าย ไม่บังคับ

แต่ละป้ายจะเป็นข้อความอิสระ (สูงสุด 15 อักขระ) หรือรูปภาพขนาดเล็ก

ป้าย - ข้อความ ไม่บังคับ

ชื่อป้าย

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

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

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

ป้าย - ภาพ ไม่บังคับ

รูปภาพขนาดเล็ก

การจัดการ UX แบบพิเศษ เช่น การซ้อนทับป้ายบนภาพขนาดย่อของรูปภาพ/วิดีโอ

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

ดูคำแนะนำได้ที่ข้อกำหนดเกี่ยวกับรูปภาพ
ราคา - CurrentPrice ต้องระบุแบบมีเงื่อนไข

ราคาปัจจุบันของตั๋ว/บัตรเข้าชมกิจกรรม

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

ข้อความอิสระ
ราคา - StrikethroughPrice ไม่บังคับ ราคาเดิมของตั๋ว/บัตรเข้างาน ข้อความอิสระ
ข้อความไฮไลต์ราคา ไม่บังคับ ข้อความไฮไลต์ราคาเพื่อแสดงโปรโมชัน กิจกรรม ส่วนลดสำหรับสมาชิก (หากมี)

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

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

หมวดหมู่เนื้อหา ไม่บังคับ อธิบายหมวดหมู่ของเนื้อหาในเอนทิตี

รายการ Enum ที่มีสิทธิ์

  • TYPE_MOVIES_AND_TV_SHOWS (ตัวอย่าง - ภาพยนตร์)
  • TYPE_DIGITAL_GAMES (เช่น eSports)
  • TYPE_MUSIC (ตัวอย่าง - คอนเสิร์ต)
  • TYPE_TRAVEL_AND_LOCAL (เช่น ทัวร์ เทศกาล)
  • TYPE_HEALTH_AND_FITENESS (ตัวอย่าง - ชั้นเรียนโยคะ)
  • TYPE_EDUCATION (เช่น ชั้นเรียน)
  • TYPE_SPORTS (ตัวอย่าง - การแข่งขันฟุตบอล)
  • TYPE_DATING (ตัวอย่าง - มีตติ้ง)

ดูหลักเกณฑ์ในส่วนหมวดหมู่เนื้อหา

EventReservationEntity

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

Deep Link ไปยังเอนทิตีในแอปของผู้ให้บริการ

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

URI
ชื่อ ต้องระบุ ชื่อของเอนทิตี

สตริง

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

เวลาเริ่มต้น ต้องระบุ

การประทับเวลาตามยุคสมัยเมื่อคาดว่ากิจกรรมจะเริ่ม

หมายเหตุ: ค่านี้จะแสดงเป็นมิลลิวินาที

การประทับเวลา Epoch เป็นมิลลิวินาที
โหมดเหตุการณ์ ต้องระบุ

ช่องสำหรับระบุว่ากิจกรรมจะเป็นแบบเสมือนจริง เข้าร่วมด้วยตนเอง หรือทั้ง 2 แบบ

อาร์เรย์แบบจำกัด: VIRTUAL, IN_PERSON หรือ HYBRID
สถานที่ตั้ง - ประเทศ ต้องระบุ (แบบมีเงื่อนไข)

ประเทศที่จัดกิจกรรม

หมายเหตุ: จำเป็นต้องใช้สำหรับกิจกรรมที่เป็น IN_PERSON หรือ HYBRID

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - เมือง ต้องระบุ (แบบมีเงื่อนไข)

เมืองที่จัดกิจกรรม

หมายเหตุ: จำเป็นต้องใช้สำหรับกิจกรรมที่เป็น IN_PERSON หรือ HYBRID

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ - ที่อยู่ที่แสดง ต้องระบุ (แบบมีเงื่อนไข)

ที่อยู่หรือชื่อสถานที่ที่จัดกิจกรรมซึ่งควรแสดงต่อผู้ใช้

หมายเหตุ: จำเป็นต้องใช้สำหรับกิจกรรมที่เป็น IN_PERSON หรือ HYBRID

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - ที่อยู่ ไม่บังคับ ที่อยู่ (หากมี) ของสถานที่จัดอีเวนต์

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - รัฐ ไม่บังคับ รัฐหรือจังหวัด (หากมี) ที่จัดกิจกรรม

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

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

สถานที่ตั้ง - รหัสไปรษณีย์ ไม่บังคับ รหัสไปรษณีย์ (หากมี) ของสถานที่จัดกิจกรรม

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

สถานที่ตั้ง - ย่าน ไม่บังคับ ย่าน (หากมี) ที่จัดกิจกรรม

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

ขนาดข้อความที่แนะนำ: ไม่เกิน 20 อักขระ

ภาพโปสเตอร์ ไม่บังคับ

เราจะแสดงรูปภาพเพียง 1 รูปเมื่อมีการระบุรูปภาพหลายรูป สัดส่วนภาพที่แนะนำคือ 16:9

หมายเหตุ: ขอแนะนําให้ใช้รูปภาพ หากมีป้าย โปรดเว้นพื้นที่ปลอดภัยให้ห่างจากจุด 24 d ทั้งด้านบนและด้านล่างของรูปภาพ

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

การประทับเวลาตามยุคสมัยเมื่อคาดว่ากิจกรรมจะสิ้นสุด

หมายเหตุ: ค่านี้จะแสดงเป็นมิลลิวินาที

การประทับเวลา Epoch เป็นมิลลิวินาที
ผู้ให้บริการ - ชื่อ ไม่บังคับ

ชื่อผู้ให้บริการ

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับผู้ให้บริการ

ข้อความอิสระ เช่น ชื่อผู้จัด/ทัวร์
ผู้ให้บริการ - รูปภาพ ไม่บังคับ

โลโก้/รูปภาพของผู้ให้บริการ

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับผู้ให้บริการ

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

ย่อหน้าข้อความ 1 ย่อหน้าเพื่ออธิบายเอนทิตี

หมายเหตุ: ระบบจะแสดงรายการคำบรรยายแทนเสียงหรือคำบรรยายแทนเสียงเท่านั้น

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

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

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

คำบรรยายได้สูงสุด 3 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

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

ป้าย ไม่บังคับ

แต่ละป้ายจะเป็นข้อความอิสระ (สูงสุด 15 อักขระ) หรือรูปภาพขนาดเล็ก

ป้าย - ข้อความ ไม่บังคับ

ชื่อป้าย

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

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

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

ป้าย - ภาพ ไม่บังคับ

รูปภาพขนาดเล็ก

การจัดการ UX แบบพิเศษ เช่น การซ้อนทับป้ายบนภาพขนาดย่อของรูปภาพ/วิดีโอ

หมายเหตุ: ต้องมีข้อความหรือรูปภาพสำหรับป้าย

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

ราคาปัจจุบันของตั๋ว/บัตรเข้าชมกิจกรรม

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

ข้อความอิสระ
ราคา - StrikethroughPrice ไม่บังคับ ราคาเดิมของตั๋ว/บัตรเข้างาน ข้อความอิสระ
ข้อความไฮไลต์ราคา ไม่บังคับ ข้อความไฮไลต์ราคาเพื่อแสดงโปรโมชัน กิจกรรม ส่วนลดสำหรับสมาชิก (หากมี)

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

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

การจัดประเภท - ค่าสูงสุด ไม่บังคับ

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

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

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

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

ต้องระบุหากระบุค่าสูงสุดของการจัดประเภทด้วย

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

จํานวนการให้คะแนนสําหรับกิจกรรม

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

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

จํานวนการให้คะแนนสําหรับกิจกรรม

หมายเหตุ: ระบุช่องนี้หากไม่ต้องการจัดการตรรกะการแสดงตัวย่อด้วยตนเอง หากมีทั้ง Count และ Count Value เราจะใช้ Count เพื่อแสดงต่อผู้ใช้

ยาว
หมวดหมู่เนื้อหา ไม่บังคับ อธิบายหมวดหมู่ของเนื้อหาในเอนทิตี

รายการ Enum ที่มีสิทธิ์

  • TYPE_MOVIES_AND_TV_SHOWS (ตัวอย่าง - ภาพยนตร์)
  • TYPE_DIGITAL_GAMES (เช่น eSports)
  • TYPE_MUSIC (ตัวอย่าง - คอนเสิร์ต)
  • TYPE_TRAVEL_AND_LOCAL (เช่น ทัวร์ เทศกาล)
  • TYPE_HEALTH_AND_FITENESS (ตัวอย่าง - ชั้นเรียนโยคะ)
  • TYPE_EDUCATION (เช่น ชั้นเรียน)
  • TYPE_SPORTS (ตัวอย่าง - การแข่งขันฟุตบอล)
  • TYPE_DATING (ตัวอย่าง - มีตติ้ง)

ดูคำแนะนำได้ที่ส่วนหมวดหมู่เนื้อหา

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

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

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

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

แนะนำ

300x300 1200x1200
แนวนอน (1.91x1) 600x314 1200x628
แนวตั้ง (4x5) 480x600 960x1200

รูปภาพต้องโฮสต์ใน CDN สาธารณะเพื่อให้ Google เข้าถึงได้

รูปแบบไฟล์

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

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

5,120 KB

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

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

หมวดหมู่เนื้อหา

หมวดหมู่เนื้อหาช่วยให้แอปเผยแพร่เนื้อหาที่อยู่ในหลายหมวดหมู่ได้ ซึ่งจะเชื่อมโยงเนื้อหากับหมวดหมู่ที่กำหนดไว้ล่วงหน้าบางหมวดหมู่ ได้แก่

  • TYPE_EDUCATION
  • TYPE_SPORTS
  • TYPE_MOVIES_AND_TV_SHOWS
  • TYPE_BOOKS
  • TYPE_AUDIOBOOKS
  • TYPE_MUSIC
  • TYPE_DIGITAL_GAMES
  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_HOME_AND_AUTO
  • TYPE_BUSINESS
  • TYPE_NEWS
  • TYPE_FOOD_AND_DRINK
  • TYPE_SHOPPING
  • TYPE_HEALTH_AND_FITENESS
  • TYPE_MEDICAL
  • TYPE_PARENTING
  • TYPE_DATING

โดยรูปภาพจะต้องโฮสต์บน CDN สาธารณะเพื่อให้ Google เข้าถึงได้

หลักเกณฑ์การใช้หมวดหมู่เนื้อหา

  1. เอนทิตีบางรายการ เช่น ArticleEntity และ genericFeaturedEntity มีสิทธิ์ใช้หมวดหมู่เนื้อหาใดก็ได้ สำหรับเอนทิตีอื่นๆ เช่น EventEntity, EventReservationEntity, PersonEntity เฉพาะเอนทิตีย่อยของหมวดหมู่เหล่านี้เท่านั้นที่มีสิทธิ์ ตรวจสอบรายการหมวดหมู่ที่มีสิทธิ์สำหรับประเภทเอนทิตีก่อนป้อนข้อมูลรายการ
  2. ใช้ประเภทเอนทิตีที่เฉพาะเจาะจงสำหรับหมวดหมู่เนื้อหาบางหมวดหมู่แทนการใช้เอนทิตีทั่วไปร่วมกับ ContentCategory

  3. ช่อง ContentCategory เป็นช่องที่ไม่บังคับและควรเว้นว่างไว้หากเนื้อหาไม่ได้อยู่ในหมวดหมู่ที่กล่าวถึงก่อนหน้านี้

  4. ในกรณีที่มีการจัดประเภทเนื้อหาไว้หลายหมวดหมู่ ให้จัดเรียงหมวดหมู่เนื้อหาตามลำดับความเกี่ยวข้องกับเนื้อหา โดยจัดอยู่ในหมวดหมู่เนื้อหาที่เกี่ยวข้องที่สุดเป็นอันดับแรก

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

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

AppEngagePublishClient มีหน้าที่รับผิดชอบในการเผยแพร่คลัสเตอร์

API ต่อไปนี้ใช้เพื่อเผยแพร่คลัสเตอร์ในไคลเอ็นต์

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishContinuationCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteContinuationCluster
  • 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

Kotlin

client.publishRecommendationClusters(
      PublishRecommendationClustersRequest.Builder()
        .addRecommendationCluster(
          RecommendationCluster.Builder()
            .addEntity(entity1)
            .addEntity(entity2)
            .setTitle("Top Picks For You")
            .build()
        )
        .build()
    )

Java

client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Top Picks For You")
                        .build())
                .build());

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

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

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

publishFeaturedCluster

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

Kotlin

client.publishFeaturedCluster(
    PublishFeaturedClusterRequest.Builder()
      .setFeaturedCluster(
        FeaturedCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java

client.publishFeaturedCluster(
            new PublishFeaturedClustersRequest.Builder()
                .addFeaturedCluster(
                    new FeaturedCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

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

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

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

publishContinuationCluster

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

Kotlin

client.publishContinuationCluster(
    PublishContinuationClusterRequest.Builder()
      .setContinuationCluster(
        ContinuationCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java

client.publishContinuationCluster(
            new PublishContinuationClusterRequest.Builder()
                .setContinuationCluster(
                    new ContinuationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

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

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

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

publishUserAccountManagementRequest

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

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

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

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

รูปภาพสัดส่วนภาพ 16:9 ที่มีความละเอียด 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

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

  • การให้สถานะในทุกสถานการณ์ แม้ว่าเนื้อหาจะเผยแพร่แล้ว (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();

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

deleteContinuationCluster

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

Kotlin

client.deleteContinuationCluster()

Java

client.deleteContinuationCluster();

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

deleteUserManagementCluster

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

Kotlin

client.deleteUserManagementCluster()

Java

client.deleteUserManagementCluster();

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

deleteClusters

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

Kotlin

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

Java

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_CONTINUATION)
                .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 โดยระบุสาเหตุเป็นรหัสข้อผิดพลาด

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

ขั้นตอนที่ 3: จัดการ Intent ของข้อความประกาศ

นอกเหนือจากการเรียกใช้ API เผยแพร่เนื้อหาผ่านงานแล้ว คุณยังต้องตั้งค่า BroadcastReceiver เพื่อรับคําขอเผยแพร่เนื้อหาด้วย

เป้าหมายของ Broadcast Intents ส่วนใหญ่คือการเปิดใช้แอปอีกครั้งและการบังคับให้ซิงค์ข้อมูล Intent แบบออกอากาศไม่ได้ออกแบบมาเพื่อส่งบ่อยครั้ง และทริกเกอร์ก็ต่อเมื่อบริการ 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 continuation cluster publish when PUBLISH_CONTINUATION 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 Continuation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION))
}

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 continuation cluster publish when PUBLISH_CONTINUATION 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 Continuation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION));

}
  • ประกาศการติดตั้งใช้งานแบบคงที่ด้วยแท็ก <receiver> ในไฟล์ AndroidManifest.xml ซึ่งจะช่วยให้แอปพลิเคชันได้รับ Intent แบบออกอากาศเมื่อไม่ได้ทำงานอยู่ และช่วยให้แอปพลิเคชันเผยแพร่เนื้อหาได้
<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.PUBLISH_CONTINUATION" />
      </intent-filter>
   </receiver>
</application>

Intent ต่อไปนี้จะส่งโดยบริการ

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION เราขอแนะนำให้เริ่มpublishRecommendationClustersการโทรเมื่อได้รับ Intent นี้
  • com.google.android.engage.action.PUBLISH_FEATURED เราขอแนะนำให้เริ่มpublishFeaturedClusterการโทรเมื่อได้รับ Intent นี้
  • com.google.android.engage.action.PUBLISH_CONTINUATION เราขอแนะนำให้เริ่มpublishContinuationClusterการโทรเมื่อได้รับ Intent นี้

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

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

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

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

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

โปรดติดต่อ Engage-developers@google.com หากคุณมีคำถามระหว่างขั้นตอนการผสานรวม

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

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

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