सामग्री पर जाएं

नेटिव इन-ऐप टेम्प्लेट सिंटैक्स

नेटिव इन-ऐप्स सीधे SDK द्वारा रेंडर किए जाते हैं। इसमें कोई WebView शामिल नहीं है। index.html पेज के बजाय, ZIP रिसोर्स में एक native-config.json फ़ाइल होती है जो संदेश को संरचित डेटा (लेआउट प्रकार, टेक्स्ट, रंग, चित्र, बटन) के रूप में वर्णित करती है। SDK इस फ़ाइल को पढ़ता है और मेल खाने वाले नेटिव व्यू को ड्रॉ करता है, जो एम्बेडेड वेब पेज की तुलना में स्मूथ एनिमेशन और बेहतर प्रदर्शन देता है।

यह गाइड native-config.json स्कीमा का दस्तावेजीकरण करती है: प्रत्येक डिस्प्ले प्रकार के लिए फ़ील्ड, प्रकार और उदाहरण। क्लासिक HTML-आधारित प्रारूप के लिए, रिच मीडिया टेम्प्लेट सिंटैक्स देखें।

पूर्वापेक्षाएँ

Anchor link to

नेटिव इन-ऐप्स के लिए आवश्यक है:

  • iOS: SDK 7.2.0 या बाद का (बैनर, कैरोसेल और शीट के लिए 7.2.1+)
  • Android: SDK 6.10.0 या बाद का (बैनर, कैरोसेल और शीट के लिए 6.10.1+)

अभी तक हर डिस्प्ले प्रकार दोनों प्लेटफॉर्म पर उपलब्ध नहीं है। किसी विशिष्ट प्रारूप पर निर्भर होने से पहले प्लेटफ़ॉर्म समर्थन की जाँच करें।

प्लेटफ़ॉर्म समर्थन

Anchor link to
डिस्प्ले प्रकार
iOS
Android
modal✅ 7.2.0+✅ 6.10.0+
fullscreen✅ 7.2.0+✅ 6.10.0+
stories✅ 7.2.0+✅ 6.10.0+
banner✅ 7.2.1+✅ 6.10.1+
carousel✅ 7.2.1+✅ 6.10.1+
sheet✅ 7.2.1+✅ 6.10.1+
videoअभी उपलब्ध नहीं है
pipअभी उपलब्ध नहीं है
scratchcardअभी उपलब्ध नहीं है
spinwheelअभी उपलब्ध नहीं है

टेम्प्लेट संरचना

Anchor link to

एक नेटिव इन-ऐप टेम्प्लेट एक ZIP आर्काइव है, जो एक नियमित रिच मीडिया टेम्प्लेट के समान है, सिवाय इसके कि रूट में index.html के बजाय एक native-config.json फ़ाइल होती है:

<template>.zip
├── native-config.json ← आवश्यक, लेआउट और सामग्री
├── pushwoosh.json ← वैकल्पिक, स्थानीयकरण (नीचे देखें)

native-config.json (image, poster, fallback, url पर pip/video) से संदर्भित चित्र और वीडियो पूर्ण HTTPS URL होने चाहिए। SDK उन्हें नेटवर्क पर लोड करता है। यह आर्काइव से स्थानीय फ़ाइलों को नहीं पढ़ता है।

कॉन्फ़िग स्वयं एक एकल JSON ऑब्जेक्ट है:

{ "displayType": "<type>", "<type>": { /* इस प्रकार के लिए सामग्री ब्लॉक */ } }

displayType नीचे दिए गए दस प्रारूपों में से एक का चयन करता है। मेल खाने वाली कुंजी के तहत ऑब्जेक्ट उस प्रारूप की सामग्री रखता है। एक अज्ञात displayType, एक अनुपलब्ध सामग्री ब्लॉक, या एक खाली आवश्यक सूची (items के लिए carousel/stories, segments के लिए spinwheel) वाला कॉन्फ़िग अमान्य है। SDK टूटे हुए लेआउट को रेंडर करने के बजाय इसे दिखाना छोड़ देता है।

