Поэтому я использую диспетчер согласия в качестве CMP для GDPR и хочу отслеживать события Facebook с использованием CAPI, а не только Pixel. Но каким-то образом отображаются только события браузера (пиксель), а не события сервера (CAPI), хотя я получаю статус 200 с "{"events_received":1,"messages":[],"fbtrace_id":"FBTRACEID"}" обратно из завитка на Facebook. Что я делаю не так?
Это мой JavaScript
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}
(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'PIXEL');
function myTracking(eventName) {
const eventId = crypto.randomUUID();
fbq('track', eventName, {}, {eventID: eventId});
function getCookie(name) {
const m = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
return m ? decodeURIComponent(m.pop()) : '';
}
function getFbc() {
function getFbclid() {
try {
return new URL(location.href).searchParams.get('fbclid') || '';
}
catch(e) {
return '';
}
}
const existingFbc = getCookie('_fbc');
if (existingFbc) return existingFbc;
const fbclid = getFbclid();
if (!fbclid) return '';
const fbc = `fb.1.${Date.now()}.${fbclid}`;
document.cookie = `_fbc=${encodeURIComponent(fbc)}; path=/; max-age=${90*24*60*60}; samesite=lax; secure;`;
return fbc;
}
function sendCapi(payload) {
fetch('https://capi.example.org', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
keepalive: true,
body: JSON.stringify(payload)
})
.catch(() => {});
}
const eventSourceUrl = location.href;
const fbp = getCookie('_fbp');
const fbc = getFbc();
sendCapi({
eventId,
eventName,
eventSourceUrl,
fbp,
fbc
});
}
myTracking('PageView');
и это PHP
Подробнее здесь: https://stackoverflow.com/questions/798 ... eve-events
Facebook CAPI не получает события ⇐ Javascript
Форум по Javascript
1765883767
Anonymous
Поэтому я использую диспетчер согласия в качестве CMP для GDPR и хочу отслеживать события Facebook с использованием CAPI, а не только Pixel. Но каким-то образом отображаются только события браузера (пиксель), а не события сервера (CAPI), хотя я получаю статус 200 с "{"events_received":1,"messages":[],"fbtrace_id":"FBTRACEID"}" обратно из завитка на Facebook. Что я делаю не так?
Это мой JavaScript
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}
(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'PIXEL');
function myTracking(eventName) {
const eventId = crypto.randomUUID();
fbq('track', eventName, {}, {eventID: eventId});
function getCookie(name) {
const m = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
return m ? decodeURIComponent(m.pop()) : '';
}
function getFbc() {
function getFbclid() {
try {
return new URL(location.href).searchParams.get('fbclid') || '';
}
catch(e) {
return '';
}
}
const existingFbc = getCookie('_fbc');
if (existingFbc) return existingFbc;
const fbclid = getFbclid();
if (!fbclid) return '';
const fbc = `fb.1.${Date.now()}.${fbclid}`;
document.cookie = `_fbc=${encodeURIComponent(fbc)}; path=/; max-age=${90*24*60*60}; samesite=lax; secure;`;
return fbc;
}
function sendCapi(payload) {
fetch('https://capi.example.org', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
keepalive: true,
body: JSON.stringify(payload)
})
.catch(() => {});
}
const eventSourceUrl = location.href;
const fbp = getCookie('_fbp');
const fbc = getFbc();
sendCapi({
eventId,
eventName,
eventSourceUrl,
fbp,
fbc
});
}
myTracking('PageView');
и это PHP
Подробнее здесь: [url]https://stackoverflow.com/questions/79848473/facebook-capi-doesnt-recieve-events[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия