Live Activity
Live Activity एक कार्ड है जो रीयल टाइम में अपडेट होता है, ताकि उपयोगकर्ता ऐप खोले बिना प्रगति देख सके (फ्लाइट स्टेटस, डिलीवरी, राइड, और इसी तरह की चीज़ें)। iOS पर यह लॉक स्क्रीन और Dynamic Island पर एक छोटा कार्ड है। Android 16 और बाद के संस्करणों पर, यह उसी तरह का कार्ड है जो प्रोग्रेस बार के साथ एक चालू (ongoing) नोटिफिकेशन के रूप में दिखाया जाता है।
iOS, Android, या दोनों पर उस कार्ड को शुरू करने, अपडेट करने, या समाप्त करने के लिए journey में Live Activity एलिमेंट का उपयोग करें।
प्रत्येक एलिमेंट एक कार्रवाई करता है:
- Start: कार्ड बनाएं।
- Update: मौजूदा कार्ड बदलें।
- End: कार्ड बंद करें।
बाद में उसी कार्ड को बदलने या बंद करने के लिए, एक और Live Activity एलिमेंट जोड़ें और इसे Card created by के साथ उस एलिमेंट पर वापस इंगित करें जिसने कार्ड बनाया था।
उपयोग के उदाहरण मामले
Anchor link toजब भी उपयोगकर्ता को ऐप खोले बिना लगातार बदलता स्टेटस देखना चाहिए, तब इस एलिमेंट का उपयोग करें।
- फ्लाइट स्टेटस: चेक-इन के बाद कार्ड दिखाएं। फ्लाइट के दौरान गेट, स्टेटस, और समय अपडेट रखें। लैंडिंग के बाद कार्ड हटा दें।
- फूड डिलीवरी: ऑर्डर देने पर कार्ड दिखाएं। रास्ते में कूरियर का नाम, ETA, और दूरी अपडेट रखें। डिलीवरी पर कार्ड हटा दें।
- राइड-हेलिंग: राइड का अनुरोध करने पर कार्ड दिखाएं। ड्राइवर के पास आने तक ड्राइवर, ETA, और प्लेट नंबर अपडेट रखें। राइड पूरी होने पर कार्ड हटा दें।
- ऑर्डर या अपॉइंटमेंट: ऑर्डर या बुकिंग की पुष्टि होने पर कार्ड दिखाएं। प्रगति के साथ स्टेटस अपडेट रखें। पूरा होने या विज़िट खत्म होने पर कार्ड हटा दें।
- लाइव इवेंट: इवेंट शुरू होने पर कार्ड दिखाएं। इवेंट चलने के दौरान स्कोर, पीरियड, या शेड्यूल अपडेट रखें। इवेंट समाप्त होने पर कार्ड हटा दें।
आवश्यक शर्तें
Anchor link toइस एलिमेंट को सेट अप करने से पहले, जांचें कि प्रत्येक प्लेटफ़ॉर्म को क्या चाहिए।
iOS कार्ड के लिए:
- iOS Live Activity सपोर्ट: आपके ऐप को Live Activities का समर्थन करना चाहिए। देखें iOS SDK Live Activities गाइड।
- एक प्रकाशित विजेट स्कीमा: अपनी डेवलपमेंट टीम से Applications → Configure → Live Activity schemas के तहत ऐप में Live Activity प्रकार से मेल खाने वाली स्कीमा प्रकाशित करने के लिए कहें। वे API के माध्यम से भी प्रकाशित कर सकते हैं। स्कीमा में क्या शामिल होना चाहिए, यह जानने के लिए देखें एक स्कीमा लिखना।
- सूची में विजेट: स्कीमा प्रकाशित होने के बाद, इसे इस एलिमेंट में Widget के तहत चुनें। यदि Widget सूची खाली है, तो स्कीमा अभी प्रकाशित नहीं हुई है।
Android नोटिफिकेशन के लिए:
- Android Live Updates सपोर्ट: आपके ऐप को SDK 6.11+ और
pushwoosh-liveupdatesमॉड्यूल की आवश्यकता है। Android के लिए किसी स्कीमा की आवश्यकता नहीं है। अपने 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 पर, कार्ड की (key) सेट करें ताकि बाद के Update और End चरण इस कार्ड को खोज सकें:
- Card key: event में, वह इवेंट चुनें जो कार्ड की पहचान करता है (उदाहरण के लिए journey एंट्री इवेंट)।
- Card key: attribute में, वह एट्रिब्यूट चुनें जो प्रति यात्री कुंजी को अद्वितीय बनाता है। एक बार जब आप Card key: event सेट कर देते हैं, तो यह आवश्यक हो जाता है। इसे अनसेट छोड़ने से इवेंट चयन का कोई प्रभाव नहीं पड़ता, जैसे दोनों फ़ील्ड खाली छोड़ना: प्रति यात्री एक कार्ड, डिफ़ॉल्ट यूज़र ID द्वारा पता किया गया।

