Facebook PHP Business SDK:发送测试事件的完整指南

碧海醫心
发布: 2025-11-14 10:58:01
原创
924人浏览过

Facebook PHP Business SDK:发送测试事件的完整指南

本教程详细介绍了如何使用facebook php business sdk发送测试事件。通过配置用户数据、事件内容和自定义数据,并利用`eventrequest`对象上的`settesteventcode`方法,开发者可以轻松地将事件标记为测试,从而在facebook事件管理器中验证集成效果,确保数据准确无误地传输,为后续的广告优化和效果衡量奠定基础。

理解Facebook Business SDK与测试事件

Facebook Business SDK 提供了一套强大的工具,帮助开发者将其网站或应用的用户行为数据安全、高效地发送至Facebook,用于广告投放优化、受众分析和效果衡量。在实际部署任何追踪事件之前,发送测试事件是验证集成是否正确、数据是否准确无误的关键步骤。测试事件允许您在不影响实际数据报告的情况下,检查事件的传输和处理情况,从而确保生产环境中的数据质量。

构建基础事件数据

在使用Facebook PHP Business SDK发送事件时,需要首先构建一系列数据对象来描述用户行为和事件详情。这些核心对象包括 UserData、Content、CustomData 和 Event。

  1. 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 (可选)
    登录后复制
  2. Content (内容数据): 描述事件中涉及的具体商品或服务。

    use FacebookAds\Object\ServerSide\Content;
    use FacebookAds\Object\ServerSide\DeliveryCategory;
    
    $content = (new Content())
        ->setProductId('product123') // 商品ID
        ->setQuantity(1) // 数量
        ->setDeliveryCategory(DeliveryCategory::HOME_DELIVERY); // 配送类别
    登录后复制
  3. CustomData (自定义数据): 包含事件相关的业务价值信息,如货、价值和内容列表。

    use FacebookAds\Object\ServerSide\CustomData;
    
    $custom_data = (new CustomData())
        ->setContents(array($content)) // 关联的内容对象数组
        ->setCurrency('usd') // 货币单位
        ->setValue(123.45); // 事件价值
    登录后复制
  4. 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事件管理器中获取到的测试事件代码。

白瓜面试
白瓜面试

白瓜面试 - AI面试助手,辅助笔试面试神器

白瓜面试 40
查看详情 白瓜面试

立即学习PHP免费学习笔记(深入)”;

  1. 获取测试事件代码: 登录您的Facebook商务管理平台,进入“事件管理器”。选择您的像素,点击“测试事件”选项卡,您将看到一个唯一的“测试事件代码”。
  2. 设置测试事件代码: 将该代码通过 setTestEventCode() 方法添加到您的 EventRequest 对象中。

修改后的 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在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号