डिलीवरी सेटिंग्स (प्रारंभ/अंतिम तिथियां और फ़्रीक्वेंसी कैपिंग) native-config.json का हिस्सा नहीं हैं। उन्हें किसी भी अन्य इन-ऐप के लिए उसी तरह कॉन्फ़िगर किया जाता है, अभियान के डिस्प्ले सेटिंग्स चरण में।

फ़्रीक्वेंसी कैपिंग को नेटिव इन-ऐप्स पर प्रभावी होने के लिए एक स्पष्ट SDK-साइड ऑप्ट-इन की भी आवश्यकता होती है। SDK एकीकरण देखें।

प्रत्येक रंग मान एक CSS हेक्स स्ट्रिंग है: #RGB, #RGBA, #RRGGBB, या #RRGGBBAA। चारों रूपों में अग्रणी # आवश्यक है।

साझा बिल्डिंग ब्लॉक्स

Anchor link to

ये छोटे ऑब्जेक्ट कई डिस्प्ले प्रकारों में पुन: उपयोग किए जाते हैं।

टेक्स्ट

Anchor link to
फ़ील्डप्रकारआवश्यकविवरण
textstringहाँटेक्स्ट सामग्री
colorstringहाँटेक्स्ट का रंग
{ "text": "Spin for a garage perk", "color": "#FFFFFFFF" }

बॉर्डर

Anchor link to
फ़ील्डप्रकारआवश्यकविवरण
colorstringहाँबॉर्डर का रंग
radiusnumberहाँकोने की त्रिज्या, पॉइंट्स में
{ "color": "#0E72E5FF", "radius": 12 }

एक पृष्ठभूमि रंग के ऊपर एक वैकल्पिक छवि। fullscreen और scratchcard द्वारा उपयोग किया जाता है।

फ़ील्डप्रकारआवश्यकविवरण
imagestringनहींकवर छवि URL
backgroundstringहाँछवि के नीचे (या बजाय) दिखाया गया पृष्ठभूमि रंग
{ "image": "https://example.com/cover.jpg", "background": "#1A1A1EFF" }

एक्शन

Anchor link to

type पर एक विभेदित संघ:

संस्करणफ़ील्डविवरण
{ "type": "close" }कोई नहींइन-ऐप बंद करता है
{ "type": "url", "url": string }url आवश्यकएक URL या डीप लिंक खोलता है
{ "type": "url", "url": "pushwoosh://sale" }
फ़ील्डप्रकारआवश्यकविवरण
textTextहाँबटन लेबल
backgroundstringहाँबटन भरण रंग
borderBorderहाँबटन बॉर्डर
actionActionहाँटैप पर फायर किया गया एक्शन

spinButton (spinwheel) और revealButton (scratchcard) action के बिना समान आकार का उपयोग करते हैं। उनका व्यवहार (पहिया घुमाएं, कार्ड प्रकट करें) अंतर्निहित है।

{
"text": { "text": "Book a test drive", "color": "#FFFFFFFF" },
"background": "#0E72E5FF",
"border": { "color": "#0E72E5FF", "radius": 12 },
"action": { "type": "url", "url": "pushwoosh://sale" }
}

इनाम

Anchor link to

scratchcard और spinwheel द्वारा दिखाया गया पुरस्कार पैनल। एक वैध इनाम में एक title या एक code होता है।

फ़ील्डप्रकारआवश्यकविवरण
titleTextनहींइनाम की हेडलाइन
messageTextनहींइनाम का विवरण
codestringनहींप्रोमो कोड, एक कॉपी बटन के साथ प्रस्तुत किया गया
buttonButtonनहींअपनी कार्रवाई के साथ पुष्टिकरण बटन
{
"title": { "text": "20% off detailing", "color": "#111111FF" },
"message": { "text": "Valid for any full-detail booking this month.", "color": "#555555FF" },
"code": "APEX20",
"button": {
"text": { "text": "Book detailing", "color": "#FFFFFFFF" },
"background": "#B3227CFF",
"border": { "color": "#B3227CFF", "radius": 12 },
"action": { "type": "url", "url": "pushwoosh://detailing" }
}
}

