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

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

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

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

คำศัพท์

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

  • คลัสเตอร์คำแนะนำแสดงคำแนะนำที่ปรับเปลี่ยนในแบบของคุณสำหรับเนื้อหาน่าอ่าน จากพาร์ทเนอร์นักพัฒนาแต่ละราย

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

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

      วันที่
      รูปที่ 1 UI Entertainment Space แสดง กลุ่มคำแนะนำจากพาร์ทเนอร์รายเดียว
    • เอนทิตี: ออบเจ็กต์ที่แทนรายการเดียวในคลัสเตอร์ เอนทิตี อาจเป็นเพลย์ลิสต์ หนังสือเสียง พอดแคสต์ และอื่นๆ โปรดดูช่องให้ ข้อมูลเอนทิตีสำหรับรายการของเอนทิตีที่สนับสนุน ประเภทต่างๆ

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

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

    วันที่
    รูปที่ 4 UI ของ Entertainment Space แสดงรายการแนะนำ คลัสเตอร์ที่มีคำแนะนำจากพาร์ทเนอร์หลายราย (รายเดียวเท่านั้น คำแนะนำแสดงอยู่)

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

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

สรุป

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

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

ประเภทคลัสเตอร์ ขีดจำกัดของคลัสเตอร์ ขีดจำกัดเอนทิตีสูงสุดในคลัสเตอร์
คลัสเตอร์คำแนะนำ สูงสุด 5 รายการ สูงสุด 50 รายการ
คลัสเตอร์ความต่อเนื่อง มากที่สุด 1 สูงสุด 10 รายการ
คลัสเตอร์แนะนำ มากที่สุด 1 สูงสุด 10 รายการ

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

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

  1. MusicAlbumEntity
  2. MusicArtistEntity
  3. MusicTrackEntity
  4. MusicVideoEntity
  5. PlaylistEntity
  6. PodcastSeriesEntity
  7. PodcastEpisodeEntity
  8. LiveRadioStationEntity
  9. AudiobookEntity

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

MusicAlbumEntity

ออบเจ็กต์ MusicAlbumEntity แสดงอัลบั้มเพลง (เช่น Midnights โดย Taylor Swift)

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

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

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

ศิลปิน ต้องระบุ รายชื่อศิลปินในอัลบั้มเพลง
URI การเล่น ไม่บังคับ

Deep Link ที่เริ่มเล่นอัลบั้มในแอป provider

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

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

อัลบั้ม (รวม LP และ 2 LP)

EP

ซิงเกิล

มิกซ์เทป

ค่ายเพลง ไม่บังคับ รายชื่อค่ายเพลงที่เกี่ยวข้องกับอัลบั้ม
ดาวน์โหลดในอุปกรณ์แล้ว ไม่บังคับ บูลีนที่ระบุว่าอัลบั้มเพลงจะดาวน์โหลดลงในอุปกรณ์หรือไม่
อาจไม่เหมาะสม ไม่บังคับ

บูลีนที่ระบุว่าเนื้อหาไม่เหมาะสมหรือไม่

รายการที่มีเนื้อหาโจ่งแจ้งหรือมีคำแนะนำจากผู้ปกครอง ควรตั้งค่าเป็น TRUE รายการที่อาจไม่เหมาะสมจะปรากฏขึ้นพร้อมตัว "E" แท็ก

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

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

เปอร์เซ็นต์ความคืบหน้าเสร็จสมบูรณ์ ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง

จำนวนเต็มระหว่าง 0 ถึง 100

MusicArtistEntity

ออบเจ็กต์ MusicArtistEntity แสดงข้อมือดนตรี (เช่น Adele)

แอตทริบิวต์ ข้อกำหนด หมายเหตุ
ชื่อ ต้องระบุ ชื่อศิลปินเพลง
ภาพโปสเตอร์ ต้องระบุ ต้องระบุรูปภาพอย่างน้อย 1 รูป โปรดดู ข้อกำหนดเกี่ยวกับรูปภาพสำหรับแนวทาง
URI หน้าข้อมูล ต้องระบุ

ลิงก์ในรายละเอียดที่ไปยังแอปผู้ให้บริการเพื่อดูรายละเอียดเกี่ยวกับเพลง ของศิลปิน

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

