Live Activity
Live Activity คือการ์ดที่อัปเดตแบบเรียลไทม์ เพื่อให้ผู้ใช้เห็นความคืบหน้าโดยไม่ต้องเปิดแอป (สถานะเที่ยวบิน การจัดส่ง การเดินทาง และอื่นๆ ที่คล้ายกัน) บน iOS จะเป็นการ์ดขนาดเล็กบนหน้าจอล็อกและ Dynamic Island บน Android 16 ขึ้นไป จะเป็นการ์ดประเภทเดียวกันที่แสดงเป็นการแจ้งเตือนต่อเนื่องพร้อมแถบความคืบหน้า
ใช้องค์ประกอบ Live Activity ใน journey เพื่อเริ่ม อัปเดต หรือสิ้นสุดการ์ดนั้น บน iOS, Android หรือทั้งสองแพลตฟอร์ม
แต่ละองค์ประกอบทำหนึ่งการกระทำ:
- Start: สร้างการ์ด
- Update: เปลี่ยนแปลงการ์ดที่มีอยู่
- End: ปิดการ์ด
หากต้องการเปลี่ยนแปลงหรือปิดการ์ดเดียวกันในภายหลัง ให้เพิ่มองค์ประกอบ Live Activity อีกอันหนึ่งและชี้กลับไปที่องค์ประกอบที่สร้างการ์ดนั้นด้วย Card created by
ตัวอย่างกรณีการใช้งาน
Anchor link toใช้องค์ประกอบนี้เมื่อใดก็ตามที่ผู้ใช้ควรเห็นสถานะที่เปลี่ยนแปลงอยู่ตลอด โดยไม่ต้องเปิดแอป
- สถานะเที่ยวบิน: แสดงการ์ดหลังเช็คอิน อัปเดตประตูขึ้นเครื่อง สถานะ และเวลาให้เป็นปัจจุบันระหว่างเที่ยวบิน ลบการ์ดหลังลงจอด
- การจัดส่งอาหาร: แสดงการ์ดเมื่อสั่งอาหาร อัปเดตชื่อผู้จัดส่ง ETA และระยะทางให้เป็นปัจจุบันระหว่างทาง ลบการ์ดเมื่อจัดส่งแล้ว
- บริการเรียกรถ: แสดงการ์ดเมื่อขอเรียกรถ อัปเดตคนขับ ETA และหมายเลขทะเบียนให้เป็นปัจจุบันขณะคนขับเข้าใกล้ ลบการ์ดเมื่อการเดินทางเสร็จสิ้น
- คำสั่งซื้อหรือการนัดหมาย: แสดงการ์ดเมื่อคำสั่งซื้อหรือการจองได้รับการยืนยัน อัปเดตสถานะให้เป็นปัจจุบันตามความคืบหน้า ลบการ์ดเมื่อดำเนินการเสร็จสิ้นหรือการเยี่ยมชมจบลง
- อีเวนต์สด: แสดงการ์ดเมื่ออีเวนต์เริ่มต้น อัปเดตคะแนน ช่วง หรือกำหนดการให้เป็นปัจจุบันขณะดำเนินอยู่ ลบการ์ดเมื่ออีเวนต์จบลง
ข้อกำหนดเบื้องต้น
Anchor link toก่อนตั้งค่าองค์ประกอบนี้ ให้ตรวจสอบสิ่งที่แต่ละแพลตฟอร์มต้องการ
สำหรับการ์ด iOS:
- การรองรับ iOS Live Activity: แอปของคุณต้องรองรับ Live Activities ดู คู่มือ Live Activities ของ iOS SDK
- Widget schema ที่เผยแพร่แล้ว: ขอให้ทีมพัฒนาของคุณเผยแพร่ schema ที่ตรงกับประเภท Live Activity ในแอปภายใต้ Applications → Configure → Live Activity schemas พวกเขายังสามารถ เผยแพร่ผ่าน API ได้ สำหรับสิ่งที่ควรอยู่ใน schema ดู การเขียน schema
- Widget ในรายการ: หลังจาก schema เผยแพร่แล้ว ให้เลือกภายใต้ Widget ในองค์ประกอบนี้ หากรายการ Widget ว่างเปล่า แสดงว่ายังไม่ได้เผยแพร่ schema
สำหรับการแจ้งเตือน Android:
- การรองรับ Android Live Updates: แอปของคุณต้องใช้ SDK 6.11+ และโมดูล
pushwoosh-liveupdatesAndroid ไม่ต้องใช้ schema ขอให้นักพัฒนา Android ของคุณยืนยันว่าโมดูลนี้อยู่ในบิลด์แล้ว
ตั้งค่าองค์ประกอบ
Anchor link to-
ลากองค์ประกอบ Live Activity ไปยังผืนผ้าใบ

