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

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

নেটিভ ইন-অ্যাপগুলি সরাসরি 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 on pip/video) অবশ্যই অ্যাবসোলিউট HTTPS URL হতে হবে। SDK নেটওয়ার্কের মাধ্যমে সেগুলি লোড করে। এটি আর্কাইভ থেকে স্থানীয় ফাইল পড়ে না।

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

{ "displayType": "<type>", "<type>": { /* এই টাইপের জন্য কন্টেন্ট ব্লক */ } }

displayType নিচের দশটি ফরম্যাটের মধ্যে একটি নির্বাচন করে। ম্যাচিং কী-এর অধীনে থাকা অবজেক্টটি সেই ফরম্যাটের কন্টেন্ট ধারণ করে। একটি অজানা displayType, একটি অনুপস্থিত কন্টেন্ট ব্লক, বা একটি খালি প্রয়োজনীয় তালিকা (items for carousel/stories, segments for 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 }

কভার

Anchor link to

একটি ব্যাকগ্রাউন্ড রঙের উপর একটি ঐচ্ছিক ছবি। 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" }

বাটন

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

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

ফিল্ডটাইপপ্রয়োজনীয়বর্ণনা
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হ্যাঁবিজয়ী সেগমেন্টের ইনডেক্স (০-ভিত্তিক)
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) উপস্থিত হতে পারে।

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

Anchor link to

একবার আপনি আপনার অ্যাপে নেটিভ ইন-অ্যাপ SDK মডিউল যোগ করলে, মেসেজগুলি স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়। একটি পুশ, কাস্টমার জার্নি, 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)