Loading

Close

E-commerce সমস্যা ও সমাধান

Conversion API সমস্যা: Duplicate, Missing Event ও Low Match Quality

EOMS Editorial Team আপডেট: 06 Oct 2026 7 মিনিট পড়া

সংক্ষেপে উত্তর

Conversion API-র তিনটা সাধারণ সমস্যা: browser আর server event-এ একই event_id না থাকায় Purchase দ্বিগুণ হওয়া, ভুল access token/event_time/queue-র কারণে server event না আসা, এবং phone number ঠিকভাবে normalize ও hash না করায় Event Match Quality কম হওয়া। Events Manager-এর Test Events-এ একটা test order দিয়ে তিনটাই যাচাই করা যায়।
এই লেখায় যা আছে (13)
  1. Conversion API কীভাবে Pixel-এর সাথে কাজ করে
  2. সমস্যা ১: Purchase দ্বিগুণ আসছে (deduplication কাজ করছে না)
  3. লক্ষণ
  4. কারণ ও সমাধান
  5. সমস্যা ২: Server event আসছেই না বা মাঝে মাঝে হারাচ্ছে
  6. লক্ষণ
  7. কী check করবেন, এই ক্রমে
  8. সমস্যা ৩: Event Match Quality কম
  9. কোন তথ্য পাঠাবেন
  10. ধাপে ধাপে যাচাই করার পদ্ধতি
  11. কাজ হলো কি না কীভাবে মাপবেন
  12. সাধারণ ভুল
  13. শেষ কথা

Conversion API (CAPI) চালু করার পর অনেকেই তিন রকম সমস্যায় পড়েন: Purchase হঠাৎ দ্বিগুণ হয়ে গেছে, server event একদমই আসছে না, অথবা Events Manager-এ Event Match Quality দেখাচ্ছে "Poor"। তিনটারই কারণ নির্দিষ্ট, আর তিনটাই ঠিক করা যায়।

এই লেখায় প্রতিটা সমস্যার লক্ষণ, কোথায় দেখবেন, কী কারণে হয় আর কীভাবে ঠিক করবেন — সেটা ধাপে ধাপে দেওয়া হলো। কিছু অংশ developer-এর কাজ; সেখানে তাকে ঠিক কী বলবেন সেটাও লিখে দেওয়া আছে।

Conversion API কীভাবে Pixel-এর সাথে কাজ করে

Pixel চলে customer-এর browser-এ। Ad blocker, browser-এর tracking protection বা দুর্বল network-এ কিছু event হারিয়ে যায়। Conversion API একই event আপনার server থেকে সরাসরি Meta-কে পাঠায়, তাই এই ক্ষতি অনেকটা পূরণ হয়।

Meta-র পরামর্শ হলো দুটোই একসাথে চালানো — browser Pixel এবং server CAPI। কিন্তু তখন একই order-এর জন্য Meta দুইটা Purchase পায়। Meta-কে বুঝিয়ে দিতে হয় যে এই দুটো আসলে একই ঘটনা — এটাকেই বলে deduplication। CAPI কেন দরকার আর প্রথমবার কীভাবে চালু করবেন, সেটা আছে Meta Conversion API setup গাইডে।

সমস্যা ১: Purchase দ্বিগুণ আসছে (deduplication কাজ করছে না)

লক্ষণ

CAPI চালুর পর থেকে Events Manager-এ Purchase সংখ্যা আপনার আসল order-এর প্রায় দ্বিগুণ। Ads Manager-এ ROAS হঠাৎ অস্বাভাবিক ভালো দেখাচ্ছে। Events Manager-এ event-এ click করলে deduplication নিয়ে warning দেখাতে পারে।

কারণ ও সমাধান

Meta দুইটা event-কে একই ধরে তখনই, যখন দুটোর event_name এক এবং event_id এক। আর Meta-র developer docs অনুযায়ী একই event_id-এর প্রথম event পৌঁছানোর ৪৮ ঘণ্টার মধ্যে দ্বিতীয়টা পৌঁছালে তবেই deduplication হয়। সাধারণ ভুলগুলো:

  • Browser event-এ event_id পাঠানোই হচ্ছে না। Pixel-এ এটা যায় চতুর্থ parameter হিসেবে: fbq('track', 'Purchase', {value: 1450, currency: 'BDT'}, {eventID: 'ORD-10234'})। Server event-এ একই মান event_id field-এ যেতে হবে।
  • দুই দিকে আলাদা ID তৈরি হচ্ছে। browser-এ random number, server-এ order number — তাহলে কখনো মিলবে না। সবচেয়ে সহজ নিয়ম: Purchase-এর জন্য দুই দিকেই order ID ব্যবহার করুন।
  • Event নাম মিলছে না। browser-এ Purchase, server-এ purchase বা Order — এগুলো আলাদা event হিসেবে গণনা হয়।
  • একাধিক integration একসাথে চলছে। একটা plugin CAPI পাঠাচ্ছে, আবার custom code-ও পাঠাচ্ছে। তখন server event নিজেই দুইবার যায়।