Update और End को सही कार्ड से जोड़ें
Anchor link toजब Action Update या End हो, तो इस कार्ड को बनाने वाले सटीक Start एलिमेंट को इंगित करने के लिए Card created by का उपयोग करें। अन्यथा Update या End इस तक नहीं पहुंच पाएगा।
- Card created by में, उस Start एलिमेंट का Step name चुनें (उदाहरण के लिए
Order card start)।
Card created by चुनने के बाद, Card key (from the start element) उस Start से Card key: event और Card key: attribute मान दिखाता है। यह केवल पढ़ने योग्य है और पुष्टि करता है कि यह किस कार्ड की ओर इशारा कर रहा है।

कार्ड की भाषा चुनें
Anchor link toCard language iOS कार्ड और Android नोटिफिकेशन दोनों पर लागू होती है।
Card language को default या किसी विशिष्ट भाषा कोड पर सेट करें। default के तहत कंटेंट उस किसी भी भाषा के लिए फ़ॉलबैक है जिसे आप अलग से नहीं भरते।
iOS कार्ड सेट अप करें
Anchor link toयदि केवल Android Live Updates चालू है, तो इस सेक्शन को छोड़ दें।
विजेट और स्कीमा संस्करण चुनें
Anchor link to-
Widget में, इस कार्ड के लिए प्रकाशित Live Activity प्रकार चुनें। नीचे दिए गए कंटेंट फ़ील्ड इसी चयन से आते हैं। Update या End पर, Widget केवल पढ़ने योग्य है, Card created by एलिमेंट से विरासत में मिलता है।
-
Schema version में, चुनें कि उस विजेट की स्कीमा का कौन सा प्रकाशित संस्करण उपयोग करना है। Card content फ़ील्ड इसी संस्करण से आते हैं। Update और End पर, Schema version एक पिकर बना रहता है: आप उसी विरासत में मिले विजेट का कोई ऐसा प्रकाशित संस्करण चुन सकते हैं जो लिंक किए गए Start द्वारा उपयोग किए गए संस्करण से अलग हो।

कार्ड की स्थिर एट्रिब्यूट सेट करें (केवल Start)
Anchor link toStart पर, Card attributes के तहत, वे फ़ील्ड जोड़ें जो कार्ड के पूरे जीवनकाल में स्थिर रहते हैं, एक बार सेट किए जाते हैं और फिर कभी नहीं बदले जाते, जैसे फ्लाइट नंबर या ऑर्डर ID। ये नीचे दिए गए Card content फ़ील्ड से अलग हैं। वे मान Update पर बदल सकते हैं।
अपने iOS डेवलपर से सटीक Field name सूची पूछें। ये नाम कार्ड के पूरे जीवनकाल में स्थिर रहते हैं (ऐप का ActivityAttributes)। बदलते Card content नामों (ऐप का ContentState) का उपयोग न करें।
- Add attribute पर क्लिक करें।
- आपको जिस भी एट्रिब्यूट की आवश्यकता है उसके लिए Field name और Value सेट करें।
Update और End एट्रिब्यूट सेट नहीं करते। इस कार्ड के लिए Start ने जो भी सेट किया, वह स्थिर रहता है।
कार्ड कंटेंट भरें
Anchor link toCard content के तहत, प्रत्येक फ़ील्ड में एक शाब्दिक मान या पर्सनलाइज़ेशन प्लेसहोल्डर टाइप करें। चयनित स्कीमा संस्करण में प्रत्येक प्रॉपर्टी के लिए एक फ़ील्ड दिखाई देती है।

Update और End पर प्रीफ़िल
Anchor link toUpdate या End पर, यदि वर्तमान Card language के लिए Card content खाली है (जिस भाषा को आपने अभी जोड़ा है उसे शामिल करते हुए), तो जब आप सेटिंग खोलते हैं तो Pushwoosh लिंक किए गए Start एलिमेंट से फ़ील्ड प्रीफ़िल करता है:
- Start के समान भाषा, यदि उस भाषा में कंटेंट है।
- अन्यथा Start का
defaultकंटेंट। - यदि Start के पास दोनों में से कोई नहीं है, तो फ़ील्ड खाली छोड़ दें और उन्हें खुद भरें।
प्रीफ़िल किए गए मान संपादन योग्य रहते हैं। केवल तभी Apply पर क्लिक करें जब आप संपादन रखना चाहते हों। केवल एलिमेंट खोलने से चल रहा journey नहीं बदलता।
Update या End पर जो फ़ील्ड आप खाली छोड़ते हैं, वे नहीं भेजे जाते। कार्ड फिर उन फ़ील्ड में क्या दिखाता है, यह आपके ऐप पर निर्भर करता है: वह पिछला मान रख सकता है, उसे साफ़ कर सकता है, या कुछ और कर सकता है। अपने डेवलपर्स से पूछें कि आपका ऐप इसे कैसे संभालता है।
End पर, Card content वैकल्पिक है। आपके द्वारा भरा गया फ़ील्ड कार्ड बंद होने से पहले दिखाया गया अंतिम मान बन जाता है।
डिलीवरी प्राथमिकता और समय सेट करें
Anchor link to-
Delivery priority में, चुनें कि iOS को यह अपडेट कब डिलीवर करना चाहिए:
- Immediate: iOS तुरंत डिलीवर करता है और फोन को जगा सकता है (और ध्वनि बजा सकता है, यदि आपने एक सेट की है)।
- Quiet: iOS अन्य अपडेट के साथ बाद में डिलीवर कर सकता है और तुरंत फोन को नहीं जगाता।
- Default (batched): iOS अपनी खुद की डिफ़ॉल्ट बैच डिलीवरी का उपयोग करता है और तुरंत फोन को नहीं जगाता।
-
Sound में, सूची से एक ध्वनि चुनें। आपकी डेवलपमेंट टीम iOS ऐप बंडल में ध्वनि फ़ाइलें जोड़ती है। देखें कस्टम पुश ध्वनि। ध्वनि केवल 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 Apple को0स्कोर बिल्कुल नहीं भेजता। पूरी तस्वीर के लिए देखें प्रति डिवाइस कई गतिविधियां।