URI การเล่น ไม่บังคับ

Deep Link ที่เริ่มเล่นเพลงของศิลปินในผู้ให้บริการ แอป

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

คำอธิบาย ไม่บังคับ ต้องมีความยาวไม่เกิน 200 อักขระ หากระบุ
เวลาในการมีส่วนร่วมล่าสุด ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

MusicTrackEntity

ออบเจ็กต์ MusicTrackEntity แสดงแทร็กเพลง (เช่น สีเหลือง ตาม Coldplay)

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

Deep Link ที่เริ่มเล่นแทร็กเพลงในผู้ให้บริการ แอป

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

URI หน้าข้อมูล ไม่บังคับ

ลิงก์ในรายละเอียดที่ไปยังแอปผู้ให้บริการเพื่อดูรายละเอียดเกี่ยวกับแทร็กเพลง

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

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

บูลีนที่ระบุว่าเนื้อหาไม่เหมาะสมหรือไม่

รายการที่มีเนื้อหาโจ่งแจ้งหรือมีคำแนะนำจากผู้ปกครอง ควรตั้งค่าเป็น TRUE รายการที่อาจไม่เหมาะสมจะปรากฏขึ้นพร้อมตัว "E" แท็ก

เวลาในการมีส่วนร่วมล่าสุด ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

เปอร์เซ็นต์ความคืบหน้าเสร็จสมบูรณ์ ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง

จำนวนเต็มระหว่าง 0 ถึง 100

MusicVideoEntity

ออบเจ็กต์ MusicVideoEntity แสดงมิวสิกวิดีโอ (เช่น The Weeknd - Take My Breath (มิวสิกวิดีโออย่างเป็นทางการ))

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

Deep Link ที่เริ่มเล่นมิวสิกวิดีโอในผู้ให้บริการ แอป

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

URI หน้าข้อมูล ไม่บังคับ

Deep Link ไปยังแอปผู้ให้บริการเพื่อดูรายละเอียดเกี่ยวกับมิวสิกวิดีโอ

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

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

บูลีนที่ระบุว่าเนื้อหาไม่เหมาะสมหรือไม่

รายการที่มีเนื้อหาโจ่งแจ้งหรือมีคำแนะนำจากผู้ปกครอง ควรตั้งค่าเป็น TRUE รายการที่อาจไม่เหมาะสมจะปรากฏขึ้นพร้อมตัว "E" แท็ก

เวลาในการมีส่วนร่วมล่าสุด ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

เปอร์เซ็นต์ความคืบหน้าเสร็จสมบูรณ์ ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง

จำนวนเต็มระหว่าง 0 ถึง 100

PlaylistEntity

ออบเจ็กต์ PlaylistEntity แสดงเพลย์ลิสต์เพลง (เช่น ยอดนิยมในสหรัฐอเมริกา 10 เพลย์ลิสต์)

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

Deep Link ที่เริ่มเล่นเพลย์ลิสต์เพลงในผู้ให้บริการ แอป

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

URI หน้าข้อมูล ไม่บังคับ

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

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

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

บูลีนที่ระบุว่าเนื้อหาไม่เหมาะสมหรือไม่

รายการที่มีเนื้อหาโจ่งแจ้งหรือมีคำแนะนำจากผู้ปกครอง ควรตั้งค่าเป็น TRUE รายการที่อาจไม่เหมาะสมจะปรากฏขึ้นพร้อมตัว "E" แท็ก

เวลาในการมีส่วนร่วมล่าสุด ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

เปอร์เซ็นต์ความคืบหน้าเสร็จสมบูรณ์ ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง

จำนวนเต็มระหว่าง 0 ถึง 100

PodcastSeriesEntity

ออบเจ็กต์ PodcastSeriesEntity แสดงชุดพอดแคสต์ (เช่น This American Life)

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

Deep Link ไปยังแอปผู้ให้บริการเพื่อดูรายละเอียดเกี่ยวกับพอดแคสต์ ซีรีส์

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

URI การเล่น ไม่บังคับ

Deep Link ที่เริ่มเล่นซีรีส์พอดแคสต์ในแอป provider

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

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