-
ดับเบิลคลิกที่องค์ประกอบเพื่อเปิดการตั้งค่า
-
ป้อนชื่อใน Step name
-
ใน Action ให้เลือกหนึ่งในตัวเลือกต่อไปนี้:
- Start: สร้างการ์ด Live Activity
- Update: เปลี่ยนแปลงเนื้อหาของการ์ดที่มีอยู่
- End: ปิดการ์ด
-
ภายใต้ Platforms ให้เปิด iOS Live Activity, Android Live Updates หรือทั้งสองอย่าง ต้องเปิดไว้อย่างน้อยหนึ่งแพลตฟอร์ม คุณจึงไม่สามารถปิดแพลตฟอร์มสุดท้ายได้ ใน Update และ End ส่วน Platforms จะแสดงแพลตฟอร์มจากองค์ประกอบ Start ที่เชื่อมโยงและเป็นแบบอ่านอย่างเดียว

-
เฉพาะใน Start ให้ตั้งค่าคีย์ของการ์ดเพื่อให้ขั้นตอน Update และ End ในภายหลังสามารถค้นหาการ์ดนี้ได้:
- ใน Card key: event ให้เลือกอีเวนต์ที่ระบุการ์ด (เช่น อีเวนต์การเข้า journey)
- ใน Card key: attribute ให้เลือกแอตทริบิวต์ที่ทำให้คีย์ไม่ซ้ำกันต่อผู้เดินทางแต่ละคน สิ่งนี้จำเป็นเมื่อคุณตั้งค่า Card key: event แล้ว หากปล่อยไว้ไม่ตั้งค่าจะทำให้การเลือกอีเวนต์ไม่มีผล เหมือนกับการปล่อยทั้งสองฟิลด์ว่างเปล่า: การ์ดหนึ่งใบต่อผู้เดินทางหนึ่งคน โดยระบุที่อยู่ด้วย user ID เริ่มต้น

เชื่อมโยง Update และ End กับการ์ดที่ถูกต้อง
Anchor link toเมื่อ Action เป็น Update หรือ End ให้ใช้ Card created by เพื่อชี้ไปยังองค์ประกอบ Start ที่แน่ชัดซึ่งสร้างการ์ดนี้ขึ้นมา มิฉะนั้น Update หรือ End จะไม่สามารถเข้าถึงได้
- ใน Card created by ให้เลือก Step name ขององค์ประกอบ Start นั้น (เช่น
Order card start)
หลังจากที่คุณเลือก Card created by แล้ว Card key (from the start element) จะแสดงค่า Card key: event และ Card key: attribute จาก Start นั้น เป็นแบบอ่านอย่างเดียวและยืนยันว่านี่ชี้ไปยังการ์ดใด

