নেটিভ ইন-অ্যাপ টেমপ্লেট সিনট্যাক্স
নেটিভ ইন-অ্যাপগুলি সরাসরি 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| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
text | string | হ্যাঁ | টেক্সট কন্টেন্ট |
color | string | হ্যাঁ | টেক্সটের রঙ |
{ "text": "Spin for a garage perk", "color": "#FFFFFFFF" }বর্ডার
Anchor link to| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
color | string | হ্যাঁ | বর্ডারের রঙ |
radius | number | হ্যাঁ | কর্নার রেডিয়াস, পয়েন্টে |
{ "color": "#0E72E5FF", "radius": 12 }কভার
Anchor link toএকটি ব্যাকগ্রাউন্ড রঙের উপর একটি ঐচ্ছিক ছবি। fullscreen এবং scratchcard দ্বারা ব্যবহৃত।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
image | string | না | কভার ছবির URL |
background | string | হ্যাঁ | ছবির নিচে (বা পরিবর্তে) দেখানো ব্যাকগ্রাউন্ড রঙ |
{ "image": "https://example.com/cover.jpg", "background": "#1A1A1EFF" }অ্যাকশন
Anchor link totype-এর উপর একটি ডিসক্রিমিনেটেড ইউনিয়ন:
| ভ্যারিয়েন্ট | ফিল্ড | বর্ণনা |
|---|---|---|
{ "type": "close" } | কোনোটিই নয় | ইন-অ্যাপ বন্ধ করে |
{ "type": "url", "url": string } | url প্রয়োজনীয় | একটি URL বা ডিপ লিঙ্ক খোলে |
{ "type": "url", "url": "pushwoosh://sale" }বাটন
Anchor link to| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
text | Text | হ্যাঁ | বাটন লেবেল |
background | string | হ্যাঁ | বাটন ফিল রঙ |
border | Border | হ্যাঁ | বাটন বর্ডার |
action | Action | হ্যাঁ | ট্যাপ করলে ফায়ার হওয়া অ্যাকশন |
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 toscratchcard এবং spinwheel দ্বারা দেখানো পুরস্কার প্যানেল। একটি বৈধ রিওয়ার্ডের একটি title বা একটি code থাকে।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
title | Text | না | রিওয়ার্ড হেডলাইন |
message | Text | না | রিওয়ার্ড বর্ণনা |
code | string | না | প্রোমো কোড, একটি কপি বাটন সহ রেন্ডার করা হয় |
button | Button | না | নিজস্ব অ্যাকশন সহ কনফার্মেশন বাটন |
{ "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 tobanner
Anchor link toস্ক্রিনের উপরের বা নীচের প্রান্তে ডক করা একটি কমপ্যাক্ট বার।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
position | top | bottom | হ্যাঁ | স্ক্রিনের প্রান্ত |
background | string | হ্যাঁ | বার ব্যাকগ্রাউন্ড রঙ |
image | string | না | বাম দিকে থাম্বনেইল |
title | Text | না | এক লাইনের শিরোনাম, একটি এলিপসিস দিয়ে ছোট করা হয় |
message | Text | না | বডি টেক্সট, ২ লাইন পর্যন্ত |
action | Action | হ্যাঁ | বারটি ট্যাপ করা হলে ফায়ার হয় |
autoDismiss | number | না | এত সেকেন্ড পরে স্বয়ংক্রিয়ভাবে বন্ধ করুন। বন্ধ না করা পর্যন্ত রাখার জন্য বাদ দিন |
{ "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 }}carousel
Anchor link toপেজ-ইন্ডিকেটর ডট সহ একটি ফুল-স্ক্রিন, সোয়াইপযোগ্য কার্ডের সেট।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
items | Item[] | হ্যাঁ | কার্ড (কমপক্ষে ১টি) |
ক্যারোসেল আইটেম:
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
title | Text | না | কার্ডের শিরোনাম |
message | Text | না | কার্ডের সাবটাইটেল |
image | string | না | কার্ডের ছবি |
action | Action | না | কার্ড ট্যাপ করা হলে ফায়ার হয় |
{ "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উপরে টেক্সট এবং বাটন সহ একটি এজ-টু-এজ কভার ছবি।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
cover | Cover | হ্যাঁ | ব্যাকগ্রাউন্ড ছবি এবং রঙ |
title | Text | না | শিরোনাম |
message | Text | না | বডি টেক্সট |
buttons | Button[] | হ্যাঁ | নীচে বাটন (খালি হতে পারে) |
{ "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" } } ] }}modal
Anchor link toএকটি কেন্দ্রিক কার্ড।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
dimBackground | boolean | হ্যাঁ | কার্ডের পিছনে স্ক্রিনটি ম্লান করুন |
background | string | হ্যাঁ | কার্ড ব্যাকগ্রাউন্ড রঙ |
image | string | না | কভার ছবি |
title | Text | না | শিরোনাম |
message | Text | না | বডি টেক্সট |
buttons | Button[] | হ্যাঁ | টেক্সটের নীচে বাটন (খালি হতে পারে) |
{ "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" } } ] }}একটি স্ক্রিনের কোণায় ডক করা একটি ভাসমান পিকচার-ইন-পিকচার ভিডিও উইন্ডো।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
position | bottom-right | bottom-left | top-right | top-left | হ্যাঁ | স্ক্রিনের কোণা |
loop | boolean | হ্যাঁ | প্লেব্যাক লুপ করুন |
muted | boolean | হ্যাঁ | মিউট করে শুরু করুন |
url | string | হ্যাঁ | ভিডিও URL |
poster | string | না | প্লেব্যাক শুরু হওয়ার আগে দেখানো পোস্টার |
fallback | string | না | ভিডিও প্লে করতে ব্যর্থ হলে দেখানো ছবি |
width | number | হ্যাঁ | স্ক্রিনের প্রস্থের শতাংশ হিসাবে উইন্ডোর প্রস্থ, ১৫-৭০ এর মধ্যে সীমাবদ্ধ |
aspectRatio | number | হ্যাঁ | উইন্ডোর উচ্চতা-থেকে-প্রস্থ অনুপাত |
borderRadius | number | না | উইন্ডোর কর্নার রেডিয়াস, পয়েন্টে |
action | Action | না | উইন্ডোটি ট্যাপ করা হলে ফায়ার হয় |
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একটি স্ক্র্যাচযোগ্য ফয়েল লেয়ারের নীচে পুরস্কার লুকানো একটি কার্ড।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
background | string | string[] | হ্যাঁ | কার্ড ব্যাকগ্রাউন্ড রঙ, বা গ্রেডিয়েন্ট স্টপ |
revealThreshold | number | হ্যাঁ | পুরস্কার প্রকাশের আগে ফয়েলের যে অংশটি স্ক্র্যাচ করতে হবে (০-১) |
cover | Cover | হ্যাঁ | ফয়েল লেয়ার। একটি image ছাড়া, ব্যাকগ্রাউন্ড রঙে একটি “এখানে স্ক্র্যাচ করুন” ইঙ্গিত দেখানো হয় |
revealButton | Button (no action) | না | ”তাত্ক্ষণিকভাবে প্রকাশ করুন” বাটন |
title | Text | না | শিরোনাম |
message | Text | না | বডি টেক্সট |
reward | Reward | হ্যাঁ | ফয়েলের নীচে লুকানো পুরস্কার |
{ "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" } } } }}sheet
Anchor link toএকটি ড্র্যাগ হ্যান্ডেল সহ নীচের প্রান্তে পিন করা একটি কার্ড।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
dimBackground | boolean | হ্যাঁ | শীটের পিছনে স্ক্রিনটি ম্লান করুন |
background | string | হ্যাঁ | শীট ব্যাকগ্রাউন্ড রঙ |
image | string | না | কভার ছবি |
title | Text | না | শিরোনাম |
message | Text | না | বডি টেক্সট |
buttons | Button[] | হ্যাঁ | টেক্সটের নীচে বাটন (খালি হতে পারে) |
{ "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" } } ] }}spinwheel
Anchor link toওয়েটেড সেগমেন্ট এবং একটি সেন্টার হাব বাটন সহ একটি হুইল-অফ-ফরচুন।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
background | string | string[] | হ্যাঁ | কার্ড ব্যাকগ্রাউন্ড রঙ, বা গ্রেডিয়েন্ট স্টপ |
winIndex | number | হ্যাঁ | বিজয়ী সেগমেন্টের ইনডেক্স (০-ভিত্তিক) |
spinButton | Button (no action) | হ্যাঁ | সেন্টার হাব বাটন |
title | Text | না | শিরোনাম |
message | Text | না | বডি টেক্সট |
reward | Reward | হ্যাঁ | বিজয়ী স্পিনের জন্য পুরস্কার (নিজস্ব পুরস্কার ছাড়া সেগমেন্টের জন্য ফলব্যাক) |
loseTitle | Text | না | হেরে গেলে দেখানো হেডলাইন |
segments | Segment[] | হ্যাঁ | হুইল সেগমেন্ট (SDK ২-১২ আশা করে) |
সেগমেন্ট:
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
message | Text | হ্যাঁ | সেগমেন্ট লেবেল |
color | string | না | সেগমেন্টের রঙ। চাকার চারপাশে প্রয়োগ করা একটি ফলব্যাক প্যালেটের জন্য বাদ দিন |
weight | number | হ্যাঁ | আপেক্ষিক সেগমেন্টের আকার |
reward | Reward | না | সেগমেন্ট-নির্দিষ্ট পুরস্কার |
{ "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 } ] }}stories
Anchor link toউপরে প্রোগ্রেস বার সহ ফুল-স্ক্রিন স্লাইড, সোশ্যাল মিডিয়া স্টোরির মতো।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
loop | boolean | হ্যাঁ | শেষ স্লাইডের পর প্রথম স্লাইড থেকে পুনরায় শুরু করুন |
items | Item[] | হ্যাঁ | স্লাইড (কমপক্ষে ১টি) |
স্টোরিজ আইটেম:
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
title | Text | না | শিরোনাম |
message | Text | না | সাবটাইটেল |
image | string | না | স্লাইড ব্যাকগ্রাউন্ড ছবি |
buttons | Button[] | হ্যাঁ | নীচে CTA বাটন (খালি হতে পারে) |
duration | number | হ্যাঁ | স্লাইডের সময়কাল, সেকেন্ডে |
{ "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 } ] }}video
Anchor link toউপরে টেক্সট এবং বাটন সহ ফুল-স্ক্রিন ভিডিও।
| ফিল্ড | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
showClose | boolean | হ্যাঁ | একটি ক্লোজ (✕) বাটন দেখান |
loop | boolean | হ্যাঁ | প্লেব্যাক লুপ করুন |
muted | boolean | হ্যাঁ | মিউট করে শুরু করুন |
url | string | হ্যাঁ | ভিডিও URL (HLS বা MP4) |
poster | string | না | প্লেব্যাক শুরু হওয়ার আগে দেখানো পোস্টার |
fallback | string | না | ভিডিও প্লে করতে ব্যর্থ হলে দেখানো ছবি |
title | Text | না | শিরোনাম |
message | Text | না | বডি টেক্সট |
buttons | Button[] | হ্যাঁ | নীচে 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)
| ক্ষমতা | iOS | Android |
|---|---|---|
| সরাসরি একটি কনফিগারেশন দেখান (পরীক্ষা/ম্যানুয়াল ব্যবহার) | Pushwoosh.inApp.present(config) | PushwooshInAppUi.present(configJson) |
| লাইফসাইকেল এবং ক্লিক পর্যবেক্ষণ করুন | delegate (PWInAppMessageDelegate) | delegate (InAppMessageDelegate) |
| স্ক্রিনে কিছু আছে কিনা তা পরীক্ষা করুন | isPresenting | isPresenting |
| বর্তমানে যা দেখানো হচ্ছে তা বাতিল করুন | dismiss() | dismiss() |
| প্রদর্শন পজ/রিজিউম করুন | isPaused | isPaused |
maxDisplays / cooldown ক্যাপিং প্রয়োগ করুন | setFrequencyCapEnabled(_:) | setFrequencyCapEnabled(...) |
ডেলিগেট কলব্যাক (সবগুলি মূল থ্রেডে ফায়ার হয়): shouldDisplay (একটি মেসেজ দেখানোর আগে দমন করতে false রিটার্ন করুন, উদাহরণস্বরূপ একটি চেকআউট স্ক্রিনে), willPresent, didPresent, didClose, এবং clickedAction (ব্যবহারকারী একটি url অ্যাকশন ট্যাপ করলে, URL খোলার আগে ফায়ার হয়)।
iOS অতিরিক্তভাবে গ্যামিফাইড scratchcard এবং spinwheel টেমপ্লেটের জন্য rewardRevealed এবং rewardClaimed রিপোর্ট করে।
// iOSPushwoosh.inApp.delegate = selfPushwoosh.inApp.setFrequencyCapEnabled(true)// AndroidPushwooshInAppUi.delegate = thisPushwooshInAppUi.setFrequencyCapEnabled(true)