Skip to content

Commit f44851e

Browse files
committed
event validate
1 parent fb2f07d commit f44851e

4 files changed

Lines changed: 67 additions & 30 deletions

File tree

dist/templates.esm.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/templates.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/templates.umd.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/templates/metaPixel.js

Lines changed: 64 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -601,12 +601,6 @@ function consumeEvent() {
601601
console.log('[Meta Pixel] trackEvent:', eventName, data);
602602
if (!eventName) return;
603603
604-
// ✅ Check if event is allowed before tracking (defensive check)
605-
if (!isEventAllowed(event)) {
606-
console.log('[Meta Pixel] Event disabled, skipping:', eventName);
607-
return;
608-
}
609-
610604
const eventData = formatEventData(event, data);
611605
612606
// ✅ eventId for Purchase + Search
@@ -618,34 +612,77 @@ function consumeEvent() {
618612
619613
console.log('[Meta Pixel] eventData:', eventData, 'eventId:', eventId);
620614
621-
if ({{useGTM}}) {
622-
// Push to GTM dataLayer
615+
// Get pixel IDs
616+
const pixelId = ('{{pixelId}}' || '').trim();
617+
const conversionsApiPixelId = ('{{conversionsApiPixelId}}' || '').trim();
618+
619+
// Track via Pixel (client-side) if pixelId is available AND event is enabled
620+
const shouldTrackPixel = pixelId && isEventAllowed(event);
621+
// Track via CAPI (server-side) if conversionsApiPixelId is available AND CAPI event is enabled
622+
const shouldTrackCapi = conversionsApiPixelId && isCapiEventAllowed(event);
623+
624+
console.log('[Meta Pixel] Tracking decision:', {
625+
shouldTrackPixel,
626+
shouldTrackCapi,
627+
pixelId: pixelId ? 'present' : 'missing',
628+
conversionsApiPixelId: conversionsApiPixelId ? 'present' : 'missing',
629+
isPixelEventEnabled: isEventAllowed(event),
630+
isCapiEventEnabled: isCapiEventAllowed(event)
631+
});
632+
633+
// If neither Pixel nor CAPI should track, skip the event
634+
if (!shouldTrackPixel && !shouldTrackCapi) {
635+
console.log('[Meta Pixel] Event disabled for both Pixel and CAPI, skipping:', eventName);
636+
return;
637+
}
638+
639+
// === Track via Pixel (client-side) ===
640+
if (shouldTrackPixel) {
641+
if ({{useGTM}}) {
642+
// Push to GTM dataLayer
643+
if (window.dataLayer) {
644+
window.dataLayer.push({
645+
event: 'meta_pixel_event',
646+
fb_event_name: eventName,
647+
fb_event_data: eventData,
648+
fb_event_id: eventId
649+
});
650+
console.log('[Meta Pixel] Event sent to GTM:', eventName, eventData, eventId);
651+
} else {
652+
console.warn('[Meta Pixel] dataLayer not available');
653+
}
654+
} else {
655+
// Direct Meta Pixel tracking
656+
if (!window.fbq) {
657+
console.warn('[Meta Pixel] fbq not available');
658+
} else {
659+
// ✅ pass eventID option (works for Purchase + Search)
660+
if (eventId) {
661+
fbq('track', eventName, eventData, { eventID: eventId });
662+
} else {
663+
fbq('track', eventName, eventData);
664+
}
665+
console.log('[Meta Pixel] Event tracked via fbq:', eventName, eventData, eventId);
666+
}
667+
}
668+
}
669+
670+
// === Track via CAPI (server-side) ===
671+
if (shouldTrackCapi && {{enableConversionsApi}}) {
672+
// Push CAPI event to dataLayer or custom endpoint
673+
// This will be picked up by server-side logic or GTM Server Container
623674
if (window.dataLayer) {
624675
window.dataLayer.push({
625-
event: 'meta_pixel_event',
676+
event: 'meta_capi_event',
626677
fb_event_name: eventName,
627678
fb_event_data: eventData,
628-
fb_event_id: eventId
679+
fb_event_id: eventId,
680+
fb_pixel_id: conversionsApiPixelId
629681
});
630-
console.log('Meta Pixel Event (via GTM):', eventName, eventData, eventId);
631-
} else {
632-
console.warn('[Meta Pixel] dataLayer not available');
633-
}
634-
} else {
635-
// Direct Meta Pixel tracking
636-
if (!window.fbq) {
637-
console.warn('[Meta Pixel] fbq not available');
638-
return;
639-
}
640-
641-
// ✅ pass eventID option (works for Purchase + Search)
642-
if (eventId) {
643-
fbq('track', eventName, eventData, { eventID: eventId });
682+
console.log('[Meta Pixel] CAPI Event sent to dataLayer:', eventName, eventData, eventId);
644683
} else {
645-
fbq('track', eventName, eventData);
684+
console.warn('[Meta Pixel] dataLayer not available for CAPI event');
646685
}
647-
648-
console.log('Meta Pixel Event:', eventName, eventData, eventId);
649686
}
650687
} catch (e) {
651688
console.error('[Meta Pixel] trackEvent error:', e);

0 commit comments

Comments
 (0)