Liquid টেমপ্লেট ব্যবহার করা
Liquid টেমপ্লেটগুলি নিয়মিত ডাইনামিক কন্টেন্ট ব্যবহারের পাশাপাশি অত্যাধুনিক যুক্তি প্রয়োগ করে Pushwoosh-এর ব্যক্তিগতকরণের ক্ষমতাকে উল্লেখযোগ্যভাবে প্রসারিত করে।
Pushwoosh-এ মেসেজ ব্যক্তিগতকরণ ট্যাগ (ব্যবহারকারীর ডেটা)-এর উপর ভিত্তি করে। Pushwoosh বিভিন্ন ধরনের ডিফল্ট ট্যাগ এবং কাস্টম ট্যাগ অফার করে। এগুলি ব্যবহার করে, আপনি ব্যবহারকারীর প্রথম নাম, শহর, ক্রয়ের ইতিহাস ইত্যাদি নির্দিষ্ট করতে পারেন যাতে আরও ব্যক্তিগতকৃত মেসেজ পাঠানো যায়, উদাহরণস্বরূপ: হাই {First_name}, {item} অর্ডার করার জন্য ধন্যবাদ।
Liquid টেমপ্লেটগুলি ডাইনামিক কন্টেন্টে আরও যুক্তি যোগ করে। উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারীর সাবস্ক্রিপশন ট্যাগে “free” থাকে, আপনি তাদের একটি মেসেজ পাঠাতে পারেন: “আপনার ১০% ছাড় নিন।”
ব্যবহারকারীদের আইডি, আচরণ এবং পছন্দ অনুযায়ী মেসেজের বিষয়বস্তু পরিবর্তন করা প্রাসঙ্গিকতা বাড়ানোর এবং আপনার বিপণন প্রচারাভিযান থেকে আরও চিত্তাকর্ষক ফলাফল পাওয়ার সবচেয়ে কার্যকর উপায়।
সিনট্যাক্স
Anchor link toShopify দ্বারা Liquid-এর উপর ভিত্তি করে কন্টেন্ট টেমপ্লেটগুলি ডাইনামিক কন্টেন্ট লোড করার জন্য ট্যাগ, অবজেক্ট, এবং ফিল্টার-এর সংমিশ্রণ ব্যবহার করে। কন্টেন্ট টেমপ্লেটগুলি আপনাকে একটি টেমপ্লেটের মধ্যে থেকে নির্দিষ্ট ভেরিয়েবল অ্যাক্সেস করতে এবং ডেটা সম্পর্কে কিছু না জেনেই তাদের ডেটা আউটপুট করতে দেয়।
অবজেক্ট
Anchor link toঅবজেক্ট সেই কন্টেন্টকে সংজ্ঞায়িত করে যা একজন ব্যবহারকারীকে দেখানো হবে। অবজেক্ট দুটি কোঁকড়া বন্ধনীর মধ্যে আবদ্ধ থাকা উচিত: {{ }}
উদাহরণস্বরূপ, একটি মেসেজ ব্যক্তিগতকরণ করার সময়, ব্যবহারকারীদের নাম মেসেজের কন্টেন্টে যোগ করার জন্য এর বডিতে {{Name}} পাঠান। ব্যবহারকারীর নাম (Name ট্যাগের মান) ব্যবহারকারী যে মেসেজটি দেখবেন তাতে Liquid অবজেক্টটিকে প্রতিস্থাপন করবে।
Hi {{Name}}! We're glad you're back!Hi Anna! We’re glad you’re back!
ট্যাগ
Anchor link toট্যাগ টেমপ্লেটগুলির জন্য যুক্তি এবং নিয়ন্ত্রণ প্রবাহ তৈরি করে। কোঁকড়া বন্ধনী শতাংশ ডিলিমিটার {% এবং %} এবং তারা যে টেক্সটকে ঘিরে থাকে তা টেমপ্লেট রেন্ডার করার সময় কোনও দৃশ্যমান আউটপুট তৈরি করে না। এটি আপনাকে কোনও Liquid যুক্তি ব্যবহারকারীকে না দেখিয়ে ভেরিয়েবল বরাদ্দ করতে এবং শর্ত বা লুপ তৈরি করতে দেয়।
উদাহরণস্বরূপ, if ট্যাগ ব্যবহার করে, আপনি ব্যবহারকারীর ডিভাইসে কোন ভাষা সেট করা আছে তার উপর ভিত্তি করে মেসেজের ভাষা পরিবর্তন করতে পারেন:
{% if Language == 'fr' %}Salut!{% else %}Hello!{% endif %}Salut!
Hello!
ট্যাগ অপারেটর
Anchor link to| অপারেটর | বর্ণনা |
|---|---|
== | সমান |
!= | সমান নয় |
> | এর থেকে বড় |
< | এর থেকে ছোট |
>= | এর থেকে বড় বা সমান |
<= | এর থেকে ছোট বা সমান |
or | লজিক্যাল or |
and | লজিক্যাল and |
contains | একটি স্ট্রিং বা স্ট্রিংগুলির অ্যারের মধ্যে একটি সাবস্ট্রিংয়ের উপস্থিতি পরীক্ষা করে |
ফিল্টার
Anchor link toফিল্টার একটি Liquid অবজেক্ট বা ভেরিয়েবলের আউটপুট পরিবর্তন করে। এগুলি ডাবল কোঁকড়া বন্ধনী {{ }} এবং ভেরিয়েবল অ্যাসাইনমেন্টের মধ্যে ব্যবহৃত হয় এবং একটি পাইপ অক্ষর | দ্বারা পৃথক করা হয়। একটি আউটপুটে একাধিক ফিল্টার ব্যবহার করা যেতে পারে এবং বাম থেকে ডানে প্রয়োগ করা হয়।
{{ Name | capitalize | prepend:"Hello " }}Hello Anna
API এর মাধ্যমে পাঠানো মেসেজে Liquid টেমপ্লেট ব্যবহার করা
Anchor link toLiquid টেমপ্লেট বাস্তবায়ন করতে আপনার createMessage অনুরোধে Liquid সিনট্যাক্স ব্যবহার করুন। টেমপ্লেটগুলি createMessage অনুরোধের “content” প্যারামিটারের জন্য উপলব্ধ, সেইসাথে ডাইনামিক কন্টেন্ট সমর্থনকারী অন্য কোনও প্যারামিটারের জন্য, বিশেষ করে, প্ল্যাটফর্ম-নির্দিষ্ট “title”, “subtitle”, এবং “image” প্যারামিটারগুলির জন্য।
কন্টেন্ট টেমপ্লেট ব্যবহার করে, আপনি আপনার API অনুরোধে ডেটা নির্দিষ্ট করতে পারেন (“template_bindings” প্যারামিটার পাস করে) অথবা ব্যবহারকারীদের ডিভাইসে সংরক্ষিত ট্যাগ মান থেকে ডেটা পেতে পারেন (“template_bindings” প্যারামিটার ব্যবহার না করে)। এইভাবে, আপনি অত্যন্ত প্রাসঙ্গিক কন্টেন্ট সহ ব্যবহারকারী-ভিত্তিক পুশ প্রচারাভিযান তৈরি করতে সক্ষম।
নামে স্পেস সহ ট্যাগ ব্যবহার করে টেমপ্লেট লজিক সংজ্ঞায়িত করতে, নিম্নলিখিত কৌশলটি ব্যবহার করুন:
উদাহরণ
{% capture my_tag %}{{My Tag}}{% endcapture %}{% if my_tag == 'value' %}Content to send in this case{% else %}Content to send otherwise{% endif %}Liquid টেমপ্লেটের ব্যবহারের ক্ষেত্র
Anchor link toএখানে আপনি বেশ কয়েকটি ব্যবহারের ক্ষেত্র পাবেন যেখানে Liquid টেমপ্লেটগুলি কাজে আসে।
বহু-ভাষিক পুশ
Anchor link toLiquid টেমপ্লেটগুলি স্পষ্টভাবে নির্দিষ্ট করা সম্ভব করে যে ব্যবহারকারীরা কোন ভাষায় আপনার পুশ মেসেজগুলি পাবেন। API অনুরোধের সহজ উদাহরণ এবং অনুরোধে ব্যবহৃত টেমপ্লেট বাইন্ডিংয়ের উপর নির্ভর করে প্রাপ্ত মেসেজটি দেখুন।
{% if Language == 'es' %}¡Hola!{% else %}Hello!{% endif %}{ "request": { "application": "XXXXX-XXXXX", // Pushwoosh app code "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if language == 'es' %}¡Hola!{% else %}hello!{% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "language" : "es" } } ] }}ভাষা ‘es’ হলে: ¡Hola!
ভাষা ‘en’ হলে: Hello!
সাবস্ক্রিপশন আপগ্রেড প্রম্পট
Anchor link toআপনার গ্রাহকদের তাদের বর্তমান প্ল্যানের উপর ভিত্তি করে তাদের সাবস্ক্রিপশন আপগ্রেড করতে উৎসাহিত করুন।
{% if Subscription == 'Basic' %} Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %} Upgrade to Gold for priority support and advanced features.{% else %} Please contact your manager to renew your subscription.{% endif %}{ "request": { "application": "XXXXX-XXXXX", // Pushwoosh app code "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if Subscription == 'Basic' %}Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %}Upgrade to Gold for priority support and advanced features.{% else %}Please contact your manager to renew your subscription. {% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "language" : "es" } } ] }}বেসিক সাবস্ক্রিপশন প্ল্যান সহ ব্যবহারকারীদের জন্য: Upgrade to Silver for getting more product features and 24/7 support.
সিলভার সাবস্ক্রিপশন প্ল্যান সহ ব্যবহারকারীদের জন্য: Upgrade to Gold for priority support and advanced features.
অন্যান্য প্ল্যান সহ ব্যবহারকারীদের জন্য: Please contact your manager to renew your subscription.
তালিকা ট্যাগ
Anchor link toকন্টেন্ট টেমপ্লেটগুলি একটি তালিকা ধরনের ট্যাগগুলি পরিচালনা করতে বেশ সহায়ক।
ভেরিয়েবলের আকার
Anchor link toএকটি সম্ভাব্য ব্যবহারের ক্ষেত্র হল ট্যাগে কতগুলি মান রয়েছে তার উপর নির্ভর করে বিভিন্ন কন্টেন্ট সরবরাহ করা। উদাহরণস্বরূপ, আপনি বিভিন্ন আচরণের গ্রাহকদের বিভিন্ন ছাড় দিতে পারেন। ধরা যাক গ্রাহকের তাদের WishList-এ কিছু আইটেম আছে—তারা কতগুলি পণ্য কিনতে যাচ্ছে তার উপর ভিত্তি করে সবচেয়ে উপযুক্ত ছাড় দিয়ে তাদের কেনাকাটা করতে উৎসাহিত করুন!
{% if WishList.size >= 3 %}Get 20% off your next purchase!{% elsif WishList.size == 2 %}Get a 10% discount on your next purchase!{% else %}Hey, take a look at new outwears!{% endif %}{ "request": { "application": "XXXXX-XXXXX", // Pushwoosh app code "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if WishList.size >= 3 %}Get 20% off your next purchase!{% elsif WishList.size == 2 %}Get a 10% discount on your next purchase!{% else %}Hey, take a look at new outwears!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

ভেরিয়েবলে রয়েছে
Anchor link toআরেকটি ক্ষেত্র যা আপনার কভার করার প্রয়োজন হতে পারে তা হল তালিকা ট্যাগের মানগুলির সাথে মোকাবিলা করা এবং ট্যাগে কোন মানগুলি রয়েছে তার উপর ভিত্তি করে সবচেয়ে প্রাসঙ্গিক কন্টেন্ট সরবরাহ করা।
{% if WishList contains 'Skinny Low Ankle Jeans' %}Get 20% off products in your wishlist!{% else %}Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if WishList contains 'Skinny Low Ankle Jeans' %}Get 20% off your next purchase!{% else %}Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

বহুবচন
Anchor link toকন্টেন্ট টেমপ্লেট ব্যবহার করে, আপনি ব্যবহারকারীদের আচরণ অনুযায়ী মেসেজের কন্টেন্ট সামঞ্জস্য করতে সক্ষম। উদাহরণস্বরূপ, যদি তালিকা ট্যাগে একাধিক মান থাকে তবে আপনি বহুবচন শব্দ ধারণ করার জন্য মেসেজের পাঠ্য পরিবর্তন করতে পারেন।
Get 20% off item{% if WishList.size > 1 %} s in your WishList!{% else %} in your Wishlist!{% endif %}{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "Get 20% off item{% raw %}{% if WishList.size > 1 %}s in your WishList!{% else %} in your Wishlist!{% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

টাইমজোন
Anchor link toটাইমজোনের জন্য টেমপ্লেট নির্দিষ্ট টাইমজোন অনুযায়ী তারিখ এবং সময় রূপান্তর করে।
{{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}{ "request" : { "auth" : "3H9bk8w3.....Acge2RbupTB", // API access token from Pushwoosh Control Panel "application" : "XXXXX-XXXXX", // Pushwoosh app code "notifications" : [ // push message parameters { "content": "Current Date: {{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "MyDate" : "2019-07-23 15:00", "MyTimezone" : "Asia/Dubai" } } ] }}
সংযুক্ত কন্টেন্ট
Anchor link toসংযুক্ত কন্টেন্ট হল Liquid টেমপ্লেটের একটি বৈশিষ্ট্য যা আপনাকে আপনার ইমেল বা পুশ নোটিফিকেশন মেসেজের মধ্যে সরাসরি একটি বাহ্যিক উৎস, যেমন একটি ওয়েব পরিষেবা থেকে ডেটা গতিশীলভাবে পুনরুদ্ধার এবং ব্যবহার করতে দেয়। এই বৈশিষ্ট্যটি একটি নির্দিষ্ট URL থেকে JSON ডেটা এনে এবং এটি একটি ভেরিয়েবলে সংরক্ষণ করে রিয়েল-টাইম ব্যক্তিগতকরণ সক্ষম করে যা আপনার কন্টেন্টে ব্যবহার করা যেতে পারে।
মূল ব্যবহারের ক্ষেত্র
Anchor link to-
পণ্যের সুপারিশ: প্রতিটি ব্যবহারকারীর জন্য তৈরি ব্যক্তিগতকৃত পণ্যের তালিকা প্রদর্শন করুন।
-
প্রোমো কোড: একটি ব্যাকএন্ড পরিষেবা দ্বারা তৈরি অনন্য প্রোমো কোড সন্নিবেশ করান।
পূর্বশর্ত
Anchor link to- সংযুক্ত কন্টেন্ট ব্যবহার করার জন্য, আপনার অবশ্যই নিজস্ব ব্যাকএন্ড পরিষেবা থাকতে হবে যা User ID, HWID, বা কাস্টম ট্যাগ-এর উপর ভিত্তি করে প্রয়োজনীয় ডেটা (যেমন, প্রোমো কোড, পণ্যের সুপারিশ) তৈরি করে এবং সরবরাহ করে। Pushwoosh তারপর একটি মেসেজ পাঠানোর আগে এই ডেটা নিয়ে আসে।
ধাপে ধাপে বাস্তবায়ন নির্দেশিকা
Anchor link toধাপ ১. ব্যাকএন্ড পরিষেবা সেট আপ করুন
Anchor link toব্যাকএন্ড পরিষেবাটি উচিত:
- ব্যবহারকারী-নির্দিষ্ট প্যারামিটার (যেমন,
userId) ধারণকারী একটি অনুরোধ গ্রহণ করুন। সংযুক্ত কন্টেন্টUserID,HWID, বা আপনার প্রকল্পে সেট আপ করা যেকোনো কাস্টম ট্যাগ সমর্থন করে। - প্রয়োজনীয় ডেটা সহ একটি JSON প্রতিক্রিয়া ফেরত দিন। এই কন্টেন্টটি তারপর মেসেজে গতিশীলভাবে সন্নিবেশ করা যেতে পারে
ধাপ ২. Pushwoosh-এ সংযুক্ত কন্টেন্ট সহ একটি প্রিসেট তৈরি করুন
Anchor link to- পুশ বা ইমেল কন্টেন্ট এডিটর-এ, মেসেজ ফিল্ডে সংযুক্ত কন্টেন্ট সিনট্যাক্স সন্নিবেশ করান।
উদাহরণ
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :save result %}সিনট্যাক্স ব্রেকডাউন
connected_content | নির্দিষ্ট ব্যাকএন্ড URL থেকে JSON ডেটা নিয়ে আসে। |
http://your-backend-url.com | ব্যাকএন্ড এন্ডপয়েন্ট যা JSON ফরম্যাটে প্রয়োজনীয় ডেটা ফেরত দেয়। |
userId={{ ${userid} }} | একটি ডাইনামিক কোয়েরি প্যারামিটার যা ব্যবহারকারী আইডি ব্যাকএন্ডে পাস করে। |
:save result | Liquid টেমপ্লেটে ব্যবহারের জন্য আনা JSON প্রতিক্রিয়াটি result ভেরিয়েবলে সংরক্ষণ করে |

প্রমাণীকরণ (ঐচ্ছিক)
যদি আপনার ব্যাকএন্ড পরিষেবার জন্য প্রমাণীকরণের প্রয়োজন হয়, আপনি নিরাপদ অ্যাক্সেস নিশ্চিত করতে সংযুক্ত কন্টেন্ট অনুরোধে একটি API কী বা টোকেন অন্তর্ভুক্ত করতে পারেন।
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}&auth=YOUR_API_KEY :save result %}আপনি ঐচ্ছিক :headers প্যারামিটার ব্যবহার করে HTTP হেডার হিসাবে প্রমাণীকরণ (বা অন্য কোনো) ডেটা পাঠাতে পারেন — হেডার নাম এবং মানগুলির একটি JSON অবজেক্ট।
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :headers {"Authorization": "Bearer YOUR_TOKEN", "X-Api-Key": "YOUR_API_KEY"} :save result %}:headers {...} | অনুরোধের সাথে পাঠানো HTTP হেডারগুলির একটি JSON অবজেক্ট, যেমন Authorization: Bearer <token>। |
সংযুক্ত কন্টেন্টে ট্যাগ ব্যবহার করা
কাস্টম ট্যাগ অন্তর্ভুক্ত করতে, সেগুলিকে সংযুক্ত কন্টেন্ট অনুরোধে কোয়েরি প্যারামিটার হিসাবে সন্নিবেশ করান ({{ tag_name }})।
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}{{ Language }} :save result %}- এরপর, পুনরুদ্ধার করা ডেটা অন্তর্ভুক্ত করে মেসেজের পাঠ্য যোগ করুন, যেমন:
Hey, {{userid}}, grab your personal promo code - {{result.code}}
- মেসেজের কন্টেন্ট চূড়ান্ত করার পর এবং প্রিসেট সেটিংস কনফিগার করার পর, প্রচারাভিযানে পুনরায় ব্যবহারের জন্য এটি সংরক্ষণ করুন।
ধাপ ৩. কনফিগার করা প্রিসেট ব্যবহার করে একটি মেসেজ পাঠান
Anchor link toএককালীন পুশ বা ইমেল ফর্ম বা গ্রাহক যাত্রা ব্যবহার করে এই প্রিসেট সহ একটি মেসেজ পাঠান।