বিষয়বস্তুতে যান

নেটিভ ইন-অ্যাপ টেমপ্লেট সিনট্যাক্স

নেটিভ ইন-অ্যাপগুলি সরাসরি 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✅✅ 6.11.0+
pip✅এখনও উপলব্ধ নয়
scratchcard✅এখনও উপলব্ধ নয়
spinwheel✅এখনও উপলব্ধ নয়

টেমপ্লেট কাঠামো

Anchor link to

একটি নেটিভ ইন-অ্যাপ টেমপ্লেট হলো একটি ZIP আর্কাইভ, যা একটি সাধারণ রিচ মিডিয়া টেমপ্লেটের মতোই, তবে এর রুটে index.html এর পরিবর্তে একটি native-config.json ফাইল থাকে:

<template>.zip
├── native-config.json ← required, layout and content
├── pushwoosh.json ← optional, localization (see below)

native-config.json থেকে রেফারেন্স করা ছবি এবং ভিডিও (pip/video-তে image, poster, fallback, url) অবশ্যই অ্যাবসোলিউট HTTPS URL হতে হবে। SDK নেটওয়ার্কের মাধ্যমে সেগুলি লোড করে। এটি আর্কাইভ থেকে স্থানীয় ফাইল পড়ে না।

কনফিগারেশনটি নিজেই একটি একক JSON অবজেক্ট:

{ "displayType": "<type>", "<type>": { /* content block for this type */ } }

displayType নিচের দশটি ফরম্যাটের মধ্যে একটি নির্বাচন করে। মিলে যাওয়া কী-এর অধীনে থাকা অবজেক্টটি সেই ফরম্যাটের বিষয়বস্তু ধারণ করে। একটি অজানা displayType, একটি অনুপস্থিত কন্টেন্ট ব্লক, বা একটি খালি প্রয়োজনীয় তালিকা (carousel/stories-এর জন্য items, spinwheel-এর জন্য segments) সহ একটি কনফিগারেশন অবৈধ। SDK একটি ভাঙা লেআউট রেন্ডার করার পরিবর্তে এটি দেখানো এড়িয়ে যায়।

ডেলিভারি সেটিংস (শুরু/শেষের তারিখ এবং ফ্রিকোয়েন্সি ক্যাপিং) native-config.json-এর অংশ নয়। এগুলি অন্য যেকোনো ইন-অ্যাপের মতোই ক্যাম্পেইনের ডিসপ্লে সেটিংস ধাপে কনফিগার করা হয়।

ফ্রিকোয়েন্সি ক্যাপিং কার্যকর হওয়ার জন্য নেটিভ ইন-অ্যাপে একটি স্পষ্ট SDK-সাইড অপ্ট-ইন প্রয়োজন। দেখুন SDK ইন্টিগ্রেশন।

প্রতিটি রঙের মান একটি CSS হেক্স স্ট্রিং: #RGB, #RGBA, #RRGGBB, বা #RRGGBBAA। চারটি ফরম্যাটেই শুরুতে # থাকা আবশ্যক।

শেয়ার্ড বিল্ডিং ব্লক

Anchor link to

এই ছোট অবজেক্টগুলি বিভিন্ন ডিসপ্লে টাইপ জুড়ে পুনরায় ব্যবহার করা হয়।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
textstringহ্যাঁটেক্সট কন্টেন্ট
colorstringহ্যাঁটেক্সটের রঙ
{ "text": "Spin for a garage perk", "color": "#FFFFFFFF" }
ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
colorstringহ্যাঁবর্ডারের রঙ
radiusnumberহ্যাঁকোণার ব্যাসার্ধ, পয়েন্টে
{ "color": "#0E72E5FF", "radius": 12 }

একটি ব্যাকগ্রাউন্ড রঙের উপর একটি ঐচ্ছিক ছবি। fullscreen এবং scratchcard দ্বারা ব্যবহৃত।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
imagestringনাকভার ছবির URL
backgroundstringহ্যাঁছবির নিচে (বা পরিবর্তে) দেখানো ব্যাকগ্রাউন্ড রঙ
{ "image": "https://example.com/cover.jpg", "background": "#1A1A1EFF" }

type-এর উপর একটি ডিসক্রিমিনেটেড ইউনিয়ন:

ভেরিয়েন্টফিল্ডবিবরণ
{ "type": "close" }Noneইন-অ্যাপ বন্ধ করে
{ "type": "url", "url": string }url requiredএকটি 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" }
}

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

স্ক্রিনের উপরে বা নিচের প্রান্তে ডক করা একটি কমপ্যাক্ট বার।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
showClosebooleanহ্যাঁএকটি ক্লোজ (✕) বোতাম দেখান
positiontop | bottomহ্যাঁস্ক্রিনের প্রান্ত
backgroundstringহ্যাঁবারের ব্যাকগ্রাউন্ড রঙ
imagestringনাবামে থাম্বনেইল
titleTextনাএক লাইনের শিরোনাম, এলিপসিস দিয়ে ছোট করা
messageTextনাবডি টেক্সট, সর্বোচ্চ ২ লাইন
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
}
}

