Anti-Adblock লোডার, Safari ITP Fix এবং Facebook EMQ স্কোর বাড়ানোর পূর্ণাঙ্গ গাইড। নিচের ধাপগুলো ক্রমানুযায়ী অনুসরণ করুন।
সাধারণ GTM snippet ব্যবহার করলে EasyPrivacy / uBlock Origin অ্যাডব্লকার ?id=GTM- প্যাটার্ন দেখে ব্লক করে দেয়। BonicBD-এর /bbd-loader.js?st= পাথ ব্যবহার করলে এই ব্লক এড়ানো যায়।
আপনার ওয়েবসাইটের <head> ট্যাগের ঠিক পরেই নিচের কোডটি বসান:
<!-- BonicBD sGTM Anti-Adblock Loader -->
<script>
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),
dl=l!='dataLayer'?'&l='+l:'';
j.async=true;
// ⚠️ নিচে আপনার ট্র্যাকিং ডোমেইন ও GTM ID বসান
j.src='https://ts.yourdomain.com/bbd-loader.js?st='+i+dl;
f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');
</script>
<!-- BonicBD Integrated Tracker (Cookie + Click ID + Dedup + UTM) -->
<script src="https://ts.yourdomain.com/bbd-tracker-integrated.js" async></script>
function bonicbd_head_scripts() {
$sgtm = 'https://ts.yourdomain.com';
$gtmid = 'GTM-XXXXXXX';
?>
<script>
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],j=d.createElement(s),
dl=l!='dataLayer'?'&l='+l:'';
j.async=true;
j.src='<?php echo $sgtm; ?>/bbd-loader.js?st='+i+dl;
f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','<?php echo $gtmid; ?>');
</script>
<script src="<?php echo $sgtm; ?>/bbd-tracker-integrated.js" async></script>
<?php
}
add_action('wp_head', 'bonicbd_head_scripts', 1);
function bonicbd_body_open() { ?>
<noscript><iframe src="https://ts.yourdomain.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<?php }
add_action('wp_body_open', 'bonicbd_body_open', 1);
<script>
window.dataLayer=window.dataLayer||[];
function gtag(){dataLayer.push(arguments);}
gtag('consent','default',{
ad_storage:'denied', analytics_storage:'denied',
ad_user_data:'denied', ad_personalization:'denied',
wait_for_update: 500
});
</script>
<script>
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],j=d.createElement(s),
dl=l!='dataLayer'?'&l='+l:'';
j.async=true;
j.src='https://ts.yourdomain.com/bbd-loader.js?st='+i+dl;
f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');
</script>
<script src="https://ts.yourdomain.com/bbd-tracker-integrated.js" async></script>
<script>
function onUserConsent(granted) {
gtag('consent','update',{
ad_storage: granted?'granted':'denied',
analytics_storage: granted?'granted':'denied',
ad_user_data: granted?'granted':'denied',
ad_personalization: granted?'granted':'denied'
});
}
</script>
ts.yourdomain.com → আপনার ট্র্যাকিং সাবডোমেইন | GTM-XXXXXXX → আপনার GTM Web Container IDSafari ITP JavaScript cookie-এর lifetime মাত্র ৭ দিন-এ কমিয়ে দেয়। এই ট্যাগটি সার্ভার ব্যবহার করে bbd_uid cookie ১ বছরের জন্য set করে।
<script>
(function() {
if (typeof window === 'undefined' || !window.fetch) return;
// ⚠️ ts.yourdomain.com → আপনার ট্র্যাকিং ডোমেইন দিন
var url = 'https://ts.yourdomain.com/ping';
try {
fetch(url, {
method: 'GET', mode: 'cors',
credentials: 'include', // Safari ITP fix এর জন্য জরুরি
keepalive: true,
headers: { 'Cache-Control': 'no-cache', 'Pragma': 'no-cache' }
}).catch(function(){});
} catch(e) {}
})();
</script>
credentials: 'include' অবশ্যই রাখুন — এটা ছাড়া Safari-তে cookie set হবে না।সার্ভার থেকে সেট হওয়া bbd_uid কুকিটি GTM Variable হিসেবে রিড করুন।
bbd_uid | URI-decode cookie চেক করুন ✅{{C - bbd_uid}} হিসেবে যেকোনো Tag-এ ব্যবহার করা যাবে।
server_container_url শুধু sGTM container load করে — কিন্তু GA4 collect request এখনো
/g/collect path ব্যবহার করে যা uBlock Origin ব্লক করে। এই সমস্যা এড়াতে
transport_url আলাদাভাবে সেট করতে হবে।
/g/collect/evt (masked)নিচের সবগুলো field একে একে Add করুন:
// ১. sGTM Container URL (আগে থেকে থাকলে আপডেট করুন)
Field Name : server_container_url
Value : https://ts.yourdomain.com
// ২. Anti-Adblock Collect Path — এটা নতুন যোগ করুন
Field Name : transport_url
Value : https://ts.yourdomain.com
// ৩. External ID — Facebook EMQ + Server-side identity
Field Name : external_id
Value : {{C - bbd_uid}}
// ৪. User ID (optional কিন্তু recommended)
Field Name : user_id
Value : {{C - bbd_uid}}
/g/collect এর বদলে আপনার domain-এ পাঠায় → uBlock block করতে পারে না।transport_url → GA4 আপনার sGTM-এ collect পাঠায় →
Nginx sub_filter /g/collect কে /evt-এ mask করে →
uBlock Origin /evt চেনে না → ব্লক হয় না ✅
Web থেকে পাঠানো external_id রিসিভ করে Facebook CAPI-তে পাঠানো।
external_id | Variable নাম: ED - External IDFacebook CAPI Tag → User Data Section:
External ID : {{ED - External ID}}
// EMQ বাড়াতে এগুলোও ম্যাপ করুন (যদি available থাকে):
Email : {{ED - email}}
Phone : {{ED - phone}}
Client IP : {{Request IP}}
Client UA : {{Request Header - User-Agent}}
FBP Cookie : {{ED - _fbp}}
FBC Cookie : {{ED - _fbc}}
bbd-loader → Status 200 দেখা যাচ্ছে?ping → Response Headers-এ Set-Cookie: bbd_uid=... আছে?evt → /g/collect নেই, শুধু /evt দেখা যাচ্ছে? ✅bbd_uid cookie আছে?