डिस्प्ले प्रकार

Anchor link to

बैनर

Anchor link to

स्क्रीन के ऊपरी या निचले किनारे पर डॉक किया गया एक कॉम्पैक्ट बार।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
positiontop | bottomहाँस्क्रीन का किनारा
backgroundstringहाँबार का पृष्ठभूमि रंग
imagestringनहींबाईं ओर थंबनेल
titleTextनहींएकल-पंक्ति शीर्षक, एक इलिप्सिस के साथ छोटा किया गया
messageTextनहींबॉडी टेक्स्ट, 2 पंक्तियों तक
actionActionहाँजब बार स्वयं टैप किया जाता है तो फायर किया जाता है
autoDismissnumberनहींइतने सेकंड के बाद स्वतः बंद करें। बंद होने तक रखने के लिए छोड़ दें
{
"displayType": "banner",
"banner": {
"showClose": true,
"position": "bottom",
"background": "#4B5057FF",
"image": "https://example.com/thumb.jpg",
"title": { "text": "Alpine A110 just dropped", "color": "#FFFFFFFF" },
"message": { "text": "The featherweight icon — tap to see the build", "color": "#FFFFFFFF" },
"action": { "type": "url", "url": "pushwoosh://product/x6f" },
"autoDismiss": 6
}
}

कैरोसेल

Anchor link to

पेज-इंडिकेटर डॉट्स के साथ कार्ड का एक पूर्ण-स्क्रीन, स्वाइप करने योग्य सेट।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
itemsItem[]हाँकार्ड (कम से कम 1)

कैरोसेल आइटम:

फ़ील्डप्रकारआवश्यकविवरण
titleTextनहींकार्ड का शीर्षक
messageTextनहींकार्ड का उपशीर्षक
imagestringनहींकार्ड की छवि
actionActionनहींजब कार्ड टैप किया जाता है तो फायर किया जाता है
{
"displayType": "carousel",
"carousel": {
"showClose": true,
"items": [
{
"image": "https://example.com/card-1.jpg",
"title": { "text": "AMG GT R", "color": "#FFFFFFFF" },
"message": { "text": "585 hp biturbo V8 — just landed", "color": "#FFFFFFFF" },
"action": { "type": "url", "url": "pushwoosh://product/n6fx" }
},
{
"image": "https://example.com/card-2.jpg",
"title": { "text": "Alpine A110", "color": "#FFFFFFFF" },
"message": { "text": "Featherweight icon — limited allocation", "color": "#FFFFFFFF" },
"action": { "type": "url", "url": "pushwoosh://product/x6f" }
}
]
}
}

फुलस्क्रीन

Anchor link to

एक एज-टू-एज कवर छवि जिसके ऊपर टेक्स्ट और बटन होते हैं।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
coverCoverहाँपृष्ठभूमि छवि और रंग
titleTextनहींशीर्षक
messageTextनहींबॉडी टेक्स्ट
buttonsButton[]हाँनीचे बटन (खाली हो सकते हैं)
{
"displayType": "fullscreen",
"fullscreen": {
"showClose": true,
"cover": { "image": "https://example.com/hero.jpg", "background": "#1A1A1EFF" },
"title": { "text": "Pure Maranello", "color": "#FFFFFFFF" },
"message": { "text": "The prancing horse, reimagined.", "color": "#EBEBEBFF" },
"buttons": [
{
"text": { "text": "Reserve now", "color": "#FFFFFFFF" },
"background": "#0E72E5FF",
"border": { "color": "#0E72E5FF", "radius": 8 },
"action": { "type": "url", "url": "pushwoosh://sale" }
},
{
"text": { "text": "Not now", "color": "#FFFFFFFF" },
"background": "#00000000",
"border": { "color": "#FFFFFF99", "radius": 8 },
"action": { "type": "close" }
}
]
}
}

मोडल

Anchor link to