সমস্যা ২: Server event আসছেই না বা মাঝে মাঝে হারাচ্ছে

লক্ষণ

Events Manager-এ event-এর connection method শুধু "Browser" দেখায়, "Server" নেই। অথবা কিছু দিন server event আসার পর হঠাৎ বন্ধ।

কী check করবেন, এই ক্রমে

  1. Access token: token বাতিল হয়ে গেলে সব request ফেরত আসে। যে ব্যক্তির account দিয়ে token তৈরি হয়েছিল, তিনি Business থেকে সরে গেলে বা permission বদলালে এমন হতে পারে। Events Manager-এর settings থেকে নতুন token তৈরি করুন, আর সম্ভব হলে Business Manager-এর system user দিয়ে তৈরি করুন।
  2. Pixel/dataset ID: server code-এ যে ID আছে, সেটা browser Pixel-এর ID-র সাথে মেলে কি না।
  3. Error log: Meta-র API ভুল request পেলে error message ফেরত দেয়। developer-কে বলুন এই response log করতে — এক নজরে কারণ বোঝা যায়।
  4. event_time: এটা Unix time, সেকেন্ডে। অনেকে millisecond পাঠিয়ে ফেলেন, তখন সময়টা অনেক দূর ভবিষ্যতের হয়ে যায় এবং event বাতিল হতে পারে। আবার event_time ৭ দিনের বেশি পুরনো হলে Meta error দেয় — আর একটা request-এর মধ্যে একটা event-ও এমন হলে পুরো request-এর কোনো event গৃহীত হয় না। তাই queue-তে আটকে থাকা পুরনো event একসাথে পাঠানোর সময় সাবধান।
  5. action_source: website-এর event-এর জন্য website দিতে হয়, সাথে event_source_url।
  6. Background job বা queue: অনেক system CAPI event queue-তে রেখে পরে পাঠায়। queue worker বা cron বন্ধ থাকলে event জমে থাকে, যায় না। server restart-এর পর এটা প্রায়ই ঘটে।
  7. test_event_code রয়ে গেছে: Meta-র docs অনুযায়ী test code সহ পাঠানো event বাদ পড়ে না — সেগুলোও Events Manager-এ যায় এবং measurement-এ ব্যবহার হয়। কিন্তু Meta স্পষ্ট বলে এই field শুধু পরীক্ষার জন্য, live payload থেকে সরিয়ে দিতে হবে। Live code-এ এটা থেকে গেলে প্রতিটা আসল order Test Events-এ ভরে যায় আর আসল সমস্যা আলাদা করা কঠিন হয়। পরীক্ষা শেষে সরিয়ে দিন।

সমস্যা ৩: Event Match Quality কম

Event Match Quality (EMQ) হলো Meta-র দেওয়া একটা স্কোর (০ থেকে ১০, সাথে Poor/OK/Good/Great ধরনের লেবেল), যা বলে আপনার server event-এর সাথে পাঠানো তথ্য দিয়ে Meta কতটা ভালোভাবে সেটা একজন Facebook/Instagram user-এর সাথে মেলাতে পারছে। Events Manager-এ server event-এর পাশে এটা দেখা যায়। Match কম হলে Meta জানে না order-টা কোন ad দেখা মানুষের — ফলে optimization দুর্বল হয়।

কোন তথ্য পাঠাবেন

ParameterকীHash করবেন?
phPhone numberহ্যাঁ (SHA-256)
emEmailহ্যাঁ (SHA-256)
fn, lnনামের প্রথম ও শেষ অংশহ্যাঁ
ct, st, zp, countryশহর, এলাকা, postcode, দেশ (bd)হ্যাঁ
external_idআপনার system-এর customer IDhash করা ভালো
client_ip_address, client_user_agentCustomer-এর IP ও browser তথ্যনা
fbp, fbcMeta-র browser cookie ও ad click IDনা

বাংলাদেশে COD order-এ প্রায় সবসময় phone number নেওয়া হয়, কিন্তু email প্রায়ই থাকে না। তাই phone number ঠিকভাবে পাঠানোই সবচেয়ে বড় উন্নতি। Hash করার আগে number-কে একটা নির্দিষ্ট format-এ আনতে হয় — Meta-র নিয়ম হলো চিহ্ন, অক্ষর আর শুরুর শূন্য বাদ দিয়ে শুধু digit রাখা, সামনে country code সহ।

আরও দুটো সাধারণ কারণ:

  • fbc পাঠানো হচ্ছে না: ad-এ click করে আসলে URL-এ fbclid থাকে, আর Pixel সেটা _fbc cookie-তে রাখে। order-এর সময় এই cookie-র মান server event-এ পাঠালে match অনেক ভালো হয়। অনেক setup এটা বাদ দেয়, কারণ order form submit হওয়ার পর server-এ cookie পড়া হয় না।
  • IP আর user agent server-এর নিজের: queue থেকে পাঠালে ভুল করে server-এর IP চলে যায়। order তৈরির সময় customer-এর IP ও user agent সংরক্ষণ করে পরে সেটাই পাঠাতে হবে।

