Устанавливаем cAPI Pixel:

Устанавливаем cAPI Pixel:

ADS NINJA

1. На index.php в самый верх пописываем код, который сохранит наши значения переменных в cookies:


<?php setcookie("pixel", $_GET["pixel"], time()+60*60*24);

setcookie("token", $_GET["token"], time()+60*60*24); ?>

____________________________________________________________________________


2. На index.php, перед закрытием тега </head> прописываем код стандартного JS пикселя, который сохранит и передаст fbc и fbp (cookies пикселя) для повышения атрибуции и точности отслеживания:


 <!-- Facebook Pixel -->

<script>

 !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'); //

 fbq('track', 'PageView');

</script>

<noscript><img height="1" width="1" style="display:none"

 src="https://www.facebook.com/tr?id=$pixel&ev=PageView&noscript=1"

/></noscript>

____________________________________________________________________________


3. На страницу благодарности перед закрытием тега </body> ставим два скрипта:

1. Для сохранения fbc и fbp :


<script>

 function setCookie(name, value, days) {

  let expires = '';

  if (days) {

   const date = new Date();

   date.setTime(date.getTime() + (days*24*60*60*1000));

   expires = '; expires=' + date.toUTCString();

  }

  document.cookie = name + '=' + (value || '') + expires + '; path=/';

 }

 function getUrlParam(param) {

  const urlParams = new URLSearchParams(window.location.search);

  return urlParams.get(param);

 }

 // Сохраняем _fbp из cookie, установленной Pixel'ем

 const fbp = document.cookie.match(/_fbp=([^;]+)/);

 if (fbp) {

  setCookie('_fbp', fbp[1], 180);

 }

 // Сохраняем _fbc, если пользователь перешёл по рекламе

 const fbclid = getUrlParam('fbclid');

 if (fbclid) {

  const fbc = 'fb.1.' + Math.floor(Date.now() / 1000) + '.' + fbclid;

  setCookie('_fbc', fbc, 180);

 }

</script>

____________________________________________________________________________

2. Скрипт отправки события Lead по cAPI:


<?php

$pixel_id = $_COOKIE["pixel"] ?? '';

$access_token = $_COOKIE["token"] ?? '';

$fbp = $_COOKIE['_fbp'] ?? null;

$fbc = $_COOKIE['_fbc'] ?? null;

if (!empty($pixel_id) && !empty($access_token)) {

$user_data = [

    'client_ip_address' => $_SERVER['REMOTE_ADDR'],

    'client_user_agent' => $_SERVER['HTTP_USER_AGENT'],

  ];

  if ($fbp) $user_data['fbp'] = $fbp;

  if ($fbc) $user_data['fbc'] = $fbc;

  $event_id = uniqid('', true);

  $data = [

    'data' => [

      [

        'event_name' => 'Lead',

        'event_time' => time(),

        'event_id' => $event_id,

        'event_source_url' => 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],

        'user_data' => $user_data,

        'custom_data' => [

          'content_name' => 'Заявка с формы',

        ],

        'action_source' => 'website',

      ]

    ],

    'access_token' => $access_token,

  ];

  $api_url = "https://graph.facebook.com/v18.0/{$pixel_id}/events";

  $ch = curl_init($api_url);

  curl_setopt($ch, CURLOPT_POST, 1);

  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);

  $response = curl_exec($ch);

  curl_close($ch);

  // Логируем всё

  $log = "========== " . date("Y-m-d H:i:s") . " ==========\n";

  $log .= "Pixel ID: $pixel_id\n";

  $log .= "Access Token: $access_token\n";

  $log .= "Event ID: $event_id\n";

  $log .= "Request URL: $api_url\n";

  $log .= "Client IP: " . $_SERVER['REMOTE_ADDR'] . "\n";

  $log .= "User-Agent: " . $_SERVER['HTTP_USER_AGENT'] . "\n";

  $log .= "fbp: $fbp\n";

  $log .= "fbc: $fbc\n";

  $log .= "Data Sent:\n" . json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . "\n";

  $log .= "Facebook Response:\n$response\n";

  $log .= "===========================================\n\n";

  file_put_contents('fb_log.txt', $log, FILE_APPEND);

}

?>


Report Page