Android नोटिफिकेशन भरें
Anchor link toAndroid नोटिफिकेशन का शीर्षक, टेक्स्ट, प्रोग्रेस बार और हेडर समय भरें। यह सेक्शन केवल तभी दिखाई देता है जब Android Live Updates चालू हो। यह iOS कार्ड वाली ही Card language का उपयोग करता है।
-
Android के लिए आप जो भी भाषा भरते हैं, उसके लिए Notification title सेट करें। Start और Update पर, journey तब तक नहीं चल सकता जब तक इनमें से हर भाषा का शीर्षक न हो। बिना शीर्षक वाली भाषा फ़ॉर्म में एक रिमाइंडर दिखाती है।
-
Notification text सेट करें।

-
प्रोग्रेस बार सेट अप करें:
- Progress: बार कहां होना चाहिए, इसके लिए एक संख्या या
{name}रूप में प्लेसहोल्डर टाइप करें (वैकल्पिक रूप से{name|format}या{name|format|default}), सेगमेंट की लंबाई वाली इकाइयों में ही। - Segments: बार के हर रंगीन हिस्से के लिए Add segment पर क्लिक करें, और हर एक के लिए एक hex Color (
#RRGGBBया#AARRGGBB) और एक Length सेट करें। सेगमेंट की लंबाइयों का योग पूरा बार बनाता है। - Animate the bar without a known end: Progress मान के बजाय चलता हुआ बार दिखाने के लिए चालू करें।
- Hide the progress bar: बिना बार के कार्ड दिखाने के लिए चालू करें।

- Progress: बार कहां होना चाहिए, इसके लिए एक संख्या या
-
हेडर समय सेट करें:
- Header time: उस क्षण के लिए सेकंड में (मिलीसेकंड में नहीं) एक Unix टाइमस्टैम्प, या एक प्लेसहोल्डर टाइप करें, जिसे कार्ड की हेडर घड़ी को दिखाना चाहिए। उदाहरण के लिए,
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 टाइमस्टैम्प, या एक प्लेसहोल्डर टाइप करें, जिसे कार्ड की हेडर घड़ी को दिखाना चाहिए। उदाहरण के लिए,
ऊपर के किसी भी फ़ील्ड में प्लेसहोल्डर हो सकता है, जो iOS Card content फ़ील्ड की तरह ही हल होता है: 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 के तहत पंजीकृत हर डिवाइस पर भेजें, न कि केवल उस पर जिस पर वे प्रवेश किए थे।
- Send to the last active device only: हर डिवाइस या एंट्री डिवाइस के बजाय, उस एकल डिवाइस पर भेजें जिसे उस User ID ने हाल ही में सबसे अधिक उपयोग किया।
Update और End पर, Delivery (from the start element) जांचें। यह लिंक किए गए Start से एड्रेसिंग मोड का नाम बताता है। अपडेट केवल उसी कार्ड तक पहुंच सकता है, इसलिए यह उसी तरह से बाहर जाता है।
कंटेंट को पर्सनलाइज़ करें
Anchor link toइसका उपयोग तब करें जब Alert title, Alert text, Card content, या Android के Notification title, Notification text, Progress, या Header time में प्लेसहोल्डर को डिवाइस टैग के बजाय journey इवेंट या API-आधारित एंट्री से मान लेने चाहिए।
- Overwrite personalization के तहत, Personalise message with event attributes चालू करें।
- आप जिस भी प्लेसहोल्डर को फिर से मैप करना चाहते हैं उसके बगल में Overwrite 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 में व्यक्ति अभी भी डिलीवर दिख सकता है। टेस्ट रन के बीच एक अंतराल छोड़ें।