Facebook Conversion API 事件 比 Facebook Web Pixels 更强大。 Conversion API 事件通过后端逻辑触发。您可以使用前端的 ajax 调用,并检查 Facebook 面板上的事件触发器
Facebook 像素转换 API
https://developers.facebook.com/docs/marketing-api/conversions-api/
您可以从https://business.facebook.com/event_manager 生成访问令牌,选择您的网站并生成 Facebook 像素
javascript ajax 函数,您可以在要触发像素的地方简单地调用此 ajax 函数
函数调用
let event_id = d.getTime();
fbq_custom("PageView", window.location.href, {event_id: 'PageView-'+event_id}, {event_id: 'PageView-'+event_id}) }
函数定义
function fbq_custom(trace = 'PageView', source_url = '', data = {}){
data.trace = trace;
data.source_url = source_url
$.ajax({
url: "/conversionAPI/",
data: data,
type: "post",
success: function (data) {
console.log(data);
console.log("server event test");
}
});
}
我只是用这个包
https://github.com/facebook/facebook-php-business-sdk
PHP API
use FacebookAds\Api;
use FacebookAds\Logger\CurlLogger;
use FacebookAds\Object\ServerSide\Content;
use FacebookAds\Object\ServerSide\CustomData;
use FacebookAds\Object\ServerSide\DeliveryCategory;
use FacebookAds\Object\ServerSide\Event;
use FacebookAds\Object\ServerSide\EventRequest;
use FacebookAds\Object\ServerSide\Gender;
use FacebookAds\Object\ServerSide\UserData;
$trace = $_POST['trace'];
$source_url = $_POST['source_url'];
$firstname = $_POST['firstname'] ? $_POST['firstname']: "";
$lastname = $_POST['lastname'] ? $_POST['lastname']: "";
$phone = $_POST['telephone'] ? $_POST['telephone']: "";
$email = $_POST['email'] ? $_POST['email']: "";
$event_id = $_POST['event_id'] ? $_POST['event_id']: "";
$action_source = $_POST['action_source'] ? $_POST['action_source']: "website";
$access_token = 'here you need to add the access token';
$pixel_id = 'your pixel id';
if (is_null($access_token) || is_null($pixel_id)) {
throw new Exception(
'You must set your access token and pixel id before executing'
);
}
Api::init(null, null, $access_token);
$api = Api::instance();
$api->setLogger(new CurlLogger());
$events = array();
$user_data = (new UserData())
->setClientIpAddress($_SERVER['REMOTE_ADDR'])
->setClientUserAgent($_SERVER['HTTP_USER_AGENT'])
->setEmail($email)
->setPhone($phone)
->setFirstName($firstname)
->setLastName($lastname);
$custom_data = (new CustomData());
$event = (new Event())
->setEventName($trace)
->setEventTime(time())
->setEventId($event_id)
->setEventSourceUrl($source_url)
->setActionSource($action_source)
->setUserData($user_data)
->setCustomData($custom_data);
$events = array();
array_push($events, $event);
$request = (new EventRequest($pixel_id))
->setEvents($events);
$response = $request->execute();
print_r(array(
"status" => 200,
"message" => "pixel code added successfully",
"source_url" => $source_url,
'trace' => $trace,
'event_id' => $event_id,
"response" => $response,
"user_data" => $user_data,
"event" => $event
)) ;