บูลีนที่ระบุว่าเนื้อหาไม่เหมาะสมหรือไม่

รายการที่มีเนื้อหาโจ่งแจ้งหรือมีคำแนะนำจากผู้ปกครอง ควรตั้งค่าเป็น TRUE รายการที่อาจไม่เหมาะสมจะปรากฏขึ้นพร้อมตัว "E" แท็ก

เวลาในการมีส่วนร่วมล่าสุด ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

PodcastEpisodeEntity

ออบเจ็กต์ PodcastEpisodeEntity แสดงชุดพอดแคสต์ (เช่น Spark Bird, ตอนที่ 754: This American Life)

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

Deep Link ที่เริ่มเล่นตอนของพอดแคสต์ในผู้ให้บริการ แอป

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

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

Deep Link ไปยังแอปผู้ให้บริการเพื่อดูรายละเอียดเกี่ยวกับตอนของพอดแคสต์

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

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

บูลีนที่ระบุว่าเนื้อหาไม่เหมาะสมหรือไม่

รายการที่มีเนื้อหาโจ่งแจ้งหรือมีคำแนะนำจากผู้ปกครอง ควรตั้งค่าเป็น TRUE รายการที่อาจไม่เหมาะสมจะปรากฏขึ้นพร้อมตัว "E" แท็ก

ประเภท "ฟังถัดไป" ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง

TYPE_CONTINUE - เล่นต่อในรายการเสียงที่ยังไม่เสร็จ

TYPE_NEXT - ทำต่อในซีรีส์ใหม่

TYPE_NEW - ออกใหม่

เวลาในการมีส่วนร่วมล่าสุด ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

เปอร์เซ็นต์ความคืบหน้าเสร็จสมบูรณ์ ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง

จำนวนเต็มระหว่าง 0 ถึง 100

LiveRadioStationEntity

ออบเจ็กต์ LiveRadioStationEntity แสดงสถานีวิทยุสด (สำหรับ ตัวอย่างเช่น 98.1 The Breeze)

แอตทริบิวต์ ข้อกำหนด หมายเหตุ
ชื่อ ต้องระบุ ชื่อสถานีวิทยุสด
ภาพโปสเตอร์ ต้องระบุ ต้องระบุรูปภาพอย่างน้อย 1 รูป โปรดดู ข้อกำหนดเกี่ยวกับรูปภาพสำหรับแนวทาง
URI การเล่น ต้องระบุ

Deep Link ที่เริ่มเล่นสถานีวิทยุในผู้ให้บริการ แอป

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

URI หน้าข้อมูล ไม่บังคับ

Deep Link ไปยังแอปผู้ให้บริการเพื่อดูรายละเอียดเกี่ยวกับสถานีวิทยุ

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

ความถี่ ไม่บังคับ ความถี่ที่สถานีวิทยุออกอากาศ (เช่น "98.1 FM")
ชื่อรายการ ไม่บังคับ รายการปัจจุบันที่กำลังเล่นอยู่ในสถานีวิทยุ
โฮสต์ ไม่บังคับ รายชื่อผู้จัดสถานีวิทยุ
คำอธิบาย ไม่บังคับ ต้องมีความยาวไม่เกิน 200 อักขระ หากระบุ
เวลาในการมีส่วนร่วมล่าสุด ไม่บังคับ

แนะนำสำหรับรายการในคลัสเตอร์แบบต่อเนื่อง อาจใช้สำหรับ การจัดอันดับ

ใน Epoch มิลลิวินาที

AudiobookEntity

ออบเจ็กต์ AudiobookEntity แสดงหนังสือเสียง (เช่น หนังสือเสียง ของ Becoming โดย Michelle Obama)

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

Deep Link ที่ไปยังแอปผู้ให้บริการสำหรับหนังสือเสียง

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