একটি ফুল-স্ক্রিন, সোয়াইপ করা যায় এমন কার্ডের সেট যার সাথে পেজ-ইন্ডিকেটর ডট থাকে।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
showClosebooleanহ্যাঁএকটি ক্লোজ (✕) বোতাম দেখান
itemsItem[]হ্যাঁকার্ড (কমপক্ষে ১টি)

ক্যারোসেল আইটেম:

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
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" }
}
]
}
}

fullscreen

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" }
}
]
}
}

একটি কেন্দ্রিক কার্ড।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
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হ্যাঁস্ক্রিনের প্রস্থের শতাংশ হিসাবে উইন্ডোর প্রস্থ, ১৫-৭০ এর মধ্যে সীমাবদ্ধ
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" }
}
}

scratchcard

Anchor link to

একটি কার্ড যার পুরস্কার একটি স্ক্র্যাচযোগ্য ফয়েল স্তরের নিচে লুকানো থাকে।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
showClosebooleanহ্যাঁএকটি ক্লোজ (✕) বোতাম দেখান
backgroundstring | string[]হ্যাঁকার্ডের ব্যাকগ্রাউন্ড রঙ, বা গ্রেডিয়েন্ট স্টপ
revealThresholdnumberহ্যাঁপুরস্কার প্রকাশের আগে ফয়েলের যে অংশটি স্ক্র্যাচ করতে হবে (০-১)
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" }
}
]
}
}

একটি হুইল-অফ-ফরচুন যার ওয়েটেড সেগমেন্ট এবং একটি কেন্দ্র হাব বোতাম রয়েছে।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
showClosebooleanহ্যাঁএকটি ক্লোজ (✕) বোতাম দেখান
backgroundstring | string[]হ্যাঁকার্ডের ব্যাকগ্রাউন্ড রঙ, বা গ্রেডিয়েন্ট স্টপ
winIndexnumberহ্যাঁবিজয়ী সেগমেন্টের ইনডেক্স (0-ভিত্তিক)
spinButtonButton (no action)হ্যাঁকেন্দ্র হাব বোতাম
titleTextনাশিরোনাম
messageTextনাবডি টেক্সট
rewardRewardহ্যাঁবিজয়ী স্পিনের জন্য পুরস্কার (সেগমেন্টগুলির জন্য ফলব্যাক যাদের নিজস্ব পুরস্কার নেই)
loseTitleTextনাহেরে গেলে দেখানো শিরোনাম
segmentsSegment[]হ্যাঁচাকার সেগমেন্ট (SDK ২-১২টি আশা করে)

সেগমেন্ট:

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
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 }
]
}
}

ফুল-স্ক্রিন স্লাইড যার উপরে প্রোগ্রেস বার থাকে, সোশ্যাল মিডিয়া স্টোরির মতো।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
showClosebooleanহ্যাঁএকটি ক্লোজ (✕) বোতাম দেখান
loopbooleanহ্যাঁশেষ স্লাইডের পর প্রথম থেকে আবার শুরু করুন
itemsItem[]হ্যাঁস্লাইড (কমপক্ষে ১টি)

স্টোরিজ আইটেম:

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
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
}
]
}
}

ফুল-স্ক্রিন ভিডিও যার উপরে টেক্সট এবং বোতাম থাকে।

ফিল্ডটাইপপ্রয়োজনীয়বিবরণ
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 মেসেজ পাঠানোর আগে প্রতিটি প্রাপকের জন্য এগুলি সমাধান করে, ঠিক যেমনটি পুশ এবং ইমেলের জন্য করে।

কন্ট্রোল প্যানেলের নেটিভ ইন-অ্যাপ এডিটরে একটি টেমপ্লেট তৈরি করার সময়, ঢোকানো টোকেনগুলি লাইভ প্রিভিউতে চিপ হিসাবে রেন্ডার হয়, এবং যদি কোনো টেক্সট ফিল্ডের লিকুইড পার্স না হয় তবে Save ব্লক করা হয়।

SDK ইন্টিগ্রেশন

Anchor link to

একবার আপনি আপনার অ্যাপে নেটিভ ইন-অ্যাপ SDK মডিউল যোগ করলে, মেসেজগুলি স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়। পুশ, কাস্টমার জার্নি, postEvent, বা ইনবক্স দ্বারা ট্রিগার করা মেসেজ দেখানোর জন্য কোনো অতিরিক্ত কোডের প্রয়োজন নেই।

SDK ম্যানুয়াল নিয়ন্ত্রণের জন্য একটি ছোট API-ও প্রকাশ করে:

  • iOS: Pushwoosh.inApp (module PushwooshInApp)
  • Android: PushwooshInAppUi (module 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)