ফেসবুক বিজ্ঞাপন ও ট্র্যাকিং

Meta Pixel + Conversion API: WooCommerce-এ ঠিকভাবে বসানোর বাংলা গাইড

সংক্ষেপে: Pixel চলে কাস্টমারের ব্রাউজারে, Conversion API চলে আপনার সার্ভার থেকে। দুটো একসাথে ঠিকভাবে বসালে ফেসবুক বুঝতে পারে কোন বিজ্ঞাপন আসল বিক্রি আনছে। ক্যাশ অন ডেলিভারির দোকানের জন্য কোন ইভেন্ট কখন পাঠাবেন, ধাপে ধাপে।

ছোট উত্তর: Meta Pixel ব্রাউজার থেকে আর Conversion API (CAPI) আপনার সার্ভার থেকে একই ঘটনা ফেসবুককে জানায়; দুটো মিলিয়ে কম ইভেন্ট হারায়। WooCommerce-এ দুটো বসানোর সময় তিনটা নিয়ম মানুন — (১) একই ইভেন্ট দুই জায়গা থেকে গেলে একই event_id দিন, যাতে ফেসবুক একবার গোনে; (২) ক্যাশ অন ডেলিভারির দোকানে Purchase পাঠান অর্ডার কনফার্ম/প্যাক/ডেলিভারি হলে, চেকআউটের মুহূর্তে না; (৩) Meta-তে ইভেন্ট পাঠায় এমন একটাই প্লাগিন রাখুন।

Pixel আর Conversion API — পার্থক্য কী

বিষয়Meta PixelConversion API
কোথা থেকে যায়কাস্টমারের ব্রাউজারআপনার ওয়েবসাইটের সার্ভার
অ্যাড ব্লকার বা ব্রাউজারের বাধাআটকাতে পারেপ্রভাব ফেলে না
পরে ঘটা ঘটনা (যেমন ডেলিভারি)পাঠাতে পারে না — কাস্টমার তখন সাইটে নেইপারে
কী লাগেপিক্সেল কোডপিক্সেল/ডেটাসেট আইডি + অ্যাক্সেস টোকেন

Pixel একা চালালে কিছু ইভেন্ট হারায়; CAPI একা চালালে ব্রাউজারের কিছু তথ্য (যেমন fbp/fbc কুকি) কম যায়। তাই Meta নিজেও দুটো একসাথে চালাতে বলে, আর একই ঘটনাকে মিলিয়ে নিতে বলে — ব্রাউজারের eventID আর সার্ভারের event_id এক হলে, আর ইভেন্টের নামও এক হলে, Meta ৪৮ ঘণ্টার মধ্যে আসা দুটোকে একটা ধরে।

ক্যাশ অন ডেলিভারির দোকানে সবচেয়ে বড় ভুল

বেশিরভাগ প্লাগিন কাস্টমার "অর্ডার করুন" চাপার সাথে সাথে Purchase পাঠায়। অনলাইন পেমেন্টের দোকানে এটা ঠিক, কারণ টাকা তখনই আসে। কিন্তু COD-তে অর্ডারের একটা অংশ ফেক বা পরে ক্যানসেল হয় — অথচ ফেসবুক সবগুলোকেই "বিক্রি" ধরে নেয়।

ফল: ফেসবুক সেই দর্শকদের দিকে বাজেট ঠেলে, যারা অর্ডার দেয় কিন্তু নেয় না। আমাদের নিজের দোকানে ঠিক এটাই হয়েছিল — Audience Network থেকে আসা অর্ডারের ৭৭% ক্যানসেল, কিন্তু চেকআউটের Purchase দেখে ফেসবুক ওদিকেই খরচ বাড়াচ্ছিল। পুরো ঘটনা: Audience Network থেকে ফেক অর্ডার।

সমাধান: Purchase পাঠান তখন, যখন অর্ডারটা সত্যিকারের বিক্রির কাছাকাছি:

  • কনফার্মড হলে — দ্রুত সংকেত, কিন্তু কিছু ফেরত তবুও থাকবে।
  • প্যাক/শিপড হলে — আমরা নিজের দোকানে এটা ব্যবহার করি।
  • ডেলিভারড হলে — সবচেয়ে সঠিক, তবে কয়েক দিন দেরিতে পৌঁছায়।

