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'
}

สรุป

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

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

ประเภทคลัสเตอร์ ขีดจํากัดของคลัสเตอร์ ขีดจํากัดขั้นต่ำของเอนทิตีในคลัสเตอร์ ขีดจํากัดสูงสุดของเอนทิตีในคลัสเตอร์
กลุ่มคําแนะนํา ไม่เกิน 7 อย่างน้อย 1 รายการ ไม่เกิน 50 (ArticleEntity, PersonEntity หรือ EventEntity)
คลัสเตอร์การต่อเรื่อง ไม่เกิน 1 อย่างน้อย 1 รายการ ไม่เกิน 20 (ArticleEntity หรือ EventReservationEntity)
คลัสเตอร์แนะนำ ไม่เกิน 1 อย่างน้อย 1 รายการ ไม่เกิน 20 (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 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

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

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

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

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

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

ชื่อป้าย

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

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

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

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

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

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

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

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

รายการ Enum

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

ArticleEntity

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ชื่อป้าย

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

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

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

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

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

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

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

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

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

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

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

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

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

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

รายการ Enum

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

PersonEntity

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

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

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

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

สตริง

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

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

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

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

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

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

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

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

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

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

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

ระบุจำนวนผู้ติดตามหรือค่าความนิยม เช่น - "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 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

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

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

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

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

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

EventEntity

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

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

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

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

สตริง

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

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

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

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

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

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

อาร์เรย์แบบจำกัด: 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 รายการ โดยคำบรรยายแต่ละรายการจะเป็นข้อความบรรทัดเดียว

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

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

ขนาดข้อความที่แนะนำสำหรับคำบรรยายแต่ละรายการ: สูงสุด 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 dp ทั้งด้านบนและด้านล่างของรูปภาพ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ขนาดข้อความที่แนะนำสำหรับคำบรรยายแต่ละรายการ: สูงสุด 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

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

5120 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();

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

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 เพื่อรับคําขอเผยแพร่เนื้อหาด้วย

เป้าหมายของ Intent แบบออกอากาศมีไว้สำหรับการเปิดใช้งานแอปอีกครั้งและการบังคับซิงค์ข้อมูลเป็นหลัก 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 แล้ว ระบบอาจเผยแพร่คลัสเตอร์คำแนะนำ แนะนํา และการต่อเรื่องให้ผู้ใช้เห็น