เลือกภาษาของการ์ด
Anchor link toCard language ใช้กับทั้งการ์ด iOS และการแจ้งเตือน Android
ตั้งค่า Card language เป็น default หรือรหัสภาษาที่ระบุ เนื้อหาภายใต้ default เป็นค่าสำรองสำหรับภาษาใดก็ตามที่คุณไม่ได้กรอกแยกต่างหาก
ตั้งค่าการ์ด iOS
Anchor link toข้ามส่วนนี้หากเปิดเฉพาะ Android Live Updates
เลือก widget และ schema version
Anchor link to-
ใน Widget ให้เลือกประเภท Live Activity ที่เผยแพร่แล้วสำหรับการ์ดนี้ ฟิลด์เนื้อหาด้านล่างมาจากตัวเลือกนี้ เมื่อเป็น Update หรือ End ฟิลด์ Widget จะเป็นแบบอ่านอย่างเดียว สืบทอดมาจากองค์ประกอบ Card created by
-
ใน Schema version ให้เลือกว่าจะใช้ schema ของ widget นั้นเวอร์ชันที่เผยแพร่แล้วเวอร์ชันใด ฟิลด์ Card content มาจากเวอร์ชันนี้ ใน Update และ End ฟิลด์ Schema version ยังคงเป็นตัวเลือกที่ปรับได้: คุณสามารถเลือกเวอร์ชันที่เผยแพร่แล้วอื่นของ widget ที่สืบทอดมาเดียวกันซึ่งแตกต่างจากที่ Start ที่เชื่อมโยงใช้

ตั้งค่าแอตทริบิวต์คงที่ของการ์ด (เฉพาะ Start)
Anchor link toใน Start ภายใต้ Card attributes ให้เพิ่มฟิลด์ที่คงที่ตลอดอายุการใช้งานของการ์ด ตั้งค่าเพียงครั้งเดียวและไม่เปลี่ยนแปลงอีก เช่น หมายเลขเที่ยวบินหรือ ID คำสั่งซื้อ สิ่งเหล่านี้แยกจากฟิลด์ Card content ด้านล่าง ค่าเหล่านั้นสามารถเปลี่ยนแปลงได้ใน Update
ขอรายการ Field name ที่แน่นอนจากนักพัฒนา iOS ของคุณ ชื่อเหล่านั้นคงที่ตลอดอายุการใช้งานของการ์ด (ActivityAttributes ของแอป) อย่าใช้ชื่อ Card content ที่เปลี่ยนแปลง (ContentState ของแอป)
- คลิก Add attribute
- ตั้งค่า Field name และ Value สำหรับแต่ละแอตทริบิวต์ที่คุณต้องการ
Update และ End ไม่ได้ตั้งค่าแอตทริบิวต์ สิ่งที่ Start ตั้งค่าไว้สำหรับการ์ดนี้จะคงที่
กรอกเนื้อหาการ์ด
Anchor link toภายใต้ Card content ให้พิมพ์ค่าตามตัวอักษรหรือ placeholder การปรับให้เป็นส่วนตัวลงในแต่ละฟิลด์ จะมีหนึ่งฟิลด์ปรากฏต่อหนึ่งพร็อพเพอร์ตี้ใน schema เวอร์ชันที่เลือก