একটা জিনিস মনে রাখুন: Meta সাধারণত ৭ দিনের বেশি পুরনো ইভেন্ট নেয় না। ঢাকার বাইরের পার্সেলে ডেলিভারি হতে দেরি হলে "ডেলিভারড" ইভেন্ট সেই সীমা পেরিয়ে যেতে পারে — তাই অনেক দোকান প্যাক/শিপড বেছে নেয়।

কোন ইভেন্ট কখন

ইভেন্টকখনকোথা থেকে
PageViewযেকোনো পাতা খুললেব্রাউজার (+ সার্ভার)
ViewContentপণ্যের পাতা দেখলেব্রাউজার (+ সার্ভার)
AddToCartকার্টে যোগ করলেব্রাউজার (+ সার্ভার)
InitiateCheckoutচেকআউট শুরু করলেব্রাউজার (+ সার্ভার)
PurchaseCOD-তে: কনফার্ম/প্যাক/ডেলিভারি হলেসার্ভার (CAPI)

চেকআউটে মোবাইল নম্বর পাওয়া গেলে সেটা হ্যাশ করে (SHA-256) InitiateCheckout-এর সাথে পাঠালে ফেসবুক মানুষটাকে চিনতে পারে ভালো — এটাই Event Match Quality বাড়ায়। বিস্তারিত: Event Match Quality বাড়ানোর উপায়।

ধাপে ধাপে বসানো (যে প্লাগিনই ব্যবহার করুন)

  1. Events Manager-এ ডেটাসেট (পিক্সেল) তৈরি করুন বা আগেরটা নিন। আইডিটা লিখে রাখুন।
  2. Conversion API-এর অ্যাক্সেস টোকেন তৈরি করুন: Events Manager → আপনার ডেটাসেট → Settings → Conversions API → Generate access token। টোকেনটা পাসওয়ার্ডের মতো গোপন রাখুন।
  3. একটা প্লাগিন বেছে নিন যেটা Pixel + CAPI দুটোই পাঠায় আর event_id মেলায়। বাকি যেসব প্লাগিন Meta-তে ইভেন্ট পাঠায় (অনেক থিম, ফানেল বা অর্ডার প্লাগিনেও লুকানো থাকে), সেগুলোর পিক্সেল বন্ধ করুন।
  4. Purchase কখন যাবে ঠিক করুন — COD-তে প্যাক/শিপড বা কনফার্মড।
  5. Test Events দিয়ে যাচাই করুন: Events Manager → Test events-এ একটা টেস্ট কোড পাবেন; প্লাগিনে বসিয়ে সাইটে একটা পণ্য দেখুন, কার্টে নিন। প্রতিটা ইভেন্ট দেখাবে "Browser" আর "Server" — দুটোই "Deduplicated" হলে ঠিক আছে।
  6. টেস্ট কোড সরিয়ে দিন। না সরালে আসল ইভেন্টগুলো Test events-এ আটকে থাকে, বিজ্ঞাপনের হিসাবে আসে না।
  7. ৫–৭ দিন পরে দেখুন Events Manager-এ Event Match Quality আর ডাবল গোনার সতর্কতা আছে কিনা।

