Shopify ইভেন্ট এবং ক্যাম্পেইন
আপনি অ্যাপ কানেক্ট করার পরে এবং অর্ডার, কার্ট, এবং চেকআউট ট্র্যাকিংয়ের জন্য Shopify-এর অনুরোধ করা পারমিশন (read_orders, write_pixels, read_customer_events) অনুমোদন করার পরে, আলাদা কোনো Pushwoosh ট্র্যাকিং স্ক্রিন ছাড়াই অর্ডার, চেকআউট, এবং চেকআউট-ধাপের ইভেন্ট আসতে শুরু করে। অনুমোদনের ধাপের জন্য দেখুন পূর্বশর্ত এবং অংশ ১। স্টোরফ্রন্ট ব্রাউজিং (প্রোডাক্ট ভিউ এবং অ্যাড-টু-কার্ট)-এর জন্যও Push Init Embed চালু থাকা প্রয়োজন।
ট্র্যাকিং তিনটি স্বতন্ত্র ইভেন্ট গ্রুপ কভার করে। প্রতিটির আলাদা অ্যাক্সেস প্রয়োজন, তাই একটি বন্ধ করলে অন্যগুলো পজ হয় না:
- অর্ডার পেইড এবং চেকআউট: থিম এমবেড বন্ধ থাকলেও Shopify থেকে আসে
- স্টোরফ্রন্ট ব্রাউজিং (প্রোডাক্ট ভিউ এবং অ্যাড-টু-কার্ট): থিম এমবেড চালু থাকা প্রয়োজন
- চেকআউট ধাপ: অংশ ১ থেকে Shopify-এর চেকআউট-ট্র্যাকিং পারমিশন প্রয়োজন (
write_pixelsএবংread_customer_events), যা উপরের অর্ডার-ট্র্যাকিং পারমিশন (read_orders) থেকে আলাদাভাবে অনুমোদিত হয়
অ্যাপ কানেক্ট করার আগে, PW_OrderCreated এবং PW_AbandonedCart-এর জন্য Pushwoosh কীভাবে money এবং date অ্যাট্রিবিউট টাইপ হ্যান্ডেল করে তা দেখে নিন। আপনি লক্ষ্য করার আগে পাঠানো একটি ভুল টাইপ পরবর্তীতে ঠিক করা যায় না।
অর্ডার পেইড এবং চেকআউট ইভেন্ট
Anchor link toক্রয়-পরবর্তী মেসেজিং (PW_OrderCreated), পরিত্যক্ত-চেকআউট journey বা সেগমেন্ট (PW_AbandonedCart / PW_AbandonedCartUpdate), এবং ক্রয় কনভার্সন ম্যাপিংয়ের জন্য এগুলো ব্যবহার করুন। ক্রেতা ব্রাউজার ট্র্যাকিং ব্লক করলেও এগুলো Shopify থেকে আসে:
| Pushwoosh-এ ইভেন্টের নাম | কখন ট্রিগার হয় |
|---|---|
PW_OrderCreated | একটি অর্ডার পেইড হয় |
PW_AbandonedCart | একজন ক্রেতা চেকআউট শুরু করে |
PW_AbandonedCartUpdate | একটি চলমান চেকআউটের সময় ক্রেতা আইটেম যোগ করে, সরিয়ে দেয়, বা পরিবর্তন করে |
এগুলো Shopify যে অর্ডার এবং চেকআউট নোটিফিকেশন স্বয়ংক্রিয়ভাবে Pushwoosh-এ পাঠায় তার সাথে সঙ্গতিপূর্ণ (orders/paid, checkouts/create, এবং checkouts/update webhook, সিঙ্ক্রোনাইজড এনটিটি-এর অধীনে তালিকাভুক্ত)।
Shopify-এর নিজস্ব Flow কন্ডিশন, checkouts/create webhook, এবং Products ব্লকের Cart সোর্স — এই তিনটি ভিন্ন জিনিস, যাদের সবকটিকে কার্ট অ্যাবানডনমেন্ট বলা হয়। নিচের টেবিল ব্যবহার করে আপনি যা তৈরি করছেন তার সাথে মিলে যায় এমনটি বেছে নিন।
| আপনি কী তৈরি করতে চান | কী ব্যবহার করবেন |
|---|---|
| Shopify Flow থেকে রিমাইন্ডার (Shopify-এর নিজস্ব Cart abandonment কন্ডিশন) | Shopify Flow + Pushwoosh send notification অ্যাকশন। PW_AbandonedCart ইভেন্টের নাম নয়। |
| চেকআউট শুরু বা কার্ট পরিবর্তনের উপর Pushwoosh-এ রিমাইন্ডার বা সেগমেন্ট | PW_AbandonedCart / PW_AbandonedCartUpdate-এর উপর Customer Journey বা সেগমেন্ট |
| একটি email-এর ভেতরে ক্রেতার কার্ট আইটেম দেখানো | Products ব্লকের Cart সোর্স (পাঠানোর সময় PW_AbandonedCartID ট্যাগ ব্যবহার করে)। কোন ট্রিগার journey শুরু করেছিল তা থেকে আলাদা। |
এই ইভেন্টগুলো কীভাবে আচরণ করে। checkouts/create শুধু বোঝায় যে একটি চেকআউট শুরু হয়েছে। Shopify এখনও এটিকে পরিত্যক্ত বলে সিদ্ধান্ত নেয়নি, এবং কোনো অর্ডারও নিশ্চিত করা হয়নি।
ক্রেতা চেকআউট এডিট করতে থাকা অবস্থায়, PW_AbandonedCartUpdate একই চেকআউটের জন্য আবার ট্রিগার হয় এবং PW_AbandonedCart থেকে সংরক্ষিত কার্ট ওভাররাইট করে। যেসব রিমাইন্ডার email Cart সোর্স ব্যবহার করে সেগুলো পাঠানোর সময় সর্বশেষ আইটেমগুলো নেয়। শুধু কার্ট রিফ্রেশ করার জন্য আপনার দ্বিতীয় journey ট্রিগারের প্রয়োজন নেই।
PW_AbandonedCart এবং PW_AbandonedCartUpdate ক্রেতার উপর PW_AbandonedCartID ট্যাগ সেট করে, যা Cart সোর্স পাঠানোর সময় পড়ে। PW_OrderCreated এটি সাথে সাথে মুছে দেয়, তাই যে ক্রেতা ইতিমধ্যে চেকআউট সম্পন্ন করেছেন তিনি আর নেই এমন একটি কার্টের জন্য রিমাইন্ডার পাওয়ার পরিবর্তে ব্লকটি স্কিপ করেন। সঠিক ক্লিয়ারিং আচরণের জন্য দেখুন আপনি PW_OrderCreated পাঠালে কী ঘটে।
অর্ডার এবং চেকআউট ইভেন্টের অ্যাট্রিবিউট
Anchor link toPW_OrderCreated এবং PW_AbandonedCart-এ অন্তর্ভুক্ত রয়েছে:
| অ্যাট্রিবিউট | বিবরণ |
|---|---|
orderId | অর্ডার বা চেকআউটের আইডেন্টিফায়ার |
email | ক্রেতার email |
totalPrice | অর্ডার বা কার্টের মোট মূল্য |
shippingAmount | শিপিং খরচ |
taxAmount | ট্যাক্সের পরিমাণ |
discountAmount | ছাড়ের পরিমাণ |
currency | মুদ্রার কোড |
items | কার্টের লাইন আইটেম |
customerId | শুধুমাত্র রেজিস্টার্ড গ্রাহকদের জন্য, গেস্ট চেকআউটে থাকে না |
orderUrl | PW_OrderCreated-এর জন্য অর্ডার স্ট্যাটাস পেজ, অথবা PW_AbandonedCart এবং PW_AbandonedCartUpdate-এর জন্য পরিত্যক্ত চেকআউটের রিকভারি URL। একটি “আপনার ক্রয় সম্পন্ন করুন” লিঙ্ক বা বাটন তৈরি করতে এটি ব্যবহার করুন। |
createdDate | অর্ডার বা চেকআউট কখন তৈরি হয়েছিল |
abandonedDate | শুধুমাত্র PW_AbandonedCart এবং PW_AbandonedCartUpdate-এর জন্য। কার্টটি সবশেষ কখন স্পর্শ করা হয়েছিল, এটি প্রথম কখন তৈরি হয়েছিল তা নয় |
গেস্ট চেকআউটও অর্ডার এবং কার্ট ইভেন্ট পাঠাতে পারে, তবে ইভেন্টে রেজিস্টার্ড গ্রাহক ID ছাড়াই।
PW_AbandonedCartUpdate-এ একই অ্যাট্রিবিউট থাকে। আপনার অ্যাকাউন্টে যদি Magento ইন্টিগ্রেশনও কানেক্ট করা থাকে, তাহলে এর অর্ডার এবং পরিত্যক্ত কার্টগুলো একই ইভেন্ট নামে পোস্ট হয়, তাই PW_OrderCreated / PW_AbandonedCart-এর উপর তৈরি একটি সেগমেন্ট বা journey উভয় স্টোরকেই ধরে ফেলে, এবং উপরের অ্যাট্রিবিউট টাইপগুলোও উভয়ের জন্য প্রযোজ্য। Magento-তে PW_AbandonedCartUpdate-এর সমতুল্য কিছু নেই, কারণ এটি চলমান চেকআউট এডিট ট্র্যাক করে না।
বিশেষভাবে items Shopify থেকে শুধুমাত্র কয়েকটি ফিল্ড পূরণ করা অবস্থায় আসে।
স্টোরফ্রন্ট ব্রাউজিং ইভেন্ট
Anchor link toব্রাউজ-অ্যাবানডনমেন্ট সেগমেন্ট বা journey-এর জন্য, এবং প্রোডাক্ট ভিউ প্রয়োজন এমন email রিকমেন্ডেশন স্ট্র্যাটেজির জন্য (যেমন Based on what they viewed) এগুলো ব্যবহার করুন। দেখুন email-এ প্রোডাক্ট রিকমেন্ডেশন কীভাবে সেট আপ করবেন।
উভয় ইভেন্ট একই থিম এমবেড দ্বারা সংগৃহীত হয়। Push Init Embed চালু হয়ে গেলে থিমে অতিরিক্ত কিছু যোগ করার প্রয়োজন নেই:
PW_ProductViewed: ক্রেতা একটি প্রোডাক্ট পেজ খোলেন।PW_AddToCart: ক্রেতা পেজ রিলোড ছাড়াই একটি আইটেম কার্টে যোগ করেন, যা বেশিরভাগ Shopify থিমের কাজ করার পদ্ধতি।
স্টোরফ্রন্ট ব্রাউজিং ইভেন্টের অ্যাট্রিবিউট
Anchor link toউভয় ইভেন্টে অন্তর্ভুক্ত রয়েছে:
| অ্যাট্রিবিউট | বিবরণ |
|---|---|
items | ভিউ করা বা যোগ করা প্রোডাক্ট(গুলো), প্রতিটির সাথে productId, name, sku, quantity, price |
totalPrice | items-এর সম্মিলিত মূল্য |
productUrl | ক্রেতা যে পেজে ছিলেন |
currency | শুধুমাত্র যখন স্টোরফ্রন্ট এটি এক্সপোজ করে |
totalPrice দেখায় এমন একটি মেসেজের জন্য currency অনুপস্থিত থাকলে একটি ফলব্যাক প্রয়োজন, কারণ শুধু সংখ্যাটি বলে না এটি কোন মুদ্রায়।
কোনো ইভেন্টই অ্যাট্রিবিউট হিসেবে email বা customerId বহন করে না। বাকি থিম এমবেড যেভাবে করে সেভাবেই ক্রেতাকে শনাক্ত করা হয়, মেটাফিল্ড User ID-এর সাথে যুক্ত SDK সেশনের মাধ্যমে (দেখুন অংশ ২), ইভেন্ট পেলোডের মাধ্যমে নয়।
PW_ProductViewed এবং PW_AddToCart-এর items সমৃদ্ধকরণের আগে Shopify যে ফিল্ডগুলো পাঠায় সেগুলোই বহন করে: productId, name, sku, quantity, price। PW_AbandonedCart-এর items-এর জন্য যেমন করে (উপরে কার্টের আইটেম আপনার প্রোডাক্ট ক্যাটালগ থেকে সমৃদ্ধ করা হয় দেখুন), Pushwoosh এই দুটি ইভেন্টের জন্য বাকি ক্যাটালগ ফিল্ড পূরণ করে না।
Based on what they viewed-এর মতো পূর্ণ প্রোডাক্ট বিবরণ প্রয়োজন এমন একটি রিকমেন্ডেশন স্ট্র্যাটেজি, মেসেজ রেন্ডার হওয়ার সময় productId দিয়ে আপনার প্রোডাক্ট ক্যাটালগ থেকে সেগুলো খুঁজে বের করে। প্রতিটি স্ট্র্যাটেজির কী প্রয়োজন তা জানতে দেখুন email-এ প্রোডাক্ট রিকমেন্ডেশন কীভাবে সেট আপ করবেন।
চেকআউট ধাপ ইভেন্ট
Anchor link toক্রয়ের আগে মানুষ কোথায় ড্রপ-অফ করছে তা দেখতে, এবং যারা চেকআউট শুরু করেছেন কিন্তু পেইড অর্ডারে পৌঁছাননি তাদের মেসেজ করতে এগুলো ব্যবহার করুন।
PW_CheckoutContactInfo: ক্রেতা তাদের যোগাযোগের তথ্য প্রবেশ করিয়েছেন।PW_PaymentInfoSubmitted: ক্রেতা তাদের পেমেন্ট বিবরণ জমা দিয়েছেন।
একটি সম্পন্ন বিক্রয় হলো উপরের বিভাগের PW_OrderCreated, এই দুটি ইভেন্ট নয়।
PW_AbandonedCart শুধু আপনাকে বলে যে একটি চেকআউট শুরু হয়েছে। এই দুটি ইভেন্ট একই চেকআউটের পরবর্তী দুটি বিন্দু চিহ্নিত করে, এই ক্রমে: প্রথমে যোগাযোগের তথ্য, তারপর পেমেন্ট বিবরণ। যে ক্রেতা PW_PaymentInfoSubmitted-এ পৌঁছেছেন এবং কখনো পরবর্তী PW_OrderCreated পাননি তিনি শুধু PW_AbandonedCart ট্রিগার করা কারো চেয়ে আরও এগিয়ে গেছেন, তাই সেই পর্যায়ের উপর তৈরি একটি মেসেজ একটি সাধারণ কার্ট রিমাইন্ডারের পরিবর্তে সুনির্দিষ্টভাবে একটি আটকে যাওয়া পেমেন্টকে সম্বোধন করতে পারে।
চেকআউট ধাপ ইভেন্টের অ্যাট্রিবিউট
Anchor link toউভয় ইভেন্টে অন্তর্ভুক্ত রয়েছে:
| অ্যাট্রিবিউট | বিবরণ |
|---|---|
items | চেকআউটের লাইন আইটেম, প্রতিটির সাথে productId, name, sku, quantity, price |
orderId | চেকআউট টোকেন, অথবা চেকআউটের একটি থাকলে Shopify অর্ডার ID |
totalPrice | চেকআউটের মোট মূল্য |
email | শুধুমাত্র যখন চেকআউটের একটি থাকে। একটি ফোন-ভিত্তিক চেকআউট (কোনো email প্রবেশ করানো হয়নি) এটি ছাড়াই ইভেন্ট পাঠায়। |
currency | শুধুমাত্র যখন চেকআউটের একটি থাকে |
এটি কাজ করছে কিনা যাচাই করুন
Anchor link toস্টোরে সংশ্লিষ্ট অ্যাকশনটি করুন, তারপর নিশ্চিত করুন যে ইভেন্টের নাম Pushwoosh-এ দেখা যাচ্ছে। ইভেন্টটি নিজেই রিয়েল-টাইমে প্রসেস করা হয়, কিন্তু আপনি যে দুটি জায়গায় এটি চেক করবেন সেগুলো Pushwoosh আগে দেখেনি এমন একটি নামের প্রতি ভিন্নভাবে প্রতিক্রিয়া দেখায়:
- ইভেন্ট দিয়ে একটি সেগমেন্ট তৈরি করুন করার সময় Event ড্রপডাউনে, একটি নতুন নাম সাথে সাথেই দেখা যায়।
- একটি Customer Journey ট্রিগার যোগ করার সময় Event ড্রপডাউনে, একটি নতুন নাম দেখা যেতে ১০ মিনিট পর্যন্ত সময় লাগতে পারে (সেই ড্রপডাউন ক্যাশ করা থাকে)। আপনি যদি এখনও এটি না দেখেন, তাহলে ইন্টিগ্রেশন ভাঙা ধরে না নিয়ে অপেক্ষা করুন।
| টেস্ট অ্যাকশন | ইভেন্ট |
|---|---|
| একটি টেস্ট অর্ডার পেমেন্ট করুন | PW_OrderCreated |
| একটি চেকআউট শুরু করুন | PW_AbandonedCart |
| সেই চেকআউটে আইটেম পরিবর্তন করুন | PW_AbandonedCartUpdate |
| একটি প্রোডাক্ট পেজ খুলুন (Push Init Embed চালু) | PW_ProductViewed |
| কার্টে একটি আইটেম যোগ করুন | PW_AddToCart |
| চেকআউটে যোগাযোগের তথ্য প্রবেশ করান | PW_CheckoutContactInfo |
| চেকআউটে পেমেন্ট তথ্য জমা দিন | PW_PaymentInfoSubmitted |
ইভেন্ট ব্যবহার করুন
Anchor link toআপনি কোন ইভেন্টটি প্রয়োজন তা জানার পরে, এটি দুটি জায়গায় ব্যবহার করুন:
- একটি ট্রিগার বা সেগমেন্ট কন্ডিশন হিসেবে: ইভেন্ট দিয়ে একটি সেগমেন্ট তৈরি করুন বা একটি Customer Journey ট্রিগার যোগ করার সময় Event ড্রপডাউনে এটি বেছে নিন।
- মেসেজ টেক্সটে: মেসেজ ধাপে, Personalize message with event attributes চালু করুন এবং অ্যাট্রিবিউট বেছে নিন (যেমন
PW_OrderCreatedথেকে অর্ডার টোটাল)। আপনি একটি Liquid প্লেসহোল্ডার দিয়েও অ্যাট্রিবিউট ইনসার্ট করতে পারেন। দেখুন journey-তে ডাইনামিক কন্টেন্ট এবং Liquid টেমপ্লেট।
পেইড অর্ডারের জন্য, আপনি PW_OrderCreated-কে একটি কনভার্সন ইভেন্ট হিসেবেও ম্যাপ করতে পারেন যাতে Shopify-এর ক্রয়গুলো RFM সেগমেন্টেশন, journey অ্যাট্রিবিউশন, এবং Product ব্লক পরিসংখ্যান-এ যুক্ত হয়।
উদাহরণ ক্যাম্পেইন
Anchor link toপ্রতিটি ক্রেতার পথের ভিন্ন বিন্দুতে ট্রিগার হয়, তাই তারা ভিন্ন অডিয়েন্সে পৌঁছায়: কেউ ড্রপ-অফের আগে কতদূর গিয়েছিল, বা তারা আদৌ চেকআউটে পৌঁছেছিল কিনা, তা নির্ধারণ করে কোনটি প্রযোজ্য।
- পরিত্যক্ত-কার্ট রিমাইন্ডার। যত দূরেই তারা গিয়ে থাকুক না কেন, চেকআউট শুরু করা প্রতিটি ক্রেতাকে ধরে ফেলে — এখানে সবচেয়ে বিস্তৃত অডিয়েন্স। এটিকে একটি Customer Journey হিসেবে তৈরি করুন:
PW_AbandonedCart-এ ট্রিগার করুন,PW_OrderCreated-এর জন্য অপেক্ষা করুন, তারপর যারা পেমেন্ট করেননি তাদের একটি Cart সোর্স ব্লক সহ একটি email পাঠান। সম্পূর্ণ সেটআপের জন্য দেখুন পরিত্যক্ত কার্ট ক্যাম্পেইন কীভাবে সেট আপ করবেন। - আটকে যাওয়া চেকআউটের জন্য ফলো-আপ। শুধুমাত্র সেই ক্রেতাদের ধরে যারা যোগাযোগের তথ্য প্রবেশ করানো পর্যন্ত পৌঁছেছেন কিন্তু কখনো পেমেন্ট করেননি, উপরের অডিয়েন্সের একটি সংকীর্ণ অংশ।
PW_CheckoutContactInfo-এর উপর সেগমেন্ট করুন, তারপর যাদেরPW_PaymentInfoSubmittedবাPW_OrderCreated-ও আছে তাদের বাদ দিন। - আটকে যাওয়া পেমেন্টের জন্য রিকভারি। পেমেন্ট পর্যন্ত পৌঁছানো কিন্তু কখনো অর্ডার সম্পন্ন করেননি এমন ক্রেতাদের ধরে, উপরের ফলো-আপের চেয়ে আরও এগিয়ে এবং এটির সাথে পারস্পরিক একচেটিয়া।
PW_PaymentInfoSubmitted-এর উপর সেগমেন্ট করুন, তারপর যাদেরPW_OrderCreated-ও আছে তাদের বাদ দিন। - ব্রাউজ রিকমেন্ডেশন email। প্রোডাক্ট দেখেছেন কিন্তু কখনো চেকআউটই শুরু করেননি এমন ক্রেতাদের ধরে, উপরের রিমাইন্ডারগুলোর চেয়ে ভিন্ন একটি অডিয়েন্স। Products ব্লকের Based on what they viewed স্ট্র্যাটেজির সাথে
PW_ProductViewedব্যবহার করুন। দেখুন email-এ প্রোডাক্ট রিকমেন্ডেশন কীভাবে সেট আপ করবেন।