(function() {
const graphURL = "https://graph.facebook.com/v21.0/1132000211665330/events";
const accessToken = "EAAInzJ0VIlUBO9wuUHQBbziTcwLBqVMXpKNcrfqX1qNMzu28YubEEj66gFHhEZCSbz6m8nFgslgl8o0t21Pn6qJZAYD6HJHEOSWWQY8GBA60dk9kprZB9y0O9s5iFVpZApqriSx7RcStZBacFNn12lWDfIexUc1Nhrh5d31H9nnXXlzoDKXsofTb4";
// Helper para obter cookies (_fbc e _fbp do Facebook)
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
// Valida o formato do cookie fbc
function validateFBC(fbc) {
const fbcRegex = /^fb\.1\.\d+\.[a-zA-Z0-9_-]+$/;
return fbcRegex.test(fbc) ? fbc : null;
}
// Função para enviar evento AddToWishlist para o Facebook
function sendAddToWishlistEvent(buttonText, buttonHref) {
const userData = {
client_ip_address: "{{user_ip}}", // Se possível, capturar via backend
client_user_agent: navigator.userAgent,
fbc: validateFBC(getCookie('_fbc')),
fbp: getCookie('_fbp') || null,
utm: {
campaign: new URLSearchParams(window.location.search).get('utm_campaign'),
medium: new URLSearchParams(window.location.search).get('utm_medium'),
source: new URLSearchParams(window.location.search).get('utm_source'),
content: new URLSearchParams(window.location.search).get('utm_content'),
term: new URLSearchParams(window.location.search).get('utm_term'),
registration_page: window.location.href
}
};
// Monta o payload do evento AddToWishlist
const payload = {
data: [
{
event_name: "AddToWishlist",
event_time: Math.floor(Date.now() / 1000),
user_data: {
em: null, // Email hash SHA256, se disponível
ph: null, // Telefone hash SHA256, se disponível
fn: null,
ln: null,
external_id: null,
client_ip_address: userData.client_ip_address,
client_user_agent: userData.client_user_agent,
fbc: userData.fbc,
fbp: userData.fbp
},
custom_data: {
content_name: "Botão QUERO PARTICIPAR",
content_category: "Chamada para Ação",
button_text: buttonText,
button_url: buttonHref,
utm_campaign: userData.utm.campaign,
utm_medium: userData.utm.medium,
utm_source: userData.utm.source,
utm_content: userData.utm.content,
utm_term: userData.utm.term,
registration_page: userData.utm.registration_page
}
}
]
};
// Envia os dados via Graph API
fetch(graphURL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${accessToken}`
},
body: JSON.stringify(payload)
})
.then(response => {
if (response.ok) {
console.log('Evento AddToWishlist enviado para o Facebook.');
} else {
response.json().then(error => console.error('Erro ao enviar evento:', error));
}
})
.catch(error => {
console.error('Erro na requisição:', error);
});
}
// Função para identificar e monitorar botões específicos
function trackButtonClicks() {
document.body.addEventListener("click", function(event) {
const target = event.target.closest("a, button");
if (target) {
const buttonText = target.innerText.trim().toUpperCase();
const buttonHref = target.href || "";
// Verifica se o botão tem o texto correto "QUERO PARTICIPAR"
if (buttonText === "QUERO PARTICIPAR") {
sendAddToWishlistEvent(buttonText, buttonHref);
}
}
});
}
// Aguarda o DOM estar carregado para iniciar o rastreamento
document.addEventListener("DOMContentLoaded", trackButtonClicks);
})();