ধাপে ধাপে যাচাই করার পদ্ধতি

  1. 1
    Events Manager-এ dataset খুলে Test Events tab-এ যান; server test-এর জন্য দেওয়া test code টা developer-কে দিন।
  2. 2
    Test code সহ একটা test order দিন এবং দেখুন Purchase একবার browser থেকে আর একবার server থেকে আসছে কি না।
  3. 3
    দুটো event-এর event_id একই (যেমন order number) কি না check করুন; Meta deduplicate করলে সেটা সেখানে বোঝা যায়।
  4. 4
    Server event-এর details-এ দেখুন কোন customer information parameter গেছে — অন্তত ph, fbp, fbc, IP আর user agent থাকা উচিত।
  5. 5
    Phone number normalization (বাংলা অঙ্ক, +880, space) কয়েকটা ভিন্ন format দিয়ে পরীক্ষা করুন।
  6. 6
    পরীক্ষা শেষে live code থেকে test_event_code সরিয়ে দিন, আর test order-গুলো admin panel থেকে বাতিল করুন।
  7. 7
    পরের কয়েক দিন Overview-তে Purchase সংখ্যা আপনার order সংখ্যার সাথে মেলান, আর EMQ স্কোর বাড়ছে কি না দেখুন।

কাজ হলো কি না কীভাবে মাপবেন

  • Purchase সংখ্যা: Events Manager-এর দৈনিক Purchase আর admin panel-এর order প্রায় কাছাকাছি হওয়া উচিত — দ্বিগুণ নয়, অর্ধেকও নয়।
  • Connection method: Purchase-এর পাশে Browser এবং Server দুটোই দেখাবে।
  • EMQ: fix-এর পর কয়েক দিনে স্কোর বাড়ার দিকে যাওয়া উচিত। নির্দিষ্ট কোনো সংখ্যা "যথেষ্ট" এমন নিয়ম নেই — আপনি কোন তথ্য সংগ্রহ করেন তার উপর নির্ভর করে।
  • Diagnostics: নতুন কোনো warning নেই।

সাধারণ ভুল

শেষ কথা

Conversion API-র সমস্যা মূলত তিনটা: duplicate, missing, আর low match। প্রতিটার জন্য Events Manager-এ আলাদা লক্ষণ আছে, আর বেশিরভাগ ক্ষেত্রে কারণ ছোট — একটা ID, একটা token, বা phone number-এর format। tracking ঠিক হওয়ার পরও ad থেকে বিক্রি না এলে campaign-এর দিকটা দেখুন Facebook Ads-এ conversion না আসার গাইডে।

Checklist: Conversion API সমস্যা: Duplicate, Missing Event ও Low Match Quality

সাধারণ প্রশ্ন (FAQ)

Pixel থাকলে কি Conversion API লাগবেই?
বাধ্যতামূলক নয়, কিন্তু শুধু browser Pixel-এ ad blocker ও browser privacy-র কারণে কিছু event হারায়। Meta দুটো একসাথে চালানোর পরামর্শ দেয়, deduplication সহ। ছোট shop-এর ক্ষেত্রে platform-এর built-in CAPI integration থাকলে সেটাই সবচেয়ে সহজ পথ।
Event Match Quality কত হলে ভালো?
Meta স্কোরটা ১০-এর মধ্যে দেখায় এবং একটা মানও লিখে দেয়। কোনো নির্দিষ্ট সংখ্যা সবার জন্য যথেষ্ট নয়; লক্ষ্য হলো আপনার কাছে থাকা সব বৈধ তথ্য (phone, fbc, fbp, IP, user agent) ঠিকভাবে পাঠানো এবং স্কোর বাড়ছে কি না দেখা।
Customer-এর phone number Meta-কে পাঠানো কি নিরাপদ?
Conversion API-তে phone ও email SHA-256 দিয়ে hash করে পাঠাতে হয়, তাই আসল number যায় না। তবু আপনার privacy policy-তে জানিয়ে রাখা উচিত যে marketing measurement-এর জন্য এই তথ্য ব্যবহার হয়।
COD order বাতিল হলে কি Meta-কে জানানো যায়?
Purchase event একবার পাঠালে সেটা ফেরত নেওয়ার সহজ উপায় নেই। কিছু ব্যবসা order confirm হওয়ার পর বা delivered হওয়ার পর আলাদা custom event পাঠায়, কিন্তু এতে সময়ের ব্যবধান তৈরি হয়। আপনার order volume ও fake order-এর হার দেখে developer-এর সাথে ঠিক করুন।
E
EOMS Editorial Team E-commerce Consultants, Dhaka

EOMS ২০০৯ সাল থেকে বাংলাদেশের ব্যবসার জন্য e-commerce website, ERP ও marketing system তৈরি করছে।