การกรอกล่วงหน้าใน Update และ End
Anchor link toใน Update หรือ End หาก Card content สำหรับ Card language ปัจจุบันว่างเปล่า (รวมถึงภาษาที่คุณเพิ่งเพิ่ม) Pushwoosh จะกรอกฟิลด์ล่วงหน้าจากองค์ประกอบ Start ที่เชื่อมโยงเมื่อคุณเปิดการตั้งค่า:
- ภาษาเดียวกับ Start หากภาษานั้นมีเนื้อหา
- หากไม่มี ใช้เนื้อหา
defaultของ Start - หาก Start ไม่มีทั้งสองอย่าง ให้ปล่อยฟิลด์ว่างไว้และกรอกเอง
ค่าที่กรอกล่วงหน้ายังคงแก้ไขได้ คลิก Apply เฉพาะเมื่อคุณต้องการเก็บการแก้ไขไว้ การเปิดองค์ประกอบเพียงอย่างเดียวไม่เปลี่ยนแปลง journey ที่กำลังทำงานอยู่
ฟิลด์ที่คุณปล่อยว่างไว้ใน Update หรือ End จะไม่ถูกส่ง สิ่งที่การ์ดแสดงในฟิลด์เหล่านั้นขึ้นอยู่กับแอปของคุณ: อาจเก็บค่าก่อนหน้าไว้ ล้างค่าทิ้ง หรือทำอย่างอื่น สอบถามทีมพัฒนาของคุณว่าแอปจัดการกรณีนี้อย่างไร
ใน End, Card content เป็นทางเลือก ฟิลด์ที่คุณกรอกจะกลายเป็นค่าสุดท้ายที่แสดงก่อนการ์ดปิด
ตั้งค่าลำดับความสำคัญและเวลาในการส่ง
Anchor link to-
ใน Delivery priority ให้เลือกว่า iOS ควรส่งการอัปเดตนี้เมื่อใด:
- Immediate: iOS ส่งทันทีและสามารถปลุกโทรศัพท์ได้ (และเล่นเสียง หากคุณตั้งค่าไว้)
- Quiet: iOS อาจส่งในภายหลังพร้อมกับการอัปเดตอื่นๆ และไม่ปลุกโทรศัพท์ทันที
- Default (batched): iOS ใช้การส่งแบบกลุ่มเริ่มต้นของตัวเองและไม่ปลุกโทรศัพท์ทันที
-
ใน Sound ให้เลือกเสียงจากรายการ ทีมพัฒนาของคุณเพิ่มไฟล์เสียงลงในบันเดิลแอป iOS ดู เสียง push แบบกำหนดเอง เสียงจะเล่นเฉพาะเมื่อมี Alert title หรือ Alert text เช่นเดียวกับแบนเนอร์
-
ขึ้นอยู่กับ Action ที่คุณตั้งค่าสำหรับองค์ประกอบนี้ (Start, Update หรือ End) ให้กรอกหนึ่งในตัวเลือกต่อไปนี้:
- Start หรือ Update: ตั้งค่า Stale after, min เป็นจำนวนนาทีที่ข้อมูลบนการ์ดควรดูเป็นข้อมูลใหม่ เมื่อเวลานั้นสิ้นสุดลง iOS จะทำให้ตัวเลขดูจางลงว่าล้าสมัย การ์ดยังคงอยู่บนหน้าจอล็อก เพื่อให้ตัวเลขยังคงดูเป็นข้อมูลปัจจุบัน ให้ส่ง Update อีกครั้งก่อนที่เวลาจะสิ้นสุด
- End: ตั้งค่า Dismiss after, min เป็นระยะเวลาที่การ์ดที่ปิดแล้วยังคงอยู่บนหน้าจอล็อกก่อนที่ iOS จะลบออก ปล่อยไว้ที่
0และการ์ดจะยังคงแสดง Card content สุดท้ายจนกว่า iOS จะยกเลิกเองภายในเวลาไม่เกิน 4 ชั่วโมง
-
คุณสามารถตั้งค่า Relevance score เป็นตัวเลขตั้งแต่ 1 ถึง 100 ได้ตามต้องการ เมื่อบุคคลหนึ่งมี Live Activity ที่ใช้งานอยู่มากกว่าหนึ่งรายการจากแอปของคุณพร้อมกัน iOS จะแสดงรายการที่มีคะแนนสูงกว่าก่อน ปล่อยไว้ที่
0เพื่อไม่ตั้งค่าความชอบ Pushwoosh จะไม่ส่งคะแนน0ไปยัง Apple เลย ดู กิจกรรมหลายรายการต่อหนึ่งอุปกรณ์ สำหรับภาพรวมทั้งหมด

กรอกการแจ้งเตือน Android
Anchor link toกรอกหัวข้อ ข้อความ แถบความคืบหน้า และเวลาในส่วนหัวของการแจ้งเตือน Android ส่วนนี้จะปรากฏเฉพาะเมื่อเปิด Android Live Updates และใช้ Card language เดียวกับการ์ด iOS
-
ตั้งค่า Notification title สำหรับทุกภาษาที่คุณกรอกสำหรับ Android ใน Start และ Update journey จะทำงานไม่ได้จนกว่าทุกภาษาเหล่านั้นจะมีหัวข้อ ภาษาที่ไม่มีหัวข้อจะแสดงข้อความเตือนในฟอร์ม
-
ตั้งค่า Notification text