एक केंद्रित कार्ड।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
dimBackgroundbooleanहाँकार्ड के पीछे स्क्रीन को मंद करें
backgroundstringहाँकार्ड का पृष्ठभूमि रंग
imagestringनहींकवर छवि
titleTextनहींशीर्षक
messageTextनहींबॉडी टेक्स्ट
buttonsButton[]हाँटेक्स्ट के नीचे बटन (खाली हो सकते हैं)
{
"displayType": "modal",
"modal": {
"showClose": true,
"dimBackground": true,
"background": "#FFFFFFFF",
"image": "https://example.com/cover.jpg",
"title": { "text": "The GT R has landed", "color": "#4B5057FF" },
"message": { "text": "585 hp — now in the showroom.", "color": "#4B5057FF" },
"buttons": [
{
"text": { "text": "Book a test drive", "color": "#FFFFFFFF" },
"background": "#0E72E5FF",
"border": { "color": "#0E72E5FF", "radius": 12 },
"action": { "type": "url", "url": "pushwoosh://sale" }
},
{
"text": { "text": "Not now", "color": "#4B5057FF" },
"background": "#FFFFFFFF",
"border": { "color": "#4B5057FF", "radius": 12 },
"action": { "type": "close" }
}
]
}
}

एक फ्लोटिंग पिक्चर-इन-पिक्चर वीडियो विंडो जो स्क्रीन के एक कोने में डॉक की गई है।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
positionbottom-right | bottom-left | top-right | top-leftहाँस्क्रीन का कोना
loopbooleanहाँप्लेबैक लूप करें
mutedbooleanहाँम्यूट करके शुरू करें
urlstringहाँवीडियो URL
posterstringनहींप्लेबैक शुरू होने से पहले दिखाया गया पोस्टर
fallbackstringनहींवीडियो चलाने में विफल होने पर दिखाई गई छवि
widthnumberहाँस्क्रीन की चौड़ाई के प्रतिशत के रूप में विंडो की चौड़ाई, 15-70 तक क्लैंप की गई
aspectRationumberहाँविंडो की ऊंचाई-से-चौड़ाई का अनुपात
borderRadiusnumberनहींविंडो के कोने की त्रिज्या, पॉइंट्स में
actionActionनहींजब विंडो स्वयं टैप की जाती है तो फायर किया जाता है

pip पर कोई कॉन्फ़िगर करने योग्य बटन नहीं हैं। विंडो नियंत्रण (पूर्ण स्क्रीन पर विस्तार, म्यूट, बंद) सिस्टम-प्रदत्त हैं।

{
"displayType": "pip",
"pip": {
"showClose": true,
"position": "bottom-right",
"loop": true,
"muted": true,
"url": "https://example.com/teaser.mp4",
"poster": "https://example.com/poster.jpg",
"width": 40,
"aspectRatio": 0.5625,
"action": { "type": "url", "url": "pushwoosh://product/x6f" }
}
}

स्क्रैचकार्ड

Anchor link to

एक कार्ड जिसमें इनाम एक खरोंचने योग्य फॉइल परत के नीचे छिपा होता है।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
backgroundstring | string[]हाँकार्ड का पृष्ठभूमि रंग, या ग्रेडिएंट स्टॉप
revealThresholdnumberहाँइनाम प्रकट होने से पहले फॉइल का वह अंश जिसे खरोंचना होगा (0-1)
coverCoverहाँफॉइल परत। image के बिना, पृष्ठभूमि रंग पर “यहां खरोंचें” का संकेत दिखाया जाता है
revealButtonButton (no action)नहीं”तुरंत प्रकट करें” बटन
titleTextनहींशीर्षक
messageTextनहींबॉडी टेक्स्ट
rewardRewardहाँफॉइल के नीचे छिपा हुआ पुरस्कार
{
"displayType": "scratchcard",
"scratchcard": {
"showClose": true,
"background": ["#3A1C71FF", "#B3227CFF", "#E0503AFF"],
"revealThreshold": 0.55,
"cover": { "background": "#C9CDD6FF" },
"revealButton": {
"text": { "text": "Reveal without scratching", "color": "#3A1C71FF" },
"background": "#F2DFF5FF",
"border": { "color": "#F2DFF5FF", "radius": 10 }
},
"title": { "text": "Your loyalty reward", "color": "#FFFFFFFF" },
"message": { "text": "Scratch the foil to reveal this week's garage perk.", "color": "#F2DFF5FF" },
"reward": {
"title": { "text": "20% off detailing", "color": "#111111FF" },
"message": { "text": "Valid for any full-detail booking this month.", "color": "#555555FF" },
"code": "APEX20",
"button": {
"text": { "text": "Book detailing", "color": "#FFFFFFFF" },
"background": "#B3227CFF",
"border": { "color": "#B3227CFF", "radius": 12 },
"action": { "type": "url", "url": "pushwoosh://detailing" }
}
}
}
}