วันที่เผยแพร่ ไม่บังคับ เป็นมิลลิวินาที (Epoch) หากระบุ
คำอธิบาย ไม่บังคับ ต้องมีความยาวไม่เกิน 200 อักขระ หากระบุ
ราคา ไม่บังคับ ข้อความอิสระ
ระยะเวลา ไม่บังคับ ต้องเป็นค่าบวกหากมี
ประเภท ไม่บังคับ รายการประเภทที่เกี่ยวข้องกับหนังสือ
ชื่อหนังสือชุด ไม่บังคับ ชื่อซีรีส์ที่มีหนังสือเสียง (เช่น Harry Potter
ดัชนีหน่วยของชุดหนังสือ ไม่บังคับ ดัชนีของหนังสือเสียงในชุด โดย 1 คือหนังสือเสียงเล่มแรก ในซีรีส์นี้ ตัวอย่างเช่น ถ้าแฮร์รี่ พอตเตอร์กับนักโทษของ Azkaban เป็นหนังสือเล่มที่ 3 ในชุดนี้ ควรตั้งไว้ที่ 3 แล้ว
ประเภทหนังสือต่อ ไม่บังคับ

TYPE_CONTINUE - อ่านต่อในหนังสือที่ยังอ่านไม่จบ

TYPE_NEXT - ทำต่อในซีรีส์ใหม่

TYPE_NEW - ออกใหม่

เวลาในการมีส่วนร่วมสุดท้าย ต้องระบุแบบมีเงื่อนไข

ต้องระบุเมื่อรายการอยู่ในคลัสเตอร์ Continuation

ในหน่วย Epoch ในหน่วยมิลลิวินาที

เปอร์เซ็นต์ความคืบหน้าเสร็จสมบูรณ์ ต้องระบุแบบมีเงื่อนไข

ต้องระบุเมื่อรายการอยู่ในคลัสเตอร์ Continuation

หนังสือเสียง *ที่เพิ่งได้มา* อาจเป็นส่วนหนึ่งของการอ่านต่อ คลัสเตอร์

ค่าต้องมากกว่า 0 และน้อยกว่า 100

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

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

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

ในหน่วย Epoch ในหน่วยมิลลิวินาที

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

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

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

ในหน่วย Epoch ในหน่วยมิลลิวินาที

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

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

สัดส่วนภาพ ข้อกำหนด พิกเซลขั้นต่ำ พิกเซลแนะนํา
สี่เหลี่ยมจัตุรัส (1x1) ต้องระบุ 300x300 1200x1200
แนวนอน (1.91x1) ไม่บังคับ 600x314 1200x628
แนวตั้ง (4x5) ไม่บังคับ 480x600 960x1200

รูปแบบไฟล์

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

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

5,120 KB

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

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

ตัวอย่าง

MusicAlbumEntity musicAlbumEntity =
        new MusicAlbumEntity.Builder()
            .setName(NAME)
             .addPosterImage(new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(960)
                  .setImageWidthInPixel(408)
                  .build())
            .setPlayBackUri("https://play.google/album/play")
            .setInfoPageUri("https://play.google/album/info")
            .setDescription("A description of this album.")
            .addArtist("Artist")
            .addGenre("Genre")
            .addMusicLabel("Label")
            .addContentRating("Rating")
            .setSongsCount(960)
            .setReleaseDateEpochMillis(1633032895L)
            .setDurationMillis(1633L)
            .build();
AudiobookEntity audiobookEntity =
        new AudiobookEntity.Builder()
            .setName("Becoming")
            .addPosterImage(new Image.Builder()
                 .setImageUri(Uri.parse("http://www.x.com/image.png"))
                 .setImageHeightInPixel(960)
                 .setImageWidthInPixel(408)
                  .build())
            .addAuthor("Michelle Obama")
            .addNarrator("Michelle Obama")
            .setActionLinkUri(
               Uri.parse("https://play.google/audiobooks/1"))
            .setDurationMillis(16335L)
            .setPublishDateEpochMillis(1633032895L)
            .setDescription("An intimate, powerful, and inspiring memoir")
            .setPrice("$16.95")
            .addGenre("biography")
            .build();

ขั้นตอนที่ 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("Trending music")
                        .build())
                .build())

Java


client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Trending music")
                        .build())
                .build());

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

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

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

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

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

publishContinuationCluster

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

Kotlin


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

Java


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

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

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

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

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

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

deleteContinuationCluster

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

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_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      ...
      .build())

Java


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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