ডাবল গোনা কীভাবে ধরবেন

  • Events Manager-এ একই অর্ডারের দুইটা Purchase দেখা যাচ্ছে, অথচ event_id আলাদা।
  • ফেসবুকের Purchase সংখ্যা আপনার আসল অর্ডারের চেয়ে বেশি।
  • পেজের সোর্সে দুইবার fbq('init' আছে — মানে দুইটা পিক্সেল লোড হচ্ছে।

আমাদের দোকানে একসাথে দুইটা প্লাগিন Purchase পাঠাচ্ছিল, আলাদা event_id দিয়ে — ফলে প্রতিটা আসল অর্ডার দুইবার গোনা হচ্ছিল। একটার পিক্সেল বন্ধ করে (তার ক্যাটালগ সিঙ্ক চালু রেখে) সমাধান হয়েছে।

নিশ্চিতে কীভাবে চলে

নিশ্চিত WooCommerce প্লাগিন সার্ভার থেকে (CAPI) Purchase পাঠায় আপনার বেছে নেওয়া সময়ে — অর্ডার একটা নির্দিষ্ট স্ট্যাটাসে পৌঁছালে (যেমন প্যাক বা ডেলিভারড), অথবা শুধু ভালো ডেলিভারি রেকর্ডের নম্বরে অর্ডারের সময়েই। ডেলিভারড, রিটার্নড আর কনফার্মড আলাদা কাস্টম ইভেন্ট হিসেবেও পাঠানো যায়, যা দিয়ে কাস্টম অডিয়েন্স বানানো যায়। ল্যান্ডিং পেজে স্ক্রল আর ফর্মের ইভেন্ট ব্রাউজার ও সার্ভার দুই দিক থেকেই একই event_id দিয়ে যায়, আর অন্য কোনো প্লাগিন একই সাথে Meta-তে পাঠালে সতর্ক করে। প্রতিটা ইভেন্টের লগ দেখা যায় — পাঠানো, আটকে রাখা বা ব্যর্থ। পুরো সেটআপ ছবি দিয়ে আছে Meta Conversion API গাইডে।

প্রশ্নোত্তর

শুধু Pixel দিয়ে চলবে না?

চলে, কিন্তু অ্যাড ব্লকার, ধীর নেট বা কাস্টমার তাড়াতাড়ি পাতা বন্ধ করলে কিছু ইভেন্ট হারায়। আর COD-তে আসল Purchase (কনফার্ম বা ডেলিভারি) ঘটে কাস্টমার সাইট ছাড়ার পরে — সেটা Pixel পাঠাতেই পারে না, CAPI লাগে।

Conversion API বসাতে কি ডেভেলপার লাগে?

ভালো একটা প্লাগিন থাকলে না। পিক্সেল আইডি আর অ্যাক্সেস টোকেন বসালেই হয়। তবে Test events দিয়ে যাচাইটা নিজে করে নিন।

Purchase-এ কোন দাম পাঠাব?

অর্ডারের পণ্যমূল্য, মুদ্রা BDT। ডেলিভারি চার্জ যোগ করবেন কিনা, একবার ঠিক করে সব অর্ডারে একই রাখুন — নইলে ROAS-এর হিসাব মেলে না।

ক্যাটালগের জন্য Meta-র অফিসিয়াল প্লাগিন রাখলে?

রাখতে পারেন — শুধু তার পিক্সেল/ইভেন্ট পাঠানো বন্ধ রাখুন, যদি অন্য প্লাগিন দিয়ে ইভেন্ট পাঠান। নইলে ডাবল গোনা হবে।

মিটিং

নিশ্চিত টিমের সাথে সরাসরি কথা বলুন

নাম, নম্বর আর পছন্দের সময় দিন — সাথে সাথে কনফার্মেশন SMS পাবেন।

লিখেছেন সাজ্জাদ হোসেন অনিক

প্রতিষ্ঠাতা, নিশ্চিত

নিশ্চিত-এর প্রতিষ্ঠাতা। নিজের অনলাইন দোকান আমদানি হাব চালান, আর নিশ্চিত দিয়ে বাংলাদেশের অনলাইন দোকানগুলোর অর্ডার, কুরিয়ার আর কনফার্মেশনের কাজ সহজ করেন।

মন্তব্য

এখনো কোনো মন্তব্য নেই। প্রথম প্রশ্নটা আপনিই করুন, বা আপনার অভিজ্ঞতা জানান।

মন্তব্য লিখুন

শুধু আমাদের টিম যেন আপনাকে ফোন করে উত্তর দিতে পারে। নম্বরটি কোথাও দেখানো হবে না।

আমাদের টিম পড়ে দেখার পর মন্তব্য প্রকাশ হয়।