एक कार्ड जो निचले किनारे पर पिन किया गया है, जिसमें एक ड्रैग हैंडल है।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
dimBackgroundbooleanहाँशीट के पीछे स्क्रीन को मंद करें
backgroundstringहाँशीट का पृष्ठभूमि रंग
imagestringनहींकवर छवि
titleTextनहींशीर्षक
messageTextनहींबॉडी टेक्स्ट
buttonsButton[]हाँटेक्स्ट के नीचे बटन (खाली हो सकते हैं)
{
"displayType": "sheet",
"sheet": {
"showClose": true,
"dimBackground": true,
"background": "#FFFFFFFF",
"image": "https://example.com/cover.jpg",
"title": { "text": "Your quote is ready", "color": "#000000FF" },
"message": { "text": "Guaranteed buyout for your A110: $68,500.", "color": "#000000FF" },
"buttons": [
{
"text": { "text": "Get guaranteed quote", "color": "#FFFFFFFF" },
"background": "#0E72E5FF",
"border": { "color": "#0E72E5FF", "radius": 12 },
"action": { "type": "url", "url": "pushwoosh://sale" }
}
]
}
}

स्पिनव्हील

Anchor link to

भारित खंडों और एक केंद्र हब बटन के साथ एक भाग्य का पहिया।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
backgroundstring | string[]हाँकार्ड का पृष्ठभूमि रंग, या ग्रेडिएंट स्टॉप
winIndexnumberहाँजीतने वाले खंड का सूचकांक (0-आधारित)
spinButtonButton (no action)हाँकेंद्र हब बटन
titleTextनहींशीर्षक
messageTextनहींबॉडी टेक्स्ट
rewardRewardहाँजीतने वाले स्पिन के लिए इनाम (बिना अपने खंडों के लिए फ़ॉलबैक)
loseTitleTextनहींहारने पर दिखाई गई हेडलाइन
segmentsSegment[]हाँपहिया खंड (SDK 2-12 की अपेक्षा करता है)

खंड:

फ़ील्डप्रकारआवश्यकविवरण
messageTextहाँखंड लेबल
colorstringनहींखंड का रंग। पहिया के चारों ओर लागू एक फ़ॉलबैक पैलेट के लिए छोड़ दें
weightnumberहाँसापेक्ष खंड आकार
rewardRewardनहींखंड-विशिष्ट इनाम
{
"displayType": "spinwheel",
"spinwheel": {
"showClose": true,
"background": ["#1B1B46FF", "#5B2B8FFF", "#B0338AFF"],
"winIndex": 1,
"spinButton": {
"text": { "text": "SPIN", "color": "#1B1B46FF" },
"background": "#F2C94CFF",
"border": { "color": "#D9A02BFF", "radius": 36 }
},
"title": { "text": "Spin for a garage perk", "color": "#FFFFFFFF" },
"message": { "text": "One spin — every slice wins this week.", "color": "#E3D9F2FF" },
"reward": {
"title": { "text": "You won a garage perk!", "color": "#FFFFFFFF" },
"code": "APEXPERK",
"button": {
"text": { "text": "Claim", "color": "#FFFFFFFF" },
"background": "#5B2B8FFF",
"border": { "color": "#5B2B8FFF", "radius": 12 },
"action": { "type": "close" }
}
},
"segments": [
{ "message": { "text": "5% off", "color": "#FFFFFFFF" }, "color": "#5856D6FF", "weight": 1 },
{
"message": { "text": "20% off", "color": "#FFFFFFFF" },
"color": "#30B0C7FF",
"weight": 1,
"reward": {
"title": { "text": "20% off your next service", "color": "#FFFFFFFF" },
"code": "SPIN20",
"button": {
"text": { "text": "Claim service deal", "color": "#FFFFFFFF" },
"background": "#30B0C7FF",
"border": { "color": "#30B0C7FF", "radius": 12 },
"action": { "type": "url", "url": "pushwoosh://service" }
}
}
},
{ "message": { "text": "Free wash", "color": "#FFFFFFFF" }, "color": "#FF2D55FF", "weight": 1 }
]
}
}

