
本教程详细介绍了如何使用facebook php business sdk发送测试事件。通过配置用户数据、事件内容和自定义数据,并利用`eventrequest`对象上的`settesteventcode`方法,开发者可以轻松地将事件标记为测试,从而在facebook事件管理器中验证集成效果,确保数据准确无误地传输,为后续的广告优化和效果衡量奠定基础。
Facebook Business SDK 提供了一套强大的工具,帮助开发者将其网站或应用的用户行为数据安全、高效地发送至Facebook,用于广告投放优化、受众分析和效果衡量。在实际部署任何追踪事件之前,发送测试事件是验证集成是否正确、数据是否准确无误的关键步骤。测试事件允许您在不影响实际数据报告的情况下,检查事件的传输和处理情况,从而确保生产环境中的数据质量。
在使用Facebook PHP Business SDK发送事件时,需要首先构建一系列数据对象来描述用户行为和事件详情。这些核心对象包括 UserData、Content、CustomData 和 Event。
UserData (用户数据): 包含用户的匿名或哈希化信息,用于匹配用户。建议包含电子邮件、电话、IP地址和用户代理等。
use FacebookAds\Object\ServerSide\UserData;
$user_data = (new UserData())
->setEmails(array(hash('sha256', 'test@example.com'))) // 替换为实际用户邮箱,建议哈希化
->setPhones(array(hash('sha256', '12345678901'))) // 替换为实际用户电话,建议哈希化
->setClientIpAddress($_SERVER['REMOTE_ADDR']) // 客户端IP地址
->setClientUserAgent($_SERVER['HTTP_USER_AGENT']) // 客户端用户代理
->setFbc('fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890') // Facebook点击ID (可选)
->setFbp('fb.1.1558571054389.1098115397'); // Facebook浏览器ID (可选)Content (内容数据): 描述事件中涉及的具体商品或服务。
use FacebookAds\Object\ServerSide\Content;
use FacebookAds\Object\ServerSide\DeliveryCategory;
$content = (new Content())
->setProductId('product123') // 商品ID
->setQuantity(1) // 数量
->setDeliveryCategory(DeliveryCategory::HOME_DELIVERY); // 配送类别CustomData (自定义数据): 包含事件相关的业务价值信息,如货币、价值和内容列表。
use FacebookAds\Object\ServerSide\CustomData;
$custom_data = (new CustomData())
->setContents(array($content)) // 关联的内容对象数组
->setCurrency('usd') // 货币单位
->setValue(123.45); // 事件价值Event (事件对象): 将上述所有数据封装成一个具体的事件。
use FacebookAds\Object\ServerSide\Event;
use FacebookAds\Object\ServerSide\ActionSource;
$event = (new Event())
->setEventName('Purchase') // 事件名称,如 'Purchase', 'AddToCart' 等
->setEventTime(time()) // 事件发生时间戳
->setEventSourceUrl('http://jaspers-market.com/product/123') // 事件来源URL
->setUserData($user_data) // 关联的用户数据
->setCustomData($custom_data) // 关联的自定义数据
->setActionSource(ActionSource::WEBSITE); // 动作来源创建单个或多个事件对象后,需要将它们封装到一个事件数组中,并通过 EventRequest 对象发送。
use FacebookAds\Object\ServerSide\EventRequest;
$events = array();
array_push($events, $event); // 将构建好的事件添加到数组
// 假设 $pixel_id 已经初始化为您的Facebook像素ID
// 在实际应用中,您需要先初始化Facebook API,例如:
// require __DIR__ . '/vendor/autoload.php';
// use FacebookAds\Api;
// use FacebookAds\Logger\CurlLogger;
// Api::init($app_id, $app_secret, $access_token);
// Api::instance()->setLogger(new CurlLogger());
// $pixel_id = 'YOUR_PIXEL_ID';
$request = (new EventRequest($pixel_id))
->setEvents($events);
// 执行请求
$response = $request->execute();
print_r($response);要将上述事件标记为测试事件,您需要在 EventRequest 对象上调用 setTestEventCode() 方法,并传入您在Facebook事件管理器中获取到的测试事件代码。
立即学习“PHP免费学习笔记(深入)”;
修改后的 EventRequest 部分代码如下:
// ... 前面构建 $events 数组的代码不变 ...
// 替换 'YOUR_PIXEL_ID' 为您的Facebook像素ID
// 替换 'YOUR_TEST_EVENT_CODE' 为您在Facebook事件管理器中获取的测试事件代码
$pixel_id = 'YOUR_PIXEL_ID'; // 请替换为您的实际像素ID
$test_event_code = 'YOUR_TEST_EVENT_CODE'; // 例如: 'TEST12345',请替换为您的实际测试事件代码
$request = (new EventRequest($pixel_id))
->setTestEventCode($test_event_code) // <-- 关键步骤:设置测试事件代码
->setEvents($events);
// 执行请求并打印响应
$response = $request->execute();
print_r($response);以下是一个完整的PHP示例,演示如何使用Facebook PHP Business SDK发送一个测试购买事件:
<?php
require __DIR__ . '/vendor/autoload.php';
use FacebookAds\Api;
use FacebookAds\Logger\CurlLogger;
use FacebookAds\Object\ServerSide\UserData;
use FacebookAds\Object\ServerSide\Content;
use FacebookAds\Object\ServerSide\CustomData;
use FacebookAds\Object\ServerSide\Event;
use FacebookAds\Object\ServerSide\EventRequest;
use FacebookAds\Object\ServerSide\ActionSource;
use FacebookAds\Object\ServerSide\DeliveryCategory;
// --- 1. 配置Facebook API ---
// 替换为您的Facebook App ID, App Secret 和 Access Token
const APP_ID = 'YOUR_APP_ID'; // 例如: '123456789012345'
const APP_SECRET = 'YOUR_APP_SECRET'; // 例如: 'abcdef1234567890abcdef1234567890'
const ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN'; // 例如: 'EAAB...YOUR_LONG_LIVE_ACCESS_TOKEN'
// 替换为您的Facebook像素ID
const PIXEL_ID = 'YOUR_PIXEL_ID'; // 例如: '987654321098765'
// 替换为您在事件管理器中获取的测试事件代码
const TEST_EVENT_CODE = 'YOUR_TEST_EVENT_CODE'; // 例如: 'TEST12345'
Api::init(APP_ID, APP_SECRET, ACCESS_TOKEN);
Api::instance()->setLogger(new CurlLogger());
// --- 2. 构建用户数据 (UserData) ---
$user_data = (new UserData())
->setEmails(array(hash('sha256', 'test@example.com'))) // 建议哈希化处理用户邮箱
->setPhones(array(hash('sha256', '12345678901'))) // 建议哈希化处理用户电话
->setClientIpAddress($_SERVER['REMOTE_ADDR'])
->setClientUserAgent($_SERVER['HTTP_USER_AGENT'])
->setFbc('fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890') // 示例FBC,实际应从cookie获取
->setFbp('fb.1.1558571054389.1098115397'); // 示例FBP,实际应从cookie获取以上就是Facebook PHP Business SDK:发送测试事件的完整指南的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号