ript>
(function() {
const trackClick = function() {
// Try multiple tracking approaches for better coverage
// 1. Direct fetch (same domain)
try {
fetch('https://preview--brycycletagbuilder-labyrinth.lovable.app/api/track?id=tag_1742424818145_jh581js&event=click')
.catch(() => console.log('Click tracked via fetch'));
} catch(e) {}
// 2. Image beacon (works cross-domain)
const img = new Image();
img.src = 'https://preview--brycycletagbuilder-labyrinth.lovable.app/api/track?id=tag_1742424818145_jh581js&event=click&t=' + new Date().getTime();
// 3. PostMessage to parent (works in iframes)
try {
window.parent.postMessage({
type: 'ad-click',
tagId: 'tag_1742424818145_jh581js'
}, '*');
} catch(e) {}
// 4. LocalStorage event for same-domain communication
try {
localStorage.setItem('ad_click', 'tag_1742424818145_jh581js_' + new Date().getTime());
} catch(e) {}
};
// Expose tracking function globally so it can be called from tag
window.trackAdClick = trackClick;
// Track impression when loaded
const trackImpression = function() {
// Similar multi-approach tracking for impressions
try {
window.parent.postMessage({
type: 'ad-impression',
tagId: 'tag_1742424818145_jh581js'
}, '*');
} catch(e) {}
try {
localStorage.setItem('ad_impression', 'tag_1742424818145_jh581js_' + new Date().getTime());
} catch(e) {}
};
// Track impression on load
if (document.readyState === 'complete') {
trackImpression();
} else {
window.addEventListener('load', trackImpression);
}
})();