स्टोरीज़

Anchor link to

सोशल मीडिया स्टोरीज़ के समान, शीर्ष पर प्रगति बार के साथ पूर्ण-स्क्रीन स्लाइड।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
loopbooleanहाँअंतिम स्लाइड के बाद पहली स्लाइड से पुनरारंभ करें
itemsItem[]हाँस्लाइड (कम से कम 1)

स्टोरीज़ आइटम:

फ़ील्डप्रकारआवश्यकविवरण
titleTextनहींशीर्षक
messageTextनहींउपशीर्षक
imagestringनहींस्लाइड पृष्ठभूमि छवि
buttonsButton[]हाँनीचे CTA बटन (खाली हो सकते हैं)
durationnumberहाँस्लाइड की अवधि, सेकंड में
{
"displayType": "stories",
"stories": {
"showClose": true,
"loop": false,
"items": [
{
"image": "https://example.com/slide-1.jpg",
"title": { "text": "AMG GT R", "color": "#FFFFFFFF" },
"message": { "text": "The Green Hell special", "color": "#FFFFFFFF" },
"buttons": [
{
"text": { "text": "Configure yours", "color": "#FFFFFFFF" },
"background": "#0F0F0FFF",
"border": { "color": "#0F0F0FFF", "radius": 26 },
"action": { "type": "url", "url": "pushwoosh://product/n6fx" }
}
],
"duration": 4
},
{
"image": "https://example.com/slide-2.jpg",
"title": { "text": "Alpine A110", "color": "#FFFFFFFF" },
"message": { "text": "The featherweight legend, reborn", "color": "#FFFFFFFF" },
"buttons": [],
"duration": 4
}
]
}
}

वीडियो

Anchor link to

ऊपर टेक्स्ट और बटन के साथ पूर्ण-स्क्रीन वीडियो।

फ़ील्डप्रकारआवश्यकविवरण
showClosebooleanहाँएक बंद (✕) बटन दिखाएं
loopbooleanहाँप्लेबैक लूप करें
mutedbooleanहाँम्यूट करके शुरू करें
urlstringहाँवीडियो URL (HLS या MP4)
posterstringनहींप्लेबैक शुरू होने से पहले दिखाया गया पोस्टर
fallbackstringनहींवीडियो चलाने में विफल होने पर दिखाई गई छवि
titleTextनहींशीर्षक
messageTextनहींबॉडी टेक्स्ट
buttonsButton[]हाँनीचे CTA बटन (खाली हो सकते हैं)
{
"displayType": "video",
"video": {
"showClose": true,
"loop": true,
"muted": true,
"url": "https://example.com/reveal.mp4",
"poster": "https://example.com/poster.jpg",
"title": { "text": "The reveal", "color": "#FFFFFFFF" },
"message": { "text": "Watch it move before anyone else.", "color": "#EBEBEBFF" },
"buttons": [
{
"text": { "text": "Shop the lineup", "color": "#FFFFFFFF" },
"background": "#0E72E5FF",
"border": { "color": "#0E72E5FF", "radius": 14 },
"action": { "type": "url", "url": "pushwoosh://sale" }
}
]
}
}

स्थानीयकरण

Anchor link to