-
ตั้งค่าแถบความคืบหน้า:
- Progress: พิมพ์ตัวเลขหรือ placeholder ในรูปแบบ
{name}(หรือ{name|format}หรือ{name|format|default}ก็ได้) สำหรับตำแหน่งที่แถบควรอยู่ ในหน่วยเดียวกับความยาวของ segment - Segments: คลิก Add segment สำหรับแต่ละส่วนที่มีสีของแถบ และตั้งค่า Color แบบ hex (
#RRGGBBหรือ#AARRGGBB) และ Length ให้แต่ละส่วน ความยาวของ segment ทั้งหมดรวมกันเป็นแถบเต็ม - Animate the bar without a known end: เปิดเพื่อแสดงแถบเคลื่อนไหวแทนค่า Progress
- Hide the progress bar: เปิดเพื่อแสดงการ์ดโดยไม่มีแถบ

- Progress: พิมพ์ตัวเลขหรือ placeholder ในรูปแบบ
-
ตั้งค่าเวลาในส่วนหัว:
- Header time: พิมพ์ Unix timestamp เป็นวินาที (ไม่ใช่มิลลิวินาที) หรือ placeholder สำหรับช่วงเวลาที่นาฬิกาในส่วนหัวของการ์ดควรแสดง ตัวอย่างเช่น
1735689600หมายถึง 2025-01-01 00:00 UTC หากตั้งค่าทั้งฟิลด์นี้และ Header time after, min จะใช้ Header time - Header time after, min: ตั้งค่าจำนวนนาทีหลังการส่งที่เวลาในส่วนหัวควรแสดง
- Run the header time as a timer: เปิดเพื่อแสดง Header time เป็นนาฬิกาที่เดินอยู่แทนค่าคงที่ ตัวเลือกนี้จะแสดง Count down to the header time
- Count down to the header time: เปิดเพื่อนับถอยหลังไปยัง Header time แทนการนับขึ้นจากเวลาส่ง
- Hide the header time: เปิดเพื่อแสดงการ์ดโดยไม่มีเวลาในส่วนหัว

- Header time: พิมพ์ Unix timestamp เป็นวินาที (ไม่ใช่มิลลิวินาที) หรือ placeholder สำหรับช่วงเวลาที่นาฬิกาในส่วนหัวของการ์ดควรแสดง ตัวอย่างเช่น
ฟิลด์ใดๆ ข้างต้นสามารถมี placeholder ได้ ซึ่งจะถูกแทนค่าแบบเดียวกับฟิลด์ Card content ของ iOS: จากอีเวนต์ journey หรือปรับให้เป็นส่วนตัวด้วยแอตทริบิวต์ของอีเวนต์
การแตะที่การแจ้งเตือนจะเปิดแอป เช่นเดียวกับ push ปกติ
ตั้งค่าแบนเนอร์แจ้งเตือน
Anchor link toส่วนนี้ใช้เฉพาะเมื่อเปิด iOS Live Activity หากเปิดเฉพาะ Android Live Updates ฟิลด์เหล่านี้จะถูกซ่อนและไม่มีการส่งข้อมูลใดๆ
สำหรับทั้งสามการกระทำ (Start, Update และ End):
- ใน Alert title ให้ตั้งค่าหัวข้อแบนเนอร์ที่แสดงบนหน้าจอล็อก
- ใน Alert text ให้ตั้งค่าข้อความแบนเนอร์

เลือกว่าอุปกรณ์ใดจะได้รับการ์ด
Anchor link toการระบุที่อยู่จะถูกตั้งค่าเพียงครั้งเดียว ใน Start ปล่อยให้สวิตช์ทั้งสองปิดอยู่เพื่อส่งการ์ดไปยังอุปกรณ์ที่ผู้เดินทางเข้าสู่ journey การเปิดสวิตช์หนึ่งจะปิดอีกสวิตช์หนึ่ง:
- Send to all devices of this user: ส่งไปยังทุกอุปกรณ์ที่ลงทะเบียนภายใต้ User ID ของผู้เดินทางคนนั้น ไม่ใช่แค่อุปกรณ์ที่พวกเขาใช้เข้าสู่ journey
- Send to the last active device only: ส่งไปยังอุปกรณ์เดียวที่ User ID นั้นใช้ล่าสุด แทนที่จะส่งไปยังทุกอุปกรณ์หรืออุปกรณ์ที่เข้า
ใน Update และ End ให้ตรวจสอบ Delivery (from the start element) ซึ่งระบุชื่อโหมดการระบุที่อยู่จาก Start ที่เชื่อมโยง การอัปเดตสามารถเข้าถึงได้เฉพาะการ์ดเดียวกันเท่านั้น ดังนั้นจึงออกไปในลักษณะเดียวกัน
ปรับให้เนื้อหาเป็นส่วนตัว
Anchor link toใช้สิ่งนี้เมื่อ placeholder ใน Alert title, Alert text, Card content หรือ Notification title, Notification text, Progress หรือ Header time ของ Android ควรรับค่าจากอีเวนต์ journey หรือการเข้าที่ใช้ API แทนที่จะเป็นแท็กอุปกรณ์
- ภายใต้ Overwrite personalization ให้เปิด Personalise message with event attributes
- ทำเครื่องหมายที่ช่อง Overwrite placeholder ข้าง placeholder แต่ละรายการที่คุณต้องการแมปใหม่
- แมป placeholder นั้นกับแอตทริบิวต์ของอีเวนต์

บันทึกองค์ประกอบ
Anchor link toคลิก Apply เพื่อบันทึกการตั้งค่าองค์ประกอบ Apply จะบันทึกองค์ประกอบนี้ไว้ใน journey แต่ไม่ได้ยืนยันว่าการ์ดปรากฏบนอุปกรณ์แล้ว หลังจาก journey เริ่มทำงาน ให้ตรวจสอบ Total entries และการหลุดออกในขั้นตอนนี้ และตรวจสอบการ์ดบน iPhone ที่ใช้ทดสอบ อุปกรณ์ Android 16 ขึ้นไปที่ใช้ทดสอบ หรือทั้งสองอย่าง ขึ้นอยู่กับแพลตฟอร์มที่คุณเปิดไว้
ข้อจำกัด
Anchor link to- สถิติองค์ประกอบ: ในขั้นตอนนี้ ให้ตรวจสอบ Total entries แถว Delivery (โหมดการระบุที่อยู่) และการหลุดออก (No recipient for the card, Live Activity send failed) ใช้ No recipient for the card เพื่อดูว่าการส่งข้อความไม่พบอุปกรณ์สำหรับแพลตฟอร์มที่เปิดไว้ในโหมดนั้น ไม่ใช่ว่าอุปกรณ์ไม่มีโทเค็น Live Activity ขั้นตอนนี้ไม่รายงานว่าอุปกรณ์แสดงการ์ดหรือผู้ใช้เปิดการ์ดหรือไม่
- เสียงไม่รับประกันในทุกการอัปเดต: iOS จำกัดอัตราการแจ้งเตือน Live Activity ด้วยตัวเอง การอัปเดตที่เหมือนกันอาจเล่นเสียงครั้งหนึ่งและมาถึงแบบเงียบในครั้งถัดไป
- การกระทำ Start จำนวนมากติดต่อกันระหว่างการทดสอบ: หากคุณส่งการกระทำ Start ประมาณสิบครั้งสำหรับบุคคลเดียวกันในเวลาอันสั้น (เช่น ขณะทดสอบ journey) Apple อาจหยุดแสดงการ์ดใหม่และไม่ส่งคืนข้อผิดพลาด ใน journey บุคคลนั้นอาจยังคงดูเหมือนได้รับการส่งแล้ว ให้เว้นช่วงระหว่างการรันทดสอบ