नेटिव इन-ऐप्स HTML रिच मीडिया के समान ही स्थानीयकरण तंत्र का पुन: उपयोग करते हैं: native-config.json में स्ट्रिंग मान {{key|type|default}} प्लेसहोल्डर ले जा सकते हैं, और अनुवाद इसके बगल में एक pushwoosh.json फ़ाइल में रहते हैं, उसी प्रारूप में जैसा कि pushwoosh.json जोड़ना में वर्णित है। एक प्लेसहोल्डर किसी भी स्ट्रिंग फ़ील्ड में, किसी भी गहराई पर (एक शीर्षक, एक बटन लेबल, एक छवि URL, एक एक्शन URL) दिखाई दे सकता है।

गतिशील सामग्री

Anchor link to

टेक्स्ट फ़ील्ड — title, message, बटन text, reward.title/reward.message, और आइटम/सेगमेंट messageगतिशील सामग्री और लिक्विड सिंटैक्स को भी स्वीकार करते हैं: पुश और ईमेल सामग्री में उपयोग किए जाने वाले समान {Tag|modifier|default} शॉर्टहैंड और {% %}/{{ }} लिक्विड टैग। Pushwoosh संदेश भेजे जाने से पहले इन्हें प्रति प्राप्तकर्ता हल करता है, उसी तरह जैसे यह पुश और ईमेल के लिए करता है।

कंट्रोल पैनल नेटिव इन-ऐप एडिटर में एक टेम्प्लेट बनाते समय, डाले गए टोकन लाइव पूर्वावलोकन में चिप्स के रूप में प्रस्तुत होते हैं, और यदि किसी टेक्स्ट फ़ील्ड का लिक्विड पार्स नहीं होता है तो सहेजें अवरुद्ध हो जाता है।

SDK एकीकरण

Anchor link to

एक बार जब आप अपने ऐप में नेटिव इन-ऐप SDK मॉड्यूल जोड़ लेते हैं, तो संदेश स्वचालित रूप से प्रदर्शित होते हैं। पुश, Customer Journey, postEvent, या इनबॉक्स द्वारा ट्रिगर किए गए संदेशों को दिखाने के लिए किसी अतिरिक्त कोड की आवश्यकता नहीं है।

SDK मैन्युअल नियंत्रण के लिए एक छोटा API भी उजागर करता है:

  • iOS: Pushwoosh.inApp (मॉड्यूल PushwooshInApp)
  • Android: PushwooshInAppUi (मॉड्यूल pushwoosh-inapp-ui)
क्षमताiOSAndroid
सीधे एक कॉन्फ़िग दिखाएं (परीक्षण/मैन्युअल उपयोग)Pushwoosh.inApp.present(config)PushwooshInAppUi.present(configJson)
जीवनचक्र और क्लिक का निरीक्षण करेंdelegate (PWInAppMessageDelegate)delegate (InAppMessageDelegate)
जांचें कि क्या स्क्रीन पर कुछ हैisPresentingisPresenting
जो कुछ भी वर्तमान में दिखाया गया है उसे खारिज करेंdismiss()dismiss()
प्रदर्शन को रोकें / फिर से शुरू करेंisPausedisPaused
maxDisplays / cooldown कैपिंग लागू करेंsetFrequencyCapEnabled(_:)setFrequencyCapEnabled(...)

डेलीगेट कॉलबैक (सभी मुख्य थ्रेड पर फायर किए गए): shouldDisplay (दिखाने से पहले एक संदेश को दबाने के लिए false लौटाएं, उदाहरण के लिए चेकआउट स्क्रीन पर), willPresent, didPresent, didClose, और clickedAction (जब उपयोगकर्ता url एक्शन पर टैप करता है, URL खुलने से पहले फायर किया जाता है)।

iOS अतिरिक्त रूप से गेमिफाइड scratchcard और spinwheel टेम्प्लेट के लिए rewardRevealed और rewardClaimed की रिपोर्ट करता है।

// iOS
Pushwoosh.inApp.delegate = self
Pushwoosh.inApp.setFrequencyCapEnabled(true)
// Android
PushwooshInAppUi.delegate = this
PushwooshInAppUi.setFrequencyCapEnabled(true)