文档 文档首页
官网首页

Documentation center

产品文档中心

这里是 Afftrix 的官方文档入口。文档按角色、任务和问题拆分,适合部署人员、平台管理员、广告主、联盟用户和开发者快速找到对应操作。

选择你的入口

正式使用时不要从完整菜单慢慢找。先按当前身份或任务进入,再根据页面里的“下一步”继续完成配置、验证或排查。

User Guide Affiliate 与 Advertiser 操作入口

适合查看 Offer 申请、推广链接、Postback、Connector、付款资料和常见问题。

Admin 平台管理员和运营团队入口

围绕后台菜单、品牌注册、员工权限、Offer 管理、报表财务和日常 SOP 使用。

Delivery 安装部署与上线实施入口

适合从空服务器部署、配置追踪域名、激活授权、跑通首个 Offer 和正式上线验收。

Integration 开发者、API 和回传联调入口

适合对接 Affiliate API、Advertiser API、S2S Postback、Pixel、Connector 和外部系统。

文档使用方式

首次使用建议先按角色阅读;上线实施建议按任务路径阅读;遇到异常时直接进入故障矩阵。每篇文章都尽量包含操作步骤、字段含义、验证方法和常见错误。

角色入口

部署人员、平台管理员、广告主、联盟用户分别有独立阅读路径。

任务入口

创建 Offer、接入 S2S、配置 Connector、验证转化都有独立文章。

排查入口

按症状查找检查位置、常见原因、修复动作和验证结果。

字段参考

核心字段、API 参数和业务口径可以在字段字典中快速查阅。

遇到问题先从这里进

支持和实施场景里,用户通常先描述现象。下面按最常见问题组织入口,先确认现象,再进入对应工具和文章排查。

点击 点击没有记录

先看 tracking domain、Offer 状态、Affiliate 权限和点击是否真的经过 Afftrix。

回传 转化没回来

沿 CID 查 Click、Advertiser Postback、Conversion 和 Affiliate Postback。

链接 Offer 打不开或跳错

先跑健康检测,再用 Offer Spy 还原最终落地页和每一步跳转。

佣金 佣金或付款不对

核对转化状态、价格规则、Profit Guard、可付款余额和对账差异。

权限 Affiliate 看不到 Offer

检查 Offer 公开状态、申请审核、Affiliate 状态、分类、国家设备和访问规则。

系统 API、邮件或后台异常

先查系统健康、队列、SMTP、API Key、权限和日志,再整理工单资料。

按角色进入知识库

如果是第一次使用,建议先按自己的岗位进入。每个角色都给出推荐起点、接着要看的文章和验收结果,避免从完整菜单里慢慢找。

平台管理员 先把后台、品牌、团队和权限跑通

适合负责平台配置、员工权限、日常巡检和团队培训的人。

实施人员 从安装部署到生产验收

适合搭建新平台、配置域名、授权、品牌、首个 Offer 和上线检查。

运营 / AM 围绕 Offer、申请、提醒和表现运营

适合创建 Offer、审核访问申请、处理 Action Center 和跟进 Affiliate。

财务 核对转化、佣金、付款和差异

适合处理 approved unpaid、付款批次、对账差异和 Profit Guard 提醒。

技术支持 从症状出发定位点击、回传和系统问题

适合处理客户工单、Postback、API、Offer 打不开和邮件发送失败。

Affiliate / Advertiser 推广、回传和店铺对接流程

适合联盟用户申请 Offer、复制链接、配置 Postback,或广告主查看转化和接入 Connector。

常用搜索与快速定位

这些词覆盖支持、实施和日常运营最常问的问题。点击后会自动把关键词放进顶部搜索框,并展开对应搜索结果。

按阅读场景筛选

根据当前任务缩小菜单范围:基础使用、平台管理、上线实施或开发对接。也可以保持“全部文档”,从左侧完整目录进入。

上线验收模式

实施人员可以直接进入生产上线检查清单,按阶段勾选环境、授权、品牌、追踪域名、Offer、点击、转化、Postback、付款、邮件、通知、备份和安全。

推荐用于正式上线前最后一轮验收

每个检查项都能跳到对应教程或排查入口,避免只凭“页面能打开”判断上线完成。

特色能力专题入口

这些能力是 Afftrix 和普通联盟后台拉开差异的地方。下面按专题组织入口,适合产品介绍、团队培训和日常运营快速进入。

Link Health 上游链接健康检测

上线前或日常巡检检测上游 click URL、落地页、HTTP 状态、SSL、GEO 和 Link Health,提前发现失效链接。

Diagnostics 跳转链路与流量诊断

链接异常时还原每一步跳转,模拟不同国家、设备、代理和 Smartlink 路由。

Scale 规模化 Offer 管理

Smartlink 分发流量,Offer Source 自动导入上游,Supply Map 查看供应覆盖。

Protection 利润、风控和链接保护

发现负利润、异常点击和无转化流量,减少上游原始链接被抓取,保留可复核的风险证据。

Growth 增长、集成与对账

用邮件营销触达用户,用 Connector 和 Open API 接入外部系统,再用对账闭环资金。

按功能场景阅读

安装完成后,日常使用不需要先理解技术细节。可以按“每天要处理什么”来阅读:处理提醒、创建 Offer、接入店铺、检查风险、查看报表和处理付款。

运营提醒

Action Center 汇总待处理申请、失败回传、风险提醒和系统通知。

店铺插件

WooCommerce Connector 帮广告主自动保存点击归因并回传订单。

上游链接健康检测

Offer Health 检查上游链接是否失效、HTTP 状态、最终 URL、GEO 和健康分。

公开推广

公开 Offer 市场和素材管理帮助联盟用户找到可推广的活动和素材。

阅读建议

功能文章会尽量少写技术词,重点说明入口在哪里、什么时候用、怎么确认操作成功。

按集合阅读

如果不确定先看哪篇,可以先选择对应集合。每个集合下面都放了最常用的文章入口,适合上线配置、日常运营和支持排查场景使用。

01 首次上线

从服务器、域名、安装向导、品牌配置到第一条验证转化。

02 平台管理员基础

后台首页、品牌、注册、团队账号、员工、角色、权限、邮件和基础运营设置。

03 Offer 与佣金

创建 Offer、填写追踪 URL、设置目标国家、访问权限、revenue、payout、caps 和素材。

04 追踪与集成

Tracking link、CID、S2S Postback、Pixel、验证方法和 API 对接。

05 广告主与店铺

广告主后台、转化审核、WooCommerce Connector、优惠码归因和订单回传。

06 联盟用户

注册、登录、申请 Offer、生成推广链接、查看点击转化、配置 Affiliate Postback。

07 报表与财务

报表口径、转化状态、付款流程、对账和发票。风险检查请看功能使用栏目。

08 排查与参考

漏单、跳转失败、佣金异常、API 错误、字段解释、术语和常见问题。

按任务查找

实施过程中经常不是从头阅读,而是遇到一个明确任务。下面按真实业务场景列出建议阅读路径。

部署一套新系统

先完成域名解析、服务器环境、安装向导和后台品牌设置。

创建第一个 Offer

先创建广告主,再填写落地页、追踪 URL、revenue、payout、目标国家和访问权限。

接入广告主回传

确认 click id 参数、postback URL、宏替换、验证转化和日志校验。

接入 WooCommerce 店铺

广告主安装 Connector,保存 CID、订单、优惠码和商品信息,付款完成后回传转化。

排查漏单或佣金异常

从点击、CID、Offer、目标规则、转化状态、重复转化和 payout 规则逐项检查。

查看角色工作流

按角色分别讲解平台管理员、联盟用户和广告主入口,最后用一条验证转化串联全部流程。

核心流程示意

Afftrix 的日常闭环可以理解为:平台创建业务规则,联盟用户推广 Offer,广告主或店铺回传转化,系统根据规则计算佣金并进入财务流程。

平台配置 创建广告主 创建 Offer 联盟用户推广 点击生成 CID 广告主回传转化 系统计算佣金 付款与对账

重点截图入口

复杂页面建议结合截图阅读。下面列出最常被问到的几个位置,便于快速确认界面和字段所在位置。

Afftrix 安装向导欢迎页
安装向导:从欢迎页开始,逐步完成环境检查、数据库、缓存和管理员初始化。
Afftrix 后台 Offer 列表
Offer 管理:创建、筛选、查看状态、检查转化入口。
Afftrix 创建 Offer 真实截图
Offer 创建:基础信息、追踪 URL、佣金、目标和素材。
Afftrix 追踪链接生命周期
Tracking link:点击、CID、跳转、转化回传和归因。

推荐阅读顺序

  1. 先读上线教程。适合实施人员和首次部署团队,从域名解析开始,最后完成第一条转化。
  2. 再读平台设置。完成品牌、注册、邮件、账号团队、员工权限和基础运营选项。
  3. 重点读 Offer 创建。Offer 是平台业务核心,追踪 URL、佣金、目标规则和访问权限都要确认。
  4. 接着读追踪与回传。理解 CID、S2S、Pixel、Connector 和 API 的关系,避免漏单。
  5. 最后读排查与字段字典。运营支持和技术对接时,字段字典与排查中心能快速定位问题。

上线与使用建议

文档访问方式

正式上线后,建议把知识库部署为独立静态站点,并让后台帮助入口、安装完成页和用户操作手册都指向同一个文档地址,避免团队在聊天记录里寻找零散说明。

Reading paths

按角色阅读路径

这篇文章用于团队学习和上线实施时快速分配阅读任务。不同角色不需要从头读完整套文档,只需要先完成自己的主路径,再按问题进入核心能力或故障排查文章。

适合团队学习和上线实施 按岗位分工 先读主路径再读排查

角色阅读路径

角色先读什么接着读什么验收结果
平台管理员能完成后台基础设置、员工权限、日常巡检和异常处理。
实施人员能把环境、品牌、账号、Offer、转化、健康检查全部上线闭环。
运营 / AM能创建 Offer、审核申请、跟进客户、处理提醒和上线验证。
财务能核对余额、生成付款、处理差异和避免高风险转化进入付款。
技术支持 / 开发者能定位点击、回传、API、域名、代理和日志问题。
Affiliate能申请 Offer、复制链接、查看报表、配置 Postback 和确认付款资料。
Advertiser能完成回传、查看转化、安装插件和配合对账。

培训建议

  1. 第一天只讲安装、账号、Offer、Tracking、Postback 和健康检查,不要把所有高级能力一次性塞给新团队。
  2. 第二天按岗位拆分:运营练 Offer 和申请审核,技术练 Postback 和 API,财务练付款和对账。
  3. 上线后一周重点看 ,把真实问题沉淀成标准处理流程。

Team onboarding

团队快速上手指南

这篇文章适合管理员给运营、AM、客服、财务和实施人员做团队培训。它不替代完整手册,而是先把每天最常用的入口、操作顺序和验收标准讲清楚,让新成员可以按岗位快速开始工作。

适合团队培训 基础操作优先 按岗位分配阅读

先按岗位分配阅读

岗位第一步先做什么接着阅读完成标准
平台管理员确认品牌、注册、员工、权限、邮件和通知。能创建账号、分配角色、检查系统通知和基础设置。
运营 / AM创建广告主和 Offer,并完成一次上线前测试。能创建 Offer、审核申请、复制测试链接并看懂基础报表。
广告主对接人员收集落地页、回传宏、测试链接和结算口径。能把广告主链接接入 Afftrix,并确认回传日志成功。
客服 / 支持先按症状判断问题在哪个环节。能收集 Offer ID、Affiliate ID、CID、时间、截图和日志。
财务核对转化状态、余额、付款批次、发票和对账差异。能确认 approved unpaid、付款金额、对账差异和付款状态。

第一天只需要跑通六件事

  1. 登录后台,确认自己账号能看到应该负责的菜单。
  2. 打开 Settings Center,确认平台名称、Logo、支持邮箱、注册规则和通知渠道。
  3. 创建或检查一个广告主,记录联系人、官网、结算方式和回传要求。
  4. 创建一个验证 Offer,填写落地页、追踪链接、佣金、国家、设备和访问规则。
  5. 复制 Affiliate tracking link,完成一次点击,并确认 Clicks 里生成 CID。
  6. 发送一次验证 Postback,确认 Conversion、Payout、Postback Logs 和报表都有结果。

平台基础设置快速路径

01 品牌与入口

设置平台名称、Logo、Public URL、支持邮箱、时区和后台路径。保存后分别打开后台、Affiliate 端和 Advertiser 端确认显示一致。

02 注册与账号

决定 Affiliate / Advertiser 是否开放注册,是否需要审核;员工必须使用独立账号,不要多人共用管理员账号。

03 邮件与通知

先配置 SMTP 并发送验证邮件,再开启 Notification Center、Telegram 或 Webhook,确保关键提醒有人能收到。

04 追踪与 GeoIP

配置追踪域名、真实 IP、GeoIP 和代理规则。追踪域名不建议直接开启 CDN,除非服务器已经正确还原真实访客 IP。

Offer 创建快速路径

  1. 先创建广告主,再创建 Offer,不要用临时广告主长期承载正式业务。
  2. 填写 Offer 名称、分类、公开描述、状态、国家、设备和访问规则。
  3. 把广告主链接里的点击 ID 宏替换成 Afftrix 的 {cid},需要传联盟用户 ID 时使用 {affid}
  4. 配置 Revenue、Payout、Caps 和是否需要申请审核。
  5. 先保存为 Draft 或 Paused,完成点击、回传、健康检测和权限检查后再切换为 Active。

广告主接入快速路径

步骤要问广告主要什么Afftrix 里做什么怎么验收
准备资料落地页、验证链接、点击 ID 宏、订单号宏、金额宏和结算口径。创建 Advertiser,记录联系人和结算信息。资料齐全后再创建 Offer。
配置 Offer确认广告主是否能保存并回传 Afftrix CID。在 Destination URL 中传入 {cid}点击验证链接后,广告主能看到对应 click id。
回传验证让广告主用他们平台发送验证转化。提供 tracking domain 的 /postback.php 地址。Postback Logs 显示 success,Conversions 生成验证结果。

遇到问题先收集这些信息

问题先收集进入文章
点击没有记录tracking link、Offer ID、Affiliate ID、访问时间、国家、设备和截图。
有点击但没有转化CID、广告主回传地址、txid、amount、status、Postback Logs。
Affiliate 看不到 OfferOffer 状态、公开状态、申请审核、Affiliate 状态、国家设备和访问规则。
邮件或通知没收到SMTP 验证结果、通知开关、角色订阅、Notification Logs。

继续阅读

Troubleshooting by symptom

按症状排查

真实用户通常不会说“我要看 Postback Debugger”,他们会说“转化没回来”“Offer 打不开”“佣金不对”。这篇文章按用户描述的问题组织检查路径。

适合客服和技术支持 按现象定位 每个问题都有验证结果

排查决策树

先按用户描述选择一个症状,系统会给出优先检查顺序、需要使用的工具和工单里必须收集的证据。

先选择一个症状

建议从用户原话开始,不要直接猜功能模块。选中后再按步骤查看对应日志、字段和验证结果。

排查向导怎么用

01先听用户原话

不要先猜模块,把用户说的“打不开、不到账、看不到、发不出”归到一个症状。

02按向导查入口

从系统推荐的第一个入口开始看,先查能最快证明链路是否存在的日志。

03保留证据

记录 ID、时间、截图、请求和响应,避免只写“已处理”。

04验证再关闭

修复后必须跑一次验证点击、验证回传、验证邮件或验证付款金额。

常见症状处理表

用户怎么说先检查哪里常见原因修复后怎么验证
点击没有记录Offers、Tracking Domains、Clicks、Traffic SimulatorOffer 暂停、Affiliate 无权限、tracking domain 未解析、链接没有经过 Afftrix。用验证用 Affiliate 点击 tracking link,Clicks 出现 CID 和 Offer ID。
转化没回来Postback Debugger、Advertiser Postback Logs、ConversionsCID 丢失、secret 错误、order_id 重复、广告主没有发请求、状态被拒绝。用同一 CID 重发验证回传,Conversion 出现并状态正确。
Offer 打不开Offer Health、Offer Spy、Tracking & GeoIP、Anti-Spy Logs上游链接失效、目标国家不匹配、代理失败、证书错误、Anti-Spy 误拦截。Offer Health 变为 Healthy 或 Warning 可解释,Offer Spy 到达正确 Final URL。
佣金不对Offer Pricing、Payout Rules、Conversions、Reports、Profit Guardpayout 规则命中错误、币种不一致、退款未同步、状态不符合付款条件。重新计算一条验证转化,payout、revenue、profit 与规则一致。
付款金额不对Balance Check、Payments、Reconciliation、Conversionspending / held 被误计、rejected 未排除、paid 状态未更新、退款或最低付款金额影响。付款批次金额等于 approved unpaid 可付款金额。
邮件发不出去Mail & SMTP、Email Campaigns、Notification LogsSMTP host、端口、账号、密码、加密方式错误,或队列没有运行。验证邮件发送成功,Campaign 队列不再失败。
后台登录页无提示刷新、密码框明文浏览器 Network / Console、Livewire assets、Web server 规则Livewire / Alpine JS 未加载、动态 JS 被静态规则拦截、安装包缺少静态资源。/vendor/livewire/livewire.min.js 返回 200,密码框默认隐藏,按钮可点击。
Affiliate 看不到 OfferOffer 状态、Access Requests、Public Offer、Affiliate 权限、TargetingOffer 未公开、需要申请未通过、Affiliate 状态异常、分类或权限限制。用该 Affiliate 登录后能看到 Offer 或申请入口。
Smartlink 跳错Smartlink、Traffic Simulator、Offer Targeting、Caps、Fallback权重、优先级、国家设备规则、cap 或 fallback 配置不符合预期。同一国家和设备模拟后路由到预期 Offer。
Offer Health BrokenOffer Health、Offer Spy、Tracking & GeoIP 代理验证链接失效、HTTP 4xx / 5xx、GEO 限制、SOCKS5 登录失败、上游拒绝服务器 IP。修复后重新检测,状态更新并记录最终 URL。

工单必须收集的信息

  • 问题发生时间、时区、页面入口和操作账号。
  • Offer ID、Affiliate ID、Advertiser ID、CID、order_id、Payment ID 等业务 ID。
  • 用户看到的错误截图、完整 URL、HTTP 状态和浏览器环境。
  • 相关日志截图:Click、Conversion、Postback、Offer Health、Anti-Spy、Payment 或 Email 记录。
  • 修复动作和验证结果,避免只写“已处理”。

Access governance

权限矩阵与岗位分工

权限配置要按岗位最小化授权。不要让财务账号同时能改 payout,不要让普通运营拥有系统安全设置,不要多人共用超级管理员账号。

适合平台管理员 最小权限原则 上线前必须检查

推荐权限矩阵

Staff Roles 权限截图
先创建 Staff Role,再给员工分配角色。权限矩阵需要和真实岗位对应,不建议所有人都用 Super Admin。
岗位建议允许不建议允许原因
Super Admin全部权限。不作为日常账号使用。降低误删、误改系统设置和密钥泄露风险。
运营Offers、Affiliates、Advertisers、Reports、Action Center。Payments、Security、Advanced Settings。运营负责业务配置,不应直接付款或改安全设置。
AM / Manager负责客户、AM Workspace、Reports、申请审核。全局平台设置、批量付款、API Key 管理。AM 只管理自己负责的账号和表现。
财务Payments、Batch Send、Balance Check、Reconciliation、Reports。修改 payout、删除转化、Tracking 设置。避免既能改规则又能付款。
风控Profit Guard、Anti-Spy、Fraud Logs、Conversions review。批量付款、SMTP、员工权限。风控负责判断风险,不直接处理资金和权限。
技术支持Postback Logs、Postback Debugger、Traffic Simulator、System Health。付款、广告主价格、员工角色。技术支持需要排查链路,不应改业务金额。
实施人员安装、平台基础设置、验证用 Offer、Launch Health。生产付款、删除历史数据。上线完成后应移交生产管理员权限。

上线前权限检查

  • 每个员工都有独立账号,不能共用同一个管理员账号。
  • 财务账号不能修改 Offer payout、revenue 或 tracking 规则。
  • API Key 管理、Advanced Settings、安全设置只给少数管理员。
  • 离职、实施结束或外包完成后,及时禁用账号和密钥。
  • 重要操作能在 Audit Logs / Staff Activity 中追溯到具体员工。

Developer integration

开放 API 总览

开放 API 用于外部系统调用 Afftrix,例如 Affiliate 查询 Offer、Advertiser 回查转化、外部系统通过 Integration API 回传订单。它和 Offer API Automation 不一样:开放 API 是别人调用 Afftrix,Offer API Automation 是 Afftrix 去调用上游 Offer Source。

适合开发者和技术支持 Affiliate API / Advertiser API / Integration API 先验证再上线
开放 API Key 权限与请求日志标注图
开放 API 对接应先创建独立 API Key,限制权限、来源和有效期,再通过请求日志确认鉴权、权限和参数错误。

接口分层

接口谁调用常见用途注意事项
Affiliate API联盟用户或外部 Affiliate 系统。查询个人资料、Offer、申请状态、点击、转化、报表、Postback 和付款。只能访问自己的数据,账号禁用后 API 也应失效。
Advertiser API广告主系统。查询 Offer、转化、报表、Postback Logs,辅助广告主对账。只能访问自己名下 Offer 和转化。
Integration APIWooCommerce Connector、店铺系统或外部订单系统。验证连接、创建转化、回传订单、同步退款或优惠码归因。必须保留 CID、order_id、amount、currency、status。
Offer API AutomationAfftrix 调用上游。同步上游 Offer,不属于开放 API。配置在 Offer Sources 和 Offer API Automation。

API 产品导航

开放 API 按调用方拆分权限和数据范围。开发者开始对接前,先确认自己属于哪一类调用方,再读取对应资源。

Affiliate 联盟用户 API

查询可推广 Offer、申请状态、点击、转化、报表、付款资料和 Affiliate Postback。

Advertiser 广告主 API

查询名下 Offer、转化、Postback Logs、报表和对账数据,只返回当前广告主范围。

Integration 集成 API

用于 Connector、店铺、CRM 或订单系统验证连接、创建转化、同步退款和回传订单。

Postback S2S / Pixel 回传

用 CID、order_id、amount、currency 和 status 完成转化归因、去重和状态同步。

接口资源目录

资源典型路径用途权限边界
当前账号GET /api/v1/me验证 API Key、账号类型、状态和权限范围。只返回当前调用方。
Offer 列表GET /api/v1/offers读取可推广或名下 Offer。Affiliate 只看可访问 Offer;Advertiser 只看名下 Offer。
Offer 详情GET /api/v1/offers/{id}读取标题、国家、佣金、Caps、素材和申请规则。必须通过 Offer 访问权限校验。
点击GET /api/v1/clicks按时间、Offer、Affiliate、CID 查询点击。只能查询授权范围内的点击。
转化GET /api/v1/conversions查询转化状态、金额、订单号和归因信息。Affiliate、Advertiser、管理员看到的字段不同。
创建转化POST /api/v1/conversionsIntegration API 或广告主系统回传订单。必须带 CID 或可识别的归因参数。
报表GET /api/v1/reports/performance按日期、Offer、Affiliate、Advertiser 聚合指标。默认分页和日期范围,避免一次拉取过大数据。
Postback 日志GET /api/v1/postback-logs排查回传成功、失败、重复订单和字段错误。不返回完整密钥和敏感请求头。

权限边界

API Key 不只是一个登录凭据,它还决定调用方能访问哪些资源、哪些字段和哪些操作。

调用方可以读取可以写入不应返回
Affiliate自己的资料、可访问 Offer、自己的点击、转化、报表和付款。申请 Offer、更新 Postback、更新付款资料。平台利润、其他 Affiliate 数据、广告主私有字段。
Advertiser名下 Offer、转化、Postback Logs、广告主报表。回传转化、更新广告主 Postback 配置。其他广告主数据、Affiliate 私有联系方式、平台风控规则。
Connector当前店铺绑定的广告主、默认 Offer、连接状态。创建订单转化、同步退款、同步优惠码归因。后台员工权限、全局报表、其他店铺订单。
管理员 API按角色授权读取平台资源。按角色授权执行管理动作。未授权模块、完整密钥、隐藏字段原值。

鉴权与安全

  • 优先使用 Bearer Token 或 X-Afftrix-Api-Key,不要把 key 写在公开页面里。
  • 如果兼容旧系统使用 api_keykeytoken 参数,生产环境仍建议迁移到 Header。
  • API Key 应支持启用、禁用、过期、重新生成和账号状态校验。
  • 请求日志不要记录完整密钥,文档截图里也不要展示真实 token。
  • 外部系统上线前必须跑验证接口、验证转化和错误码验证。

开发者快速开始

给外部开发者时,建议直接提供下面这组最小资料:Base URL、账号类型、API Key、接口版本、验证账号和一条验证 CID。不要只发密钥。

Step 1 验证鉴权
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://your-domain.com/api/v1/me

期望返回当前账号、账号类型、权限范围和启用状态。

Step 2 分页读取 Offer
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://your-domain.com/api/v1/offers?page=1&per_page=50"

Affiliate 只能看到自己可访问的 Offer;Advertiser 只能看到自己名下数据。

Step 3 创建验证转化
curl -X POST https://your-domain.com/api/v1/conversions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cid":"VERIFY_CID","order_id":"VERIFY-1001","amount":19.90,"currency":"USD","status":"approved"}'

成功后去 Conversions、Postback Logs 和 Reports 三处核对。

响应、分页和限流

API 响应应保持稳定,方便外部系统长期集成。列表接口必须分页,写入接口必须返回可追踪 ID。

{
  "data": {
    "id": 1001,
    "status": "approved"
  },
  "meta": {
    "request_id": "req_20260619_001",
    "api_version": "v1"
  }
}
规范建议格式开发者要注意
成功响应{"data": {...}, "meta": {...}}不要只判断 HTTP 200,还要判断业务状态和返回 ID。
列表分页pageper_pagetotalnext_page同步数据时按页拉取,不要一次请求全部数据。
错误响应{"error":"validation_failed","message":"...","fields": {...}}422 要把字段错误展示给开发者,不要只提示失败。
限流建议返回 429Retry-After外部系统需要退避重试,避免连续请求把队列打满。
幂等转化回传使用 order_iddedup_key广告主重复发送时不能重复入账。

错误码速查

HTTP 状态错误码含义开发者处理方式
400bad_request请求格式不正确。检查 JSON、Content-Type、参数类型和 URL path。
401unauthorized缺少 API Key、Key 错误、Key 过期或账号停用。重新生成 Key,确认 Header 名称和账号状态。
403forbidden账号没有访问该资源的权限。确认 Offer、Affiliate、Advertiser 归属关系。
404not_found资源不存在或不在授权范围内。确认使用公开 ID 还是系统 ID,并检查访问权限。
409duplicate_order订单号或去重键重复。复用原有订单查询结果,不要重复创建转化。
422validation_failed必填字段缺失或字段格式错误。读取 fields,逐项修正后重新发送。
429rate_limited请求超过频率限制。Retry-After 退避重试。
500server_error服务端异常。保留 request_id、时间和响应体,提交支持工单。

版本和兼容策略

  • 路径中保留版本号,例如 /api/v1,避免未来升级影响已有集成。
  • 新增字段默认向后兼容,调用方不应依赖字段顺序。
  • 字段废弃时先保留旧字段一段时间,并在响应 meta 或文档中说明替代字段。
  • 金额字段统一说明币种、精度和四舍五入规则。
  • 时间字段统一使用 ISO 8601 或明确时区,报表按平台时区展示。
  • 写入类接口必须支持去重,避免网络重试造成重复转化。

对接检查清单

  1. 确认 Base URL、账号类型、API Key、接口版本和调用环境。
  2. 先调用 health / me 类接口,确认鉴权成功和账号状态正常。
  3. 如果是转化回传,准备验证 CID、唯一 order_id、amount、currency、status 和 timestamp。
  4. 调用后检查 response、Postback Logs、Conversions 和 Reports 是否一致。
  5. 故障时提供完整请求时间、URL path、HTTP 状态、响应体、CID、order_id 和账号 ID。

外部调用教程入口

给外部开发者、广告主技术团队或联盟用户系统对接时,不要只发一个 API Key。建议按调用方拆分资料、权限和验证步骤。

调用方应该给什么资料先验证什么继续阅读
Affiliate 系统Base URL、Affiliate API Key、公开 Affiliate ID、Offer 查询权限。查询 me / profile,再查询可推广 Offer 和报表。
Advertiser 系统Base URL、Advertiser API Key、公开 Advertiser ID、Offer ID 和转化查询范围。查询 Offer、转化和 Postback Logs,确认只能看到自己数据。
店铺 / CRM / ConnectorConnector Key、Integration API 地址、验证 CID、order_id、amount、currency。验证连接,再创建一条验证订单转化。
广告主 S2S 回传Postback URL、cid 参数、secret、状态映射和去重规则。用验证 CID 回传 approved / pending / rejected 三种状态。

API 截图和标注标准

API 教程的截图应优先覆盖下面四类。截图里必须隐藏完整 token、邮箱、订单号和客户域名。

  • API Key 创建或重新生成页面:标注权限范围、过期时间、启用状态和复制按钮。
  • Affiliate / Advertiser API 权限示例:标注只能访问自己数据的范围。
  • 401 / 403 / 422 错误响应:标注 Header、必填字段、响应体和修复方式。
  • Integration API 回传结果:标注 request time、CID、order_id、Conversion、Postback Logs 和 Reports 验证位置。

常见错误

错误通常原因修复方式
401 / UnauthorizedAPI Key 错误、过期、禁用或账号状态异常。重新生成 key,确认 Header 名称和账号状态。
403 / Forbidden账号没有访问该资源权限。确认 Affiliate / Advertiser 归属和权限。
422 / Validation failed缺少 cid、order_id、amount、currency、status 等必填字段。按错误字段逐项填写,再重新发送。
Duplicate orderorder_id 或 dedup_key 重复。确认广告主是否重复发送,或使用新的验证订单号。
No click foundCID 不存在、过期或没有经过 Afftrix 点击。先生成验证点击,再用新 CID 回传。

Feature guide

功能使用总览

这篇文章只做功能导读,帮助你知道每个能力解决什么问题、应该到哪里阅读详细教程。安装、Offer、广告主、联盟用户和财务都有自己的栏目,不会混在这里。

适合首次熟悉后台 按场景阅读 不替代详细教程

先按你的任务选择文章

如果你只想完成某个操作,可以直接点击下面的文章入口,不需要从头阅读整套文档。

你要做什么应该看哪篇看完后应该能完成什么
了解 Afftrix 的特色能力知道 Offer 检测、链路分析、自动导入、风控、邮件营销、系统健康和财务对账分别解决什么问题。
处理后台右下角提醒知道提醒从哪里来,怎么一键处理或忽略,怎么关闭悬浮入口。
让 WooCommerce 店铺自动回传订单生成插件包、给广告主安装、验证订单是否回传到 Afftrix。
上游链接健康检测检查上游 click URL、落地页是否失效,以及 Offer 健康分、Link Health、HTTP 状态、最终 URL 和目标国家验证结果。
分析 Offer 跳转链路还原每一步 301/302、broker、中转域名、参数传递和最终落地页。
设置哪些 Affiliate 可以跑 Offer,哪些需要禁止配置白名单、黑名单、申请审核,并用连续点击无转化规则提醒、限制或自动屏蔽低质量流量。
配置质量核减和转化质量保护用正式的质量核减规则处理异常转化,避免使用容易造成客户误解的说法。
点击很多但没有转化时自动保护配置点击阈值、观察窗口、AM 提醒、Review 和单 Offer 限制,减少低质量点击持续消耗预算。
把重复运营动作交给规则处理按触发器、条件、范围、动作和日志配置自动提醒、创建任务、进入复核或限制访问。
检查亏损和异常流量看懂风险提醒,知道什么时候只提醒,什么时候自动拦截。
配置通知中心和邮箱通知设置站内、邮件、Telegram、Webhook 通知,并通过日志排查发送失败。
配置 GeoIP、代理和截图预览让国家识别、Offer Spy、Traffic Simulator、链接健康检查和截图预览更准确。
让联盟用户浏览公开 Offer 和素材配置公开展示内容、素材、申请要求和隐藏敏感信息。
突出公开 Offer 和 Top Offers配置公开市场、手动置顶、自动推荐和健康度筛选,让优质 Offer 更容易被发现。
配置品牌、Logo、公开 ID 和后台显示项完成平台名称、Logo、登录背景、公开 ID 起始值和 Action Center 显示设置。
了解后台运营工具覆盖迁移助手、后台任务、媒体库、公告、支付方式、敏感审批和审计日志的使用场景。
迁移旧系统数据从旧系统或 CSV/XLS 导入 Affiliate、Advertiser、Offer、转化和付款数据,并完成字段映射与导入后验收。

普通用户怎么读

如果你是平台运营人员,优先看操作步骤和页面入口;如果你是广告主,优先看 Connector 和 S2S Postback;如果你是联盟用户,优先看 Offer 申请、推广链接和付款资料。

文档标记说明

页面顶部会显示阅读场景:基础使用、平台管理、上线实施或开发对接。不同场景代表文章的主要读者和使用位置。页面中带红色星号的字段表示必须填写;写着“推荐”的字段不是强制项,但会影响排查、对账或报表准确性。

Core capabilities

核心能力总览

这一栏专门用来展示 Afftrix 的特色能力。它不替代后台菜单手册,而是告诉平台管理员、实施人员、运营和技术支持:每个能力解决什么问题、后台入口在哪里、什么时候用、应该怎么验收。

适合售前、实施和运营培训 22 个特色能力 按场景阅读

特色能力专题入口

先按专题选择能力组,再进入具体教程。每个专题都对应后台入口、适用角色和验收结果。

链接健康 上游链接健康检测

上线前和日常巡检先判断上游 click URL、落地页、SSL、HTTP 状态和 GEO 是否正常。

上线诊断 跳转链路与回传诊断

链接能打开后,再还原跳转、模拟路由,并围绕 CID 检查回传链路。

规模运营 批量管理供应和流量

Offer 变多后,需要用自动导入、供应地图和 Smartlink 减少人工维护。

风险控制 保护利润和上游资源

对利润、可疑流量、上游链接、访问权限和重复转化建立提醒、观察和拦截策略。

增长闭环 连接客户、店铺和财务

从邮件触达、店铺归因、Open API 到财务对账,帮助上线后持续运营。

特色能力展示卡

售前介绍和团队培训时,可以直接按下面的卡片讲:先讲它解决什么问题,再讲谁使用,最后讲怎么验收。

日常运营 上游链接健康检测

上线前和日常巡检自动发现上游 click URL 失效、SSL、HTTP、GEO 和落地页异常。

适合谁
运营、实施、AM、技术支持
验收标准
核心 Offer 不长期处于 Broken,异常能追溯到 HTTP 状态和最终 URL。
链路排查 Offer Spy 链路分析

还原每一步 301/302、中转 broker、参数丢失、最终落地页和跳错页面原因。

适合谁
技术支持、运营、广告主对接
验收标准
能说明问题发生在 Afftrix、上游、代理国家还是最终落地页。
平台管理员 Offer Access 与点击控制

控制哪些用户可以推广 Offer,并对连续点击无转化的组合先提醒、复核,再限制访问。

适合谁
平台管理员、运营、AM
验收标准
允许用户可推广,被限制用户不可推广,规则命中后有日志和恢复方式。
质量复核 质量核减与转化质量保护

用正式质量规则处理异常转化,保留原因、证据、白名单和付款排除逻辑。

适合谁
平台管理员、风控、财务、实施人员
验收标准
统一使用“质量核减”或“转化质量复核”表达,所有处理都有原因、日志和复核入口。
自动化运营 Automation Rules 自动化规则

把提醒、复核、任务、限制访问和通知做成可审计规则,减少重复人工操作。

适合谁
平台管理员、运营、风控、技术支持
验收标准
每条规则都有触发器、条件、范围、动作、排除名单和命中日志,启用前经过观察。
开发者对接 开放 API 与 Connector

让 Affiliate、Advertiser、店铺和外部系统安全调用 Afftrix,完成查询、回传和对账。

适合谁
开发者、广告主技术、集成服务商
验收标准
API Key 权限清楚,401/403/422 能解释,验证转化进入日志和报表。
平台管理员 通知、系统健康与对账

用通知中心、系统健康、后台任务和财务对账把上线后的运营风险持续收口。

适合谁
平台管理员、财务、技术支持
验收标准
失败回传、邮件失败、队列异常和付款差异都有通知和处理记录。

特色能力清单

能力解决什么问题后台入口或详细文章
上游链接健康检测(Offer Health)上线前和日常巡检坏链接、上游 click URL 失效、低健康分、GEO 验证失败和落地页异常。
Offer Spy还原上游 click URL、Affiliate tracking link、broker 和最终落地页的完整跳转链路。
上游链接保护减少原始上游链接被直接抓取、复制或绕过平台追踪,配合 Anti-Spy 和 Tracking 规则保护投放链路。
Smartlink把多个 Offer 放进一个智能流量池,按国家、设备、权限、优先级和权重自动分发。
Offer Source / API Automation连接上游 Offer API,预览字段映射,批量导入并定时同步 Offer。
Offer Supply Map查看上游来源、供应覆盖、映射状态、重复 Offer 和供应缺口。
Traffic Simulator模拟不同国家、设备、代理、referrer 和 Smartlink / Offer 路由结果。
Postback Debugger围绕一个 CID 检查 click、advertiser postback、conversion、affiliate postback 的完整链路。
Profit Guard发现负利润、低毛利、payout 异常、上游价格变化和币种风险。
Anti-Spy / Fraud识别爬虫、侦察工具、数据中心代理、异常点击、重复转化和可疑订单。
Offer Access 与点击控制设置哪些 Affiliate 可以推广、哪些 Affiliate 禁止推广;当点击量达到阈值但没有转化时,自动提醒、限制或屏蔽。
质量核减与转化质量保护用正式的转化质量规则处理异常转化,保留原因、日志、白名单和付款排除逻辑。
无转化点击自动保护识别点击很多但没有转化的 Affiliate + Offer 组合,先提醒和复核,再限制单个 Offer 访问。
Automation Rules 自动化规则把风险提醒、运营任务、技术告警、付款复核和访问限制做成可观察、可审计、可恢复的规则。
通知中心与邮箱通知配置站内、邮件、Telegram、Webhook 通知,并通过通知日志排查 sent、skipped、failed。
Tracking Settings 追踪设置管理 GeoIP、代理、截图、跳转保护和链接健康检测,让模拟和诊断结果更可靠。
公开 Offer 与 Top Offers配置公开 Offer 市场、健康度筛选、手动置顶和自动推荐,提升 Affiliate 发现优质 Offer 的效率。
后台运营工具覆盖后台任务、媒体库、公告、支付方式、敏感审批和审计日志等后台工具。
Migration Assistant 迁移助手从旧联盟系统或 CSV/XLS 文件导入历史数据,完成字段映射、分批导入、错误修正和导入后验收。
邮件营销按 Affiliate、Advertiser、分组用户发送营销邮件、系统通知和 Offer 推广。
WooCommerce Connector让广告主无需写代码即可保存 CID、回传订单、同步退款和优惠码归因。
系统健康与性能监控检查 Redis、队列、Cron、邮件、Tracking、failed jobs、慢页面和慢查询。
财务对账增强核对 Affiliate 余额、付款批次、银行或支付服务商文件、退款和差异处理。

建议阅读顺序

  1. 先看 Offer Health、Offer Spy、Traffic Simulator 和 Postback Debugger,掌握上线前最常用的检测和排查工具。
  2. 再看 Smartlink、Offer Source、Offer Supply Map,理解大量 Offer 和上游来源如何规模化管理。
  3. 接着看 Profit Guard、Anti-Spy / Fraud、上游链接保护、Offer Access、质量核减和无转化点击自动保护,建立利润、权限和流量质量保护体系。
  4. 最后看通知中心、公开 Offer 与 Top Offers、邮件营销、Connector、系统健康、财务对账和后台运营工具,把增长、集成、运维和结算闭环完善。

Offer routing

Smartlink 智能分发

Smartlink 用一个推广链接承接多种流量,系统按国家、设备、访问权限、优先级、权重和 fallback 规则自动选择最合适的 Offer。它适合 Offer 数量多、国家覆盖复杂、Affiliate 不想逐个选择 Offer 的场景。

后台入口:Operations > Offers > Smartlinks Affiliate 可复制 Smartlink 适合规模化投放
Smartlink 智能分发配置与路由结果标注图
Smartlink 配置要同时核对 Offer pool、权重优先级、访问权限、路由命中和 fallback,避免只创建链接却没有验证分发结果。

什么时候使用

  • 同一批 Affiliate 流量来自多个国家或设备,需要自动分发到不同 Offer。
  • 某些 Offer 会临时暂停、达到 Cap 或健康度下降,需要 fallback 到其他可投放 Offer。
  • 上游网络提供大量同类 Offer,运营希望用一个入口统一承接。
  • 需要给 Affiliate 一个稳定链接,后台可以不断调整流量池和权重。

配置步骤

  1. 进入 Smartlinks 新建智能链接,填写名称、code、状态和说明。
  2. 选择可进入流量池的 Offer,确认每个 Offer 已启用、Tracking URL 正常、Targeting 和 Caps 已配置。
  3. 设置优先级、权重、国家和设备规则。权重用于同等条件下的分配比例,优先级用于强制排序。
  4. 配置 fallback:当没有命中 Offer、Offer 暂停、Cap 达到或被 Anti-Spy 拦截时跳到备用 Offer、Smartlink 或安全页面。
  5. 开放给指定 Affiliate 或群组,避免没有权限的用户看到不该推广的 Smartlink。
  6. 模拟不同国家和设备,确认路由结果符合预期。

验收标准

  • Affiliate 后台能看到并复制 Smartlink。
  • 不同国家、设备或权限下能路由到预期 Offer。
  • 主 Offer 暂停或达到 Cap 时,fallback 生效。
  • 点击日志能记录 Smartlink 来源,并能追踪到最终 Offer。

关键字段和常见错误

字段或设置容易错在哪里检查方式
Offer pool放入了暂停、未审核或没有通过健康检测的 Offer。先跑 Offer Health,再加入 Smartlink。
Priority / Weight把权重当成绝对排序,或所有 Offer 权重相同但期望固定分配。用 Traffic Simulator 多次模拟,检查分发比例。
TargetingSmartlink 规则和 Offer 自身国家、设备规则冲突。同时检查 Smartlink 和 Offer Targeting。
Fallback没有设置 fallback,导致没有命中时用户落到错误页或空白页。模拟一个不匹配国家,确认 fallback 结果。

Offer sourcing

Offer Source 自动导入

Offer Source 和 Offer API Automation 用来连接上游 Offer API,把外部 Offer 预览、映射、导入、同步到 Afftrix。它和开放 API 不一样:开放 API 是外部系统调用 Afftrix;Offer API Automation 是 Afftrix 调用上游来源并导入 Offer。

入口:Offer Sources 入口:Offer API Automation 适合上游网络和批量导入
Offer Source 自动导入字段映射与预览标注图
Offer Source 导入前必须先保存来源凭证、映射关键字段、检查导入预览,并把异常链接、空字段和价格风险送入复核。

操作步骤

  1. 先准备上游 API 地址、鉴权方式、返回字段样例、币种、国家和分类映射。
  2. 进入 Offer Sources 新建来源,保存上游凭证、同步频率、默认广告主、默认分类和默认价格策略。
  3. 进入 Offer API Automation 拉取预览数据,检查标题、URL、国家、payout、revenue、status、cap、creative 字段是否能正确映射。
  4. 设置字段映射和默认值。上游缺失字段必须有兜底值,不要把空 URL、空币种或未知 payout 直接导入。
  5. 先导入少量验证用 Offer,跑 Offer Health、Tracking URL 和 Postback 验证,再开启定时同步。
  6. 开启同步后,每天检查导入失败、价格变化、暂停状态和 Profit Guard review queue。

常见风险

风险表现处理方式
字段映射错误国家、价格、URL 或状态导入不正确。先用预览检查样例,不要直接批量发布。
上游价格下降revenue 变低但 payout 没调整,产生负利润。启用 Profit Guard review,不让风险价格自动生效。
重复 Offer同一个上游 Offer 被多个来源重复导入。使用上游 ID、source key 和 Supply Map 去重。
坏链接同步导入后链接打不开。导入后批量跑 Offer Health,再决定是否公开。

导入前验收清单

  • 上游返回的 Offer ID、名称、URL、国家、币种、价格、状态都能映射。
  • 默认广告主、默认分类、默认 tracking domain 和默认价格策略已经设置。
  • 导入预览里没有空 Destination URL、未知币种、负利润和无效国家代码。
  • 少量导入后先跑 Offer Health、Offer Spy 和验证点击,再开启定时同步。
  • 价格下降、状态变更、上游暂停等风险进入 Profit Guard 或人工复核。

Supply intelligence

Offer Supply Map

Offer Supply Map 用来查看平台 Offer 的供应来源、覆盖情况和同步状态。它帮助运营判断哪些 Offer 来自手动创建,哪些来自上游 API,同一类 Offer 是否重复,某些国家或分类是否缺少供应。

入口:Operations > Offers > Supply Map 适合供应盘点 配合 Offer Sources 使用
Offer Supply Map 供应覆盖和缺口标注图
Supply Map 重点看来源覆盖、供应缺口、重复冲突和下一步处理入口,适合运营定期盘点 Offer 供应质量。

主要看什么

来源覆盖

按上游 source、广告主、分类、国家查看 Offer 数量和可投放状态。

同步状态

查看最近同步、失败原因、暂停状态和需要人工复核的记录。

供应缺口

发现某些国家、品类或设备没有可用 Offer,方便运营补充供应。

重复与冲突

识别重复导入、价格冲突、状态冲突和同一上游 Offer 的多个版本。

验收标准

  • 每个上游来源都有明确的导入数量、失败数量和最近同步时间。
  • 重复 Offer 有处理结果:合并、保留、暂停或标记来源。
  • 重点国家和分类能看到可用 Offer,不是只有导入记录但不可投放。
  • 供应地图中显示异常的 Offer 能跳转到 Offer Health、Offer Source 或 Offer 详情继续处理。

Tracking diagnostics

Traffic Simulator 流量模拟

Traffic Simulator 用来模拟真实点击进入 Afftrix 后的路由结果。它适合验证 Offer、Smartlink、Targeting、GEO、设备限制、fallback、Anti-Spy 和代理国家,不需要等真实用户流量进来再排查。

入口:Tracking > Traffic Simulator 支持 Offer 和 Smartlink 适合上线前验收

操作步骤

Traffic Simulator 流量模拟标注图
Traffic Simulator 重点看三块:模拟对象、访问环境和命中结果。带国家限制的 Offer,要把国家、IP、设备和 Referrer 尽量复现到和用户反馈一致。
  1. 选择模拟来源:Offer 或 Smartlink。
  2. 填写 Affiliate、国家、设备、IP / proxy、User-Agent、Referrer 和需要验证的 sub 参数。
  3. 如果要验证目标国家,先用代理连通性验证确认出口国家正确。
  4. 运行模拟,查看命中的 Offer、跳转 URL、fallback、Anti-Spy 判断和页面预览结果。
  5. 如果模拟结果和预期不同,回到 Offer Targeting、Smartlink rule、Anti-Spy rule 或 Tracking Domain 修正。

和 Offer Spy 的区别

Traffic Simulator 主要验证 Afftrix 自己的路由和规则;Offer Spy 主要分析某个外部 URL 或最终落地页的跳转链路。一个看平台规则,一个看链接链路,排查时经常一起使用。

常见模拟场景

场景输入条件预期结果
目标国家命中选择 Offer、Affiliate、目标国家和移动/桌面设备。命中符合 Targeting 的 Offer,并生成可解释的跳转结果。
国家不匹配选择 Offer 不允许的国家。触发 fallback、Smartlink 或拒绝原因,而不是直接进入上游。
Smartlink 分发选择 Smartlink、国家、设备和 Affiliate。路由到权重、优先级和权限都符合的 Offer。
Anti-Spy 验证设置可疑 Referrer、User-Agent 或高频点击条件。进入 shadow、block 或 fallback,日志能解释命中规则。

Postback diagnostics

Postback Debugger 链路调试

Postback Debugger 用来围绕一个 CID 或验证回传检查完整链路:点击有没有进来、广告主回传有没有到达、转化有没有创建、状态有没有变化、Affiliate Postback 有没有发出去。

入口:Tracking > Postback Debugger 围绕 CID 排查 适合漏单和回传失败

什么时候使用

  • 点击有了,但转化没有出现。
  • 广告主说已经回传,但 Afftrix 没收到或状态不对。
  • Affiliate Postback 没发出、失败或参数不完整。
  • 需要复现一条验证回传,从 test 到 approved / pending 完整验证。

排查步骤

Postback Debugger 链路调试标注图
Postback Debugger 按链路查看:Click 是否存在、广告主回传是否到达、Conversion 是否生成、Affiliate Postback 是否发出。断在哪一环,就先修哪一环。
  1. 准备 CID、Offer ID、Affiliate ID、订单号、广告主回传 URL 和问题发生时间。
  2. 在 Postback Debugger 输入 CID 或相关 ID,查看点击记录和原始参数。
  3. 检查 advertiser postback 是否到达,HTTP 状态、raw params、secret、amount、currency、status 是否正确。
  4. 检查 conversion 是否创建或更新,是否被去重、hold、reject 或 fraud rule 影响。
  5. 检查 affiliate postback 是否触发,失败时复制错误码和响应内容给 Affiliate。
  6. 修复后重新发送验证回传,确认 Click、Conversion、Postback Log 三边能对上。

需要重点看哪些字段

字段代表什么异常时怎么处理
CID点击和转化之间的归因 ID。没有 CID 先回到 Clicks 和 Tracking URL 检查。
order_id广告主订单或转化唯一编号。重复时检查 dedup 规则和广告主是否重复回传。
status转化状态。状态不符合预期时检查广告主参数映射和状态转换规则。
amount / currency金额和币种。金额异常会影响 CPS、Profit Guard 和付款。
HTTP response对方接口返回。非 200 需要复制状态码和 response 给对应技术方。

Link protection

上游链接保护与防抓取

上游链接保护用于减少原始上游 click URL 被直接抓取、复制或绕过 Afftrix 追踪。它通常和 Tracking Domain、Redirect Protection、Anti-Spy、fallback 和健康检测一起使用,保护平台自己的上游资源和投放链路。

入口:Tracking & GeoIP 配合 Anti-Spy 适合保护上游链接

需要保护什么

  • 不要在公开文档、公开 Offer 页面或 Affiliate 端暴露广告主原始 click URL。
  • Affiliate 应使用 Afftrix tracking link,点击经过平台记录 CID 后再跳转。
  • 可疑爬虫、侦察工具、数据中心代理和异常 referrer 应进入 Anti-Spy 观察或拦截。
  • 对被拦截或不符合条件的点击,使用 fallback 页面或 Smartlink,不要泄露上游落地页。

配置步骤

Tracking 设置截图
Tracking & GeoIP 是链接保护、GeoIP、代理和健康检测的基础设置入口。
  1. 进入 Tracking & GeoIP,确认 tracking domain、HTTPS、GeoIP provider 和代理配置可用。
  2. 开启或检查 Redirect Protection / tracking 默认保护相关开关,确保 Affiliate 只拿到 Afftrix tracking link。
  3. 在 Offer 里只给 Affiliate 展示 tracking link,不展示上游原始 URL。
  4. 配置 Anti-Spy shadow mode,先观察可疑 User-Agent、Referrer、数据中心 IP、扫描频率和 Offer sweep 行为。
  5. 确认规则稳定后,再对高风险来源启用 block、fallback 或限制访问。
  6. 用 Traffic Simulator 和 Offer Spy 验证:正常用户能跳转,可疑环境不会暴露上游链接。

Access & click control

Offer Access 与点击控制

这篇文章专门说明两个常用控制:哪些 Affiliate 可以推广某个 Offer,哪些 Affiliate 禁止推广;以及某个 Affiliate 连续大量点击但没有转化时,如何用规则提醒、观察、限制或自动屏蔽。

Offer 定向和 Affiliate Access 设置
在 Offer 的 Traffic & Access / Targeting 区域同时确认国家设备规则、Affiliate Access 和公开可见性。
入口:Offer > Traffic & Access 适合运营、AM 和风控 建议先 Shadow Mode 再自动屏蔽

这个功能解决什么问题

允许谁推广

白名单 Affiliate、指定分组或通过申请的用户才能看到 Offer、申请 Offer 或复制 tracking link。

禁止谁推广

把质量差、合同不允许、渠道不匹配或风控命中的 Affiliate 加入排除名单。

控制无转化点击

在指定时间窗口内点击达到阈值但没有转化时,自动提醒、限制、fallback 或屏蔽。

保留审计证据

每次放行、拒绝、屏蔽和恢复都记录原因,方便 AM、客服和客户支持解释。

访问模式怎么选

访问模式Affiliate 看到什么适合场景注意事项
Public合格 Affiliate 可直接看到并推广。低风险、已验证稳定、希望公开招募流量。仍要配置 Targeting、Caps 和禁止渠道。
Requested可以看到 Offer,但需要申请通过后才能推广。新 Offer、品牌敏感、需要先审核渠道。Access Requests 要有人每天处理。
Private / Whitelist默认不可见,只给指定 Affiliate 或分组。高价值 Offer、专属价格、定制合作。上线验证时先放行验证用 Affiliate。
Blocked / Excluded指定 Affiliate 不可推广,已存在链接也应被限制。低质量流量、合同限制、违规渠道。记录屏蔽原因和恢复条件。
Auto-blocked命中点击质量规则后自动进入限制状态。连续点击无转化、异常点击频率、低质量来源。先用 Shadow Mode 观察,稳定后再自动动作。

设置哪些 Affiliate 可以推广

  1. 进入 Offers,打开要设置的 Offer,进入 Traffic & AccessAffiliate Access 区域。
  2. 先选择 Offer 的可见性:Public、Requested、Private 或只对指定分组开放。
  3. 如果是 Private 或专属合作,在 Allowed Affiliates / Allowed Groups 中加入可以推广的 Affiliate 或分组。
  4. 如果需要审核申请,确认 Access Requests 会把申请送到运营或 AM 处理。
  5. 保存后用一个被允许的 Affiliate 登录,确认能看到 Offer、复制 tracking link,并且点击后 Clicks 里有记录。
  6. 再用一个未被允许的 Affiliate 验证:不能看到 Offer、不能复制链接,或点击会进入 fallback / no access 提示。

设置哪些 Affiliate 禁止推广

禁止推广建议按原因分类,不要只写一个模糊的“Block”。后续客服解释、AM 复盘和恢复权限都需要看到原因。

禁止方式适合情况建议动作
手动加入 Block list广告主明确禁止某个 Affiliate、渠道或流量类型。填写原因、关联工单或客户说明。
拒绝 Access RequestAffiliate 申请后渠道不匹配、历史质量差或资料不完整。拒绝时写清楚补充资料或重新申请条件。
账号级暂停Affiliate 整体违规,不只是某个 Offer 不允许。先暂停账号,再检查该 Affiliate 关联的其他 Offer。
规则自动限制点击量异常、连续点击无转化、拒单率高或 Fraud 命中。先限制单个 Offer,确认后再扩大到分组或账号。
分组不匹配该 Offer 只给某个 AM、国家、垂直行业或专属合作组。调整 Affiliate 分组或给单个 Affiliate 加专属放行。

点击控制规则怎么配置

点击控制不是为了惩罚所有低转化流量,而是防止明显没有质量的点击持续消耗预算、污染报表或触发广告主投诉。阈值要按行业、国家、Offer 类型和历史数据调整。

规则字段怎么设置示例
Scope规则作用范围。单个 Offer、某个 Advertiser、某个分类或全平台。
Window观察时间窗口。最近 1 小时、24 小时、7 天。
Minimum clicks触发前需要达到的最小点击量。100、300、1000,低流量 Offer 不要设太低。
Conversion condition转化条件。Conversions = 0,或 CR 低于 0.1%。
Action命中后执行什么。只记录、通知 AM、进入 Review、限制 Offer Access、fallback、暂停 Affiliate。
Cooldown自动动作持续多久。限制 24 小时后自动恢复,或必须人工恢复。
Exclusions不参与规则的对象。平台验收账号、广告主验收 IP、刚上线的低样本 Offer。
推荐规则

先配置“最近 24 小时,同一 Affiliate 在同一 Offer 点击超过 300 且转化为 0,只通知 AM 和记录风险”。观察 3 到 7 天确认误报少,再把动作改成限制该 Affiliate 对这个 Offer 的访问。

推荐上线策略

  1. 第一阶段使用 Shadow Mode,只记录哪些 Affiliate 会命中规则,不自动屏蔽。
  2. 每天查看命中列表,排除平台验收、广告主验收、品牌监测工具和样本太小的 Offer。
  3. 把明显异常的 Affiliate 设置为 Review 或限制单个 Offer,不要一开始全平台封禁。
  4. 确认 3 到 7 天规则稳定后,再启用自动限制、fallback 或自动屏蔽。
  5. 所有自动动作都要写入日志:Affiliate、Offer、点击数、转化数、窗口、动作、恢复时间和处理人。

验收标准

  • 被允许的 Affiliate 能看到 Offer、复制 tracking link,并产生正常 Click。
  • 被禁止的 Affiliate 看不到 Offer,或点击旧链接时被拒绝、fallback 或记录为 no access。
  • Access Request 有明确的通过、拒绝、原因和处理人。
  • 连续点击无转化规则能在验证阈值下产生提醒,且不会影响平台验收账号。
  • 自动屏蔽或限制有恢复方式,AM 能在日志中解释为什么被限制。

Conversion quality

质量核减与转化质量保护

质量核减用于处理明显异常、低质量或不符合结算规则的转化,避免异常流量直接进入付款、报表和广告主对账。推荐统一使用“质量核减”“转化质量保护”或“转化质量复核”,避免使用容易造成误解的简称。

质量核减与转化质量保护规则标注图
质量核减应按模式、样本量、每日上限、异常信号和白名单配置,并保留可审计的复核证据。
入口:Settings Center > Tracking & GeoIP Offer 级别可覆盖平台默认值 建议保留可审计原因

什么时候使用质量核减

异常速度

点击后极短时间内大量转化,明显不符合正常用户路径。

重复来源

同一 IP、同一 s1/subid 或同一设备指纹短时间内反复产生转化。

广告主规则

广告主约定某些状态、国家、渠道、重复订单或退款订单不参与结算。

质量样本保护

新 Affiliate 或新渠道尚未形成稳定质量数据时,先用较保守的质量规则观察。

术语使用建议

平台会根据转化质量规则标记异常转化,并保留原因和日志,异常转化不会直接进入可付款金额。相关说明应保持清晰、克制,避免让正规联盟用户误解平台结算规则。

两种模式怎么选

模式适合场景如何解释上线建议
Off刚部署、还在做回传和付款闭环验证。先不启用质量核减,只验证基础数据链路。验证阶段可用,正式投放前应重新评估。
Fixed interval业务方已有明确的固定质量核减策略。按固定间隔标记质量复核记录。只在业务方明确要求时使用,并写清规则来源。
Quality rules希望按异常信号和每日上限控制风险。达到样本量后,按短点击、重复 IP、重复 subid 等质量信号标记。推荐正式运营使用,先低强度观察再提高动作。

平台默认规则怎么配置

  1. 进入 Settings Center > Tracking & GeoIP,找到转化质量相关设置。
  2. Default deduction mode 统一解释为“默认质量核减模式”,正式文案中使用“质量核减模式”。
  3. 如果选择 Quality rules,先设置最小样本量,例如同一 Affiliate + Offer 当天达到 30 个转化后才开始评估。
  4. 设置每日最大核减比例,例如 10%,避免规则误判时影响过大。
  5. 设置短点击秒数、重复 IP 阈值、重复 subid 阈值。阈值越低越严格,建议先保守。
  6. 保存后跑一条验证转化,确认正常转化不会被标记为质量核减。

Offer 和 Affiliate 级别怎么处理

位置用途建议
Offer 设置针对某个 Offer 覆盖平台默认质量核减模式、间隔或质量阈值。高风险 Offer、特殊广告主规则、特殊国家时才覆盖。
Affiliate 设置配置质量核减白名单、全局计数器、Offer 计数器。验证账号、广告主验收账号、长期高质量 Affiliate 可加入白名单。
Offer Access 规则对单个 Affiliate + Offer 设置强制核减或豁免。只用于合同或风控已确认的特殊合作,不建议滥用。
Conversion 明细查看是否被质量核减、核减范围、原因和时间。客服和财务排查时必须先看这里,再决定是否调整状态。

验收标准

  • 正常验证转化不会被错误标记为质量核减。
  • 命中规则的转化有清楚原因,例如 short-click、repeat IP、repeat subid 或固定间隔。
  • 被质量核减的转化不会进入可付款金额,也不会误发 Affiliate Postback。
  • 验证账号、广告主验收账号或白名单 Affiliate 可以按规则豁免。
  • Performance Report、Conversions、Payments 能区分正常转化和质量核减转化。

Click quality automation

无转化点击自动保护

无转化点击自动保护用于发现某个 Affiliate 在某个 Offer 上持续产生大量点击但没有转化的情况。它不是简单封号,而是按阈值先提醒、进入复核、限制单个 Offer 访问,必要时再自动屏蔽,避免低质量流量持续消耗预算。

入口:Automation Rules 触发器:Affiliate high clicks, no conversions 建议先观察再自动动作
无转化点击自动保护规则与日志标注图
无转化点击自动保护建议先设置观察窗口、点击阈值和复核动作,再根据 Automation Logs 决定是否限制单个 Affiliate + Offer。

规则处理什么问题

点击很多没有转化

同一 Affiliate 对同一 Offer 持续送量,但在观察窗口内没有产生有效转化。

预算被无效消耗

广告主预算、上游点击成本或平台排查成本被异常点击占用。

报表被污染

大量无转化点击拉低 CR,让运营难以判断 Offer 本身是否健康。

需要可解释动作

系统记录点击数、转化数、窗口、动作和恢复条件,便于 AM 与 Affiliate 沟通。

推荐规则模板

阶段条件示例动作目的
观察24 小时内点击 > 300,转化 = 0。只写 Automation Log,通知 AM。先确认是否误报。
复核连续 2 天命中,或同一 Offer 多次命中。创建 Review / AM task。让运营检查渠道、国家、落地页和上游状态。
单 Offer 限制复核确认流量质量明显异常。限制该 Affiliate 对这个 Offer 的访问。避免影响该 Affiliate 的其他正常合作。
账号级处理多个 Offer 持续命中,且有违规证据。暂停 Affiliate 或交给风控处理。处理系统性风险。

配置步骤

  1. 进入后台 Automation & Tools > Automation Rules
  2. 创建规则,触发器选择 Affiliate high clicks, no conversions
  3. 设置观察窗口,例如最近 24 小时或最近 7 天。
  4. 设置最低点击量和转化条件,例如点击超过 300 且转化为 0。
  5. 第一阶段动作选择 Notify AMCreate taskLog only
  6. 排除平台验收 Affiliate、广告主验收账号、刚上线且样本量不足的新 Offer。
  7. 观察 3 到 7 天后,再把动作升级为限制单个 Offer access、fallback 或自动屏蔽。
  8. Automation Logs 检查命中记录,确认每条都有原因、范围、动作和恢复方式。

避免误伤的检查

  • 先确认 Offer 本身没有坏链、GEO 限制或上游落地页问题,必要时先看 Offer Health 和 Offer Spy。
  • 新 Offer 低样本期不要把阈值设置太低。
  • 不要一开始全平台封禁 Affiliate,优先限制单个 Affiliate + Offer 组合。
  • 每个自动动作都要保留恢复条件,例如 24 小时后自动恢复或人工复核后恢复。
  • 对优质 Affiliate 或广告主验证账号,使用排除名单或白名单避免误触发。

Automation operations

Automation Rules 自动化规则

Automation Rules 用于把重复运营动作变成可审计规则,例如发送提醒、创建任务、进入复核、限制 Offer access、暂停风险对象或通知负责人。正式启用前建议先用 Shadow Mode 观察命中日志,再逐步开启自动动作。

入口:Automation & Tools > Automation Rules Trigger / Condition / Action 先观察再自动执行
Automation Rules 自动化规则配置与日志标注图
自动化规则要同时确认触发器、条件、范围、动作、排除名单和命中日志,避免规则误伤正常流量或正常客户。

适合自动化的场景

风控提醒

负利润、可疑访问、异常点击、无转化点击或坏链进入提醒、复核或限制流程。

运营任务

新申请、失败回传、Offer 状态异常、资料缺失等事件自动创建待处理任务。

技术告警

Postback 失败、队列失败、导入异常、邮件发送失败时通知技术支持或负责人。

财务提醒

付款批次超时、余额异常、对账差异、风险转化进入付款前复核。

一条规则由哪些部分组成

部分说明配置建议
Trigger触发器,决定什么时候检查规则,例如 click、conversion、postback failure、offer health、payment pending。先选择最具体的触发器,避免用过宽条件覆盖全平台。
Conditions条件,决定哪些记录会命中,例如点击数、转化数、利润、状态、国家、Affiliate、Offer。至少设置一个业务阈值和一个范围条件。
Window观察窗口,例如最近 1 小时、24 小时、7 天。低样本业务不要设置过短窗口。
Scope规则范围,例如全平台、指定广告主、指定 Affiliate、指定 Offer、指定国家。第一次启用建议先从指定 Offer 或指定广告主开始。
Action命中后执行的动作,例如写日志、发送通知、创建任务、进入复核、限制访问、暂停对象。先从 Log only、Notify、Create task 开始,再升级为限制动作。
Exclusions排除名单,例如验收账号、优质合作伙伴、新上线 Offer、广告主验证账号。上线前必须配置,避免误伤正常验证和关键客户。
Cooldown冷却时间,避免同一对象在短时间内重复触发通知或动作。提醒类可短一些,限制类动作建议更长。
Logs命中日志,记录触发原因、条件值、执行动作和处理结果。任何自动动作都必须能回到日志解释。

配置步骤

  1. 进入 Automation & Tools > Automation Rules,点击创建规则。
  2. 先写清楚规则目的,例如提醒 AM、创建复核任务、限制某个 Offer access 或暂停风险对象。
  3. 选择触发器,并设置业务范围、观察窗口和阈值。
  4. 添加排除名单,例如验收账号、新上线 Offer、可信 Affiliate、广告主验证账号。
  5. 第一阶段动作选择 Log onlyNotify,进入 Shadow Mode 观察命中结果。
  6. 连续观察一段时间,确认命中对象、条件值和业务预期一致。
  7. 再把动作升级为 Create taskReview queueLimit offer accessPause offer
  8. 启用后定期查看 Automation Logs,确认每条命中都有原因、动作、处理人和恢复方式。

常用规则模板

规则典型条件推荐动作相关文章
无转化点击保护24 小时内 Affiliate + Offer 点击超过阈值,转化为 0。先通知 AM 和创建复核任务,再限制单个 Offer access。
负利润提醒转化 revenue 小于 payout,或毛利率低于平台阈值。进入 Profit Guard 复核,付款前提示财务。
Postback 失败提醒同一广告主或同一 Offer 在窗口内连续回传失败。通知技术支持,创建排查任务。
Offer 链接失效Offer Health 返回 Broken、HTTP 错误或最终落地页不可访问。提醒运营,必要时暂停公开展示或暂停投放。
付款待处理超时付款批次长时间停留在 pending 或 review。通知财务负责人,创建付款复核任务。
导入同步异常Offer Source、Migration Assistant 或后台任务出现失败记录。通知技术支持,进入 Background Tasks 查看错误。

动作怎么选择

动作适合场景注意事项
Log only新规则观察期、规则阈值还不确定时。不会影响业务,是正式启用前的推荐模式。
Notify需要 AM、运营、财务或技术支持看到提醒。要配置通知渠道和冷却时间,避免重复提醒。
Create task需要人工处理,但不需要立即改变业务状态。任务要包含对象 ID、命中原因和建议动作。
Review queue需要复核后再决定是否付款、暂停或恢复。适合利润、欺诈、质量核减和付款前检查。
Limit offer access只想限制某个 Affiliate 对某个 Offer 的访问。优先于账号级暂停,影响范围更可控。
Pause offer / affiliate风险明确、影响面大,需要立即止损。必须保留恢复条件和审批记录。
Hold conversion转化需要等待人工复核后再进入付款。要让财务能看到 hold 原因和处理结果。

验收标准

  • 规则目的、触发器、条件、范围、动作、排除名单和冷却时间都能解释清楚。
  • 规则启用前已使用 Log only 或 Shadow Mode 观察命中记录。
  • Automation Logs 能看到命中对象、条件值、执行动作和处理结果。
  • 被限制或进入复核的对象可以找到恢复方式和处理人。
  • 验收账号、广告主验证账号、可信 Affiliate 和新上线 Offer 不会被误伤。

Profit protection

Profit Guard 利润保护

Profit Guard 用来发现低毛利、负利润、payout 异常、revenue 下降、币种不一致和上游价格变化。它的目标不是替代财务对账,而是在问题扩大前先提醒运营或把风险记录送进 review queue。

入口:Protection > Profit Guard Profit Alerts Review Queue
Profit Guard 利润保护提醒与复核队列标注图
Profit Guard 用于在付款前发现负利润、价格变化和币种冲突,处理结果应回到付款、报表和复核记录。

建议配置

  1. 上线初期先启用提醒或 review 模式,不要直接自动暂停所有命中 Offer。
  2. 设置最低毛利率、负利润、payout 变化、币种不一致和上游价格下降阈值。
  3. 对 Offer API Automation 导入的价格变化开启人工复核,避免上游价格异常自动影响投放。
  4. 把 Critical 级别提醒发送给运营负责人和财务,普通 Warning 可在 Action Center 里处理。
  5. 每次付款前检查 Profit Guard Alerts 和 Review Queue,确认高风险记录已处理。

验收标准

  • 故意配置一条 payout 高于 revenue 的验证用 Offer,Profit Guard 能生成提醒。
  • 低毛利、负利润、币种不一致有不同等级,不会全部混成同一个错误。
  • 处理提醒后有记录:谁处理、怎么处理、是否暂停或恢复。
  • 付款前能把 held、blocked、rejected 和高风险转化排除。

Traffic protection

Anti-Spy 与 Fraud 风控

Anti-Spy 关注点击和访问环境,Fraud 关注转化和订单质量。两者配合使用,可以识别侦察工具、爬虫、数据中心代理、异常点击频率、重复订单、异常 CR 和可疑退款。

入口:Protection > Anti-Spy Anti-Spy Logs / Rules / Lists Fraud Rules / Fraud Logs
Anti-Spy 与 Fraud 风控规则和日志标注图
Anti-Spy 与 Fraud 建议先用观察模式验证风险信号,再按 Offer、Smartlink 或名单启用 fallback、block、hold conversion 等动作。

上线建议

  1. 第一阶段使用 Shadow Mode,只记录风险,不直接拦截真实流量。
  2. 观察 3 到 7 天,标记误报和真实风险,调整阈值和 allow list。
  3. 把明显异常的 User-Agent、Referrer、数据中心 IP、扫描器和重复点击加入规则。
  4. 对高风险 Offer 或 Smartlink 单独设置更严格规则,不要一开始全局强拦截。
  5. Fraud Rules 重点关注重复 order_id、异常金额、高退款率、异常 CR 和短时间大量转化。
  6. 确认规则稳定后,再启用 fallback、block、hold conversion 或人工审核。

处理误报

  • 先看 Anti-Spy Logs 的 risk score breakdown,不要只看最终等级。
  • 确认是否为真实客户、代理验证、广告主监测工具或验证账号。
  • 确认为误报后,按 IP、Affiliate、Offer、Referrer 或 UA 加入 allow list。
  • 调整规则后用 Traffic Simulator 复测,确认正常用户不会再被拦截。

Notification operations

通知中心、Telegram Bot 与邮箱通知

通知中心决定平台事件通过哪些渠道通知哪些角色。它覆盖站内通知、邮箱通知、Telegram Bot 菜单与推送、Webhook、通知模板、通知健康检查和通知日志。SMTP 只解决邮件能不能发出去,通知中心解决哪些事件要通知、通知谁、用什么渠道通知。

通知中心渠道设置截图
正式上线时建议至少开启站内通知和管理员邮箱通知;Telegram 与 Webhook 按团队使用场景开启。
入口:Settings Center > Notification Center Telegram Bot / My Notifications Mail & SMTP / Notification Logs

先理解几个入口

入口负责什么什么时候使用
Mail & SMTP发件人、SMTP 服务器、注册邮件、付款邮件和密码重置邮件。只要需要邮件通知,就先配置这里并发送验证邮件。
Notification Center站内、Email、Telegram、Webhook 的总开关、角色事件、默认收件策略。设置哪些事件要发给管理员、AM、员工、Affiliate 和 Advertiser。
Telegram Bot平台机器人 token、webhook、机器人菜单模块、命令同步、账号绑定管理。团队要通过 Telegram 接收提醒或使用机器人快捷菜单时配置。
My Notifications当前账号自己的通知渠道、事件订阅、Telegram 绑定和个人 Webhook。管理员、AM、员工需要把自己的 Telegram 账号或 Webhook 地址绑定进来时使用。
Notification Templates按事件和渠道调整通知标题、正文和变量。需要统一品牌语气、减少噪音或调整面向用户的通知文案时使用。
Notification Health检查通知中心、邮箱、Telegram、Webhook、队列和通知日志是否可用。上线前、修改 SMTP 或 Telegram 后、客户反馈收不到通知时使用。
Notification Logs查看每一次通知投递的 sent、skipped、failed 结果。排查邮件、Telegram、Webhook、站内通知是否真正发送。

通知渠道怎么选

渠道适合发送什么上线建议
In-app后台提醒、申请处理、任务、风控提醒、付款提醒。建议始终开启,便于追溯历史。
Email注册审核、密码重置、付款通知、重要系统事件。先完成 Mail & SMTP 验证,再开启邮件渠道。
Telegram运营团队即时提醒、异常告警、审批入口、报表摘要和机器人快捷菜单。团队使用 Telegram 时开启。建议使用平台统一 Bot,并让接收人绑定自己的账号。
Webhook对接企业 IM、CRM、工单、监控系统或自建自动化流程。只发到 HTTPS 地址,目标系统需快速返回 2xx。

邮箱通知设置

  1. 进入 Settings Center → Mail & SMTP
  2. 开启 Email notifications enabled。如果需要找回密码,开启 Password reset emails enabled,并保留合理的重发间隔。
  3. 根据业务需要开启 Affiliate 注册确认、Advertiser 注册确认、团队申请提醒和付款邮件。
  4. 填写 From emailFrom name、SMTP host、端口、加密方式、用户名和密码。常见端口是 587 TLS、465 SSL。
  5. 填写 Test recipient 后发送验证邮件。验证成功后,再回到 Notification Center 开启 Email channel
  6. 进入 Notification Logs 查看邮件渠道是否为 sent。若显示 failed,优先处理 SMTP 错误、端口拦截、账号授权或队列问题。
系统邮箱通知和邮件营销不是同一件事

Mail & SMTPNotification Center 用于注册、审核、付款、异常和系统事件通知。Email Campaigns 用于批量营销邮件、Offer 推荐和公告发送,两者都依赖 SMTP,但配置目的不同。

Telegram Bot 全局设置

  1. 在 Telegram 打开 @BotFather,使用 /newbot 创建机器人,记录 Bot Token 和机器人 username。
  2. 进入 Settings Center → Telegram Bot,开启 Telegram channel,填写 Bot Token。Bot Token 必须包含冒号,格式类似 123456789:AA...
  3. 填写机器人 username。username 不需要带 @,也可以点击诊断后由系统自动保存。
  4. 设置 Webhook secret。建议使用一段不容易猜到的字符串,Telegram 回调会带这个 secret,Afftrix 会校验它。
  5. 保存后点击连接诊断,确认 Bot Token、Telegram API 和 Webhook URL 都可访问。
  6. 点击 Sync webhook。系统会把 Telegram webhook 指向 /api/telegram/bot/webhook,并清理旧的 pending updates。
  7. 点击 Sync bot commands,把 /start/today/tasks/offer/postback 等命令同步到 Telegram。
  8. 选择菜单语言。推荐使用 Follow linked account language,让机器人菜单跟随绑定账号语言。
Telegram webhook URL:
https://your-domain.com/api/telegram/bot/webhook
Cloudflare 和防火墙提醒

如果网站前面有 Cloudflare、WAF 或安全插件,请不要挑战或缓存 /api/telegram/bot/webhook。Webhook 必须能被 Telegram 服务器通过 HTTPS 正常访问。

Telegram 菜单模块

模块用户能做什么适合谁
Dashboard and stats查看今日、昨日、7 天和本月摘要。管理员、AM、员工、Affiliate、Advertiser。
Action center查看待处理审批、Postback 问题和健康任务。管理员、AM、具备相关权限的员工。
Review center处理 Affiliate 申请和 Offer access 审核。管理员、AM、审核岗位员工。
Offer tools搜索 Offer,并按权限暂停或恢复 Offer。管理员、AM、具备 Offer 管理权限的员工。
Postback tools查看近期失败、按 test_run_id 或 CID 查询回传测试。管理员、技术支持、对接人员。
System health查看授权、队列、Telegram、SMTP 等准备状态。管理员、运维、技术支持。
Operational alerts查看通知失败、回传问题、健康度和系统告警。管理员、运营负责人、支持团队。

机器人菜单会按角色、员工权限和数据范围自动过滤。Affiliate 和 Advertiser 只能看到自己可见的数据;非管理员不会看到敏感利润、上游来源、私有 token 或原始密钥。

用户如何绑定 Telegram

  1. 管理员、AM 或员工登录后台,进入 Settings Center → My Notifications
  2. 在渠道里勾选 Telegram,并选择自己要接收的事件。
  3. 点击生成 Telegram 绑定码。系统会生成类似 /link AFF-XXXX-XXXX 的命令,有效期 15 分钟。
  4. 如果已配置机器人 username,可以直接打开页面给出的 t.me 一键链接;也可以在 Telegram 里给机器人发送 /link AFF-XXXX-XXXX
  5. 绑定成功后,返回 My Notifications 发送 Telegram 验证通知。
  6. 如果账号离职或不再需要 Telegram 通知,可以在绑定列表里禁用对应 Telegram 账号。
推荐使用账号绑定,而不是只填 Chat ID

Notification Center 仍支持管理员为角色填写 fallback Chat ID,但正式运营更推荐每个接收人自己在 My Notifications 绑定。这样菜单权限、语言、通知事件和数据范围都会跟随账号。

角色事件怎么配置

通知事件和收件人设置截图
不同角色只订阅自己需要处理的事件,避免噪音太多导致重要提醒被忽略。
角色建议保留的事件不建议默认发送
Admin注册审核、付款、Profit Guard、Anti-Spy、后台任务失败、授权和系统健康。过于频繁的普通点击、普通转化实时通知。
Manager / AM分配给自己的 Affiliate 申请、Offer access、任务、质量提醒、支持工单。不属于自己数据范围的财务和系统设置提醒。
Employee与岗位权限相关的任务、审批、工单、运营提醒。上游价格、敏感配置和超出岗位范围的数据。
Affiliate申请结果、Offer 状态、付款状态、转化摘要、自己的 Postback 失败。风控处理细节、上游来源、其他 Affiliate 数据。
AdvertiserOffer 审核、转化活动、回传异常和账单提醒。Affiliate 私有资料和平台处理备注。

通知健康检查

  • Notification center:总开关是否开启。
  • In-app notifications:站内通知是否可以写入。
  • Email notifications:邮箱渠道是否开启,SMTP 配置是否完整。
  • Telegram notifications:Telegram 是否开启,Bot Token 是否存在,是否已有绑定账号或 fallback Chat ID。
  • Webhook notifications:Webhook 是否开启,是否有默认 URL 或用户自己的 URL。
  • Queue worker:生产环境建议使用 database queue,并配置 Supervisor 或 Cron queue:work --once
  • Delivery logs:通知日志表是否可用,近期是否有连续失败。

通知日志怎么排查

  1. 进入 Notification Logs,按事件、渠道、收件人、状态筛选。
  2. 状态为 sent 代表平台已发送;状态为 skipped 通常表示渠道关闭、事件未勾选、收件人没有地址或被去重限制。
  3. 状态为 failed 时,先看错误信息,再分别检查 SMTP、Telegram Bot、Webhook URL 或队列任务。
  4. 如果 Telegram 菜单能打开但收不到推送,检查该账号是否在 My Notifications 勾选了 Telegram 和对应事件。
  5. 如果员工看不到某个菜单,检查 Staff Role 是否有对应权限,例如 Telegram Bot access、Offer 管理、Postback 查看或系统健康查看。
现象优先检查处理方式
邮件收不到Mail & SMTP 是否验证成功、Email channel 是否开启、收件人是否勾选 email。先发送验证邮件,再查看 Notification Logs 的失败原因。
密码重置邮件不发Password reset emails enabled、SMTP、收件邮箱和重发间隔。开启密码重置邮件,确认 SMTP 可用,并避免短时间重复请求。
Telegram webhook 失败Webhook URL 是否 HTTPS 可访问,secret 是否一致,Cloudflare/WAF 是否拦截。重新 Sync webhook,并在 Telegram Bot 页面运行诊断。
Telegram 推送 skipped接收人没有绑定账号,也没有 fallback Chat ID,或事件未订阅。让接收人在 My Notifications 绑定 Telegram,并勾选 Telegram 渠道和对应事件。
机器人菜单没有某些按钮菜单模块开关、账号角色、员工权限和数据范围。在 Telegram Bot 页面启用模块,并给员工角色分配对应权限。
Webhook 没收到URL 是否公网可访问、是否返回 HTTP 2xx、签名密钥是否匹配。先发送验证通知,目标系统必须快速返回 2xx。
通知太多事件勾选过宽,或 Affiliate 转化提醒使用 realtime。减少事件范围,把联盟用户默认转化提醒改为 digest 或 off。
发送延迟明显队列 worker、计划任务、失败重试和邮件服务商限速。确认 schedule:run 和队列 worker 正常运行。

Tracking infrastructure

Tracking Settings 追踪设置完整说明

Tracking Settings 是追踪域名、国家识别、代理预览、截图检测、跳转保护、链接健康检查和质量规则的集中入口。投放前要把这里配置好,否则会出现国家判断不准、Offer 打不开、截图失败或链接检测误报。

Tracking Settings 追踪设置标注截图
Tracking Settings 的重点区域:追踪基础、Offer Health、跳转保护、默认检测国家和住宅代理。
入口:Settings Center > Tracking & GeoIP GeoIP / Proxy / Offer Health 投放前必须验证

推荐配置顺序

第一次部署或迁移后,建议按下面顺序处理。不要先配置代理再回头修 GeoIP;国家识别不准时,Offer Health、Offer Spy 和 Traffic Simulator 的结果都会跟着不准。

确认追踪域名 开启 GeoIP 配置 MaxMind 或上传 mmdb 测试 IP 查询 配置住宅代理 保存并检测代理 复测 Offer Health / Offer Spy
追踪域名和 CDN

追踪域名默认不建议开启 CDN。只有服务器已经正确还原真实访客 IP,并且确认 Cloudflare / WAF 不会拦截 /postback.php/sotl/click/go 等路径时,才考虑橙色云或其他 CDN。

关键配置项

配置作用建议
Default tracking domain生成 Affiliate tracking link 的默认域名。必须解析到当前服务器,并确认 HTTPS 可用。
GeoIP enabled开启 IP 到国家、地区、城市的识别。正式投放必须开启,关闭后国家限制、健康检测和报表国家维度都会受影响。
GeoIP provider选择国家识别来源。生产环境优先使用 MaxMind GeoLite2 local database。
GeoIP database path本地数据库文件路径。保持 storage/app/geoip/GeoLite2-City.mmdb,不要放到 public 目录。
MaxMind Account ID / License Key自动下载和更新 GeoLite2 数据库。使用部署方自己的 MaxMind 账号;License Key 不要出现在公开截图或工单里。
GeoIP update mode控制自动更新还是手动更新。VPS / 独立服务器建议 automatic;虚拟主机受限时用 manual。
Unknown country behavior无法识别国家时如何处理点击。正式投放建议保守处理,避免误进广告主不允许地区。
Server check country链接健康检查时默认用哪个国家模拟访问。有 GEO 限制的 Offer 建议填写主要投放国家,例如 US
Residential proxy type健康检测、Offer Spy 和模拟访问使用的代理协议。优先选 SOCKS5H,让代理端解析目标域名;只有服务商明确要求时才用 HTTP / SOCKS5。
Residential proxy host / port代理网关地址和端口。host 只填域名或 IP,不要带 http://socks5://
Username / password template代理账号密码模板。可用 {country}{COUNTRY} 自动替换目标国家。
Country proxy overrides为某些国家单独指定代理。只有个别国家走不同供应商时填写,格式如 US=socks5h://user:pass@host:port
Proxy connectivity test保存代理后读取出口 IP 并校验国家。代理配置后必须先测 US 或目标国家,再跑 Offer Health。
Traffic screenshot preview为 Traffic Simulator、Offer Spy 或链接检测生成页面截图。截图失败时先看代理、浏览器路径、页面反自动化和服务器出站访问。
Redirect protection减少上游原始链接被直接抓取。与 Anti-Spy、fallback 和 Tracking Domain 一起验证。
Scheduled health checks定期检测 Offer 链接和落地页状态。正式投放建议开启,但要限制每轮扫描数量。

GeoIP 数据库部署

GeoIP 负责把点击 IP 识别为国家、地区和城市,会影响 Offer 国家限制、Traffic Simulator、Offer Health、Offer Spy、代理验证和风控判断。生产环境建议使用 MaxMind GeoLite2 City 本地数据库。

上线前先确认这 4 件事

PHP-FPM 和 PHP CLI 的 memory_limit 至少 512Mstorage/app/geoip 目录可读写;scheduler 计划任务已经配置;追踪域名能拿到真实访客 IP,而不是 CDN 或反向代理 IP。

内存要求

更新 GeoIP 数据库会下载并解压 MaxMind 压缩包。请把 PHP-FPM 和 PHP CLI 的 memory_limit 都设置为至少 512M,否则可能出现下载中断、解压失败或后台按钮更新失败。修改后需要重启 PHP-FPM / Web 服务,并重新执行更新。

环境设置方式验证命令
aaPanel / 宝塔进入 软件商店 > PHP 8.3 > 设置 > 配置文件,把 memory_limit 改为 512M 或更高;保存后重启 PHP。/www/server/php/83/bin/php -i | grep memory_limit
VPS / 独立服务器分别确认 PHP-FPM 和 PHP CLI 使用的 php.ini。修改 memory_limit = 512M 后重启 PHP-FPM。php -i | grep memory_limit
cPanel / Plesk / DirectAdmin在 PHP Selector、MultiPHP INI Editor 或主机商 PHP 设置中把 memory_limit 调到 512M。如果虚拟主机不允许调整,建议使用手动上传数据库方式。php -r "echo ini_get('memory_limit'), PHP_EOL;"

方式 A:MaxMind 自动更新

推荐正式生产环境使用这种方式。系统会用 MaxMind Account ID 和 License Key 下载 GeoLite2-City.mmdb,并通过 scheduler 每日更新。

  1. 打开 MaxMind GeoLite2 注册页,注册或登录 MaxMind 账号。
  2. 登录后进入账号页面,在 Account information 中复制数字形式的 Account ID
  3. 进入 Manage License Keys,点击生成新的 License Key,名称可以填写 Afftrix GeoIP
  4. License Key 只会完整显示一次。生成后立即复制并保存到安全位置,不要把完整 key 放进截图、公开文档或工单正文。
  5. 进入 Afftrix 后台 Settings Center > Tracking & GeoIP,开启 GeoIP enabled
  6. GeoIP provider 选择 MaxMind GeoLite2 local database
  7. GeoIP database path 保持 storage/app/geoip/GeoLite2-City.mmdb
  8. 填写 MaxMind Account IDMaxMind License keyGeoIP update mode 选择 automatic 或 manual。
  9. 保持 Verify MaxMind SSL certificate 开启。只有本地开发环境缺少 CA 证书时才临时关闭。
  10. 点击 Update database now,完成后用 8.8.8.8 或真实公网 IP 执行 Test IP lookup

如果自动更新开启,服务器还必须配置 scheduler cron。Afftrix 默认在每日 03:20 触发 geoip:update。服务器防火墙需要允许出站 HTTPS 访问 download.maxmind.com,并允许 MaxMind 下载服务跳转到的文件存储域名。

cd /path/to/afftrix
php -d memory_limit=512M artisan geoip:update --force

方式 B:手动上传 GeoLite2-City.mmdb

如果服务器不能访问 MaxMind,或虚拟主机不能调整内存,可以直接下载 Afftrix 提供的离线数据库,再上传到服务器。

选择下载方式

首次安装优先使用 Afftrix 直接下载;需要最新数据时,可以使用自己的 MaxMind 账号下载。

下载后上传到:storage/app/geoip/GeoLite2-City.mmdb。从 Afftrix 下载的文件不需要解压,也不要修改文件名。

This product includes GeoLite Data created by MaxMind, available from https://www.maxmind.com.

  1. 点击 从 Afftrix 下载数据库,浏览器会直接下载 GeoLite2-City.mmdb
  2. 如果改用 MaxMind 官方下载并得到 .tar.gz 压缩包,先在本地解压,找到里面的 GeoLite2-City.mmdb
  3. 不要把压缩包直接上传成数据库文件;最终文件名必须是 GeoLite2-City.mmdb
  4. 把文件上传到服务器项目目录:storage/app/geoip/GeoLite2-City.mmdb
  5. 确认 storage/app/geoip 不在 public 目录下,不要把 GeoIP 数据库放到 public
  6. 设置目录和文件权限,让 PHP 运行用户可读,后续如果要自动更新还需要可写。
  7. 回到 Tracking & GeoIP,确认 provider 和 database path 正确,然后执行 Test IP lookup
PROJECT_ROOT="/replace/with/afftrix-project-root"
WEB_USER="replace_with_web_user"
WEB_GROUP="replace_with_web_group"

cd "$PROJECT_ROOT"
mkdir -p storage/app/geoip
chown -R "$WEB_USER:$WEB_GROUP" storage/app/geoip
chmod 775 storage/app/geoip
chmod 664 storage/app/geoip/GeoLite2-City.mmdb

手动上传后建议马上用 Test IP lookup 测试多个公网 IP。只测服务器本机内网 IP 没有意义,内网地址通常无法识别国家。

现象常见原因处理方式
提示内存不足PHP-FPM 或 PHP CLI 的 memory_limit 低于 512M提高内存限制,重启 PHP-FPM,再运行 geoip:update --force
401 / 403Account ID 或 License Key 错误,或 key 无权限下载 GeoLite2。重新从 MaxMind 账号复制 Account ID,并生成新的 License Key。
下载超时或 DNS 失败服务器无法访问 MaxMind 下载域名或被主机商阻断。放行出站 HTTPS;受限主机改用手动上传。
Test IP lookup 没有国家数据库文件不存在、路径错误、文件不可读,或该 IP 本身无法精确识别。先检查文件路径和权限,再用多个公网 IP 复测。
国家限制误判GeoIP 未更新、未知国家处理策略过严,或代理出口国家与预期不一致。更新数据库,检查 Unknown country behavior,再跑代理连通性检测。

住宅代理和截图怎么配置

住宅代理用于模拟目标国家访问上游落地页。它会影响 Offer Health、Offer Spy、Traffic Simulator 和截图预览,尤其是只允许美国、英国、德国等特定国家访问的 Offer。

住宅代理字段标注截图
代理配置重点是协议类型、主机端口、账号模板、密码模板、国家覆盖和保存检测按钮。
字段怎么填注意事项
Residential proxy type优先选择 SOCKS5HSOCKS5H 会让代理服务器解析目标域名,减少本机 DNS 泄露和国家误判。
Residential proxy host填写代理网关,例如 gate.example-proxy.com只填 host,不要写 http://socks5:// 或路径。
Residential proxy port填写代理服务商给出的端口,例如 1000端口错误会直接连接失败。
Username template填写账号模板,例如 customer-zone-residential如果服务商用国家参数,可写 region-{country}region-{COUNTRY}
Password template填写密码模板。如果服务商把国家放在密码里,也可以使用 {country}{COUNTRY}
Country proxy overrides一行一个国家,例如 US=socks5h://user:pass@host:port只有某些国家要走不同账号或不同供应商时再填;覆盖规则优先级高于通用模板。
什么时候必须配置代理

Offer 有国家限制、上游会按 IP 国家返回不同页面、Offer Spy 要还原最终落地页、健康检测经常误报打不开时,都建议配置住宅代理。没有 GEO 限制的普通 Offer 可以先不配置。

保存并检测代理

住宅代理连通性检测标注截图
点击保存并检测代理后,系统会读取出口 IP,并检查出口国家是否与输入国家一致。
  1. 先填写代理类型、主机、端口、账号模板和密码。
  2. 在检测框输入目标国家代码,例如 USGBDE
  3. 点击 保存并检测代理,等待系统返回出口 IP、国家和检测服务。
  4. 检测成功后,用同一个国家跑一次 Traffic Simulator,确认不会进入 fallback。
  5. 再用 Offer Spy 或 Offer Health 检查真实上游链接是否能打开。
检测结果说明处理方式
连接成功且国家匹配代理配置可用于该国家的健康检测和预览。保存配置后继续跑 Traffic Simulator / Offer Spy。
连接成功但国家不匹配国家模板没有生效,或代理供应商没有分配到目标国家出口。检查 {country} / {COUNTRY} 位置,必要时使用国家覆盖。
认证失败账号、密码、白名单或套餐权限不正确。重新复制代理凭据,确认服务器 IP 已加入代理服务商白名单。
连接超时服务器无法访问代理网关,或代理服务商网络不稳定。检查防火墙、出站端口、安全组;换国家或换代理节点复测。
DNS / SSL / cURL 错误本机 DNS、证书链或代理协议不匹配。优先尝试 SOCKS5H,并确认 PHP 的 curlopenssl 扩展可用。

上线验收清单

  • Test IP lookup 能识别 8.8.8.8 和真实访客公网 IP。
  • 真实点击记录里的国家不是服务器 IP 国家,也不是 Cloudflare 节点国家。
  • 代理检测返回的出口国家与目标国家一致。
  • 有 GEO 限制的 Offer 在 Traffic Simulator 里不会误进 fallback。
  • Offer Health 能检测上游链接状态,不再因为国家限制误判打不开。
  • Offer Spy 使用目标国家后,最终落地页和手动浏览器测试一致。
  • 截图预览失败时,先检查代理、浏览器路径、服务器出站访问和上游反自动化规则。

Offer marketplace

公开 Offer 与 Top Offers

公开 Offer 市场用于展示可推广的 Offer,Top Offers 用于把更适合招募流量的 Offer 自动或手动放到更显眼的位置。这个功能既影响 Affiliate 招募,也影响品牌展示,所以要同时配置全局设置和单个 Offer 展示字段。

公开 Offer 市场截图
公开 Offer 市场只展示适合公开展示的信息,不应暴露上游原始链接、平台利润、私有来源和风控备注。
入口:Settings Center > Platform / Brand Offer > Public Showcase Top Offers Automation
公开 Offer 与 Top Offers 展示规则标注图
公开 Offer 与 Top Offers 需要控制公开字段、健康度要求、佣金展示范围和推荐规则,避免对外页面暴露非公开信息。

全局设置

设置作用建议
Enable public offer showcase打开公开 Offer 市场页面。平台准备招募 Affiliate 时开启。
Show payout是否对未登录访客展示佣金。竞争激烈行业可展示区间;敏感行业只登录后展示。
Show private teasers是否展示私有 Offer 的引导卡片。适合引导优质 Affiliate 注册申请。
Require healthy links只展示健康检测通过的 Offer。建议开启,避免公开页面出现打不开的 Offer。
Indexable允许搜索引擎索引公开页面。想做 SEO 时开启;私域平台可关闭。
Top Offers mode手动置顶或按表现自动推荐。初期手动,数据稳定后自动。

单个 Offer 展示怎么配

  1. 进入 Offers,打开需要公开展示的 Offer。
  2. 确认 Offer 状态为 active,并且 Tracking URL、价格、国家、设备、Caps 已经通过上线检查。
  3. 在 Public Showcase 区域开启展示,填写公开标题、简介、分类、徽章和排序。
  4. 如果 Offer 不适合公开展示,只保留 Private 或 Requested,不放入公开市场。
  5. 保存后打开公开 Offer 市场,确认展示内容、图片、国家、佣金和申请按钮符合预期。

Top Offers 自动推荐

指标用途建议
Lookback days统计最近多少天表现。初期 7 天,稳定后 14 到 30 天。
Minimum conversions避免低样本 Offer 被误推荐。设置最小转化量,低流量平台可放低。
Require active只推荐启用状态的 Offer。必须开启。
Require healthy只推荐链接健康的 Offer。建议开启。
Manual top人工置顶指定 Offer。用于新活动、品牌合作或商务重点 Offer。

Admin toolkit

后台运营工具指南

这篇文章覆盖后台里容易被忽略但真实存在的运营工具:Migration Assistant、Background Tasks、Media Library、Announcements、Payment Methods、Manager Commissions、Affiliate Application、Sensitive Approvals、Audit Logs 和 Staff Activity。

适合平台管理员和运营团队 后台运营工具 上线前巡检

使用权限和安全说明

这些工具会影响导入、付款、审批、审计和系统运行。建议按岗位分配权限,并在操作前确认账号、数据范围和审批要求。

岗位主要使用内容权限建议
平台管理员完整工具清单、日常巡检、敏感审批、审计日志和系统健康。保留完整权限,但关键操作应开启审计和审批。
运营负责人媒体库、公告、邮件营销、Offer 申请和 Manager 归属。只开放运营相关页面,不开放支付凭据和系统安全设置。
技术支持Background Tasks、Migration Assistant、Audit Logs、Staff Activity、Notification Logs。以查看和排查为主,修改型权限按需临时授权。
财务人员Payment Methods、Manager Commissions、付款记录和对账信息。付款和佣金相关操作需要双人复核或审批。

工具清单

功能入口什么时候用操作要点
Migration AssistantAutomation & Tools从 Affise、Everflow、Offer18、HasOffers/TUNE、CAKE、CSV/XLS 导入旧数据。先预览字段映射,再分批导入,导入后检查数量和状态。
Background TasksAutomation & Tools查看导入、同步、检测、邮件、队列任务进度。失败任务先看错误,再决定重试或修复配置。
Media LibrarySettings / Automation & Tools管理 Logo、Offer 缩略图、公告图、营销图片。上传前隐藏敏感信息,命名清楚,避免混用客户素材。
AnnouncementsMarketing / Announcements 或后台搜索给 Affiliate、Advertiser 或 Manager 显示弹窗/横幅公告。设置受众、开始结束时间、频率和按钮链接。
Payment MethodsFinance / Settings配置 PayPal、USDT、Bank、Payoneer 等付款方式名称、图标和排序。付款前必须让 Affiliate 填写与平台要求一致的资料。
Manager CommissionsFinance查看 Manager 分佣和负责 Affiliate 的利润贡献。要说明统计周期、权限范围和财务复核方式。
Affiliate ApplicationRegistration自定义 Affiliate 申请表、渠道问题、嵌入代码和按钮样式。申请字段要服务审核,不要问无用信息。
Sensitive ApprovalsRisk & Security高风险员工操作进入审批队列。说明谁能提交、谁能审批、审批后如何审计。
Audit Logs / Staff ActivityRisk & Security查看员工、经理和管理员操作记录。排查权限、误操作和业务争议时必须保留证据。

推荐学习顺序

  1. 先讲主流程:安装、账号、Offer、追踪、回传、付款。
  2. 再讲运营增强:通知中心、媒体库、公告、邮件营销、公开 Offer 市场。
  3. 然后讲风控和审计:Profit Guard、Anti-Spy、质量核减、敏感审批、审计日志。
  4. 最后讲运维工具:Migration Assistant、Background Tasks、Launch Health、Performance Monitor。
  5. 每个工具都要对应一个“什么时候用”的场景,避免只看到菜单名但不知道用途。

Data migration

Migration Assistant 迁移助手

Migration Assistant 用于从旧联盟系统、上游网络导出文件或历史 CSV/XLS 数据迁移到 Afftrix。迁移前要先备份、确认字段口径、预览映射,再分批导入并做导入后验收。

入口:Automation & Tools > Migration Assistant 支持 CSV / XLS / 常见联盟系统导出 建议分批导入
Migration Assistant 迁移助手导入与字段映射标注图
迁移助手应先选择来源、上传文件、预览字段映射,再分批导入并检查导入结果和错误行。

什么时候使用

旧系统切换

从 Affise、Everflow、Offer18、HasOffers/TUNE、CAKE 或自建系统迁移历史数据。

历史数据补录

上线前需要导入已有 Affiliate、Advertiser、Offer、转化、付款或素材记录。

上游文件导入

上游网络只能提供 CSV/XLS 文件时,用字段映射把数据转成 Afftrix 结构。

分批校验

数据量大或字段来源复杂时,先导入小批量记录,确认结果后再继续。

迁移前准备

  • 完成数据库和上传文件备份,确认可以回滚。
  • 确认来源系统、导出格式、字符编码、时区、币种和日期格式。
  • 整理字段映射表,尤其是旧 ID、公开 ID、邮箱、状态、价格、国家、回传参数和付款资料。
  • 确认去重键,例如 affiliate email、advertiser email、offer source id、conversion transaction id。
  • 确认数据归属,例如默认 Manager、默认 Advertiser、默认 Offer 状态和默认付款状态。
  • 隐藏文件里的真实密钥、银行卡号、支付账号和敏感个人信息。

操作步骤

  1. 进入 Automation & Tools > Migration Assistant
  2. 选择来源类型,例如旧联盟系统导出、CSV、XLS 或指定平台模板。
  3. 上传文件,并确认编码、分隔符、时区和币种。
  4. 在字段映射页把来源字段对应到 Afftrix 字段,必填字段不能留空。
  5. 点击预览,检查即将创建、更新、跳过和错误的记录数量。
  6. 先导入小批量记录,确认 Affiliate、Advertiser、Offer、转化和付款数据没有错位。
  7. 修正错误行,再继续导入剩余数据。
  8. 导入完成后到 Background Tasks、相关列表页和报表里检查数量、状态、金额和日志。

常见字段映射

数据类型关键字段检查重点
Affiliate旧 Affiliate ID、邮箱、名称、状态、Manager、付款方式。邮箱去重、状态映射、付款资料是否完整。
Advertiser旧 Advertiser ID、名称、邮箱、负责人、状态。广告主归属和公开 ID 不要错位。
Offer旧 Offer ID、广告主、标题、目标 URL、国家、状态、revenue、payout。Tracking URL、价格、状态、国家和上游来源 ID。
Conversiontransaction id、click id、offer id、affiliate id、revenue、payout、status、created at。去重键、时间、币种、状态和付款资格。
Paymentpayment id、affiliate id、金额、币种、状态、付款时间、付款方式。金额和状态要能和报表余额对应。
Creative文件名、Offer ID、类型、尺寸、公开状态。素材归属和公开展示范围。

导入后验收

  • 每类对象的导入数量、跳过数量、错误数量和来源文件记录数能对上。
  • Affiliate、Advertiser、Offer 的公开 ID、旧 ID 和状态映射正确。
  • 核心 Offer 的 Tracking URL、国家、价格、Caps、访问权限和健康度检查正常。
  • 历史转化的 revenue、payout、profit、状态和付款资格与来源系统口径一致。
  • 付款记录、余额和财务报表没有重复或漏记。
  • Background Tasks、Audit Logs 和导入结果页保留完整记录,便于后续追溯。

常见错误和处理

错误常见原因处理方式
Duplicate ID来源文件重复,或旧 ID 已经导入过。确认去重键,选择更新、跳过或重新生成公开 ID。
Missing advertiserOffer 指向的广告主不存在或字段映射错误。先导入广告主,或设置默认广告主并重新预览。
Invalid URL目标 URL 缺少协议、包含空格或宏参数不完整。清洗 URL,导入后用 Offer Health 检查核心 Offer。
Unsupported currency来源文件币种未在平台启用。先到 Finance / Settings 配置币种,再重新预览。
Timezone mismatch来源系统时区和 Afftrix 平台时区不同。在导入设置里指定来源时区,导入后抽查转化时间。
Payout not match来源系统记录的是历史 payout,当前 Offer 已使用新价格。确认是否保留历史价格,必要时使用 conversion-level payout。

Growth

邮件营销

邮件营销用于向 Affiliate、Advertiser 或自定义分组发送活动通知、Offer 推荐、佣金调整、结算提醒和系统公告。它需要先配置 SMTP、邮件模板和收件人分组,再创建 Email Campaign。

入口:Growth & Support > Marketing Email Campaigns / Groups / Templates 依赖 SMTP
邮件营销活动配置、预览和发送队列标注图
邮件营销要先验证 SMTP,再配置模板、分组、预览和发送队列;失败记录应能定位到 SMTP、收件人或模板变量。

先区分两类邮件

类型入口用途
系统邮箱通知注册确认、申请提醒、密码重置、付款通知、系统异常和角色事件通知。
邮件营销Email Campaigns / Groups / Templates批量发送 Offer 推荐、活动公告、佣金调整、运营消息和客户分组触达。

如果是“收不到注册、密码重置、付款或系统提醒”,先看 Mail & SMTP、Notification Center 和 Notification Logs。如果是“批量活动邮件没有发送”,再看 Email Campaign 的分组、模板、队列和发送记录。

操作步骤

  1. 先到 Mail & SMTP 配置发件人、SMTP host、端口、加密方式、用户名和密码,并发送验证邮件。
  2. Email Templates 维护常用模板,确认变量、退订说明和品牌信息正确。
  3. Email Groups 建立收件人分组,例如高质量 Affiliate、新注册广告主、某个 Manager 负责的客户。
  4. 创建 Email Campaign,选择模板、分组、发送时间和追踪设置。
  5. 发送前预览一封验证邮件,确认链接、变量、落款和退订入口都正确。
  6. 发送后查看队列、发送失败、打开和点击记录;失败较多时先检查 SMTP 和退信原因。

常见用途

推广新 Offer

向符合国家和品类的 Affiliate 推荐新活动。

佣金调整

通知 payout、cap、活动时间或规则变化。

结算提醒

提醒补全付款资料、确认发票或查看付款状态。

系统通知

发送维护公告、政策更新和重要功能变化。

Operations health

系统健康与性能监控

系统健康与性能监控用于确认平台能稳定运行:队列、Redis、Cron、邮件、存储、Tracking、failed jobs、慢页面、慢查询和后台任务都应该有明确状态。

Launch Health Performance Monitor Background Tasks

上线前检查

  1. 进入 Launch Health,检查 Redis、队列、scheduler、cron、storage、mail、tracking 和 failed jobs。
  2. 所有 blocker 级别问题必须先处理,再开放真实投放。
  3. 跑一条验证点击和验证转化,确认 Tracking、Postback、Conversion、Report 都能闭环。
  4. 检查 Notification Logs 和 Background Tasks,确认任务没有连续失败。

日常巡检

后台首页截图
后台首页用于快速查看平台整体状态;遇到性能或任务异常时,再进入 Launch Health、Performance Monitor 和 Background Tasks 深入排查。
  • 每天检查 failed jobs、邮件失败、Postback 失败和队列堆积。
  • 数据量增加后定期查看 Performance Monitor,关注慢页面和慢 SQL。
  • 大版本升级后重新跑 Launch Health 和关键业务闭环。
  • 性能问题不要只看服务器 CPU,还要看报表范围、索引、队列和缓存命中。

Finance control

财务对账增强

财务对账增强覆盖 Balance Check、Payments、Batch Send、Reconciliation、退款、paid 状态和外部支付记录。它的目标是让付款金额、系统余额、外部流水和报表口径能互相校验。

Balance Check Reconciliation Payments / Batch Send
财务对账付款批次和外部流水标注图
财务对账应先校验 approved unpaid 余额,排除高风险金额,付款后导入外部流水并逐项处理差异。

付款前流程

  1. 先在 Performance Report 或 Conversions 中确认统计周期和 approved 转化范围。
  2. 运行 Balance Check,确认 Affiliate 可付款余额、held、rejected、refunded 和 paid 状态。
  3. 检查 Profit Guard、Fraud Logs 和 Review Queue,高风险记录不进入付款。
  4. 生成 Payments 或 Batch Send,确认付款方式、币种、最低付款金额和外部交易号字段。
  5. 付款后导入银行或支付服务商文件到 Reconciliation,核对系统记录和外部流水。
  6. 差异项要形成处理记录:补付、冲减、退款、重新标记 paid 或提交人工审核。

验收标准

  • 付款批次金额等于 approved 且 unpaid 的可付款转化金额。
  • held、blocked、rejected、refunded 不会被提前付款。
  • 外部交易号、付款时间、付款方式和系统状态一致。
  • Reconciliation 的差异能定位到具体 Affiliate、Payment、Conversion 或退款记录。

Operations assistant

Action Center 运营助手

Action Center 是后台右下角的运营提醒入口。它不是聊天窗口,而是把待处理任务、失败回传、风险提醒和系统异常集中显示,方便管理员每天快速处理。

适合平台管理员 日常运营 可在后台关闭

什么时候会看到提醒

提醒类型代表什么建议处理方式
Offer 申请联盟用户申请推广需要审核的 Offer。进入申请列表,批准、拒绝或补充说明。
失败回传广告主 Postback、Connector 或 API 请求失败。打开对应日志,查看错误码和缺失字段。
风险提醒Profit Guard、Anti-Spy、Offer Health 发现异常。先确认是否误报,再决定暂停、忽略或继续观察。
付款提醒有待付款、付款失败或对账差异。进入付款或对账页面,核对金额和状态。
系统提醒队列、Cron、邮件、缓存或后台任务异常。进入系统健康或后台任务页面处理。

日常处理流程

  1. 进入后台后先看右下角悬浮按钮是否有数量。
  2. 点击悬浮按钮,查看任务列表和每条提醒的来源。
  3. 能马上处理的任务,直接点击进入对应页面处理。
  4. 确认不需要处理的提醒,可以选择忽略。
  5. 如果同类提醒很多,使用一键处理或批量忽略,避免数字长期停留。
  6. 处理后刷新页面,确认悬浮数量已经下降。

如何关闭或隐藏

如果客户不想显示右下角悬浮入口,可以在后台设置里关闭。关闭后不代表提醒功能不存在,只是前台不再显示悬浮按钮。

后台入口

进入 Settings Center → Platform / Brand,找到 Action Center 或 Floating Assistant 显示设置,关闭后保存。

相关文档

Collection

安装部署总览

本集合用于选择正确安装路径,再把 Afftrix 从服务器环境部署到可投放状态。建议先看总览和通用流程,再按自己的服务器或主机面板进入对应教程。

适合部署人员和平台管理员 12 篇核心文章

推荐路径

首次部署

先判断部署环境,再完成域名、服务器环境、安装向导和基础配置。

按环境安装

使用 aaPanel、宝塔、cPanel、Plesk 或 DirectAdmin 时,按面板入口完成 PHP、站点目录、数据库、Cron 和队列。

上线验收

安装和授权完成后,再按上线流程、Offer 验证和生产检查清单确认业务闭环。

本集合文章

Collection

平台与权限总览

本集合面向平台管理员,覆盖后台日常运营、品牌设置、注册审核、员工账号、角色权限和基础治理。

适合平台管理员 10 篇核心文章

管理员学习路径

先理解后台结构

熟悉 Dashboard、Offers、Affiliates、Advertisers、Reports、Payments 和 Settings。

查完整栏目

按后台左侧分组查看每个栏目用途、常用操作、上线前设置和排查入口。

看栏目索引

按后台模块查看相关教程、关键页面、常见检查和排查场景。

建立日常运营节奏

按每日巡检、每周复盘、每月结算和事故处理 SOP 管理平台。

再配置品牌和注册

完成 Logo、登录页、注册审核、邮件和公开页面,让客户看到统一品牌。

最后分配权限

按运营、财务、AM、技术支持拆分员工权限,避免所有人共用超级管理员。

初始化团队账号

按 Staff Role、Employee、Manager、Advertiser、Affiliate 的顺序建立团队和业务账号。

上线前必须确认

  • 平台名称、Logo、Favicon、登录背景、支持邮箱已经配置。
  • Affiliate 和 Advertiser 注册规则符合业务审核流程。
  • 财务、员工、权限和 API 页面没有给无关角色开放。

Admin Reference

后台栏目完整索引

本页按 Afftrix 后台实际菜单分组说明每个栏目做什么、常用操作在哪里、保存后如何验证。适合平台管理员、运营、AM、财务和技术支持查阅。

后台栏目索引 常用操作和检查点 适合管理员和运营查阅

怎么使用这个索引

当你不确定某个功能属于哪个后台模块时,先从这里确认入口、关联教程、常见检查点和排查方向。找到对应模块后,再进入详细文章完成配置或验证。

入口定位

通过后台模块名称快速找到对应文章和菜单位置。

常用操作

确认这个模块最常用的创建、配置、审核、导入或排查动作。

验证结果

知道保存后应该到哪个页面查看状态、日志、报表或提示。

排查方向

遇到异常时先看对应日志、状态、权限、域名或回传记录。

后台模块速览

下面按日常使用频率列出重点模块。先完成核心业务闭环,再进入高级运营、风控、运维和增长工具。

核心业务 Offer 创建、Tracking、基础权限、付款流程

先确认账号、Offer、点击、回传、佣金和付款能完整闭环。

链接排查 Offer Health、Offer Spy、Tracking Domains、Postback Debugger

用于定位 Broken、SSL、DNS、错误响应、代理国家和回传失败。

质量和权限 Offer Access、质量核减、Open API、邮件营销

用于控制推广权限、保护转化质量、管理接口权限和通知触达。

规模运营 Smartlink、Offer Source、Supply Map、Launch Health

用于扩大 Offer 供应、自动分发流量、监控上线健康和系统性能。

阅读对象和使用场景

后台索引按读者和任务场景拆分。基础使用侧重操作流程和验证方法;平台管理、上线实施、风控财务和开发对接则分别覆盖权限、上线、质量、审计、API 和排查细节。

场景主要内容注意事项推荐入口
基础使用手册安装部署、Offer 创建、Tracking、Postback、公开 Offer、Connector、付款资料、常见故障。不要展示真实密钥、数据库主键、利润阈值、质量复核策略和异常访问保护规则。
平台管理员培训后台完整菜单、员工权限、品牌注册、系统设置、通知中心、公开 ID、开放 API、日常 SOP。开发调试凭证、服务器密码和第三方服务真实 token。
上线实施和技术支持后台栏目索引、迁移助手、后台任务、性能监控、审计日志、敏感审批。不要展示未隐藏敏感信息的业务数据、生产密钥和支付流水原图。
风控和财务管理Profit Guard、Anti-Spy、质量核减、无转化点击自动保护、对账差异和付款复核。规则阈值、命中逻辑和付款复核记录只在授权岗位内查看。

后台栏目索引

后台模块相关教程关键页面 / 能力常见检查排查场景
Dashboard / 通用入口Dashboard、顶部搜索、通知、Action Center。确认通知数量、待办事项和常用入口是否正常显示。顶部搜索、通知提醒、Action Center 处理路径。
安装、授权、上线健康安装向导、授权激活、环境检测、队列 / Cron 运行状态。确认 License、环境检测、队列、Cron 和缓存状态正常。授权失败、环境检测失败、队列 / Cron 异常。
Platform / Brand / 注册设置品牌设置、后台路径、公开 ID、Action Center 开关和注册审核流程。确认公开 ID、后台路径、注册开关和审核策略符合业务设置。公开 ID 起始值、Action Center 开关、注册审核流程。
Employees / Staff Roles / 权限员工、角色、创建角色和验证员工登录后的菜单差异。按岗位登录后确认菜单、按钮和敏感操作权限边界。按岗位登录后菜单、按钮和权限边界符合预期。
Offer 创建与配置创建、tracking、pricing、targeting、状态切换和公开市场展示。确认 Offer 状态、可见性、申请规则、链接和价格规则正确。Offer 状态切换、公开市场显示、申请制 Offer 审核。
Offer Health / Offer Spy列表、检测结果、跳转链路、最终 URL、Broken / Warning / SSL / 代理失败。先看健康状态,再用跳转链路定位失败发生在哪一步。Broken 详情、国家代理失败、上游 SSL 失败。
Smartlink / Offer Source / Supply Map创建 Smartlink、Offer pool、字段映射、同步结果和供应地图覆盖视图。确认 Offer pool、权重、fallback、导入映射和同步结果。Smartlink 创建、Offer pool、导入映射、同步失败、Supply Map 覆盖视图。
Affiliate / Advertiser / Manager创建 Affiliate、Advertiser、Manager,以及用户端申请 Offer、复制链接、查看转化。确认账号状态、经理归属、申请审核、Postback 和付款资料。用户端申请 Offer、复制链接、广告主查看转化。
Tracking Domains / GeoIP / 代理Tracking Settings、代理设置、代理验证、Tracking Domains 创建和 SSL 状态。确认 DNS、SSL、默认域名、代理连通性和追踪参数不丢失。创建表单、DNS 校验失败、SSL 未生效、默认域名切换。
Postback / Pixel / APIPostback Debugger、API Key、错误响应、Advertiser API 权限和隐藏敏感字段后的日志。确认 CID、secret、order_id、API Key 权限和错误响应含义。Postback Logs 失败、API 401 / 422、Advertiser API 数据隔离。
Reports / Logs / Finance报表、批量付款、Reconciliation 导入、差异处理和 Balance Check。确认转化状态、可付款余额、批量付款、退款冲减和对账差异。Reconciliation 导入、差异处理、Balance Check、退款 / 扣回流程。
Profit Guard / Anti-Spy / FraudShadow mode、规则、命中日志、误报处理、allow / block list 和 review queue。确认风险规则、命中原因、误报处理和恢复方式。命中日志、误报处理、allow / block list、review queue。
Automation / System Health / PerformanceLaunch Health、failed jobs、Performance Monitor、队列失败和慢页面定位。确认任务队列、Cron、缓存、备份、升级和性能指标。上线健康检查结果、队列失败、慢页面、Cron 异常。
Growth / Email / Media / TicketsEmail Campaign、模板预览、发送日志、Ticket 回复和关闭流程。确认邮件模板、发送队列、公开 Offer 展示和工单处理状态。邮件创建、模板预览、发送失败、Ticket 回复和关闭流程。

后台通用区域

Afftrix 后台首页和通用操作区域
顶部搜索、日期筛选、通知、右下角 Action Center 和左侧菜单是后台最常用的操作区域。
区域用途运营建议
左侧菜单进入 Operations、Tracking、Finance、Protection、Automation、Growth & Support、Settings 等后台模块。员工账号只显示有权限的菜单;不属于该岗位的模块不应开放。
顶部搜索搜索设置、工具、页面和常用功能。客户不知道入口时,先让他搜索功能关键词,例如 SMTP、Postback、Tracking。
顶部日期筛选控制 Dashboard、Reports、Clicks、Conversions 等页面默认时间范围。首页默认看当天数据;需要月报、周报时再切换时间。
顶部通知显示待处理工单、风控、系统健康、付款和运行提醒。建议每天第一次登录先查看通知,再进入具体模块处理。
Action Center右下角运营助手,集中显示待办、提醒和高优先级事项。可在 Platform / Brand 中设置显示或隐藏,避免客户不需要时影响操作。
语言切换切换后台界面语言。上线前确认中文、英文等目标语言没有问号或未翻译文案。

Operations:Offer 和合作方

Operations 是日常运营最常使用的区域,主要处理 Offer、Affiliate、Advertiser、Manager、员工和 AM 工作台。

Afftrix Offer 列表
Offer 列表用于管理推广项目、状态、公开 ID、广告主归属和健康状态。
栏目主要用途常用设置和注意事项
Offers / Offer List创建、编辑、暂停、归档 Offer,查看公开 ID、状态、广告主、佣金、访问规则和健康状态。创建前先准备广告主、落地页、revenue、payout、国家、设备和访问权限。
Smartlinks创建智能链接,把多个 Offer 放入同一流量池并按规则分发。适合大量 Offer 或不想让 Affiliate 手动选择单个 Offer 的场景。
Access Requests审核 Affiliate 对私有或申请制 Offer 的访问请求。上线后建议每天处理,避免 Affiliate 申请后长时间无人审批。
Offer API Automation配置上游 Offer Source、导入任务、字段映射和自动同步。适合上游网络或大量 Offer 批量导入;导入前先配置分类、广告主和默认价格策略。
Offer Health检查 Offer 链接健康、异常跳转、HTTP 状态和落地页可用性。公开市场或大流量 Offer 建议定期检查,避免 Affiliate 推坏链接。
Offer Spy分析 Offer 跳转链路、GEO 行为、中间 broker 和最终落地页。落地页打不开、CID 丢失、上游重定向异常或 Offer Health 显示 Broken 时使用。
Categories维护 Offer 分类,例如电商、金融、游戏、SaaS。分类会影响后台筛选、公开 Offer 市场和 Affiliate 查找体验。
Supply Map查看 Offer 供应关系、广告主、来源和同步状态。适合排查某个 Offer 是手动创建、导入还是上游同步。
Offer Sources维护上游源、API 配置、导入运行记录和导入明细。上游接口变更时,先在这里检查导入失败原因。
Affiliates管理联盟用户、审核状态、经理归属、付款资料、Postback、质量分和代登录。显示 Affiliate ID 时使用公开 ID;不要把系统数据库主键当作沟通编号。
Advertisers管理广告主、广告主后台账号、Offer 归属、账单、Postback 和 Connector。广告主安装 WooCommerce Connector 前,先确认广告主资料和默认 Offer 已创建。
Managers管理 AM / Manager,分配客户、查看业绩和佣金归属。如果团队需要按经理核算利润或佣金,必须先建立 Manager。
Employees创建后台工作人员账号,绑定 Staff Role,控制登录和操作权限。财务、运营、客服、技术应使用不同角色,不建议共用超级管理员。
Staff Roles维护员工角色和权限模板。先创建角色,再创建员工;保存后用验证员工登录检查菜单是否正确。
AM WorkspaceAM 运营工作台,集中处理客户、提醒、任务和待跟进事项。适合日常客户经理使用,也会影响 Action Center 的运营提醒。

Tracking 和 Reports:追踪、转化和报表

栏目主要用途排查时先看什么
Clicks查看点击明细、CID、Affiliate、Offer、国家、设备、referrer、sub id 和跳转结果。转化漏单时先确认是否有 Click 和 CID。
Conversions查看转化明细、订单号、状态、revenue、payout、profit、归因和证据。确认 CID、Order ID、状态和价格规则是否正确。
Postback Logs查看广告主或店铺回传请求、响应、错误原因和解析结果。广告主说已回传但没有转化时,先看这里是否收到请求。
Postback Debugger生成验证回传、重放、检查参数映射和状态处理。正式上线前用验证 CID 跑一条完整转化。
Postback URL Tester验证指定 Postback URL 是否可访问、是否带必要参数。适合广告主技术对接或客服远程排查。
Tracking Domains维护点击域名、Smartlink 域名、Postback 域名和状态。链接打不开时检查域名 DNS、HTTPS、类型和状态。
Traffic Simulator模拟点击、地理位置、设备和跳转,生成排查证据。目标国家、设备限制和 Anti-Spy 拦截问题可用它验证。
Performance Report按日期、Affiliate、Offer、Advertiser、国家、设备等维度分析表现。默认用当天或近 7 天,数据量大时缩小范围再导出。

Finance:付款、对账和经理佣金

Afftrix 批量付款页面
批量付款页面用于根据 approved unpaid 转化生成付款批次。
栏目主要用途操作前确认
Paid List查看付款记录、付款项目、状态、发票和导出。付款后用于对账和给 Affiliate 查看历史记录。
Send Payment给单个 Affiliate 生成付款。确认最低付款金额、付款方式、币种和可付款转化。
Batch Send按周期批量生成付款批次。建议先预览,再生成正式批次,避免重复付款。
Balance Check核对 Affiliate 可付款余额、hold、blocked、rejected 和 paid 状态。付款金额不对时先跑余额检查。
Reconciliation导入支付服务商或银行文件,与系统付款记录对账。导入前确认字段映射和币种。
Manager Commissions按 Manager / AM 统计管理客户带来的收益或佣金。需要先建立 Manager 归属关系和佣金规则。
Payment Methods维护平台支持的收款方式和字段,例如 PayPal、Wire、Crypto。上线前确认 Affiliate 必填字段和发票展示文案。

Protection:利润、反作弊和安全流量

栏目主要用途建议
Profit Guard / Rules & Settings设置利润保护阈值、亏损检测、payout 异常和自动暂停策略。新平台可先用提醒模式,确认规则准确后再启用自动处理。
Profit Alerts查看负利润、高 payout、低 margin 和异常收入提醒。财务或运营每天巡检,确认是否需要暂停 Offer。
Review Queue处理需要人工审核的利润或风险事件。审核结果会影响转化状态、付款资格和自动化处理。
Anti-Spy / Protection Settings配置异常访问保护、shadow mode、可疑 UA、可疑 referrer、数据中心流量和 fallback。第一次上线建议先用 shadow mode 观察,不要立刻强拦截。
Anti-Spy Logs查看拦截、观察和命中规则记录。正常客户被误拦截时从日志里调整规则。
Anti-Spy Rules维护具体反作弊规则和阈值。规则要结合行业,不要把通用浏览器 UA 加入高风险。
Allow / Block Lists维护 IP、域名、Affiliate、Offer 等允许或阻止列表。高价值客户误伤时用 allow list,恶意来源用 block list。
Fraud Rules维护转化欺诈检测规则。和转化状态、付款资格、风控审核联动。
Fraud Logs查看欺诈事件和命中原因。付款前重点检查高风险 Affiliate 和异常 Offer。

Automation:自动化、健康和性能

栏目主要用途上线要求
Automation Rules配置自动化规则,例如风险提醒、访问阻止、运营通知和状态处理。先写清触发条件和结果,再开启自动执行。
Automation Logs查看自动化执行记录、命中条件和结果。客户反馈系统自动改状态时,先查日志。
Incident Center集中显示系统、利润、流量、付款和运营异常。与 Action Center 联动,是日常巡检入口。
Background Tasks查看导入、同步、邮件、检查、回调等后台任务。队列阻塞或导入很慢时先看任务状态。
Migration Assistant导入旧系统数据、映射旧 ID、验证迁移结果。迁移前先备份数据库,导入后做抽样核对。
Launch Health检查安装、队列、Cron、缓存、邮件和系统健康。生产上线前必须完成巡检。
Notification Logs查看站内、邮件、Telegram、Webhook 通知发送记录。客户收不到邮件或 webhook 时先查这里。
Performance Monitor查看慢页面、慢查询、请求耗时和后台性能趋势。数据量增加后定期检查,必要时优化索引和报表范围。

Growth & Support:营销、素材和工单

栏目主要用途常见使用场景
Email Campaigns创建邮件营销活动,发送给 Affiliate、Advertiser 或分组用户。推广新 Offer、通知佣金调整、提醒结算周期。
Email Groups维护邮件收件人分组。按国家、经理、活跃程度或业务类型分组。
Email Templates维护邮件模板、变量和 HTML 内容。统一品牌风格,避免每次活动手动写模板。
Media Library管理 Logo、Offer 缩略图、素材、登录背景和营销图片。Platform / Brand、Offer Creatives、公开市场都会用到。
Tickets处理 Affiliate 工单、回复、关闭和重新打开。付款问题、Offer 申请、Postback 排查都建议走工单沉淀记录。

Settings Center:系统设置

Afftrix Platform / Brand 设置
Platform / Brand 是首日配置重点,包含品牌、后台路径、Action Center、公开 ID 和公开 Offer 市场。
自定义后台登录路径设置位置
后台路径可在 Platform / Brand 修改;保存后请使用新路径进入管理后台。
设置页配置内容上线前检查
Platform / Brand平台名称、Logo、Favicon、支持邮箱、公开 URL、后台路径、登录背景、Action Center、公开 ID 起始值、公开 Offer 市场。正式上线前必须完成,尤其是域名、Logo、邮箱、后台路径和公开 ID 起始值。
Media Library上传和管理图片素材。检查 Logo、Favicon、Offer 图、登录背景是否清晰。
Registration SettingsAffiliate 和 Advertiser 注册开关、审核策略、默认经理和注册提示。决定是否开放公开注册,以及是否需要人工审核。
Affiliate Application自定义联盟注册字段、嵌入表单、颜色、宽高、语言和复制代码。如果客户要在官网嵌入申请表,必须验证提交和后台审核。
Terms Settings注册条款标题、内容、是否必须同意。上线前由业务方确认法律条款。
Mail & SMTPSMTP、发件人、密码重置、验证邮件。必须发送验证邮件成功。
Notification Center站内、邮件、Telegram、Webhook 通知开关和验证。至少配置管理员关键通知。
Payment Settings币种、最低付款金额、发票信息、付款说明和付款方式。付款前必须完成。
Tracking & GeoIPGeoIP、追踪默认值、跳转保护、健康检查、截图和代理检测。投放前确认 GeoIP 和追踪域名可用。
IntegrationsStorefront Connector、WordPress 插件下载、Integration API 说明和 Connector Key。电商客户对接前先生成专属 Connector。
Performance / Cache文件缓存、Redis、队列连接、性能验证和后台任务命令。生产环境建议 Redis 缓存和 Redis 队列。
Security & Audit2FA、审计日志、敏感操作审批、登录安全和高级设置访问。超级管理员、财务和技术账号建议启用 2FA。
Advanced Settings底层系统键值,通常只在专用设置页无法处理时使用。仅限高级管理员,普通用户不要直接修改。

公开 ID 起始值

公开 ID 用于避免新平台从 1 开始暴露 Affiliate、Advertiser 和 Offer 数量。它是平台用户、Affiliate、广告主、API、追踪链接和报表里看到的业务编号,系统数据库主键仍由系统自己维护。

字段默认值影响范围填写建议
Affiliate ID start18001新建 Affiliate 的公开 ID、tracking link 的 a / aff_id、报表和 API 返回。上线前设置,建议使用五位或更高编号。
Advertiser ID start28001新建 Advertiser 的公开 ID、Connector、广告主 API、报表和发票归属。上线前设置,避免客户看到广告主从 1 开始。
Offer ID start88001新建 Offer 的公开 ID、tracking link 的 o / offer_id、公开 Offer 市场、API 和报表。创建正式 Offer 前设置;已经存在更大编号时会继续递增。
  • 设置入口:Settings Center > Platform / Brand > Public IDs
  • 生成规则:新记录使用“设置起始值”或“当前最大公开 ID + 1”中更大的那个。
  • 已有记录不会被重新编号,避免历史 tracking link、postback、报表和客户沟通编号失效。
  • 迁移旧系统数据时,已有旧 ID 会保留,后续新数据从当前最大值继续增加。
  • 如果发现新建 Offer 没有从设置值开始,通常是因为系统里已经存在更大的公开 Offer ID。

推荐检查顺序

  1. 先在 Dashboard 确认顶部搜索、日期范围、通知和 Action Center 是否正常。
  2. 再到 Operations 完成 Advertiser、Affiliate、Offer 和员工账号配置。
  3. 接着在 Tracking 跑通 Click、CID、Postback 和 Conversion。
  4. 然后到 Finance 确认 approved 转化如何进入付款、批量付款和对账。
  5. 最后检查 Protection、Automation、Settings,确认日常巡检项和上线排查项都已配置。

Collection

Offer 管理总览

Offer 是 Afftrix 的业务核心。本集合把创建、访问控制、追踪 URL、佣金、定向、素材和上线验证拆成独立文章,便于运营和技术分别阅读。

适合运营、AM 和技术对接 10 篇文章

创建一个可上线 Offer 的顺序

常见任务

Collection

联盟用户总览

本集合帮助 Affiliate 理解如何注册、申请 Offer、生成推广链接、查看报表和配置自己的 Postback。

适合 Affiliate 和客服查阅 3 篇文章

Affiliate 操作路径

推广前

完成账号资料、付款信息、Offer 申请和流量渠道确认。

完整投放流程

从注册、申请 Offer、复制链接、Sub ID、报表到付款逐步操作。

技术回调

需要把转化同步到 Affiliate 自己系统时,配置 Affiliate Postback。

Collection

广告主总览

本集合面向广告主、店铺 owner 和广告主技术人员,覆盖广告主后台、S2S 回传、WooCommerce Connector 和订单归因。

适合广告主和技术对接 4 篇文章

按接入方式阅读

广告主后台

查看 Offer、转化、账单和基础对账信息。

完整接入流程

从广告主账号、Offer、Tracking URL、回传方式到对账完整说明。

S2S 回传

广告主服务器保存 CID 后,通过 Postback URL 回传转化。

WooCommerce 店铺

广告主安装插件后同步订单、退款、优惠码和商品数据。

Collection

追踪与集成总览

本集合解释 Afftrix 如何记录点击、生成 CID、跳转广告主页面、接收转化回传,并通过 API 与外部系统交换数据。

适合开发者和技术支持 10 篇核心文章

从点击到转化

Affiliate link Click CID Landing page Postback / Pixel / Connector Conversion

选择阅读入口

Collection

报表与财务总览

本集合覆盖运营报表、转化状态、付款对账和发票。风险检查请到“功能使用”栏目查看 Profit Guard、Anti-Spy 与自动化。

适合运营和财务 3 篇核心文章

日常运营路径

看数据

通过报表和日志确认点击、转化、状态、收入和佣金。

跑结算

从 approved unpaid 转化、付款批次、退款冲减到发票凭证完整处理。

付佣金

根据 approved unpaid 转化生成付款批次,完成对账和发票。

Collection

支持与排查总览

本集合用于客服、实施和技术支持定位问题。建议先从故障矩阵找到症状,再进入字段字典、术语表和具体排查文章。

适合支持和技术排查 8 篇文章

推荐处理顺序

Getting Started

快速开始

第一次部署 Afftrix 时,先完成基础设置,然后跑通一条从点击到转化的闭环。

适合平台管理员 完整上线流程

核心入口

入口路径用途
安装向导/install初始化环境、数据库和管理员账号
管理后台/admin(默认,可自定义)平台运营、Offer、会员、广告主、付款和设置。若已修改后台路径,请使用实际路径。
联盟用户中心/affiliateAffiliate 登录、申请 Offer、查看报表
广告主中心/advertiserAdvertiser 登录、Offer、转化审核和账单
公开 Offer 市场/offers公开展示可推广 Offer
后台路径不是固定写死的

管理后台默认是 /admin,可以在 Settings Center → Platform / Brand → 管理面板路径 修改。保存后请使用新路径登录,例如 /afftrix-secure,不要再把 /admin 当成固定入口。

从空白服务器到第一条转化

如果客户是第一次部署 Afftrix,可以按下面顺序操作。这个顺序覆盖了域名、安装、品牌、用户、Offer、追踪、回传和付款检查。

阶段操作完成标准
1. 域名解析主域名和追踪域名到服务器。域名能访问服务器,HTTPS 证书正常。
2. 服务器配置 PHP 8.3+、必装 PHP 扩展、数据库、目录权限、队列和 Cron。fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmath 已启用;普通目录 755、普通文件 644storagebootstrap/cache 可写。
3. 安装打开 /install,填写 APP URL、数据库和管理员账号。安装完成并生成安装锁。
4. 授权填写授权码并确认授权中心地址。后台模块可以正常进入,授权状态正常。
5. 品牌设置平台名称、Logo、Favicon、登录背景、支持邮箱。后台、用户中心、广告主中心显示客户品牌。
6. 用户创建验证用 Advertiser、Affiliate 和必要员工账号。三类账号都能登录各自入口。
7. Offer创建验证用 Offer,设置落地页、revenue、payout、国家和访问权限。Offer 可以生成 tracking link。
8. 转化打开 tracking link,触发 S2S、Pixel 或 Connector 回传。Clicks 和 Conversions 都有记录,佣金计算正确。
9. 财务检查付款设置、最低付款金额、付款方式和报表。approved 转化可以进入付款流程。

上线前第一天配置

1设置品牌和公开 ID

进入 Settings Center,配置平台名称、Logo、Favicon、支持邮箱、公开站点地址,以及 Affiliate、Advertiser、Offer 的公开 ID 起始值。

2配置注册规则

决定 Affiliate 和 Advertiser 是否允许注册,以及是否需要人工审核。

3配置 SMTP

验证注册、密码重置、付款和系统通知邮件。

4创建第一个 Offer

创建广告主、联盟用户和 Offer,并设置 revenue、payout、落地页和访问规则。

5验证追踪闭环

复制 tracking link,模拟点击,再用 Postback、Pixel 或 Connector 回传转化。

商用实施阅读顺序

阶段先看哪篇要完成什么
1. 部署通用安装流程域名解析、服务器检查、数据库、管理员、队列和计划任务。
2. 品牌平台设置中心平台名称、Logo、登录背景、公开 URL、支持邮箱。
3. 团队用户、角色与权限创建 Staff Role、Employee,限制财务和运营权限。
4. 业务Offer 创建与字段创建广告主、Offer、佣金、目标国家、访问权限和素材。
5. 追踪追踪链接与转化回传验证 tracking link、CID、postback、pixel、connector。
6. 财务付款、对账与发票确认 approved 转化、付款方式、批量付款和对账。
7. 运营Profit Guard、Anti-Spy 与自动化开启利润和流量质量监控,建立告警规则。

安装向导示例

Afftrix 安装向导欢迎页
Welcome:选择语言并开始安装。
Afftrix 安装向导环境检查
Environment Check:检查 PHP、扩展、目录权限、数据库驱动、队列和 Cron。
Afftrix 安装向导核心配置
Configuration:填写公开 URL、后台路径、时区、货币和缓存/队列存储方式。

验证闭环清单

  • 管理员可以登录后台。
  • 联盟用户可以注册、登录、申请 Offer。
  • 广告主可以注册、登录、查看 Offer 和转化。
  • Tracking link 可以跳转,并且 Clicks 有记录。
  • Postback 或 Connector 可以创建 Conversion。
  • revenue、payout、profit 计算正确。
  • 付款、邮件和 API Token 流程正常。

正式上线资料清单

  • 后台地址、Affiliate 登录地址、Advertiser 登录地址。
  • 超级管理员账号,以及建议客户安装后立即修改密码和启用 2FA。
  • 主域名、追踪域名、公开 Offer 市场地址、文档地址。
  • SMTP 验证结果、队列 worker 状态、Cron 状态。
  • 验证用 Advertiser、验证用 Affiliate、验证用 Offer 和验证 tracking link。
  • 一条成功 Click、一条成功 Conversion、一条成功 Postback 日志截图或记录。
  • 付款设置、最低付款金额、支持的付款方式和财务联系人。

Launch Playbook

完整上线流程

本教程面向已完成基础安装的客户、部署人员和平台管理员,目标是完成后台配置、品牌设置、账号创建、Offer 配置到第一条 Affiliate 转化的完整闭环。

适合首次上线 带截图流程

上线目标

完成本教程后,平台应达到以下状态:管理员可以登录后台,品牌和邮件可用,广告主和联盟用户已创建,Offer 已配置,tracking link 可以产生点击,Postback / Pixel / Connector 能创建转化,佣金和付款数据可以核对。

域名解析 服务器环境 安装向导 后台初始化 品牌设置 创建用户 创建 Offer 追踪验证 付款核对

上线前资料清单

资料示例用途
主站域名https://affiliate.example.com后台、用户中心、广告主中心和公开页面。
追踪域名https://link.example.comAffiliate tracking link、点击记录和跳转。
服务器信息IP、SSH、PHP、数据库、Redis。部署程序、配置环境和排查性能。
数据库信息database、username、password、host。安装向导写入连接配置。
邮件服务SMTP host、port、username、password。注册、密码重置、付款、通知邮件。
品牌素材Logo、Favicon、登录背景、支持邮箱。让后台和用户端显示客户品牌。
首个业务样例广告主、Affiliate、Offer、落地页、佣金。上线前跑通第一条业务闭环。

第 1 步:域名解析和服务器准备

安装向导环境检查真实截图
正式部署建议先完成域名、HTTPS、数据库、缓存、队列和 Cron,再进入安装向导。
  1. 把主站域名解析到服务器公网 IP,例如 affiliate.example.com
  2. 把追踪域名解析到同一台服务器或专门的追踪入口,例如 link.example.com
  3. Web 站点根目录必须指向程序的 public 目录。
  4. 为主站域名和追踪域名配置 HTTPS 证书。
  5. 确认 PHP 版本、必装 PHP 扩展、数据库、目录权限、队列和定时任务满足安装要求。必装扩展包括 fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmathredisexifopcache 为生产推荐扩展;使用 ionCube 加密包时必须安装 ionCube Loader。

文件权限也要提前确认:项目普通目录建议 755,普通文件建议 644storagebootstrap/cache 必须允许 PHP 运行用户写入,建议设置为 775。如果权限不正确,安装器、日志、缓存、上传、导出和后台任务都可能失败。不要把整站设置成 777

如果准备用 Supervisor、宝塔进程守护或 systemd 跑队列,还要确认 PHP CLI 支持 pcntl_signalpcntl_alarmpcntl_async_signals。虚拟主机或受限环境无法开启这些函数时,可以使用安装完成页提供的 Cron + queue:work --once 备用队列命令。

生产环境建议

缓存和队列优先使用 Redis。小型验证环境可以先使用本地文件或数据库队列,但正式上线时应配置队列 worker 和 Cron。

第 2 步:运行安装向导

Afftrix 安装向导欢迎页
打开 /install 后,从 Welcome 页面开始安装。
Afftrix 安装向导核心配置
Configuration 页面用于设置公开 URL、后台路径、时区、默认货币和运行时存储方式。
安装步骤填写内容通过标准
Environment Check检查 PHP、扩展、写入权限、数据库驱动。阻塞项全部通过,Reminder 项可在安装后继续配置。
Configuration填写 APP URL,选择缓存和队列存储方式。APP URL 使用最终生产域名,不使用临时 IP。
Database填写数据库 host、port、database、username、password。连接成功,迁移可以执行。
Admin Account创建超级管理员。安装完成后可登录后台。

全新安装时,安装器会自动创建或更新 .env:如果项目根目录没有 .env,会从安装包自带的环境模板文件创建;如果 .env 已存在且可写,会更新 APP URL、数据库、缓存、队列和 APP_KEY 等配置。服务器权限不允许写入时,安装器会显示可复制的 .env 内容,部署人员需要手动粘贴到项目根目录的 .env 后再继续。

生产授权需要环境模板文件或 .env 中存在 AFFTRIX_LICENSE_CENTER_URLS。正式安装包默认应包含授权中心地址;如果服务商提供其他授权中心,以服务商提供的 HTTPS 地址为准。

安装完成页会显示后台登录地址、计划任务命令、队列 worker 命令和虚拟主机备用队列命令。真实部署时请优先复制安装完成页自动生成的命令,教程里的命令只说明格式。

第 3 步:首次登录后台

Afftrix 后台首页
后台首页用于查看当天收入、点击、转化、CR、推荐任务和关键运营指标。

首次登录后,先确认顶部日期范围为当天,左侧菜单可以正常展开,语言显示符合客户配置。后台首页没有数据是正常现象,后续完成点击和转化验证后才会出现指标。

  • 管理员账号可以登录后台。
  • 左侧菜单、顶部搜索、语言切换和日期筛选可用。
  • 后台没有错误弹窗、空白页或源码泄露。

第 4 步:配置品牌、注册和邮件

品牌设置真实截图
品牌设置会影响后台、Affiliate 用户中心、Advertiser 中心、邮件和公开页面。
设置项位置建议
平台名称和 LogoSettings Center > Platform / Brand上传正式 Logo、Favicon、登录背景。
Public site URLSettings Center > Platform / Brand填写生产域名,影响邮件链接和公开页面。
Affiliate 注册Settings Center > Registration Settings决定是否开放注册、是否人工审核。
Advertiser 注册Settings Center > Registration Settings公开招商时开启,私有平台招商时关闭。
SMTPSettings Center > Mail & SMTP发送验证邮件,确认注册和密码重置可用。
默认语言Settings Center > Platform / Brand安装后默认建议使用英文,需要中文客户再切换简体中文。

第 5 步:创建团队、广告主和联盟用户

后台角色入口截图
平台管理员、广告主、联盟用户和员工使用不同入口和权限范围。
员工权限流程
正式运营时不要让所有人员使用超级管理员账号,应按客服、财务、运营、技术和风控分配员工角色。
  1. 创建一个 Advertiser,用于绑定首个 Offer 和后续账单。
  2. 创建一个 Affiliate,用于验证申请 Offer、复制 tracking link 和查看佣金。
  3. 创建必要员工账号,例如运营、财务、客服、技术支持。
  4. 给员工分配角色,避免财务人员能改 payout,运营人员能直接批量付款。
  5. 确认广告主中心和 Affiliate 用户中心都能正常登录。

第 6 步:创建第一个 Offer

Offer 列表页面
Offer 列表用于查看状态、广告主、分类、访问组、payout、revenue、cap 和健康检查。
Offer 创建向导
创建 Offer 建议按 Basics、Traffic & Access、Tracking & Postback、Pricing & Caps、Content & Review 顺序填写。
区域必须填写上线建议
BasicsOffer 名称、广告主、类型、分类、状态。新建先用 Draft 或 Pending review。
Traffic & Access国家、设备、Affiliate access。新 Offer 先限制验证用 Affiliate。
Tracking & PostbackDestination URL、tracking domain、回传方式。电商类填商家首页或商品页,上游网络用宏传 CID。
Pricing & Capscurrency、revenue、payout、默认状态、cap。上线前确认 profit 为正。
Content & Review描述、terms、开始/结束时间。禁止渠道、审核周期和退款规则必须写清楚。

第 7 步:设置追踪和回传

Tracking link 生命周期
完整归因依赖 CID:点击生成 CID,广告主保存 CID,转化发生后带 CID 回传。
Offer Tracking 和 Postback
Destination URL 决定用户跳转位置,Advertiser Postback 决定转化如何回传。
S2S Postback

适合广告主有开发能力或上游网络支持回调的场景。生产环境优先推荐。

Pixel

适合只能在成功页放代码的广告主。部署快,但稳定性弱于 S2S。

Storefront Connector

适合 WooCommerce / Shopify 店铺。插件自动保存 CID 并在订单状态变化时回传。

第 8 步:WooCommerce 店铺对接

WooCommerce Connector 集成设置截图
WooCommerce Connector 让广告主不用写代码即可同步订单、退款、优惠码和商品数据。
  1. 在后台 Integrations 生成专属 Connector Key 或下载预配置插件。
  2. 广告主在 WordPress 后台安装并启用 Afftrix Connector。
  3. 插件中保存 Afftrix Site URL 和 Connector Key。
  4. 从 Affiliate tracking link 进入店铺,确认插件保存 CID。
  5. 创建验证订单,确认订单状态触发回传。
  6. 在 Afftrix Conversions 和插件日志中核对 response。

第 9 步:跑通第一条转化

Conversions 列表排查截图
第一条转化验证必须确认 click、CID、落地页、回传、conversion 和 payout 全部正确。
  1. 使用验证用 Affiliate 复制 Offer tracking link。
  2. 在无痕窗口打开链接,确认跳转到正确落地页。
  3. 后台 Clicks 页面确认生成点击和 CID。
  4. 广告主网站或插件确认保存 CID。
  5. 触发 S2S、Pixel 或 Connector 回传验证转化。
  6. 后台 Conversions 确认状态、金额、币种、revenue、payout 和 profit。
  7. 如果配置 Affiliate Postback,检查回传日志是否返回 HTTP 200。

第 10 步:报表、风控和付款核对

报表和风控页面截图
正式上线前要同时检查报表、Profit Guard、Anti-Spy、Fraud Logs 和付款流程。
付款和对账页面截图
付款前只统计 approved 且未 paid 的转化,pending、held、rejected、refunded 不应进入付款。
  • Performance Report 能看到 clicks、conversions、revenue、payout、profit。
  • Profit Guard 没有负利润或高风险提醒。
  • Postback Logs 没有连续失败。
  • Affiliate Balance 与 approved conversions 一致。
  • 付款方式、最低付款金额、发票信息和付款周期已配置。

第 11 步:正式开放前检查

检查项通过标准负责人
域名和 HTTPS主站域名、追踪域名、公开 Offer 页面都能 HTTPS 访问。技术
后台权限超级管理员、运营、财务、客服、技术账号分离。平台管理员
品牌和邮件Logo、Favicon、支持邮箱、SMTP 验证邮件正常。运营
Offer至少一个 Offer 完成配置和验证,状态可切换 Active。运营 / AM
追踪闭环tracking link、click、CID、conversion、postback log 全部通过。技术 / 运营
佣金和付款revenue、payout、profit 正确,付款流程可执行。财务
风控Profit Guard、Anti-Spy、Fraud Logs、Link Health 没有阻塞项。风控
文档和支持运营负责人明确后台入口、账号、常见问题和支持联系方式。部署人员

正式上线资料清单

访问资料

后台地址、Affiliate 入口、Advertiser 入口、管理员账号、支持邮箱。

业务资料

首个 Advertiser、验证用 Affiliate、验证用 Offer、tracking link 和回传示例。

技术资料

服务器环境、数据库、Redis、队列、Cron、SMTP 配置。

运维资料

备份方式、升级步骤、故障排查中心、支持工单需要提供的信息。

Admin page playbook

后台菜单逐页实操手册

本手册按后台菜单逐页说明每个页面的用途、关键操作和完成后的验证方式。适合平台管理员、运营负责人、AM、财务和技术支持在日常运营、上线验收和问题排查时使用。

后台菜单逐页说明 角色操作路径 操作后验证方式

阅读方式

含义
页面后台菜单或页面名称。
什么时候用哪类业务场景需要打开这个页面。
关键操作页面里最常用、最容易影响业务结果的设置或动作。
验证方式操作完成后去哪里确认结果是否生效。
建议先完成品牌、邮件、追踪域名、广告主、联盟用户和 Offer 的基础配置,再开始正式投放。这样点击、转化、佣金和报表会更容易对齐。

按角色选择页面

不同岗位不需要每天打开所有菜单。可以先按角色进入最相关的页面,再根据异常提示进入其他模块。

角色每天优先查看常用操作异常时再进入
平台管理员Dashboard、Action Center、Settings、Launch Health查看今日数据、处理提醒、检查系统健康、调整基础设置Audit Logs、Security、Backup、API
Offer 运营Offer 列表、Offer Health、Offer 权限申请、分类创建 Offer、审核申请、检查落地页和回传状态Clicks、Conversions、Troubleshooting
AM / 经理AM Workspace、Affiliate、Advertiser、Reports跟进客户、审核用户、查看负责账号表现Risk、Reconciliation、Support Tickets
财务Payments、Invoices、Reconciliation、Reports生成付款、核对余额、处理退款和差异Conversions、Advertiser Report、Affiliate Report
技术支持Tracking & GeoIP、Clicks、Conversions、API、Logs排查点击、CID、postback、connector 和 API 问题Queue、Cron、System Health、Audit Logs

常用模块速查

你想完成什么从哪里开始下一步核对
新建一个可投放 OfferOffer > Offer 列表 > 创建 OfferClicks、Conversions、Performance Report
让 Affiliate 申请推广Offer 权限申请Affiliate 中心申请状态、Offer 可见性
接入上游网络Offer Tracking上游 postback、Clicks、Conversions
接入 WooCommerce / ShopifyIntegrations / ConnectorConnector 日志、订单回传、Conversions
处理失败回传Action Center 或 ConversionsPostback 日志、错误响应、重试结果
排查负利润Profit Guard 或 ReportsOffer Pricing、Revenue、Payout
给 Affiliate 付款PaymentsApproved unpaid 转化、付款批次、余额
创建后台员工EmployeesStaff Role 权限、员工登录后菜单
修改品牌和后台入口Settings / Platform / Brand / Security登录页、Logo、后台入口、语言显示

1. Dashboard 与全局入口

Dashboard 总览
Dashboard 总览
页面什么时候用关键操作验证方式
Dashboard每天进入后台后查看整体业务状态。查看今日点击、转化、收入、支出、利润、待处理提醒和异常趋势。顶部日期默认用于筛选当前页面数据。切换顶部日期后,指标应随时间范围变化。
Global Search不确定某个设置在哪里时使用。搜索 Offer、Affiliate、Advertiser、支付、SMTP、Postback、Connector 等关键词。点击搜索结果后能进入对应页面。
Notifications查看系统通知、申请、失败任务和风险提醒。处理待办,或使用一键处理 / 一键忽略清理已确认的提醒。顶部通知数量和悬浮助手数量应下降。
Action Center集中处理平台运营任务。查看 Offer 申请、风控提醒、失败回传、待付款、健康检查和系统建议。处理后任务状态变为已完成或已忽略。
Performance 快捷入口判断后台是否变慢或接口是否异常。查看慢请求、缓存命中、后台接口耗时和页面加载状态。优化后慢请求数量减少,页面首屏更快打开。

2. Offer 运营菜单

Offer 列表
Offer 列表
页面什么时候用关键操作验证方式
Offer 列表管理所有推广任务。搜索、筛选、查看状态、进入编辑页、复制追踪链接、创建新 Offer,也可以对单个或多个 Offer 运行 Check link availability。列表默认显示 10 条,适合快速浏览。新建或修改后,列表能看到最新状态、ID 和 Link health。
创建 Offer新增推广任务。先填广告主、任务类型、名称、分组、分类、Destination URL,再配置佣金、限制、回传和公开展示。带红色 * 的字段必须填写。保存后进入 Offer 编辑页,点击验证和转化回传能记录数据。
Offer Tracking配置点击跳转和回传参数。上游广告网络场景优先填写上游 click URL,并把 {cid} 放到上游需要的参数里,例如 sub1={cid}。自建站或 WooCommerce 直接填写商品页、落地页或注册页。点击验证链接后,Clicks 页面能看到 click ID;上游 postback 能把同一个 click ID 回传。
Smart Link一个链接自动分配多个 Offer 时使用。设置流量分配规则、国家、设备、优先级和 fallback。使用不同国家或设备验证,跳转到符合规则的 Offer。
Offer 权限申请处理 Affiliate 申请推广 Offer。审核申请、批准、拒绝、查看申请理由和历史记录。Affiliate 端能看到申请状态,批准后可以获取推广链接。
Offer API 自动化需要批量同步或外部系统创建 Offer 时使用。配置接口字段、来源、同步规则和异常提醒。同步后 Offer 列表出现对应记录,失败项进入日志。
Offer Health检查 Offer 是否能正常投放。查看落地页可访问性、回传状态、异常转化率、低收入或高支出提醒。修复后健康状态恢复正常,风险提醒减少。
Offer Spy分析上游 Offer、竞品链路或疑似异常落地页。粘贴追踪链接,检查每一步跳转、GEO 行为、代理出口、最终落地页和中间 broker 域名。结果区能看到 Redirect Visualization、Final Landing URL 和每一步 HTTP 状态。
分类管理 Offer category。新增、启用、停用分类,帮助 Affiliate 按行业筛选 Offer。创建 Offer 时能选择启用状态的分类。
供给地图查看 Offer、国家、设备、广告主供给覆盖。判断哪些国家或广告主还有可投放资源。筛选后能看到对应供给分布。
Offer 来源标记上游网络、自有广告主或自建站来源。维护来源名称、渠道类型和备注,便于报表和排查。Offer 编辑页能关联到对应来源。

Offer Spy 怎么使用

Offer Spy 位于 Offer > Offer Spy。它不是简单的链接检测,而是用来还原一个 Offer 从入口链接到最终落地页之间的完整链路,适合运营、技术支持和 AM 在上线前或排查时使用。

常见使用场景:

  • 上游网络给了一个 click URL,需要确认中间跳转是否正常。
  • 某个国家打开落地页是 404、白屏、跳错页面或被拒绝访问。
  • Affiliate 反馈 tracking link 打不开,需要确认问题发生在 Afftrix、上游 broker 还是最终落地页。
  • 竞品或供应商 Offer 经过多个中转域名,需要看最终落地页、跳转次数和耗时。
  • Offer Health 显示 Broken,需要进一步查看到底是哪一步 Broken。

操作步骤:

  1. 打开后台 Offer > Offer Spy
  2. 在 URL 输入框粘贴要分析的链接,可以是上游网络 click URL、Affiliate tracking link、短链或最终落地页。
  3. Max redirects 建议保持 10;如果上游链路很长,可以提高到 15 或 20。
  4. Verify SSL certificate 生产环境建议开启。只有本地验证、自签证书或确认是证书问题时才临时关闭。
  5. 点击 Analyze Offer
  6. 查看 Offer Summary,确认是否到达 Final Landing URL
  7. 查看 Tracking Detection,逐步核对每一步请求 URL、Host、IP、HTTP 状态。
  8. 查看 Redirect Visualization,确认 301/302、Meta refresh、JavaScript redirect 是否符合预期。
结果含义处理方式
Final Landing URL 正常链路最终能打开目标页。继续验证点击、CID 和转化回传。
中途 404 / 410上游或落地页链接失效。联系上游更新 URL,或暂停该 Offer。
302 次数过多链路过长,可能经过多个 broker 或风控页。增加 Max redirects 复测,并确认最终页面是否稳定。
SOCKS5 rejected代理账号、密码、国家代码或 SOCKS5/SOCKS5H 模式不匹配。回到 Tracking & GeoIP 检查代理,并使用代理连通性检测。
Final URL 不是预期页面上游根据国家、设备、IP 或风控策略分流。用 Traffic Simulator 或不同国家代理复测。
工具主要用途什么时候优先用
Offer Spy看完整跳转链路和最终落地页。链接打不开、跳错页面、上游链路不透明。
Offer Health批量或定时检查 Offer 是否可投放。日常巡检、发现 Broken、上线前快速检查。
Traffic Simulator模拟不同国家、设备、参数下的真实访问。需要验证 targeting、fallback、Anti-Spy 或设备限制。

Check link availability 怎么使用

Check link availability 位于 Offer 列表的 Actions / 右键菜单,也可以在 Offer 详情页顶部使用。它用于快速检测当前 Offer 的目标链接是否可以打开,并把检测结果写入 Link health。

常见使用场景:

  • 新建 Offer 后,正式开放给 Affiliate 前先检测一次。
  • 批量导入 Offer 后,勾选多条记录批量检测。
  • 上游网络更换 click URL 后,确认新链接是否可访问。
  • Affiliate 反馈打不开时,先确认是链接失效、GEO 限制、SSL 问题还是代理问题。
  • Offer Health 显示 Broken 或 Geo not verified 时,重新检测并保存最新记录。

结果判断:

状态含义建议
Healthy目标链接能打开。继续做真实点击和转化回传验证。
Warning可以打开,但存在风险。用 Offer Spy 查看完整跳转链路。
Broken链接不可访问或被拒绝。修复 URL、SSL、上游链接或代理配置后重测。
Geo not verified当前环境无法确认目标国家访问。配置 Tracking & GeoIP 代理后重测。

如果系统提示未配置代理,可以继续用服务器 IP 做基础检测,但不要把它当作目标国家的真实访问结果。带 GEO 限制、上游风控或国家专属落地页的 Offer,应先配置住宅代理。

创建 Offer 的推荐顺序

  1. 先创建或确认 Advertiser。
  2. 进入 Offer 列表,点击创建。
  3. 填写 Offer Basics:状态、名称、广告主、任务类型、分组和分类。
  4. 填写 Tracking:Preview URL、Destination URL、回传方式和参数。
  5. 填写 Pricing:Revenue、Payout、币种和佣金规则。
  6. 填写 Traffic & Access:国家、设备、Affiliate 可见性和申请规则。
  7. 保存草稿或保存上线。
  8. 用验证用 Affiliate 链接点击一次,再模拟转化回传。

3. 合作方与团队菜单

页面什么时候用关键操作验证方式
Affiliate创建和管理联盟用户。新增账号、设置状态、分组、经理、付款信息、登录权限和备注。Affiliate 能登录用户中心,Offer 申请和报表能正常显示。
Advertiser创建广告主或商家账号。填写名称、邮箱、状态、联系人、账单信息和所属经理。Advertiser 能登录广告主中心,能查看自己的 Offer 和转化。
Manager管理 AM 或业务经理。创建经理账号,分配 Affiliate / Advertiser,查看管理佣金。对应用户资料里能看到分配的经理。
Employee创建后台员工。填写姓名、邮箱、密码、状态和角色。员工只应该拥有岗位需要的权限。员工登录后只能看到已授权菜单。
Staff Role设置员工角色权限。给运营、财务、AM、客服、技术支持分别配置菜单和操作权限。用验证员工登录验证菜单是否符合权限。
AM WorkspaceAM 集中处理客户和 Affiliate 任务。查看跟进记录、待处理申请、异常提醒、客户状态和任务列表。完成任务后,Action Center 和 AM Workspace 状态同步更新。
Affiliate 创建
Affiliate 创建
Advertiser 创建
Advertiser 创建
员工管理
员工管理

4. 追踪、点击与转化菜单

转化列表
转化列表
页面什么时候用关键操作验证方式
Clicks检查点击是否进入系统。搜索 cid、Affiliate、Offer、IP、国家、设备和来源参数。点击验证链接后,这里应出现新点击。
Conversions查看转化、订单、佣金和状态。按 Offer、Affiliate、Advertiser、状态、时间筛选;检查收入、支出、利润和回传响应。验证 postback 或 Connector 下单后,这里应出现转化。
Advertiser Postback广告主或上游网络回传转化时使用。复制系统生成的 postback URL,交给广告主或填写到上游网络后台。上游回传成功后,Conversions 出现记录,日志显示成功响应。
Affiliate Postback通知 Affiliate 他们的转化结果。允许 Affiliate 配置回调地址,系统在转化发生后通知对方。Affiliate 的服务器能收到回调。
Pixel 验证浏览器像素或落地页脚本对接时使用。检查脚本是否加载、cookie/localStorage 是否保存 cid页面刷新和下单后仍能找到同一个 cid
Tracking & GeoIP设置追踪域名、GeoIP、IP 识别和默认追踪行为。配置追踪域名、GeoIP 数据、点击保留时间和参数保存规则。点击日志里的国家、设备和来源能正确识别。
Traffic Simulator需要模拟不同国家、设备或来源时使用。输入验证参数,模拟访问并检查跳转路径。跳转结果符合 Offer targeting 和 fallback 规则。

5. 报表、付款与财务菜单

Performance Report
Performance Report
页面什么时候用关键操作验证方式
Performance Report分析点击、转化、收入、支出、利润和转化率。按日期、Affiliate、Offer、Advertiser、国家、设备等维度分组。数据与 Dashboard、Conversions、Payments 保持一致。
Logs排查 API、postback、邮件、任务和系统错误。按类型、状态、时间和关键词筛选。修复问题后,同类错误不再新增。
Paid List查看已付款记录。搜索付款批次、Affiliate、币种、状态和时间。付款完成后记录进入已付款列表。
Send Payment给单个 Affiliate 付款。选择收款人、金额、币种、付款方式和备注。Affiliate 余额减少,付款记录生成。
Batch Send批量付款。筛选符合条件的 Affiliate,确认金额后批量发送。批次状态变为已完成或等待处理。
Reconciliation对账和差异检查。对比订单、转化、付款、退款和佣金差异。差异清零或形成明确处理记录。
Manager Commissions计算 AM / Manager 佣金。按经理、时间、规则分组,查看应得佣金。财务报表能看到对应经理佣金。
Payment Settings设置付款方式和财务规则。配置最低付款金额、付款周期、手续费和收款字段。Affiliate 端按规则显示付款信息。
批量付款
批量付款

6. 风控、自动化与系统健康

页面什么时候用关键操作验证方式
Profit Guard监控亏损、异常 payout、异常收入和可疑订单。设置利润阈值、自动暂停规则、提醒对象和处理流程。异常转化触发提醒或进入审核。
Profit Guard Reviews人工复核风控命中的记录。批准、拒绝、标记已处理,并记录处理原因。复核后转化状态和佣金状态同步变化。
Anti-Spy检测可疑爬虫、代理、重复点击和异常设备。设置规则、白名单、黑名单和封禁策略。被命中的流量进入风控日志。
Automation Rules自动处理重复性操作。配置触发条件、动作、通知对象和执行频率。满足条件时自动执行,日志里可追踪。
Background Tasks查看队列任务。检查失败任务、重试、查看错误详情。任务成功后状态变为 completed。
Launch Health上线前健康检查。检查邮件、队列、定时任务、回传、权限和关键配置。所有关键项通过后再正式开放投放。
Performance Monitor后台性能诊断。查看慢查询、慢接口、缓存状态和组件加载耗时。优化后平均响应时间下降。

7. 增长、素材与支持菜单

页面什么时候用关键操作验证方式
Campaigns运营活动或邮件通知。创建活动、选择目标用户、编写内容和发送计划。发送记录、打开数据和用户反馈可查看。
Landing Pages管理公开落地页或活动页。配置页面标题、说明、展示素材和跳转链接。公开页面能正常访问。
Creatives / Media Library管理 banner、图片、落地页素材和下载文件。上传素材,绑定 Offer,设置可见权限。Affiliate 端可下载或复制素材。
Coupons管理优惠码归因。绑定 Affiliate、Offer、Advertiser 和有效期。使用优惠码的订单能归因到对应 Affiliate。
Tickets处理 Affiliate、Advertiser 或客户支持请求。回复、分配负责人、标记状态和关联业务对象。用户端能看到工单进度。

8. 设置中心

Platform / Brand 设置
Platform / Brand 设置
页面什么时候用关键操作验证方式
Platform / Brand修改品牌、Logo、后台入口和界面展示。上传 Logo,设置系统名称、默认语言、默认背景和自定义后台登录路径。刷新后台、用户中心和登录页后显示新品牌。
Registration Settings设置 Affiliate / Advertiser 注册规则。开启或关闭注册、设置审核方式、必填字段和默认状态。前台注册页按规则显示字段并生成申请。
Affiliate Application自定义 Affiliate 申请表。增加字段、排序、设置必填、公开 embed 表单代码。外部页面嵌入表单后能提交申请。
Terms Settings管理条款和隐私内容。设置用户注册、申请 Offer、付款前需要确认的条款。用户端会显示对应条款并记录同意状态。
Mail & SMTP设置邮件发送。填写 SMTP host、port、账号、密码、加密方式和发件人。发送验证邮件成功,通知邮件能正常到达。
Notification Center设置站内通知和提醒。配置哪些事件通知谁、是否进入 Action Center、是否发邮件。触发事件后能收到对应提醒。
Integrations下载或配置插件、Connector 和外部集成。生成 WordPress / WooCommerce Connector,复制 API 信息,查看连接状态。插件保存后能验证连接并回传订单。
Security & Audit管理安全策略和审计日志。查看登录、权限、关键配置变更和 API 调用记录。异常操作有日志可追踪。

自定义后台入口

如果在 Platform / Brand 里修改了后台登录路径,后续登录地址就不一定是 /admin。团队操作手册、员工浏览器书签和后台入口提示都应使用新的入口。

自定义后台入口
自定义后台入口
场景应该怎么做
默认安装后使用 /admin 进入管理后台。
已设置自定义后台路径使用设置后的路径,例如 /ops-center/console 或团队约定路径。
员工反馈打不开后台先确认是否使用了旧的 /admin,再检查 Platform / Brand 中的后台路径设置。
上线使用只把正式后台路径提供给平台管理员,不要把验证路径写进公开说明或员工书签。

9. 日常验收顺序

顺序检查项验收标准
1品牌与入口Logo、系统名称、默认语言、后台入口和注册页展示正确。
2邮件SMTP 验证成功,注册、审核、找回密码等邮件可收到。
3用户与权限Affiliate、Advertiser、Employee 和 Staff Role 能按权限登录。
4Offer能创建 Offer,必填字段清楚,Tracking URL 和佣金规则正确。
5点击使用 Affiliate 链接点击后,Clicks 有记录。
6转化上游 postback、Pixel 或 Connector 回传后,Conversions 有记录。
7报表Dashboard、Performance Report、Affiliate 报表和 Advertiser 报表数据一致。
8财务可生成付款记录,余额、佣金、利润和对账结果正确。
9风控Profit Guard、Anti-Spy、Offer Health 能发现异常并生成提醒。
10日志关键操作、失败任务、API 和 postback 错误都有日志可追踪。

10. 常见操作建议

  • 新建客户前,先确认客户属于 Affiliate、Advertiser、Manager 还是后台 Employee,不要混用账号类型。
  • 新建 Offer 前,先准备广告主、落地页、佣金规则、目标国家、允许设备和验证回传方式。
  • 上游广告网络场景,Destination URL 通常填写上游 click URL,并把 Afftrix 的 {cid} 放到上游要求的参数中。
  • 自建站、WooCommerce 或 Shopify 场景,Destination URL 通常填写商品页、注册页或落地页,点击参数由 Afftrix 自动追加。
  • 付款前先检查 Conversions、Reconciliation 和 Performance Report,确认没有重复转化、退款或负利润异常。
  • 员工权限按岗位最小化配置;财务、技术、运营、AM 不建议共用同一个后台账号。

Platform Operations

平台管理员手册

平台管理员负责 Afftrix 的整体运营,包括账号、Offer、追踪、报表、付款、风控和系统设置。

适合 Admin、Manager、运营团队 后台操作手册

后台入口与自定义路径

管理后台默认路径是 /admin,但客户可以在 Settings Center → Platform / Brand → 管理面板路径 修改。修改后请使用实际后台路径登录,例如 https://your-domain.com/afftrix-secure

自定义后台登录路径设置位置
后台路径只填写路径名称,不需要输入前面的 /。保存后用新路径登录后台。
上线实施提醒

正式上线前请验证实际后台路径、/affiliate/login/advertiser/login。不要使用 apiaffiliateadvertiserstorageoffers 等公共路径作为后台路径。

后台看板

Dashboard 用于查看平台经营状态,默认建议显示当天数据,其他时间通过顶部日期筛选查看。

Afftrix 管理后台看板
后台看板聚合点击、转化、收入、支出、利润、Top Offers 和趋势数据。
Afftrix 后台角色入口截图
管理员、Affiliate 和 Advertiser 使用不同入口。正式上线时,这三条路径都要验证。

Offer 管理

Offer 是平台最核心的推广对象。创建 Offer 时要确认广告主、落地页、佣金、国家、设备、访问权限和状态。

Afftrix Offer 管理列表
后台 Offer 列表支持状态管理、搜索、筛选和运营检查。
配置说明
Destination URL用户点击后最终到达的广告主页面。
Revenue广告主支付给平台的金额。
Payout平台支付给联盟用户的佣金。
Access公开、申请后可见或私有。
Statusdraft、pending、active、paused、archived 等。

后台菜单怎么理解

管理员第一次进入后台时,建议先按“配置、用户、Offer、追踪、财务、风控”的顺序理解菜单。不要一开始就直接创建 Offer,否则后面容易出现邮件发不出、付款方式缺失、追踪链接无法闭环的问题。

菜单区域主要用途第一次使用要做什么
Dashboard查看当天和指定日期范围的数据。确认顶部日期筛选、收入、payout、profit 显示正常。
Affiliates管理推广用户、申请、付款方式、Postback。创建一个验证用 Affiliate,后续用于完整闭环验证。
Advertisers管理广告主、广告主 Offer、账单、回传。创建一个验证用 Advertiser,绑定第一个 Offer。
Offers创建和运营推广项目。先创建 draft,验证通过后再 active。
Tracking查看 Click、Conversion、Postback、Pixel。用验证链接生成一次点击,再查看 Clicks。
Payments生成付款记录和对账。确认最低付款金额、币种和付款方式。
Settings品牌、注册、邮件、追踪、性能。先完成 Platform / Brand、SMTP 和 Tracking。

日常运营模块

Affiliate 管理

审核注册、分配 AM、查看点击、转化、付款、Postback 和付款方式。

Advertiser 管理

审核广告主、审核广告主提交的 Offer、查看账单和 Postback 日志。

Tracking 管理

排查点击、CID、Postback、Pixel、短链、Smartlink 和跳转链路。

Payment 付款

筛选 approved 转化,生成付款记录,导出付款项目和发票。

Profit Guard

识别负利润、高 payout、低 margin 和异常 Offer。

Action Center

汇总待处理事项,也可以在后台设置是否显示悬浮入口。

第一次创建业务数据

  1. 进入 Settings Center,先设置平台名称、Logo、SMTP、默认语言、默认时区和付款币种。
  2. 创建 Advertiser,填写公司名、联系人邮箱、状态、账单备注。
  3. 创建 Affiliate,填写邮箱、状态、AM、付款方式,确认可以登录用户中心。
  4. 创建 Offer,绑定 Advertiser,填写 Destination URL、revenue、payout、国家、设备、访问权限。
  5. 如果 Offer 是私有或需要申请,先允许验证用 Affiliate 访问。
  6. 复制验证用 Affiliate 的 tracking link,在无痕窗口打开。
  7. 检查 Clicks 是否产生 CID,确认跳转后的广告主 URL 带有追踪参数。
  8. 用 Postback、Pixel 或 Connector 发送验证转化。
  9. 在 Conversions、Reports、Profit Guard、Payments 中检查结果。

管理员每日检查清单

  1. 打开 Dashboard,确认今日点击、转化、收入、payout、profit 是否正常。
  2. 检查 Action Center 或待处理任务,处理申请、告警和失败回调。
  3. 查看 Offer Health,确认核心 Offer 链接没有 broken。
  4. 查看 Profit Guard,确认没有负利润或异常 payout。
  5. 查看 Postback Logs,处理 HTTP 非 200 或参数错误。
  6. 查看 Payments,确认是否有达到付款周期的 Affiliate。

管理员常见误操作

误操作会造成什么问题正确做法
直接把新 Offer 设为 activeAffiliate 开始投放后才发现回传不通。先 draft,完成验证点击和验证转化后再上线。
payout 高于 revenue平台每一单都亏钱。上线前用 Profit Guard 检查负利润。
给员工过大权限可能误改付款、佣金规则或系统设置。按岗位创建 Staff Role,只给必要权限。
没有配置 SMTP注册、密码重置、通知邮件无法发送。上线前发送验证邮件并检查垃圾箱。
忽略 Postback 日志广告主或 Affiliate 反馈时无法定位。每次对接都保留成功和失败日志截图。

Affiliate Center

联盟用户手册

联盟用户负责推广 Offer,并根据有效转化获得佣金。

适合 Affiliate 推广操作手册

登录和注册

默认入口是 /affiliate/login/affiliate/register。如果平台关闭注册,用户需要联系平台管理员创建账号。

联盟用户登录界面
联盟用户中心用于申请 Offer、复制追踪链接、查看点击、转化、佣金和付款。

申请和推广 Offer

1查看 Offer

进入 Offers 页面,按国家、设备、类型和佣金筛选。

2申请访问

Request required 的 Offer 需要申请,等待平台审核。

3复制链接

在 Offer 详情页复制 tracking link,投放时必须使用这个链接。

4查看数据

在 Clicks、Reports、Payments 查看表现和结算状态。

Affiliate 首次使用步骤

  1. 登录 Affiliate Center。
  2. 进入 Settings 或 Profile,补全联系人、公司资料和付款方式。
  3. 阅读平台条款和需要推广的 Offer terms。
  4. 在 Offers 中筛选国家、设备、类型和佣金。
  5. 申请 Request required 的 Offer,等待管理员批准。
  6. 复制 tracking link,并使用 s1s5 标记渠道。
  7. 投放后每天查看 Clicks、Conversions、CR、EPC、Payout。
  8. 需要回传给自己的系统时,配置 Affiliate Postback 并验证。

资料和付款方式怎么填写

Affiliate 资料越完整,平台审核和付款越顺。平台管理员也可以在后台代为检查资料是否完整。

资料项用途填写建议
姓名 / 公司名识别 Affiliate 身份。个人写真实姓名,团队或公司写公司名。
联系邮箱接收审核、付款、Offer 通知。必须可接收邮件,不建议使用临时邮箱。
国家 / 地区用于合规、付款和 AM 分配。按实际经营地区填写。
推广渠道平台判断流量质量。写清 SEO、Facebook、Google Ads、Email、Influencer 等。
网站 / 社媒链接平台审核是否适合推广。提供可访问 URL,避免空链接。
付款方式用于付款结算。付款账号必须与 Affiliate 身份匹配,避免付款失败。

Tracking Link 示例

https://your-domain.com/sotl?offer=1001&aff_id=2001&s1=facebook&s2=adset-a

s1s5 用于记录流量来源、广告组、关键词、素材等自定义信息。

投放链接怎么使用

场景应该怎么做不要这样做
社媒广告把 tracking link 放到广告目标 URL,并用 s1 标记平台。不要直接放广告主官网 URL。
内容站推荐每个页面或文章使用不同 s2 标记内容来源。不要所有页面共用同一个 Sub ID。
Email 推广按邮件批次写 s1=emails2=batch-name不要违反 Offer 是否允许 Email 的规则。
广告组验证s3s4 标记广告组、素材、关键词。不要在 Sub ID 中放客户隐私或密码。
短链分享先确认短链最终仍指向 Afftrix tracking link。不要用短链绕过 Afftrix 点击记录。

佣金状态

状态说明
pending等待审核。
approved有效转化,可进入付款流程。
held暂缓,需要人工或风控审核。
rejected已拒绝,不计佣金。
paid已付款。

报表怎么看

  • Clicks:先看点击是否进入系统,是否有国家、设备、Sub ID。
  • Conversions:看转化状态、payout、order_id、goal 和时间。
  • Reports:按日期、Offer、Sub ID 分析 CR、EPC、收入和趋势。
  • Payments:只看 approved 且达到最低付款金额的佣金是否进入付款。
  • Postback Logs:如果 Affiliate 有自己的系统,检查回调是否发送成功。

Affiliate 常见问题

  • 看不到某个 Offer:可能是 Offer 为 Private,或需要先申请访问。
  • 点击有记录但转化没有记录:广告主可能没有回传,或回传缺少 CID。
  • 佣金是 pending:需要等待广告主或平台审核。
  • 付款未到账:检查是否达到最低付款金额,以及付款方式是否填写完整。

Advertiser Center

广告主手册

广告主负责提供推广项目、落地页、转化数据和结算依据。

适合 Advertiser、商家、店铺 owner 广告主对接手册

广告主接入快速路径

广告主不需要理解全部后台功能。对接时先把“落地页、CID、回传、账单”四件事讲清楚,再让广告主进入对应页面查看数据。

  1. 收集广告主落地页、测试链接、点击 ID 宏、订单号宏、金额宏和转化状态说明。
  2. 在后台创建 Advertiser,并确认广告主是否需要独立登录账号。
  3. 创建 Offer,把 Afftrix 的 {cid} 传给广告主链接,让广告主保存这个点击 ID。
  4. 把 tracking domain 的 /postback.php 回传地址发给广告主,并按对方平台宏替换参数。
  5. 让广告主发送测试回传,在 Advertiser Postback Logs 和 Postback Debugger 里确认 success。
  6. 上线后定期核对 Conversions、Billing、Postback Logs 和对账结果。

广告主入口

默认入口是 /advertiser/login/advertiser/register。广告主注册后可能需要平台审核。

后台入口关系截图
广告主中心只管理自己的 Offer、转化、回传和账单;Affiliate 复制追踪链接投放,管理员负责最终审核和结算。

广告主能做什么

  • 提交和编辑自己的 Offer。
  • 查看自己 Offer 的点击、转化和成本。
  • 审核转化,导出转化数据。
  • 查看 Billing 账单。
  • 查看 Postback 指南和日志。
  • 创建广告主 API Token。

落地页怎么填写

如果广告主使用自己的商城或官网,Offer 落地页可以直接填写商品页、注册页或首页。

https://shop.example.com/products/a
https://example.com/signup

Afftrix 跳转时会把 cidaff_idoffer_id 和 Sub ID 带到广告主页面。

广告主中心常用页面

页面广告主要做什么平台需要检查什么
Dashboard查看自己 Offer 的点击、转化、成本和趋势。确认广告主只能看到自己的数据。
Offers提交新 Offer、修改落地页、查看状态。新 Offer 上线前必须审核 URL、佣金和条款。
Conversions核对订单、注册、充值等转化记录。异常金额、重复 order_id、退款状态要进入审核。
Postback Logs检查回传是否成功,复制失败原因给技术。重点看缺少 cid、签名错误、重复回传和 HTTP 非 200。
Billing查看广告主账单、消费和待结算金额。账单周期和合同约定要一致。
API Tokens给广告主技术团队生成接口密钥。密钥要按广告主隔离,离职或泄露后及时禁用。

转化回传方式

Server Postback

广告主服务器调用 /postback.php,稳定性最高。

Pixel

成功页面放置 image、iframe 或 JS pixel,适合无服务器能力的场景。

Connector

WooCommerce 店铺安装插件后,订单自动回传。

Integration API

外部系统通过 API 发送订单或注册事件。

广告主首次对接步骤

  1. 平台管理员先创建 Advertiser 账号,并确认联系人、结算周期和允许的 Offer 类型。
  2. 广告主提交 Offer,填写名称、落地页、国家、设备、转化事件和禁止推广规则。
  3. 管理员审核 Offer,并设置 revenue、payout、访问权限、caps 和状态。
  4. 广告主技术选择回传方式:S2S Postback、Pixel、Integration API 或 WooCommerce Connector。
  5. 使用验证用 Affiliate 点击追踪链接,确认广告主页面可以接收并保存 cid
  6. 广告主发送一条验证转化,后台 Conversions 必须看到正确的 offer、affiliate、amount、currency 和 order_id。
  7. 管理员检查 Profit Guard,确认 revenue 大于 payout,避免上线后出现负利润。
  8. 验证通过后,把 Offer 状态切换为 active,并通知 Affiliate 开始投放。

广告主验收清单

  • 广告主账号已审核通过,并且只能看到自己的 Offer 和转化。
  • Offer 落地页可以正常打开,目标页面不会丢失 cid
  • 至少完成一条真实或模拟验证转化,并保存回传日志。
  • 广告主明确知道转化审核、退款、取消订单和账单周期怎么处理。
  • API Token 或 Connector Key 已按广告主隔离,不使用全局密钥。

Tracking Domains

Tracking Domains 追踪域名设置

追踪域名是 Afftrix 生成推广链接、Smartlink、短链和点击跳转时使用的入口域名。生产上线前必须先把域名、DNS、HTTPS、默认域名和状态配置清楚,否则 Affiliate 复制的链接可能打不开,也可能没有 Click 和 CID 记录。

适合平台管理员和实施人员 入口:Tracking > Tracking Domains 上线前必做

它解决什么问题

生成正确推广链接

Offer 或 Smartlink 没有单独指定域名时,系统会使用默认追踪域名生成可投放链接。

接收点击流量

用户点击 Affiliate 链接后先进入追踪域名,Afftrix 记录 Click、生成 CID,再跳转到广告主落地页。

区分品牌和流量场景

不同品牌、广告主、流量类型可以使用不同子域名,便于实施、排查和风险隔离。

控制域名状态

域名未解析、证书未生效或准备下线时,可以先暂停,避免新链接继续使用异常域名。

什么时候需要新建

  • 首次生产上线前,至少要配置一个可用的默认追踪域名。
  • 客户希望推广链接使用自己的品牌域名,例如 go.brand.comtrack.brand.com
  • Offer、Smartlink、公开 Offer 市场或特殊广告主需要分开域名。
  • 旧域名被拦截、证书异常、DNS 指向错误,或者要逐步替换成新域名。
  • 需要临时暂停某个域名,防止继续生成或匹配点击流量。

创建前先准备

Tracking Domains 追踪域名设置标注图
Tracking Domains 新建时重点确认四件事:域名、类型、默认域名、SSL 和 DNS 解析。DNS 与证书验证完成后,再切到生产投放。
准备项建议为什么重要
子域名优先用 track.example.comgo.example.comclk.example.com,不要直接用主站根域名。子域名更容易隔离投放风险,也不会影响客户官网。
DNS 权限在域名服务商添加 A 记录,指向 Tracking Domains 页面提示的服务器 IP。DNS 没解析到 Afftrix 服务器,点击请求不会进入系统。
HTTPS 证书先让证书签发并验证成功,再在后台打开 SSL enabled提前打开 SSL 会导致浏览器证书错误或推广链接打不开。
上线窗口预留 DNS 生效时间,切换默认域名前先用验证用 Affiliate 点击一次。DNS 缓存可能不是立即生效,直接切换会影响真实投放。

后台新建步骤

  1. 进入后台,打开 Tracking > Tracking Domains。也可以用顶部搜索输入 Tracking Domains 快速进入。
  2. 点击 CreateNew tracking domain
  3. Tracking domain 填写纯主机名,例如 track.example.com。不要填写 https://,也不要带路径。
  4. 选择 Type。如果不确定,先选择用于 click / tracking 的默认类型;后续再按 Smartlink、Postback 或品牌场景拆分。
  5. 选择 Status。DNS 和 SSL 未验证前建议保持 paused;确认可用后再切换为 active。
  6. 如果这是平台默认使用的域名,打开 Default tracking domain。默认域名会在 Offer 或 Smartlink 没有指定域名时被使用。
  7. 证书已经可用后,再打开 SSL enabled。如果证书尚未生效,先不要打开。
  8. 保存后回到列表,确认 domain、type、status、default 和 SSL 状态显示正确。
  9. 打开详情或列表里的 DNS setup / DNS example,核对系统提示的 A 记录目标 IP 是否和域名服务商里填写的一致。

字段怎么填

字段填写方式注意事项
Tracking domain只填 hostname,例如 track.example.com如果粘贴 https://track.example.com/path,系统只会保存域名部分;操作说明里仍建议用户手动填纯域名。
Type按用途选择追踪、Smartlink、Postback 或通用域名类型。类型用于后台管理和后续匹配规则,不要把生产投放域名和验证域名混在一起。
Status生产可用选 active,未准备好或准备下线选 paused。paused 域名不会在点击到达时作为可用追踪域名匹配。
Default tracking domain平台至少保留一个默认 active 域名。更换默认域名前先验证新域名,避免新生成链接全部异常。
SSL enabled证书签发并访问正常后再开启。只打开开关不会自动解决证书问题,服务器证书必须真实有效。
DNS example按页面提示添加 A 记录到服务器 IP。如果用了 Cloudflare 或 CDN,先确认没有被 WAF、缓存或跳转规则改写参数。

上线验证清单

  1. 在 DNS 检查工具里确认 track.example.com 的 A 记录已经指向 Afftrix 服务器 IP。
  2. 浏览器打开 https://track.example.com,确认证书有效,没有安全警告。
  3. 后台 Tracking Domains 列表中,该域名是 active;如果它是默认域名,default 开关也已开启。
  4. 进入验证用 Offer 或 Smartlink,复制 Affiliate tracking link,确认链接域名使用了新的追踪域名。
  5. 用无痕窗口点击链接,页面能跳到正确落地页,并且浏览器地址栏或落地页能收到 cid
  6. 回到后台 Clicks,确认生成了 Click 记录,并且 offer、affiliate、cid、country、device 有值。
  7. 如果后续会回传转化,再用 Postback Debugger 或验证订单验证同一 CID 能生成 Conversion。

常见错误

现象高概率原因处理方式
点击链接打不开DNS 未生效、A 记录指错、域名状态是 paused、服务器防火墙未放行。先查 DNS,再查 Tracking Domains 状态,最后检查服务器访问日志。
浏览器提示证书错误证书未签发、证书域名不匹配,或提前打开了 SSL enabled。修复证书后再打开 SSL;必要时先暂停该域名。
有跳转但没有 Click链接没有经过 Afftrix 追踪域名,或 CDN / WAF 规则把请求改写了。复制完整 tracking link,用 Offer Spy 或 Traffic Simulator 检查每一步跳转。
新生成链接仍然用旧域名新域名没有设为默认,Offer 或 Smartlink 仍指定旧域名,或页面缓存未刷新。检查默认域名、Offer 配置和 Smartlink 配置,然后重新复制链接。
部分国家打不开域名被局部 DNS 污染、CDN 区域规则异常,或 Anti-Spy / GeoIP 规则误拦截。用目标国家代理和 Traffic Simulator 验证,再检查 Anti-Spy 日志。
客户把主站域名填进来没有区分官网域名和追踪子域名。改用独立子域名,避免投放流量影响官网和品牌主页。

和其他模块的关系

Offer Tracking URL

Offer 生成 Affiliate 链接时会使用追踪域名。链接异常时先看 Offer 状态和 Tracking Domains。

Smartlink

Smartlink 也需要可用域名承接点击流量,默认域名错误会影响智能分发。

Traffic Simulator

新域名上线后,用模拟器验证国家、设备、代理和跳转结果。

Offer Spy / Redirect Protection

域名、跳转保护和链路分析要一起看,避免暴露上游原始链接或丢失参数。

Tracking

追踪链接与转化回传

Afftrix 的核心闭环是 Affiliate 发送流量,系统生成 CID,广告主回传 CID,系统计算佣金。

适合运营和技术对接 CID 追踪闭环

追踪流程

追踪链接生命周期
Tracking link 的核心是 CID。CID 从点击进入广告主页面,再由 Postback、Pixel 或 Connector 带回 Afftrix。
Affiliate 链接 Click + CID 广告主落地页 Postback / Pixel Conversion 付款

Tracking Link 类型

类型示例用途
单 Offer/sotl?offer=1001&aff_id=2001推广固定 Offer。
Smartlink/tl?smartlink=1&aff_id=2001按规则智能分配 Offer。
短链/abc123隐藏长链接,方便投放。
保护跳转/go/{token}保护目标地址。

Affiliate 一般在用户中心的 Offer 详情页复制 Tracking Link。运营人员需要先确认 Affiliate 已被允许访问该 Offer,否则用户可能看不到链接或无法申请。

https://link.example.com/click?offer_id=1001&aff_id=2001&s1=facebook&s2=campaign-a&s3=creative-01
Sub ID推荐用途示例
s1流量来源。facebook、google、email。
s2广告系列。summer-sale、brand-keyword。
s3广告组或素材。creative-01、banner-728。
s4关键词或受众。running-shoes、lookalike-us。
s5渠道追踪编号。buyer-01、placement-23。

广告主网站需要保存什么

广告主落地页收到 cid 后,必须在用户注册、下单或支付流程中保存它。保存位置可以是 Cookie、localStorage、Session、订单表或 CRM 字段。

普通网站

页面接收 URL 参数,把 cid 保存到 Cookie,表单提交时写入订单或用户记录。

WooCommerce

安装 Afftrix Connector,插件自动保存 CID、Affiliate、Offer、UTM 和优惠码。

上游广告网络

Destination URL 使用 sub1={cid},让上游把 sub1 原样回传。

三种回传方式怎么选择

Offer Tracking 和 Postback 真实页面截图
S2S、Pixel 和 Connector 都能创建转化,但稳定性、部署成本和适用场景不同。生产环境优先使用 S2S 或 Connector。
方式适合场景优点注意事项
S2S Postback广告主有开发能力,或上游网络支持 server callback。稳定、可传金额和状态、适合大规模投放。必须保存 CID,密钥和去重要配置正确。
Pixel广告主只能在成功页放代码,无法做服务端开发。部署快,不需要后端改造。受浏览器、广告拦截、Cookie、页面跳转影响,不适合高价值结算。
Storefront ConnectorWooCommerce 或 Shopify 这类店铺订单回传。客户不用写代码,能同步订单、退款、优惠码和商品。必须从 Afftrix tracking link 进入店铺,订单状态触发规则要设置清楚。

广告主 Postback

https://your-domain.com/postback.php?cid={cid}&amount=99.00&currency=USD&status=approved

最推荐带回 cid。如果没有 CID,可以用 offer_idaffiliate_id、优惠码等辅助归因。

参数是否推荐说明
cid必须优先点击 ID,最准确的归因字段。
amount推荐订单金额,百分比佣金必须传。
currency推荐三位币种,例如 USD。
status推荐approved、pending、rejected、refunded。
order_id / txid推荐订单号或转化唯一 ID,用于去重。
goal可选事件名,例如 signup、sale、install。

排查转化不到账

Conversions 列表排查截图
转化不到账时,先确认 click 和 CID,再检查落地页保存、广告主回传、状态、去重和风控结果。
  1. Affiliate 是否使用 tracking link。
  2. Clicks 是否有点击记录。
  3. 点击记录是否有 CID。
  4. 落地页是否收到 CID。
  5. 广告主回传是否带 CID 或有效 Offer/Affiliate。
  6. Conversion 是否被风控置为 held、blocked 或 rejected。

上线前追踪验证

  1. 用验证用 Affiliate 复制 tracking link。
  2. 在无痕窗口打开链接,确认页面跳到正确落地页。
  3. 后台 Clicks 检查是否有点击记录。
  4. 查看点击详情,确认 offer、affiliate、cid、country、device 都有值。
  5. 在广告主网站完成验证注册或订单。
  6. 触发 S2S、Pixel 或 Connector 回传。
  7. 后台 Conversions 检查状态、金额、payout、revenue。
  8. 如果配置 Affiliate Postback,检查 Postback Logs 是否 HTTP 200。

Postback testing

Postback 发送设置与测试

Postback 测试要分清方向:广告主回传到 Afftrix、Afftrix 回传给 Affiliate,以及真实投放闭环。完整验证应该覆盖 CID 生成、宏替换、回传接收、转化创建、质量核减、Affiliate Postback 和日志排查。

适合广告主技术、Affiliate、AM 和支持排查 Advertiser -> Afftrix / Afftrix -> Affiliate 从 Send test 到真实转化闭环

先分清三种 Postback 测试

测试场景方向验证重点不会影响
广告主测试广告主平台 -> Afftrix广告主是否能保存 Afftrix CID,并把转化回传到 /postback.php验证数据会标记为验证记录,不影响真实余额。
联盟用户测试Afftrix -> Affiliate 系统Afftrix 是否能按 Affiliate 设置的 URL 发送回传,Affiliate 接收端是否返回成功。Send test 只发送样例请求,不创建真实转化。
真实完整测试Affiliate 点击 -> 广告主回传 -> Afftrix 入账 -> Affiliate 回传最接近上线流量,验证点击、CID、转化、质量核减、佣金和回调全链路。建议使用验证 Offer、验证 Affiliate 和小金额订单。

最标准的一句话流程是:广告主测试时,我们生成 /sotl 测试链接发给广告主,让广告主回传给我们;联盟用户测试时,Affiliate 提供接收地址,我们在 Afftrix 点 Send test 发给他;完整测试时,Affiliate 点击 Offer,广告主回传,Afftrix 入账,再回传给 Affiliate。

广告主回传设置与测试

广告主回传是广告主平台通知 Afftrix:“这个点击产生了转化”。生产环境必须使用追踪域名,不要把后台域名发给广告主。

给广告主的 Postback 地址模板

{click_id}{payout}{transaction_id} 换成广告主平台自己的宏。最重要的是 cid,广告主必须把点击时收到的 Afftrix CID 原样回传回来。

https://your-tracking-domain.com/postback.php?cid={click_id}&amount={payout}&status=approved&txid={transaction_id}

如果 Offer 开启了回传密钥校验,需要追加密钥参数:

https://your-tracking-domain.com/postback.php?cid={click_id}&amount={payout}&status=approved&txid={transaction_id}&key=POSTBACK_SECRET
Advertiser Postback setup annotated screenshot
Advertiser Postback 设置:先确认追踪域名,再把广告主点击宏替换成 Afftrix 的 {cid},最后把 Postback URL 发给广告主 AM 并在日志里验证。

广告主给测试推广链接时怎么处理

广告主 AM 可能会给一个他们平台的测试链接:

https://advertiser.example.test/tl?a=1812&o=7912&aff_click_id={AFF_CLICK_ID}&sub_affid={SUB_AFFID}

在 Afftrix 生成测试链接时,把广告主宏替换成 Afftrix 宏:

https://advertiser.example.test/tl?a=1812&o=7912&aff_click_id={cid}&sub_affid={affid}
  1. 先把 Afftrix 的 Postback 地址发给广告主 AM。
  2. 让广告主 AM 提供他们平台的测试推广链接和宏说明。
  3. 在 Afftrix 中用 {cid} 替换广告主点击 ID 宏,用 {affid} 替换联盟用户宏。
  4. 生成测试 Offer 链接。Afftrix 会使用隐藏的测试 Affiliate 和测试 Offer 生成正常追踪链接。
  5. 把生成的测试链接发给广告主 AM,例如 https://trk.example.com/sotl?a=TEST_AFFILIATE_ID&o=TEST_OFFER_ID
  6. 广告主 AM 点击该链接或放进他们平台测试。
  7. 广告主平台拿到 Afftrix 传过去的 CID 后,向 /postback.php 发回传。

测试完成后,在 Afftrix 检查这些位置:

  • 后台 -> Advertiser Postback Logs。
  • 后台 -> Postback Debugger。
  • 后台 -> 广告主详情 / Postback 测试区域。
  • 成功时应看到验证点击、验证回传或验证转化,且标记为验证数据。
不要只用 URL Tester 代替广告主测试

/admin/postback-url-tester 可以测试 Afftrix 接收地址能不能处理参数,但它不能证明广告主平台已经保存了我们的 CID。真正的广告主联调必须让广告主先通过测试链接拿到 CID,再由广告主平台发回传。

联盟用户回传设置与 Send test

联盟用户回传是 Afftrix 把转化通知发送给 Affiliate 自己的系统。管理员可以帮联盟用户配置,联盟用户也可以在自己的后台配置。

入口适合谁说明
联盟用户后台 -> Postbacks & PixelsAffiliate 自助配置Affiliate 自己添加 Global Postback、Offer Postback 或 Pixel。
后台 -> Affiliates -> 选择联盟用户 -> Postbacks平台管理员 / AM管理员帮 Affiliate 配置、测试和查看日志。
后台 -> Postback Debugger技术支持按 CID、test_run_id 或测试字段排查发送结果。

推荐联盟用户填写 Server Postback:

https://affiliate-system.example.com/postback?cid={cid}&amount={amount}&status={status}&country={country}&affid={affid}&offer={offerid}&txid={txid}&s1={s1}
Affiliate Postback Send test annotated screenshot
Affiliate Postback 设置:填写 Affiliate 接收地址,选择 Server Postback 和触发状态,使用 Send test 发送验证请求,再查看 HTTP 状态和响应。

Global Postback 和 Offer Postback

Global Postback

默认用于所有 Offer,适合 Affiliate 有统一接收地址。

Offer Postback

只对某个 Offer 生效,优先级高于 Global Postback。

触发状态

推荐先选 Approved。只有有效转化才通知 Affiliate,减少无效回调。

发送类型

生产环境优先 Server Postback;Image、Iframe、JavaScript Pixel 适合特殊场景。

Send test 操作流程

  1. 进入 Affiliate 的 Postbacks & Pixels 页面,新增 Global Postback 或 Offer Postback。
  2. 填写接收地址,例如上面的推荐模板。
  3. 选择触发状态,常用 Approved
  4. 点击 Send test。
  5. 填写验证数据:CID、Amount、Status、Country、Offer ID、Transaction ID。
  6. 发送后检查 Affiliate Postback Logs 或 Postback Debugger。
CID: test-cid-xxxx
Amount: 1.00
Status: approved
Country: US
Offer ID: 1001
Transaction ID: test-txid-xxxx

Send test 只会发送样例请求并写入验证记录,不会创建真实转化,也不会修改 Affiliate 余额。

真实完整测试流程

Affiliate 点击 Offer Afftrix 生成 CID 广告主保存 CID 广告主回传 Afftrix 创建 Conversion 质量核减判断 触发 Affiliate Postback 检查余额和日志
  1. 创建真实 Offer,Destination URL 中把广告主点击宏替换成 {cid}
  2. 给 Affiliate 分配 Offer,Affiliate 复制追踪链接。
  3. 点击追踪链接,例如 https://trk.example.com/sotl?a=10001&o=30001
  4. Afftrix 生成 CID,并跳转到广告主页面。
  5. 广告主平台保存 CID。
  6. 广告主转化后回传:https://trk.example.com/postback.php?cid=REAL_CID&amount=10.00&status=approved&txid=order123
  7. Afftrix 创建转化、计算收入和佣金,并执行质量核减与状态规则。
  8. 如果没有被质量核减,且 Affiliate 设置了符合触发条件的 Postback,Afftrix 再通知 Affiliate。
Postback Debugger chain result annotated screenshot
Postback Debugger 按同一个 CID 检查 Click、Advertiser Postback、Conversion 和 Affiliate Postback。链路断在哪一环,就优先修哪一环。

最后检查:Clicks、Conversions、Advertiser Postback Logs、Affiliate Postback Logs、Postback Debugger 和 Affiliate Balance。

1. 从验证用 Affiliate 生成真实点击

必须从 Affiliate 的 tracking link 进入落地页。只有这样 Afftrix 才会记录 Click 并生成 CID。

https://link.example.com/click?offer_id=1001&aff_id=2001&s1=postback-verify
  1. 打开无痕窗口,访问上面的 tracking link。
  2. 确认浏览器跳转到广告主落地页。
  3. 检查最终 URL 是否包含 cid
  4. 在后台 Clicks 或实时日志里找到本次点击记录。
不要直接用广告主落地页验证

直接打开 https://shop.example.com 不会产生 Afftrix click,也不会有 CID。后面即使回传成功,也可能无法正确归因给 Affiliate。

2. 确认广告主保存 CID

广告主必须把落地页 URL 上的 cid 保存到订单、用户、Lead 或 Session 中。真实转化发生时,再从订单或用户记录里取出 CID 回传。

广告主系统推荐保存位置检查方法
普通注册网站Cookie + hidden input + user/lead 表字段。提交表单后检查后台 lead 记录是否有 CID。
WooCommerceAfftrix Connector 自动保存到订单 meta。插件 Debug / order meta / Connector logs 检查 CID。
ShopifyApp Pixel / customer events / order note attributes。订单详情或 webhook payload 是否包含 CID。
CRMLead 自定义字段。销售转化时能否从 Lead 查到 CID。
上游广告网络sub1={cid} 或上游指定 click 参数。上游点击日志里是否能看到 Afftrix CID。

3. 做一次接口连通验证

从 Click 日志复制真实 CID,然后请求 Postback URL。接口连通验证建议使用小金额和明显的验证订单号。

curl "https://afftrix.example.com/postback.php?cid=CLICK_ID&amount=100.00&currency=USD&status=approved&order_id=TEST-POSTBACK-10001"
返回含义下一步
200 / success接口接受了请求。进入 Conversions 检查是否生成转化。
401 / 403密钥、签名或权限错误。检查 postback secret、API key、广告主状态。
404URL 或路由错误。确认使用的是当前安装域名和正确 postback path。
409重复订单或重复去重键。更换 order_id 或确认重复保护是否正常。
422参数缺失或格式错误。检查 cid、amount、currency、status、order_id。

4. 在 Conversions 验证接口验证结果

Conversions list for validating Postback results
接口返回成功后,还要在 Conversions 列表确认转化真的创建,并且金额、状态、Affiliate 和 Offer 都正确。
  • Conversion 是否命中刚才的 order_id
  • Affiliate 是否来自刚才点击的 Affiliate。
  • Offer 是否是本次验证 Offer。
  • Amount、Currency、Status 是否等于回传参数。
  • Revenue、Payout、Profit 是否符合 Offer pricing。
  • 如果启用 Affiliate Postback,是否发送成功。

5. 做真实业务闭环验证

接口连通验证通过后,还要走真实业务流程。这里以 WooCommerce 订单为例,S2S 注册或普通订单也可以按同样逻辑验证。

  1. 清理浏览器 Cookie,打开无痕窗口。
  2. 访问验证用 Affiliate 的 tracking link。
  3. 确认最终进入广告主商品页,并且地址栏带有 CID。
  4. 把商品加入购物车并完成验证付款。
  5. 等待订单状态到达插件或广告主配置的触发状态,例如 paid、processing、completed。
  6. 检查 Connector Logs、Server Postback Logs 或 Pixel 日志。
  7. 进入 Conversions,核对金额、状态和佣金。
  8. 把同一个订单状态重复触发一次,确认不会重复记佣金。
  9. 做一次退款或取消订单验证,确认系统按规则撤销或调整转化。

6. 生产环境参数模板

正式给广告主技术对接时,建议只提供一条清晰模板。模板里的宏必须换成广告主平台自己的宏,不要把 {cid} 原样发给广告主,除非广告主平台的宏本来就叫 {cid}

https://your-tracking-domain.com/postback.php?cid={click_id}&amount={payout}&status=approved&txid={transaction_id}&currency={currency}&key=POSTBACK_SECRET
参数生产要求常见别名
cid必填。必须等于 Afftrix 点击时传给广告主的 CID。click_idclickid
amount可选。广告主收入或订单金额,按 Offer 计费规则使用。revenuepayout
status可选。推荐 approved、pending、rejected、refunded。conversion_statusstate
txid推荐。广告主订单号或交易号,用于去重和支持排查。transaction_idorder_id
currency可选。三位币种代码,例如 USD、EUR、CNY。currency_codecurr
country可选。两位国家码,用于报表和风控。country_code
device可选。设备类型,用于报表和规则。-
goal可选。转化目标,例如 signup、lead、purchase。-
key启用回传密钥时必填。填错会被拒绝。tokensecret_key

最重要的是 cid。如果广告主没有把点击时收到的 CID 原样回传回来,系统通常会返回 click not found,转化无法正确归因。

7. 常见失败场景

现象 / 返回最可能原因处理方法
success / ok回传成功,转化已创建或已按规则处理。到 Conversions、Advertiser Postback Logs 和 Postback Debugger 核对。
duplicate同一 txidorder_id 或 dedup key 已处理。确认是否广告主重复发送;正常重复不应再次入账。
click_not_foundCID 不对,广告主没有把点击时的 CID 原样回传。检查 Destination URL 宏替换、广告主点击日志和回传参数。
invalid_keyOffer 开启了密钥校验,但广告主没有传 key 或 key 错误。重新复制 Postback secret,确认参数名和值都正确。
invalid_request参数格式不对,例如金额不是数字、国家码不规范、状态不支持。按字段表修正 cid、amount、status、currency、country。
Postback 返回成功,但后台没转化请求没有命中当前安装环境、被去重、CID 无效或状态被规则过滤。查 Server Postback Logs、Conversions、Click ID 和去重键。
有转化但 Affiliate 错了广告主没有回传 CID,系统用了错误 fallback。修复 CID 保存,不建议给无 CID 订单默认 Affiliate。
金额不对广告主传了税前/税后/折扣前金额,或币种错误。和广告主确认订单金额口径,并统一 amount 字段。
重复佣金订单 webhook 多次触发,没有 order_id 或 dedup_key。强制传唯一 order_id,并启用去重规则。
退款后佣金还在广告主没有回传 refunded/cancelled 状态。增加退款 webhook 或人工导入退款事件。
Affiliate Postback 没收到Conversion 创建了,但 Affiliate 回调 URL 失败。查 Affiliate Postback Logs,确认对方返回 HTTP 200。

8. 上线验收清单

  • 验证用 Affiliate 链接能生成 click 和 CID。
  • 广告主页面能保存 CID 到订单或用户记录。
  • Postback URL 使用生产域名,不是本地或验证域名。
  • 密钥、签名、白名单或 Connector Key 正确。
  • 真实订单能创建 conversion。
  • 重复订单不会重复记佣金。
  • 退款或取消订单能同步。
  • Affiliate Postback 如启用,能收到 conversion。
  • Conversions、Reports、Payments 三处金额口径一致。

Developer API

API 接口文档

Afftrix 提供 Affiliate API、Advertiser API、Integration API 和 Postback / Pixel 对接能力。本文适合开发者按接口、字段、筛选、错误码和验证流程逐项对接。

适合技术人员 接口与字段说明

从哪里获取 API 资料

Integrations 页面用于获取 Connector Key 和下载插件
Integrations 页面提供 Connector Key、WordPress 插件下载和店铺对接入口。正式对接时,每个广告主或店铺应使用独立 key。
资料位置用途
Base URL客户安装域名所有 API 请求的基础地址。
Affiliate TokenAffiliate 用户中心或后台账号设置查询 Affiliate 自己的 Offer、点击、转化和付款。
Advertiser API Key广告主资料或广告主设置广告主查询自己的转化、报表和回传日志。
Connector KeyAdmin > IntegrationsWooCommerce、Shopify、CRM 或外部系统回传订单。
Postback URLOffer Tracking / Advertiser Postback广告主服务器在转化发生后通知 Afftrix。

接口约定

项目说明示例
Base URL使用客户自己的 Afftrix 安装域名。https://afftrix.example.com
Content TypePOST / PUT 请求建议使用 JSON。Content-Type: application/json
时间日期筛选建议使用站点时区,响应时间字段建议按 ISO 或后台显示时区理解。2026-06-14
分页列表接口使用 pageper_page?page=1&per_page=50
金额金额字段保留小数,币种使用三位代码。128.50 USD

认证方式

接口类型推荐 Header用途
Affiliate APIAuthorization: Bearer YOUR_AFFILIATE_TOKENAffiliate 查看 Offer、点击、转化、付款和配置 Postback。
Advertiser APIX-Afftrix-Api-Key: YOUR_ADVERTISER_TOKEN广告主查看自己的 Offer、转化、报表和 Postback 日志。
Integration APIX-Afftrix-Integration-Key: YOUR_CONNECTOR_KEYWooCommerce / Shopify / 外部系统回传订单或事件。

为了安全,生产环境不建议把 API Key 放在 URL 查询参数里。Connector Key 应该为每个广告主或店铺单独生成,泄露后只禁用该店铺的 key。

响应、分页和错误码

{
  "success": true,
  "data": [],
  "meta": {
    "page": 1,
    "per_page": 50,
    "total": 128
  }
}
状态码含义常见原因
200成功请求已处理。
401未认证缺少 API Key、Key 错误或 Header 名称不对。
403无权限Key 被禁用、角色无权限或接口未开放。
404未找到资源不存在,或当前账号无权访问该资源。
409重复请求转化 dedup_key 或订单号已处理。
422参数错误字段缺失、金额格式错误、状态值不支持。
429频率限制短时间请求过多。
500服务异常服务器错误,需要查看日志。

Affiliate API

基础路径:/api/affiliate/v1。Affiliate 只能读取和操作自己的数据。

方法路径说明
GET/me当前 Affiliate 信息、状态、余额和基础设置。
GET/manager当前 Affiliate 对接 AM 信息。
GET/dictionaries国家、设备、分类、Offer 类型等字典。
GET/offers可推广 Offer 列表。
GET/offers/{offer}Offer 详情、规则、素材、tracking link 信息。
POST/offers/{offer}/apply申请私有或需审核 Offer 的访问权限。
GET/clicks点击记录。
GET/conversions转化记录。
GET/reports/daily按天汇总点击、转化、收入、佣金。
GET/postbacksAffiliate Postback 列表。
POST/postbacks创建 Postback。
PUT/postbacks/{postback}更新 Postback。
DELETE/postbacks/{postback}删除 Postback。
POST/postbacks/test发送验证 Postback。
GET/postbacks/logs查看 Postback 发送日志。
GET/payments付款列表。

Offer 列表筛选

Offer 列表接口适合 Affiliate 同步可推广项目,也适合第三方工具做 Offer feed。

curl -H "Authorization: Bearer YOUR_AFFILIATE_TOKEN" \
  "https://afftrix.example.com/api/affiliate/v1/offers?status=active&country=US&per_page=50"
参数说明示例
q关键词搜索。?q=loan
statusOffer 状态。active
typeOffer 类型。cpacps
country国家筛选。USGB
device设备筛选。mobiledesktop
category分类筛选。ecommerce
privacy访问权限。publicrequires_approval
page页码。1
per_page每页数量。50

Advertiser API

基础路径:/api/advertiser/v1。广告主只能读取自己名下 Offer、转化、报表和 Postback 信息。

方法路径说明
GET/me当前广告主信息。
GET/offers广告主自己的 Offer 列表。
GET/conversions广告主自己的转化列表。
GET/reports/daily广告主日报。
GET/postbacksPostback 配置说明。
GET/postbacks/logs广告主回传日志。
curl -H "X-Afftrix-Api-Key: YOUR_ADVERTISER_TOKEN" \
  "https://afftrix.example.com/api/advertiser/v1/conversions?from=2026-06-01&until=2026-06-14"

Integration API

基础路径:/api/integration/v1。用于店铺插件、CRM、支付系统或第三方系统把订单和转化回传到 Afftrix。

方法路径说明
GET / POST/test验证 Connector Key 是否有效。
POST/conversions创建或更新转化。
{
  "source": "woocommerce",
  "event": "order_completed",
  "dedup_key": "woocommerce:10001:order_completed",
  "order_id": "10001",
  "amount": 128.50,
  "currency": "USD",
  "status": "approved",
  "cid": "CLICK_ID_FROM_LANDING_PAGE",
  "coupon_code": "MIKE10"
}
字段是否必填说明
source推荐来源系统,例如 woocommerceshopifycrm
event必填事件名,例如 order_createdorder_paidorder_completedrefunded
dedup_key强烈推荐去重键,避免 webhook 重复触发造成重复佣金。
order_id推荐店铺订单 ID。
amount推荐订单金额或转化收入。
currency推荐三位币种,例如 USD。
status推荐pending、approved、rejected、refunded、cancelled。
cid有点击时必填从落地页保存的点击 ID。
coupon_code可选用于优惠码归因。
customer_email_hash可选客户邮箱哈希,不建议传明文邮箱。
products可选商品 ID、SKU、数量、金额,用于商品级报表或 Offer 映射。
meta可选扩展字段,例如 store URL、payment gateway、UTM。

去重和状态映射

WooCommerce、Shopify 和支付 webhook 可能多次触发,同一个订单可能出现 created、paid、completed、refunded 多个事件。生产环境必须配置去重规则。

推荐去重键

source:order_id:event,例如 woocommerce:10001:order_completed

订单完成

映射为 approved,计算 revenue 和 payout。

待审核

映射为 pendingheld,等待人工审核。

退款取消

映射为 refundedcancelled,根据规则撤销或调整佣金。

开发者验证流程

  1. 创建验证用 Affiliate、Advertiser 和 Offer。
  2. 复制 Affiliate tracking link,在浏览器打开并确认跳转正常。
  3. 在 Clicks 页面确认产生点击和 CID。
  4. 让广告主页面或验证工具保存 CID。
  5. 调用 Postback 或 Integration API 创建验证转化。
  6. 在 Conversions 检查归因、状态、金额、payout、revenue。
  7. 如配置 Affiliate Postback,在 Affiliate Postback Logs 检查 HTTP status、response 和发送时间。
  8. 验证退款、取消、重复请求和无 CID 场景。

安全和上线建议

  • 不同广告主、店铺、插件使用独立 key,不共享全局 key。
  • API Key 只在服务端保存,不写入前端页面。
  • 日志中隐藏 key、邮箱、手机号、支付账号等敏感字段。
  • 生产环境只使用 HTTPS。
  • 对高频接口启用频率限制。
  • 上线前必须验证 200、401、403、422、409、500 等结果。
  • 正式上线时同时提供接口域名、验证 key、验证用 Offer、验证 Postback URL 和排查日志入口。

WooCommerce

WordPress / WooCommerce Connector

Connector 是给广告主或商家安装的 WordPress / WooCommerce 插件,用于保存追踪参数、优惠码和订单信息,并自动把订单转化回传到 Afftrix。

适合商家和技术人员 订单回传插件

插件对接流程

WooCommerce Connector 集成设置截图
从 Afftrix 后台生成专属插件包,商家安装后完成连接验证,再通过真实验证订单验证回传。

标准流程

  1. 平台后台创建 Advertiser。
  2. 后台创建 Offer,落地页填写广告主 WooCommerce 店铺页面。
  3. 后台设置 Offer 佣金规则。
  4. 后台生成 WordPress Connector 下载包。
  5. 广告主安装插件并验证连接。
  6. 用户点击 Affiliate 链接进入店铺。
  7. 插件保存 CID、Affiliate、Offer、UTM 等参数。
  8. 订单完成后插件回传到 Afftrix。

后台如何生成插件包

  1. 进入后台 Settings Center → Integrations
  2. 点击 Generate WordPress Connector。
  3. 选择 Advertiser。
  4. 选择 Default Offer。
  5. 如需要,可选择默认 Affiliate、优惠码映射或商品映射。
  6. 下载生成的 zip 包,发送给广告主或商家。

专属插件包会自动写入 Afftrix Site URL、Connector Key、Default Offer ID 和 Default Advertiser ID。这样商家安装后不用手动复制复杂 key。

配置项

配置是否必填说明
Afftrix Site URL必填Afftrix 程序地址。
API Key必填后台生成的 connector key。
Tracking Domain可选自定义追踪或重定向域名备注。
Default Offer ID自动写入专属插件包会自动填入。
Default Advertiser ID自动写入专属插件包会自动填入。

商家在 WordPress 里怎么安装

  1. 登录 WordPress 后台。
  2. 进入 Plugins → Add New → Upload Plugin。
  3. 上传 Afftrix Connector zip 包并启用。
  4. 进入 Afftrix Connector 设置页。
  5. 确认 Afftrix Site URL 和 API Key 已经自动填好。
  6. 点击 Save and verify connection。
  7. 连接成功后,不要只停在这里,还必须做一笔 WooCommerce 验证订单。

必须验证真实订单

  1. 在 Afftrix 创建验证用 Affiliate,并复制该 Offer 的 tracking link。
  2. 用无痕窗口打开 tracking link,进入 WooCommerce 商品页。
  3. 加入购物车并完成一笔验证订单。
  4. 在 WordPress 插件日志中检查是否捕获 cid、order_id、amount、currency。
  5. 回到 Afftrix 后台 Conversions,确认生成转化。
  6. 检查 payout、revenue、profit 是否正确。
  7. 如果订单取消或退款,验证是否能回传 refunded / cancelled。

优惠码归因

优惠码适合电商场景。例如 MIKE10 绑定 Affiliate Mike。用户没有点击联盟链接,但结账用了专属优惠码,也可以归因。

推荐归因顺序

CID 归因优先,其次优惠码归因,再其次 UTM / referrer 辅助归因,最后标记为未归因。

License activation

CodeCanyon 授权与激活

Afftrix 生产环境安装需要完成授权激活。客户可以使用 Afftrix License Key,也可以使用 CodeCanyon Purchase Code。CodeCanyon Purchase Code 会提交给授权中心,由授权中心通过 Envato 验证购买者,然后返回本地安装使用的激活令牌。

适合部署人员和平台管理员 入口:安装向导 / License & Updates 生产环境必做

先分清三种码

名称在哪里使用用途不要混淆
CodeCanyon Purchase Code安装向导或后台 License & Updates证明客户在 CodeCanyon / Envato 已购买,授权中心会通过 Envato 验证。不是 API Key,也不是 Connector Key。
Afftrix License Key安装向导或后台 License & Updates由 Afftrix License Center 生成的授权密钥,适合服务商直接发放。和 CodeCanyon Purchase Code 二选一即可。
Activation Token系统加密保存。激活成功后由授权中心返回,Afftrix 本地加密保存,用于后续验证。用户不需要手动复制,也不要写进工单。

什么时候必须激活

  • 生产环境必须使用 License Key 或 CodeCanyon Purchase Code 激活,否则受保护的后台工具可能无法使用。
  • 非生产开发地址可以跳过激活,但仍建议验证一遍授权流程,避免正式上线时卡住。
  • 授权中心地址由程序包或环境变量配置,客户一般只需要填写授权凭据,不需要填写 License Center URL。
  • 生产环境必须有可用的授权中心端点,并且远程授权中心 URL 必须使用 HTTPS。
  • 程序包需要包含 config/afftrix-license-public.pem,或配置 AFFTRIX_LICENSE_PUBLIC_KEY,用于验证签名授权载荷。

客户从哪里拿 Purchase Code

  1. 客户登录购买 Afftrix 的 Envato / CodeCanyon 账号。
  2. 进入 Downloads / Buyer downloads 页面。
  3. 找到 Afftrix 产品。
  4. 下载 License Certificate,或点击对应入口查看 Purchase Code。
  5. 复制形如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 的 CodeCanyon Purchase Code。
  6. 不要截图发送完整购买码;如果需要支持排查,只提供前后几位并隐藏中间字符。

安装向导里怎么填

  1. 完成 Welcome、Environment Check、Configuration、Database 步骤。
  2. 进入 Admin / License activation 区块,先创建超级管理员账号。
  3. 在激活方式中选择 CodeCanyon Purchase Code
  4. 把客户提供的购买码填入 CodeCanyon purchase code 字段。
  5. 确认页面里的 Trusted license endpoints 已显示授权中心地址;如果显示未配置,需要先在服务器环境变量里配置 AFFTRIX_LICENSE_CENTER_URLS
  6. 点击 Install Afftrix。系统会把购买码发送给授权中心,授权中心验证通过后返回本地激活令牌。
  7. 安装完成后进入后台,打开 License & Updates 检查 License Status 是否 active / verified。
安装失败时先看两件事

第一,当前 APP URL 是否是生产域名;第二,授权中心端点是否配置并可访问。生产域名下没有凭据或没有授权中心,安装器会阻止继续。

安装后在后台重新激活

如果安装时跳过了非生产开发地址激活,或后续才提供 Purchase Code,可以在后台补做。

  1. 使用超级管理员登录后台。
  2. 进入 Settings / License & Updates,或在后台搜索 License & Updates
  3. License & Authorization 区域选择 CodeCanyon Purchase Code
  4. 填写购买码,点击 Activate Installation
  5. 成功后系统会提示此安装已通过 CodeCanyon purchase code 关联。
  6. 点击 Verify Connection,确认授权中心能验证当前安装。
  7. 检查页面上的 Authorization Checklist:Connect to License Server、Validate Credential、Activate Installation、Verify Entitlement 都应完成。

字段和按钮说明

字段 / 按钮说明异常时怎么处理
Activation method选择 Afftrix License KeyCodeCanyon Purchase Code选择 Purchase Code 时不要把值填到 License Key 字段。
CodeCanyon purchase codeEnvato 买家下载页里的购买码。格式错误时先确认是否复制了证书全文、空格或换行。
Trusted license endpoints当前程序包信任的授权中心地址。为空时配置 AFFTRIX_LICENSE_CENTER_URLS,远程地址必须是 HTTPS。
Activate Installation向授权中心提交凭据并请求激活令牌。失败时复制错误信息,检查购买码、授权中心网络和当前域名。
Verify Connection用已保存的激活令牌重新验证当前安装。授权中心临时不可达时,系统可能使用上次可信授权宽限期;仍应尽快恢复网络。
Clear local activation token清除本地保存的激活令牌和缓存授权数据。只有迁移、重装、换授权或技术支持要求时使用,操作前先确认影响。

上线验收清单

  • 生产环境 APP URL 已经是最终域名,不是 localhost、临时 IP 或验证域名。
  • AFFTRIX_LICENSE_CENTER_URLS 已配置,后台能看到 Trusted license endpoints。
  • 远程授权中心 URL 使用 HTTPS,本地开发环境才允许 HTTP。
  • 购买码或 License Key 已激活,License Status 显示 active / verified。
  • 后台 License & Updates 的 Verify Connection 可以成功。
  • 授权码、购买码、License Key 和 Activation Token 没有出现在公开截图、工单正文、聊天记录或文档里。
  • 上线记录只写“已完成授权验证”和隐藏中间字符后的码段,不保存完整凭据。

常见问题

现象可能原因处理方式
提示没有授权中心端点服务器没有配置 AFFTRIX_LICENSE_CENTER_URLS在环境变量或 .env 中配置授权中心地址,清缓存后重试。
提示生产环境必须激活当前 URL 被识别为生产域名,但没有填写 License Key 或 Purchase Code。填写授权凭据,或确认当前是否只是非生产开发地址。
CodeCanyon 购买码被拒绝购买码复制错误、购买账号不匹配、授权中心无法通过 Envato 验证。重新从买家下载页复制;必要时只提供隐藏中间字符后的码段给技术支持核查。
Verify Connection 失败授权中心网络不可达、HTTPS 证书问题、服务器时间错误或本地令牌失效。先检查网络和证书,再重新激活;迁移服务器后必要时联系技术支持重置。
后台工具被锁定授权未激活、授权过期、签名公钥缺失或本地授权数据不可信。打开 License & Updates 查看 Security warning 和 License Status,再按提示处理。

Installation

通用安装流程

正式部署应从域名解析开始,再完成服务器环境、HTTPS、数据库、安装向导、队列和上线前系统检查。

适合部署人员 生产环境上线

安装流程总览

Afftrix 安装向导欢迎页
Welcome 页面是新安装时看到的真实入口。
Afftrix 安装向导环境检查
环境检查页面会列出 PHP、扩展、目录权限、数据库驱动、队列和 Cron 状态。
Afftrix 安装向导配置
配置页面会写入公开 URL、后台路径、时区、默认货币和缓存/队列存储方式。

完整部署顺序

正式部署不要直接从浏览器打开 /install 开始。正确顺序应该先把域名、服务器、SSL、数据库和站点目录准备好,再进入安装向导。

  1. 确认客户要使用的主域名,例如 aff.example.com
  2. 在 DNS 服务商添加解析记录,并等待解析生效。
  3. 准备服务器环境:PHP、数据库、扩展、队列、Cron、Redis 或文件缓存。
  4. 在服务器或主机面板中创建站点和空数据库。
  5. 上传程序代码,确认 Web 根目录指向程序的 public 目录;如果虚拟主机固定入口为 public_html,使用 public_html 兼容结构。
  6. 配置 HTTPS 证书,确认主域名可以通过 HTTPS 打开。
  7. 打开 https://your-domain.com/install,按向导完成安装。
  8. 安装后配置 SMTP、队列 worker、scheduler cron、品牌 Logo 和验证闭环。

域名和 DNS 解析

域名解析是部署第一步。客户如果尚未准备域名,需要先在域名服务商购买域名,并把 DNS 指向当前服务器。

记录用途主机记录记录类型记录值说明
后台和主站aff@A服务器公网 IP例如 aff.example.comexample.com
www 访问wwwCNAME主域名可选,用于 www.example.com 跳转。
追踪域名trackA 或 CNAME服务器 IP 或主域名可用于 tracking link、短链、点击跳转。
文档中心docsCNAME主域名或文档服务器可选,用于公开知识库。
DNS 检查

解析刚添加后通常需要几分钟到数小时生效。可以用 ping aff.example.comnslookup aff.example.com 或 DNS 工具确认域名是否解析到正确 IP。安装向导里的 APP URL 必须填写最终生产域名,不要填写临时 IP 或 localhost。

Cloudflare 和 CDN 注意事项

  • 如果使用 Cloudflare,先确认 SSL 模式不要造成循环跳转。生产建议使用 Full 或 Full strict。
  • 追踪域名默认不建议开启 CDN / 橙色云。只有服务器已经正确还原真实访客 IP,并且确认 WAF、缓存和挑战规则不会影响点击与回传时,才考虑给追踪域名开启代理。
  • 后台、API、Postback、Pixel、Connector 接口不要被缓存。
  • 如果 WAF、Bot Fight、JS Challenge 影响 Postback 或 API,可以对 /postback.php/api/*/pixel* 设置跳过规则。
  • 追踪域名如果出现点击丢失,先临时切换为 DNS only 验证,确认问题是否来自 CDN 规则。
  • 不要在 CDN 层强制改写查询参数,cidaff_idoffer_ids1s5 都必须保留。

如果 Cloudflare 开启橙色云代理,还需要按 配置真实访客 IP 还原,否则 GeoIP、访问控制、风控日志和点击来源可能显示为 Cloudflare 代理 IP。

服务器准备

项目最低要求生产建议
PHPPHP 8.3 或更高。启用 OPcache,关闭调试输出;GeoIP 数据库更新需要 PHP-FPM 和 PHP CLI 的 memory_limit 至少 512M
数据库MySQL 或 MariaDB。独立数据库账号,不与其他程序共用。
PHP 扩展必须启用 fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmathredisexifopcache 为推荐扩展;ionCube 加密包还需要 ionCube Loader。
目录权限普通目录 755、普通文件 644storagebootstrap/cache 建议 775 可写。权限只给运行用户,不要整站 777。
缓存/队列文件或数据库队列可运行。中大型客户建议 Redis。
HTTPS非生产开发地址可 HTTP。生产必须 HTTPS,否则回调和登录安全性不足。
内存小型站点 1GB 以上。生产环境建议 2GB 以上,导入、报表和队列任务更稳定。
磁盘程序和日志可写。为日志、导出、附件、备份预留空间。
计划任务可以配置 cron。用于 scheduler、提醒、清理、自动化和状态检查。
PHP 扩展必须提前安装

安装向导会逐项检查 PHP 扩展。缺少任意必装扩展时,不要继续安装;先到服务器面板或命令行启用扩展,重启 PHP-FPM / Web 服务后再刷新环境检查。

扩展是否必需用途
fileinfo必装识别上传文件类型,用于素材、导入文件和附件处理。
mbstring必装处理中文、多语言字段、邮件内容和字符串截取。
openssl必装HTTPS、加密、授权验证、API 签名和安全通信。
pdo_mysql必装连接 MySQL / MariaDB 数据库。
curl必装授权连接、Postback、Offer Health、Offer Source、Webhook 和外部 API 请求。
zip必装处理插件包、导入导出文件和压缩包。
intl必装处理时区、日期、货币、多语言格式和本地化显示。
gd必装处理 Logo、图片、素材缩略图和验证码等图片能力。
bcmath必装处理金额、比例、佣金和高精度数字计算。
redis推荐用于生产环境缓存、队列、任务处理和高并发性能优化;小型环境可先用文件缓存或数据库队列。
exif推荐处理图片元数据,适合素材和图片上传场景。
opcache推荐提升 PHP 生产环境执行性能。
ionCube Loader条件必需只有使用 ionCube 加密安装包时才需要;普通源码包不需要。
PHP CLI 和 pcntl 检查

如果使用 Supervisor、宝塔进程守护、systemd 或类似守护进程运行队列,需要确认网站使用的 PHP CLI 支持 pcntl,并且 PHP 禁用函数里没有禁用 pcntl_signalpcntl_alarmpcntl_async_signals

/path/to/php -r "var_dump(function_exists('pcntl_signal'), function_exists('pcntl_alarm'), function_exists('pcntl_async_signals'));"

三个结果都为 true 时,说明可以使用常驻队列 worker。如果虚拟主机或受限环境无法启用这些函数,可以使用后面的 Cron + --once 队列兼容方案。

上传代码和站点目录

Afftrix 是 PHP 程序,Web 服务器的公开入口必须只暴露程序的 public 内容。标准服务器建议把站点根目录指向程序的 public 目录;如果虚拟主机固定只能使用 public_html,可以把发布包中的 public 目录改名为 public_html。不要把站点根目录指向项目根目录,否则 .env、源码和日志可能被外部访问。

项目正确做法错误做法
代码位置上传到服务器目录,例如 /var/www/afftrix把压缩包直接放在公开下载目录。
站点根目录指向 /var/www/afftrix/public,或在固定入口虚拟主机中使用 public_html 作为原 public 目录。指向 /var/www/afftrix 项目根目录,或把所有程序目录都塞进公开入口。
目录权限普通目录 755、普通文件 644storagebootstrap/cache 建议 775 可写。整站设置 777。
环境文件.env 只在服务器保存,不公开下载。.env 发给第三方或放到公开目录。
更新代码先备份数据库和文件,再覆盖程序文件。直接覆盖并删除用户上传文件。

上传正式安装包时不要漏传隐藏文件,尤其是 .htaccess.env.example。如果面板文件管理器默认隐藏点号开头文件,解压后要单独确认这些文件存在。

固定 public_html 入口结构

部分虚拟主机的域名入口不能改,只能使用账号根目录下的 public_html。这种情况下可以使用下面结构:把原 public 目录改名为 public_html,其他程序目录与 public_html 保持同级。

/home/your_user/bootstrap
/home/your_user/config
/home/your_user/database
/home/your_user/lang
/home/your_user/resources
/home/your_user/routes
/home/your_user/storage
/home/your_user/vendor
/home/your_user/artisan
/home/your_user/public_html

public_html/index.php 会从上一级读取 vendorbootstrap。Cron、队列和安装命令的项目目录应使用 /home/your_user,不要进入 public_html 后再执行 Artisan。

推荐权限

路径推荐权限说明
项目普通目录755让 Web 服务可以进入目录和读取程序文件。
项目普通文件644让 Web 服务可以读取文件,不给不必要的写权限。
storage775日志、缓存、上传、导出和临时文件需要写入。
bootstrap/cache775配置缓存、路由缓存和视图缓存需要写入。
PROJECT_ROOT="/replace/with/afftrix-project-root"
WEB_USER="replace_with_web_user"
WEB_GROUP="replace_with_web_group"

cd "$PROJECT_ROOT"
mkdir -p storage/framework/cache/data storage/framework/sessions storage/framework/views storage/logs bootstrap/cache
touch storage/logs/laravel.log
chown -R "$WEB_USER:$WEB_GROUP" storage bootstrap/cache
find storage bootstrap/cache -type d -exec chmod 775 {} \;
find storage bootstrap/cache -type f -exec chmod 664 {} \;

先把 PROJECT_ROOT 替换为包含 artisanstoragebootstrap 的项目根目录,再把 WEB_USERWEB_GROUP 替换为当前站点实际使用的 PHP / Web 运行用户。aaPanel / 宝塔常见为 www:www,Debian / Ubuntu 常见为 www-data:www-data,但不能直接照抄,必须以服务器或面板显示的实际用户为准。

上面的命令只修改两个运行时目录:目录设为 775,文件设为 664。不要把整个站点递归设置为 775777

安装器提示 storage / bootstrap/cache 不可写

如果 Environment Check 显示 storage/framework/cache/databootstrap/cache/packages.phpbootstrap/cache/services.php 不可写,说明 PHP 运行用户没有写入权限。先按上面的模板修复,再使用站点实际 PHP CLI 执行 php artisan optimize:clear,最后刷新安装器重新检查。

环境处理方式注意事项
aaPanel / 宝塔先在网站设置中确认项目根目录,再确认 PHP-FPM / 网站运行用户;有 Terminal 时执行上面的模板。常见用户是 www,但不同镜像、容器和自定义环境可能不同。
VPS / 独立服务器通过 SSH 确认 Nginx、Apache 或 PHP-FPM 的实际运行用户,然后修正所属用户、目录权限和文件权限。不要把 SSH 登录用户误当成 PHP 运行用户。
cPanel / Plesk / DirectAdmin / 虚拟主机通常不能执行 chown。在文件管理器中只对 storagebootstrap/cache 及其子目录设置可写权限。先使用目录 755、文件 644;仍不可写时再对这两个运行时目录使用目录 775、文件 664。仍失败请联系主机商修正所属用户。
  1. 确认项目根目录是包含 artisan 的目录;固定 public_html 结构下,通常是 public_html 的上一级,不是 public_html 本身。
  2. 确认 storage/framework/cache/datastorage/framework/sessionsstorage/framework/viewsstorage/logsbootstrap/cache 已存在。
  3. 修复后刷新 /install 的 Environment Check,必须不再显示“不可写”。
  4. 如果仍失败,让主机商确认 PHP 进程是否能写入这两个目录;不要使用永久 777 规避所属用户问题。

Nginx / Apache 配置要点

不同服务器面板界面不一样,但核心原则一致:域名绑定到站点,公开入口只暴露 public 内容,PHP 版本选择 8.3 或更高,并开启伪静态。可修改站点目录时指向 public;固定入口虚拟主机使用 public_html 兼容结构。

Nginx

站点 root 指向 public,使用 try_files $uri $uri/ /index.php?$query_string; 让路由交给程序处理。

Apache

DocumentRoot 指向 public,启用 rewrite,并允许 .htaccess 生效。

宝塔 / 面板

网站目录选择程序的 public 文件夹,PHP 版本选择 8.3+,伪静态选择 Laravel 或手动配置。

共享主机

如果入口固定为 public_html,让 public_html 承担原 public 目录角色;同时必须支持 Cron 和队列兼容方案。

Nginx 规则:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

Apache / LiteSpeed 通常使用安装包自带的 public/.htaccess 即可。需要手动填写时,可以参考:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{HTTP:x-xsrf-token} .
    RewriteRule .* - [E=HTTP_X_XSRF_TOKEN:%{HTTP:X-XSRF-Token}]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

HTTPS 和证书

  1. DNS 生效后,为主域名申请 SSL 证书。
  2. 如果使用追踪子域名,也要给追踪域名配置证书。
  3. 强制 HTTP 跳转 HTTPS,但不要造成循环跳转。
  4. 打开 https://your-domain.com,确认浏览器没有证书警告。
  5. 后台 APP_URL、Public site URL、Tracking domain 都应使用 HTTPS。
  6. 如果广告主 Postback 调用失败,检查证书链是否完整,服务器时间是否正确。

数据库准备

安装向导会写入数据库配置并执行迁移。生产环境建议为 Afftrix 单独创建数据库和数据库用户。

字段说明示例
Host数据库主机。127.0.0.1 或数据库内网地址。
Port数据库端口。3306
Database数据库名称。afftrix_prod
Username数据库用户。afftrix_user
Password数据库密码。使用强密码,不要和后台密码相同。
  • 安装前确认数据库为空,避免旧表冲突。
  • 数据库账号只给当前数据库权限,不要使用 root。
  • 字符集建议使用 utf8mb4,避免多语言和特殊字符异常。
  • 迁移失败时不要重复刷新页面,先查看错误信息和服务器日志。

安装步骤

1Welcome

选择语言并开始安装。

2Environment Check

检查 PHP、扩展、目录权限、数据库驱动、队列和 Cron。

3Configuration

填写基础 URL、缓存和队列存储方式。

4Database

填写数据库连接并执行迁移。

5Admin

创建超级管理员账号。

6授权激活

选择 License Key 或 CodeCanyon Purchase Code 完成激活。

步骤具体要填什么注意事项
Welcome选择安装语言。默认语言建议根据客户所在市场选择,后续后台仍可调整。
Environment Check查看 PHP、扩展、目录权限、数据库驱动、队列和 Cron 状态。Pass 才继续;Reminder 项可以安装后补,但生产必须处理。
Configuration填写 APP URL,选择缓存/队列存储方式。域名必须是最终访问域名,不要使用 localhost。
Database数据库 host、port、database、username、password。先用 Test connection,成功后再迁移。
Admin创建超级管理员姓名、邮箱、密码。安装完成后建议启用 2FA 并创建日常员工账号。
授权激活选择 Afftrix License Key 或 CodeCanyon Purchase Code。生产环境必须激活;非生产开发地址可以跳过。详细步骤见

授权码可以填写 Afftrix 授权密钥或 CodeCanyon / Envato 购买码,按购买渠道提供的信息为准。

安装完成页命令优先

安装完成页会显示后台登录地址、计划任务命令、队列 worker 命令,以及虚拟主机可用的备用队列命令。实际部署时应优先复制安装完成页自动生成的命令,不要直接复制教程里的示例命令,因为不同服务器的项目目录、PHP CLI 路径、PHP 版本、主机面板和运行用户都可能不同。

安装授权激活

安装 Afftrix 时需要完成授权激活。生产环境可以使用 Afftrix License Key,也可以使用 CodeCanyon Purchase Code;非生产开发地址可以跳过。完整说明请阅读

  • CodeCanyon Purchase Code 来自 Envato / CodeCanyon 买家下载页。
  • Afftrix License Key 来自 Afftrix License Center 或服务商发放。
  • 授权凭据不要写进公开页面、截图或工单正文;需要排查时只提供前后几位并隐藏中间字符。

缓存和队列

文件存储

适合单机、小型站点和低并发场景,部署简单。

Redis

适合正式生产、数据量大、后台并发和队列任务较多。

上线建议

如果业务预计有大量点击、转化、邮件、postback 或导入任务,建议安装时直接选择 Redis。文件存储适合试运行环境、小站点和低并发场景。

队列 worker 和 Cron

安装向导跑完只是完成初始化,生产环境还必须让后台任务持续运行。邮件、通知、导入、Postback 重试、自动化、清理任务都依赖队列或计划任务。

schedule:runqueue:work 是两个不同命令:schedule:run 负责到时间后安排该做的任务;queue:work 负责真正执行邮件、导入、通知、回调、检查等后台异步任务。正式环境建议两个都配置。

任务作用没有配置会怎样
Queue worker处理邮件、通知、导入、回调、异步任务。任务堆积,邮件不发,重试不执行。
Scheduler cron按分钟触发计划任务。自动化、清理、提醒、健康检查不运行。
日志清理定期清理过旧日志。日志越来越大,磁盘占满。
备份任务定期备份数据库和上传文件。服务器故障后恢复困难。

Cron 配置方式

Laravel Scheduler 只需要服务器 Cron 每分钟触发一次,具体要执行哪些计划任务由程序的 routes/console.php 管理。安装完成页会显示带有真实服务器路径的命令,生产环境优先复制安装完成页里的命令。

* * * * * 是手动编辑 Linux crontab 时使用的时间规则,表示每分钟执行一次。如果使用 aaPanel、宝塔、cPanel、Plesk 这类面板,通常不要把这 5 个星号填进命令框,而是在面板里把周期选择为“每分钟”。

环境设置入口填写方式
aaPanel / 宝塔计划任务 / Cron;如果面板没有显示入口,可先到软件商店或应用商店启用 Cron / 计划任务组件任务类型选 Shell 脚本,周期选每分钟,命令框只填 cd /www/wwwroot/your-domain.com && /www/server/php/83/bin/php artisan schedule:run >> /dev/null 2>&1
cPanel / Plesk / DirectAdminCron Jobs / Scheduled Tasks周期选每分钟,命令框只填安装完成页显示的命令。
SSH 手动配置crontab -e需要填写完整 cron 行,包括前面的 * * * * *

手动 crontab 通用写法:

* * * * * cd /path/to/afftrix && php artisan schedule:run >> /dev/null 2>&1

手动 crontab 如果需要写 PHP 绝对路径:

* * * * * /usr/bin/php /path/to/afftrix/artisan schedule:run >> /dev/null 2>&1

队列 Worker 配置

数据库队列示例:

php artisan queue:work database --queue=default,emails,imports,checks,postbacks --sleep=3 --tries=3 --timeout=120

Redis 队列示例:

php artisan queue:work redis --queue=default,emails,imports,checks,postbacks --sleep=3 --tries=3 --timeout=120

修改代码或部署新版本后,重启队列:

php artisan queue:restart

aaPanel / 宝塔建议在软件商店或应用商店安装 Supervisor / Supervisor Manager / Supervisor 管理器,把 queue worker 添加为常驻进程。进程命令填写上面的 queue worker 命令,运行目录填写 Afftrix 项目根目录,例如 /www/wwwroot/your-domain.com,进程用户建议使用 Web 服务用户,例如 www。如果不用面板应用,也可以手动安装 Supervisor 或 systemd;关键是必须常驻运行,不能只执行一次。

宝塔进程守护字段建议
名称afftrix-queue
启动用户网站运行用户,例如 www
运行目录Afftrix 项目根目录,例如 /www/wwwroot/your-domain.com
启动命令安装完成页生成的队列 worker 命令。
进程数量先设置 1,流量变大后再增加。

如果启动失败并看到 Call to undefined function pcntl_signal(),说明当前 PHP CLI 没有开启 pcntl,或相关函数被禁用。请在 PHP 禁用函数里移除 pcntl_signalpcntl_alarmpcntl_async_signals,重启 PHP 后再试。

虚拟主机队列兼容方案

如果服务器是虚拟主机,或不能使用 Supervisor / 进程守护,可以使用 Cron + --once。这个方案每次只处理一个队列任务然后退出,更适合权限受限环境。

cd /path/to/afftrix && /path/to/php artisan queue:work database --queue=default,emails,imports,checks,postbacks --once --tries=3 --timeout=120 >> /dev/null 2>&1

执行周期同样建议每 1 分钟一次。真实命令以安装完成页生成的“虚拟主机备用队列命令”为准。

Scheduler 会触发哪些任务

计划任务频率用途
system-health:heartbeat每 5 分钟写入 scheduler 心跳,后台用于检测 Cron 是否正常。
offers:sync-sources每 5 分钟同步 Offer Source 导入任务。
notifications:send-affiliate-conversion-digests每 15 分钟发送 Affiliate 转化摘要。
automation:run每 15 分钟执行自动化规则。
intelligence:refresh每 30 分钟刷新 Action Center / Intelligence 数据。
reports:sync-*每 30 分钟 / 每日生成报表聚合数据。
profit-guard:warm-cache每 30 分钟预热 Profit Guard 风控缓存。
offers:check-links每小时检测 Offer 链接健康状态。
geoip:update每日 03:20更新 GeoIP 数据;需要 MaxMind Account ID / License Key,且 PHP 内存限制建议至少 512M
上线标准

部署完成后不要只看页面能打开。必须确认队列 worker 正在运行,scheduler cron 能按分钟触发,并且后台没有持续增长的 failed jobs。

安装完成后必须检查

  1. 登录后台,确认 Dashboard 能打开。
  2. 进入 Settings Center,设置平台名称、Logo、Public site URL 和支持邮箱。
  3. 进入 Mail & SMTP,发送一封验证邮件。
  4. 进入 Tracking & GeoIP,确认 GeoIP 可用;如果 Offer 有国家限制,配置住宅代理并通过代理连通性检测。
  5. 创建一个 Advertiser、Affiliate 和验证用 Offer。
  6. 打开 tracking link,确认 Clicks 里生成点击记录。
  7. 用 S2S 或 Connector 回传验证转化,确认 Conversions 里有记录。
  8. 配置队列 worker 和 scheduler cron,确认后台任务不会堆积。

Cloudflare & CDN

Cloudflare / CDN 与真实 IP 配置

Afftrix 是联盟追踪系统,点击、GeoIP、风控、Postback 和访问控制都依赖准确的访客 IP。Cloudflare 开启橙色云代理后,源站默认看到的是 Cloudflare 代理 IP,真实访客 IP 会通过 CF-Connecting-IP 请求头传递。生产环境必须在 Web Server 层信任 Cloudflare IP 段,并把真实 IP 还原给应用。

上线默认原则

后台主域名可以使用 Cloudflare 橙色云;追踪域名默认不建议开启 CDN / 橙色云,优先使用灰色云 DNS only。只有服务器已经正确还原真实访客 IP,并且确认缓存、WAF、Bot Fight、JS Challenge 不会影响点击、跳转和 Postback 时,追踪域名才可以考虑开启橙色云。

Cloudflare 真实 IP Tracking Domain

1. 什么时候必须配置

场景是否需要原因
后台主域名开启 Cloudflare 橙色云建议配置后台登录日志、员工 IP 限制、审计和安全提醒需要真实 IP。
追踪域名准备开启 Cloudflare 橙色云不建议默认开启;如必须开启则必须配置点击、GeoIP、国家判断、Anti-Spy、访问控制和报表都需要真实访客 IP,且不能被缓存或 WAF 挑战影响。
Postback / API 经过 Cloudflare建议配置便于识别广告主、联盟用户和外部系统真实请求来源。
追踪域名使用灰色云 DNS only通常不需要请求直接到源站,源站可以看到访客真实 IP。
虚拟主机无法修改 Web Server 配置让主机商处理真实 IP 还原需要 Nginx / Apache / LiteSpeed 层支持,普通 .htaccess 通常不能完整解决。
官方依据

Cloudflare 的恢复真实访客 IP 文档说明,应用应使用 CF-Connecting-IP 这类 Cloudflare 请求头恢复访客 IP;Cloudflare IP 段应以官方 IP Ranges 页面为准,后续如果 Cloudflare 更新 IP 段,应同步更新服务器配置。

Cloudflare: Restoring original visitor IPs · Cloudflare IP Ranges

2. 推荐域名策略

域名Cloudflare 建议说明
后台主域名,例如 aff.example.com可以橙色云可以获得 CDN、SSL 和基础防护,但后台、Livewire、API 和登录路径不能被缓存或挑战阻断。
追踪域名,例如 go.example.com默认灰色云 DNS only,不建议开启 CDN追踪域名承载点击、CID、GeoIP、风控和跳转参数。除非已经验证真实 IP 还原、WAF 跳过和参数保留,否则不要开启橙色云。
Postback 域名谨慎橙色云广告主回传必须稳定到达,不要被 WAF、Bot Fight、JS Challenge 或缓存规则影响。
文档或公开官网可以橙色云适合缓存静态资源,但不要影响 Afftrix 后台和追踪路径。

最稳的商用方案:后台主域名可以使用 Cloudflare 橙色云;追踪域名默认使用灰色云 DNS only,不建议开启 CDN。只有服务器能正确还原真实 IP,并且已经完成点击、GeoIP、Postback、WAF 跳过和参数保留验证后,才考虑把追踪域名切换为橙色云。

3. VPS / 独立服务器 Nginx

适合可以 SSH 登录服务器,并且可以修改 Nginx 全局配置的环境。建议把 Cloudflare 真实 IP 配置单独放到一个文件,后续更新 IP 段更清晰。

sudo nano /etc/nginx/conf.d/cloudflare-real-ip.conf

写入以下配置:

real_ip_header CF-Connecting-IP;
real_ip_recursive on;

set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;

set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

保存后检查并重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx
不要随意信任所有来源

只应信任 Cloudflare 官方 IP 段。不要把任意来源都当作可信代理,否则攻击者可能伪造 CF-Connecting-IP 请求头。

4. VPS / 独立服务器 Apache

Apache 环境推荐使用 mod_remoteip。启用模块后,把 CF-Connecting-IP 作为真实 IP 来源,并信任 Cloudflare IP 段。

sudo a2enmod remoteip
sudo nano /etc/apache2/conf-available/cloudflare-remoteip.conf

配置示例:

RemoteIPHeader CF-Connecting-IP

RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 103.22.200.0/22
RemoteIPTrustedProxy 103.31.4.0/22
RemoteIPTrustedProxy 141.101.64.0/18
RemoteIPTrustedProxy 108.162.192.0/18
RemoteIPTrustedProxy 190.93.240.0/20
RemoteIPTrustedProxy 188.114.96.0/20
RemoteIPTrustedProxy 197.234.240.0/22
RemoteIPTrustedProxy 198.41.128.0/17
RemoteIPTrustedProxy 162.158.0.0/15
RemoteIPTrustedProxy 104.16.0.0/13
RemoteIPTrustedProxy 104.24.0.0/14
RemoteIPTrustedProxy 172.64.0.0/13
RemoteIPTrustedProxy 131.0.72.0/22
RemoteIPTrustedProxy 2400:cb00::/32
RemoteIPTrustedProxy 2606:4700::/32
RemoteIPTrustedProxy 2803:f800::/32
RemoteIPTrustedProxy 2405:b500::/32
RemoteIPTrustedProxy 2405:8100::/32
RemoteIPTrustedProxy 2a06:98c0::/29
RemoteIPTrustedProxy 2c0f:f248::/32

启用配置并重启 Apache:

sudo a2enconf cloudflare-remoteip
sudo apache2ctl configtest
sudo systemctl restart apache2

如果需要让访问日志显示真实访客 IP,Apache 日志格式应使用还原后的客户端地址字段。具体写法按服务器发行版和现有日志配置调整。

5. aaPanel / 宝塔 Nginx

aaPanel / 宝塔推荐优先放在 Nginx 全局配置中,避免多个站点或多个追踪域名重复配置。

方式入口适用情况
方法 A:全局配置,推荐软件商店 / 应用商店 > Nginx > 设置 > 配置修改服务器上有多个站点或多个追踪域名时使用。
方法 B:当前网站配置网站 > 当前站点 > 设置 > 配置文件只想让一个站点生效时使用;多个追踪域名要分别配置。
  1. 使用方法 A 时,找到 http { ... },把 Nginx 真实 IP 配置放到 http 块里面。
  2. 使用方法 B 时,把同样配置放到当前站点的 server { ... } 里面。
  3. 保存后点击重载 Nginx。
  4. 如果面板提示 Nginx 配置错误,不要强制重启,先检查是否少了分号、括号或写到了错误位置。

多域名平台通常建议使用方法 A,因为后台主域名、追踪域名、Postback 域名都能统一还原真实 IP。

6. cPanel / Plesk / DirectAdmin / 虚拟主机

共享主机通常不能修改 Nginx 或 Apache 主配置,因此要按主机能力选择方案。

主机能力处理方式建议
主机商支持 Cloudflare Real IP联系主机商开启真实 IP 还原。这是最好的方式。
cPanel 有 Cloudflare 插件或 Restore visitor IP 选项在面板中启用对应选项。启用后用点击日志验证真实 IP。
主机商不支持追踪域名使用灰色云 DNS only。后台域名仍可使用 Cloudflare,追踪域名不要代理。
只能编辑 .htaccess不能作为完整解决方案。真实 IP 还原应在 Web Server 层完成。

可以发给主机商的英文说明:

Please enable Cloudflare original visitor IP restoration.
Use CF-Connecting-IP as the real client IP header and trust the official Cloudflare IP ranges.

7. Cloudflare 页面和安全规则

Afftrix 的后台、追踪和回传路径不能被缓存、挑战或改写参数。建议在 Cloudflare 中对下面路径跳过缓存和安全挑战。

路径建议原因
/admin/*/manager/*/employee/*不缓存,避免 JS Challenge 影响登录和 Livewire。后台是动态页面。
/affiliate/*/advertiser/*不缓存。用户中心和广告主中心包含登录态和动态数据。
/livewire/*不缓存,不挑战。后台交互依赖 Livewire 请求。
/api/*不缓存,不挑战。API 客户端无法处理浏览器挑战。
/postback*/postback.php*不缓存,不挑战。广告主回传必须稳定到达。
/sotl*/click*/go*不缓存,不改写 query string。点击跳转必须保留 CID、Affiliate、Offer 和 Sub ID 参数。
  • SSL/TLS 建议使用 Full (strict),并确保源站证书有效。
  • 不要对 Afftrix 后台、API、Postback、Tracking 路径启用 Cache Everything。
  • Bot Fight、WAF、Turnstile、JS Challenge 不应拦截 Postback、API 和点击跳转路径。
  • 不要在 Cloudflare Transform Rules、Workers 或重定向规则里删除查询参数。

8. 验证真实 IP 是否生效

  1. 在 Cloudflare 中把目标域名切换为橙色云。
  2. 从不同网络打开 Affiliate tracking link。
  3. 进入后台 Clicks 或 Tracking Logs,查看记录中的 IP 和国家是否符合访问网络。
  4. 查看 Nginx / Apache access log,确认不再只出现 Cloudflare 代理 IP。
  5. 用 Traffic Simulator 或实际点击验证国家、设备、代理检测、Offer Targeting 是否正常。
  6. 测试广告主 Postback,确认没有被 403、挑战页面、缓存或重定向阻断。
异常现象常见原因处理方式
所有点击 IP 都像 Cloudflare IP没有配置 Real IP,或配置未生效。检查 Nginx / Apache 配置位置,并重载服务。
Postback 返回 403 或 HTML 页面WAF、Bot Fight 或 JS Challenge 拦截。对 Postback 路径设置跳过安全挑战。
点击记录丢参数Cloudflare 规则、Worker 或重定向清洗 query string。禁用相关规则,确认 cids1-s5 保留。
国家识别不准真实 IP 未还原、GeoIP 数据库过期或代理流量。先验证真实 IP,再更新 GeoIP 数据库。
后台循环跳转或 HTTPS 异常Cloudflare SSL 模式和源站 HTTPS 配置不一致。源站配置有效证书,Cloudflare 使用 Full (strict)。

Server deployment

VPS / 独立服务器安装

这篇文章适合有 SSH 权限的云服务器、VPS 和独立服务器。它是最稳定的部署方式,部署人员可以完整控制 PHP 扩展、Web 根目录、数据库、Cron、队列进程、日志和备份。

适合 VPS / 云服务器 / 独立服务器 需要 SSH 权限 生产环境推荐

适合使用这种方式的情况

正式商用平台

需要稳定处理点击、转化、邮件、导入、回传和自动化任务。

有服务器权限

可以安装 PHP 8.3、启用扩展、配置 Nginx / Apache、Cron 和 Supervisor。

需要迁移旧数据

可以导入数据库、保留原 APP_KEY、复制上传文件并执行迁移命令。

需要性能优化

可以启用 Redis、OPcache、队列常驻进程和独立备份策略。

部署流程

  1. 解析主域名和追踪域名到服务器 IP,并确认 HTTPS 证书可申请。
  2. 安装 PHP 8.3+、MySQL / MariaDB、Composer,并启用必装 PHP 扩展。
  3. 把正式安装包上传到服务器目录,例如 /var/www/afftrix,解压后确认 publicstorageartisan.env.example 存在。
  4. Web 站点根目录必须指向 /var/www/afftrix/public,不要指向项目根目录。
  5. 创建数据库和数据库用户,字符集使用 utf8mb4
  6. 确认项目根目录包含 .env.example,并确保项目根目录可写;全新安装时安装器会自动创建或更新 .env
  7. 根据“全新安装”或“迁移旧数据”选择不同初始化方式。
  8. 设置目录权限,执行 storage:link,清理缓存并生成生产缓存。
  9. 配置每分钟 Cron 和队列常驻进程。
  10. 进入后台激活授权,完成 SMTP、品牌、Offer、Tracking、Postback 和付款检查。

PHP 扩展要求

类型扩展说明
必装fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmath缺少任意一项都应先安装扩展,再继续安装。
推荐redisexifopcache生产环境建议启用,提升队列、缓存、图片和 PHP 执行性能。
条件必需ionCube Loader只有使用 ionCube 加密安装包时才需要;普通源码包不需要。
php -v
php -m | grep openssl
php -m | grep pdo_mysql
php -m | grep bcmath
php -m | grep ionCube

全新安装和迁移旧数据

场景APP_KEY数据库执行方式
全新安装安装器会自动生成新的 APP_KEY。使用空数据库。访问 /install,按安装器完成环境检查、配置、数据库和管理员创建。
迁移旧数据必须使用旧系统原来的 APP_KEY。先导入旧数据库。不要重新初始化数据库;导入后只执行 php artisan migrate --force 补齐迁移。
迁移旧数据的底线

全新安装时,如果 .env 不存在,安装器会从 .env.example 创建;如果 .env 已存在且可写,安装器会更新 APP URL、数据库、缓存、队列和 APP_KEY 等配置。权限不足时,安装器会显示可复制的 .env 内容,需要手动粘贴到服务器 .env 后再继续。

生产授权需要 .env.example.env 中存在 AFFTRIX_LICENSE_CENTER_URLS。迁移已有数据时不要重新生成 APP_KEY,不要执行会清空数据库的命令,不要让安装器重新创建一套空数据。APP_KEY 错误会影响历史加密数据、密钥、会话和部分配置读取。

常用命令

cd /var/www/afftrix
composer install --no-dev --optimize-autoloader
php artisan storage:link
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache

如果正式安装包已经包含 vendor 目录,可以跳过 Composer 安装;如果 route:cache 因路由限制无法执行,可以先跳过,不影响安装流程。全新安装不要先手动执行 php artisan migrate --force,让安装器在数据库步骤里执行迁移;迁移旧数据时先放入旧 APP_KEY 并导入数据库,再只执行补齐迁移。

目录权限和后台任务

PROJECT_ROOT="/replace/with/afftrix-project-root"
WEB_USER="replace_with_web_user"
WEB_GROUP="replace_with_web_group"

cd "$PROJECT_ROOT"
mkdir -p storage/framework/cache/data storage/framework/sessions storage/framework/views storage/logs bootstrap/cache
touch storage/logs/laravel.log
chown -R "$WEB_USER:$WEB_GROUP" storage bootstrap/cache
find storage bootstrap/cache -type d -exec chmod 775 {} \;
find storage bootstrap/cache -type f -exec chmod 664 {} \;

* * * * * cd /var/www/afftrix && php artisan schedule:run >> /dev/null 2>&1

php artisan queue:work database --queue=default,emails,imports,checks,postbacks --sleep=3 --tries=3 --timeout=120

先替换项目根目录、Web 运行用户和组。目录使用 775,文件使用 664;不要把命令中的占位值直接照抄到生产服务器。

如果使用 Supervisor 或 systemd 跑队列,先检查 PHP CLI 是否支持 pcntl

/usr/bin/php8.3 -r "var_dump(function_exists('pcntl_signal'), function_exists('pcntl_alarm'), function_exists('pcntl_async_signals'));"

三个结果都为 true 时,可以使用常驻队列 worker。如果提示 Call to undefined function pcntl_signal(),请安装或启用 pcntl,并确认 PHP 禁用函数里没有禁用 pcntl_signalpcntl_alarmpcntl_async_signals

如果使用 Redis 队列,把 queue worker 命令里的 database 改为 redis。正式环境建议用 Supervisor、systemd 或面板守护进程保持队列常驻。

如果当前服务器不能运行常驻进程,可以临时使用 Cron + --once 兼容方案,每分钟执行一次:

cd /var/www/afftrix && /usr/bin/php8.3 artisan queue:work database --queue=default,emails,imports,checks,postbacks --once --tries=3 --timeout=120 >> /dev/null 2>&1

实际命令应优先复制安装完成页生成的队列命令和虚拟主机备用队列命令。

后台登录页前端资源检查

部署完成后,打开后台登录页并确认密码框默认隐藏、显示 / 隐藏密码按钮可点击、错误账号密码能显示提示。如果页面只是刷新、密码框明文或按钮无效,通常是 Livewire / Alpine 前端脚本没有加载。

cd /var/www/afftrix
php artisan vendor:publish --tag=livewire:assets --force --no-interaction
php artisan optimize:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

如果默认 php 不是站点实际 PHP 8.3 或更高版本,请使用实际 PHP 路径,例如 /usr/bin/php8.3 或服务器面板显示的 PHP 路径。执行后访问 /vendor/livewire/livewire.min.js,应返回 200。Nginx 环境还要确认站点 root 指向 public,不要让 .js 静态规则拦截 Laravel 动态路由。

Control panel deployment

aaPanel / 宝塔面板安装

aaPanel 是海外常见服务器控制面板,中文用户通常使用宝塔面板。两者部署 Afftrix 的关键一致:PHP 版本选择 8.3+,站点运行目录指向 /public,配置伪静态、数据库、SSL、计划任务和队列进程。

aaPanel / 宝塔 适合面板用户 正式安装包上传解压

面板创建站点

  1. 在 DNS 管理后台添加主域名和 www 的 A 记录,记录值填写服务器 IP。
  2. 进入 aaPanel / 宝塔:网站 > 添加站点
  3. 域名填写正式域名,PHP 版本选择 PHP 8.3 或更高。
  4. 网站目录建议使用 /www/wwwroot/your-domain.com
  5. 站点运行目录必须设置为 /public,实际入口为 /www/wwwroot/your-domain.com/public
  6. 数据库可以在添加站点时创建,也可以到 数据库 > 添加数据库 单独创建。
最重要的设置

运行目录必须是 /public。如果站点直接指向项目根目录,可能造成配置、源码和日志暴露,也会导致 Laravel 路由异常。安装时填写的 APP URL / 站点 URL 必须是最终访问域名,例如 https://your-domain.com,不要填写 localhost、临时 IP 或测试域名。正式环境建议安装前先申请 SSL 并强制 HTTPS。

安装 PHP 扩展

面板路径:软件商店 > PHP 8.3 > 设置 > 安装扩展

类型扩展说明
必须安装fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmath安装器环境检查必须通过。
推荐安装redisexifopcache生产环境建议开启,提升缓存、队列、图片和 PHP 性能。
按安装包决定ionCube Loader使用 ionCube 加密包时必须安装;普通源码包不需要。
GeoIP 更新内存

PHP 8.3 > 设置 > 配置文件 中把 memory_limit 设置为 512M 或更高,然后重启 PHP。GeoIP 数据库更新会下载并解压 MaxMind 数据包,内存过低时容易失败。

php -v
php -m | grep openssl
php -m | grep bcmath
php -m | grep ionCube

pcntl 检查

如果使用宝塔进程守护或 Supervisor 跑队列,还要确认 PHP CLI 支持 pcntl。在 PHP 禁用函数里不要禁用 pcntl_signalpcntl_alarmpcntl_async_signals

/www/server/php/83/bin/php -r "var_dump(function_exists('pcntl_signal'), function_exists('pcntl_alarm'), function_exists('pcntl_async_signals'));"

三个结果都为 true 时,可以使用常驻队列 worker。如果无法开启这些函数,使用后面的 Cron + --once 队列兼容方案。

伪静态和程序上传

进入 网站设置 > 伪静态,Nginx 使用 Laravel 规则:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}
  1. 把 Afftrix 正式安装包上传到 /www/wwwroot/your-domain.com
  2. 在面板文件管理器或 SSH 中解压安装包。
  3. 确认项目根目录下可以看到 appbootstrapconfigdatabasepublicresourcesroutesstorageartisancomposer.json.env.example
  4. 不要漏传隐藏文件,尤其是 .htaccess.env.example。如果面板文件管理器默认隐藏点号开头文件,解压后要单独确认。
  5. 如果正式包已包含 vendor,可以跳过 Composer;如果不包含,在项目根目录执行 Composer 安装。
cd /www/wwwroot/your-domain.com
composer install --no-dev --optimize-autoloader

数据库和 .env

数据库建议使用独立数据库名和用户名,字符集选择 utf8mb4,排序规则使用 utf8mb4_unicode_ci

全新安装时,安装器会根据向导里填写的 APP URL、数据库、缓存和队列选项自动写入 .env。如果项目根目录没有 .env,安装器会从 .env.example 创建;如果 .env 已存在且可写,会更新对应配置项。

如果面板文件权限不允许写入 .env,安装器会显示一段可复制的 .env 内容。此时进入面板文件管理器,在项目根目录创建或编辑 .env,粘贴保存后回到安装器确认继续。

生产授权需要 AFFTRIX_LICENSE_CENTER_URLS。正式安装包的 .env.example 应保留默认授权中心地址;如果服务商提供其他授权中心,以服务商提供的 HTTPS 地址为准。

下面的内容用于手动兜底、迁移旧数据或排查配置:

APP_NAME="Afftrix"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=afftrix_prod
DB_USERNAME=afftrix_prod
DB_PASSWORD=your_database_password

AFFTRIX_LICENSE_CENTER_URLS=https://lic.dyok.net

SESSION_DRIVER=database
CACHE_STORE=database
QUEUE_CONNECTION=database
FILESYSTEM_DISK=local

全新安装和迁移旧数据

方案适用情况关键操作
全新安装没有旧数据,准备创建新管理员和新数据库结构。访问 /install,让安装器写入 .env、执行迁移并创建管理员。
迁移旧数据要保留本地或旧服务器已有数据库。APP_KEY 必须使用旧系统原值;先导入 SQL,再执行 php artisan migrate --force,不要重新初始化数据库。
# 全新安装
# 访问 https://your-domain.com/install,按安装器步骤完成。

# 迁移旧数据后只补迁移
php artisan migrate --force

权限、缓存、计划任务和队列

PROJECT_ROOT="/replace/with/afftrix-project-root"
WEB_USER="replace_with_panel_web_user"
WEB_GROUP="replace_with_panel_web_group"

cd "$PROJECT_ROOT"
mkdir -p storage/framework/cache/data storage/framework/sessions storage/framework/views storage/logs bootstrap/cache
touch storage/logs/laravel.log
chown -R "$WEB_USER:$WEB_GROUP" storage bootstrap/cache
find storage bootstrap/cache -type d -exec chmod 775 {} \;
find storage bootstrap/cache -type f -exec chmod 664 {} \;
php artisan storage:link
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache

不要直接照抄项目路径和运行用户。先在网站设置中找到包含 artisan 的项目根目录,再确认当前站点 PHP-FPM 的运行用户。aaPanel / 宝塔常见为 www:www,但实际值可能不同。目录使用 775,文件使用 664

安装器仍显示可写目录失败

在文件管理器中展开 storage/frameworkbootstrap/cache,确认子目录和已有缓存文件也继承了正确权限。没有 SSH 时,只对这两个运行时目录递归设置:文件夹 775、文件 664;不要把整站设置成 777。保存后刷新 Environment Check。

如果 route:cache 无法执行,可以先跳过。

配置计划任务

aaPanel / 宝塔通常有计划任务入口。部分版本或精简环境需要先到软件商店或应用商店启用 Cron / 计划任务组件。

  1. 进入 计划任务 / Cron
  2. 任务类型选择 Shell 脚本
  3. 执行周期选择 每分钟
  4. 脚本内容填写下面的命令,不要填写前面的 * * * * *
cd /www/wwwroot/your-domain.com && /www/server/php/83/bin/php artisan schedule:run >> /dev/null 2>&1

如果通过 SSH 手动编辑 crontab -e,才需要写完整 cron 行:

* * * * * cd /www/wwwroot/your-domain.com && /www/server/php/83/bin/php artisan schedule:run >> /dev/null 2>&1

配置队列进程

aaPanel / 宝塔推荐使用面板应用来管理队列进程:

  1. 进入 软件商店 / 应用商店
  2. 搜索并安装 SupervisorSupervisor ManagerSupervisor 管理器
  3. 新增守护进程,运行目录填写 /www/wwwroot/your-domain.com
  4. 启动用户建议选择 www
  5. 进程数量先设置为 1 或 2,流量变大后再增加。
  6. 命令填写下面的 queue worker 命令。
/www/server/php/83/bin/php /www/wwwroot/your-domain.com/artisan queue:work database --queue=default,emails,imports,checks,postbacks --sleep=3 --tries=3 --timeout=120

如果 .env 使用 Redis 队列,把命令里的 database 改为 redis

每次更新代码后执行:

php artisan queue:restart

如果启动失败并提示 Call to undefined function pcntl_signal(),说明当前 PHP CLI 没有开启 pcntl,或相关函数被禁用。先回到 PHP 设置的禁用函数列表,移除 pcntl_signalpcntl_alarmpcntl_async_signals,再重启 PHP 和队列进程。

虚拟主机或受限环境队列方案

如果不能使用宝塔进程守护 / Supervisor,可以在计划任务里增加 Cron + --once 队列命令,每分钟执行一次:

cd /www/wwwroot/your-domain.com && /www/server/php/83/bin/php artisan queue:work database --queue=default,emails,imports,checks,postbacks --once --tries=3 --timeout=120 >> /dev/null 2>&1

这个方案每次只处理一个队列任务后退出,适合虚拟主机或权限受限环境。正式服务器仍推荐使用常驻队列 worker。

安装完成页命令

安装完成后页面会显示后台登录地址、计划任务命令、队列 worker 命令和虚拟主机备用队列命令。实际部署时请复制安装完成页自动生成的命令,不要直接复制教程里的示例命令,因为项目目录、PHP CLI 路径、PHP 版本和运行用户都可能不一样。

上线后检查

  • 首页、后台、Affiliate 用户中心和 Advertiser 用户中心都能打开。
  • 后台授权页显示授权中心地址,License 状态正常。
  • Offer 列表、用户列表、广告主列表、报表和付款页面能正常打开。
  • Tracking link 能跳转,Clicks 页面有点击记录。
  • Postback、Pixel 或 Connector 能创建转化。
  • Logo、素材、上传文件和 storage/app/public 资源能显示。
  • 后台登录页密码框默认隐藏,显示 / 隐藏密码按钮可点击;/vendor/livewire/livewire.min.js 返回 200。
  • 计划任务正在运行,队列没有持续堆积。
  • APP_DEBUG=falsestorage/logs/laravel.log 没有持续严重错误。

Hosting panels

cPanel / Plesk / DirectAdmin 安装

海外虚拟主机和共享主机常见控制面板包括 cPanel / WHM、Plesk 和 DirectAdmin。它们的菜单名称不同,但安装 Afftrix 的核心要求一致:PHP 8.3+、完整 PHP 扩展、MySQL / MariaDB、HTTPS、Cron 和队列兼容方案。站点入口优先指向 public;如果主机固定只能使用 public_html,可以让 public_html 承担原 public 目录的入口角色。

cPanel / WHM Plesk DirectAdmin

cPanel 虚拟主机安装流程

1. 绑定域名

在 cPanel 进入 DomainsAddon Domains,添加正式域名。优先把域名的 Document Root 设置为:

/home/your_user/afftrix/public

核心原则:网站公开入口只能是 Afftrix 的 public 内容。不要让域名直接指向项目根目录,否则 .env、源码和日志文件可能被外部访问。

2. 创建数据库

进入 MySQL Database Wizard,依次创建数据库、数据库用户和数据库密码,并给该用户分配 ALL PRIVILEGES

字段说明
DB_HOSTcPanel 虚拟主机通常是 localhost
DB_DATABASE完整数据库名,通常带 cPanel 用户名前缀。
DB_USERNAME完整数据库用户名,通常带 cPanel 用户名前缀。
DB_PASSWORD数据库用户密码。

数据库字符集建议使用 utf8mb4,排序规则建议使用 utf8mb4_unicode_ci

3. 设置 PHP 版本和扩展

进入 Select PHP Version 或主机商提供的 PHP Selector,选择 PHP 8.3 或更高版本,并启用 fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmath

redis 在虚拟主机上不一定可用,没有也可以先使用数据库缓存和数据库队列。GeoIP 数据库更新建议把 PHP 内存限制设置为 512M;如果主机商不允许调整内存,使用 MaxMind 手动下载并上传 storage/app/geoip/GeoLite2-City.mmdb。虚拟主机通常没有 pcntl,这不影响安装;因为虚拟主机一般不用 Supervisor 常驻进程,而是用 Cron + queue:work --once 兼容方案。

4. 上传程序

推荐把 Afftrix 正式安装包上传并解压到:

/home/your_user/afftrix

正确目录结构类似:

/home/your_user/afftrix
/home/your_user/afftrix/public

域名 Document Root 指向:

/home/your_user/afftrix/public

上传或解压后确认隐藏文件没有丢失,尤其是 .htaccess.env.example

固定 public_html 的虚拟主机兼容方案

部分虚拟主机不能修改 Document Root,域名入口被固定为 /home/your_user/public_html。这种环境不要把整个 Afftrix 项目放进 public_html 里面,而是把 Afftrix 发布包里的 public 目录改名为 public_html,让它成为公开入口。

正确结构类似:

/home/your_user/bootstrap
/home/your_user/config
/home/your_user/database
/home/your_user/lang
/home/your_user/resources
/home/your_user/routes
/home/your_user/storage
/home/your_user/vendor
/home/your_user/artisan
/home/your_user/public_html

这里的 public_html 就是原来的 public 目录,里面应该能看到 index.php.htaccessbuildvendor 等公开资源。bootstrapconfigstoragevendor 等目录必须和 public_html 同级,不要放到 public_html 里面。

安装命令路径要用项目根目录

如果采用固定 public_html 方案,Artisan、Cron 和队列命令的 cd 路径应该是 /home/your_user 或实际项目根目录,而不是 /home/your_user/public_html

5. 设置权限

在 cPanel 文件管理器中确认 storagebootstrap/cache 可写。

类型建议权限
普通目录755
普通文件644
storagebootstrap/cache755775,以 PHP 用户可写为准。
storage/logs/laravel.log644664

如果安装时报日志、缓存或上传写入失败,再把 storagebootstrap/cache 临时调整为 775。不要把整个站点改成 777

PROJECT_ROOT="/replace/with/afftrix-project-root"

cd "$PROJECT_ROOT"
mkdir -p storage/framework/cache/data storage/framework/sessions storage/framework/views storage/logs bootstrap/cache
touch storage/logs/laravel.log
find storage bootstrap/cache -type d -exec chmod 775 {} \;
find storage bootstrap/cache -type f -exec chmod 664 {} \;

共享主机通常不允许执行 chown,因此命令里不包含所属用户修改。没有 Terminal 时,在文件管理器中对 storagebootstrap/cache 分别设置:目录 755775、文件 644664。如果安装器仍提示不可写,请主机商让 PHP 运行账号拥有这两个目录;不要长期使用 777

6. 确认伪静态

Apache / LiteSpeed 虚拟主机通常会自动读取入口目录里的 .htaccess。标准结构下确认 public/.htaccess 没有漏传;固定 public_html 结构下确认 public_html/.htaccess 没有漏传,并且主机允许 Rewrite。

7. 打开安装向导

浏览器访问 https://你的域名/install,按安装向导填写站点 URL、数据库信息、后台路径、管理员账号和授权码。

安装完成后页面会显示后台登录地址、计划任务命令、队列 worker 命令和虚拟主机备用队列命令。真实部署时请复制安装完成页自动生成的命令,不要直接复制教程里的示例命令。

8. 配置 Cron 计划任务

虚拟主机一般不用 Supervisor,只用 cPanel Cron Jobs。需要添加两个任务。

任务执行周期命令格式
系统调度器每 1 分钟cd /home/your_user/afftrix && /path/to/php artisan schedule:run >> /dev/null 2>&1
队列兼容方案每 1 分钟cd /home/your_user/afftrix && /path/to/php artisan queue:work database --queue=default,emails,imports,checks,postbacks --once --tries=3 --timeout=120 >> /dev/null 2>&1

如果 cPanel 最低只能 5 分钟执行一次,也可以先设置为 5 分钟,但邮件、通知、导入、健康检查和队列任务会有延迟。正式投放环境仍建议使用支持每分钟 Cron 或常驻队列的服务器。

9. 确认 PHP CLI 路径

不同主机的 PHP 路径不一样,常见路径包括 /usr/local/bin/php/opt/cpanel/ea-php83/root/usr/bin/php。如果 cPanel 有 Terminal,可以执行:

which php
php -v

确认 PHP 路径和版本。实际命令优先复制安装完成页生成的命令,因为安装完成页会根据当前项目目录和 PHP CLI 路径生成更准确的命令。

Plesk / DirectAdmin 对照

面板站点目录PHP 和扩展数据库Cron / SSL
cPanel / WHMDomains / Addon Domains / Document Root,优先指向 public;固定入口主机使用 public_html 兼容结构。Select PHP VersionMultiPHP ManagerMySQL Database WizardCron JobsSSL/TLSAutoSSL
PleskDomains & Hosting / Document root,设置到 publicPHP Settings / PHP Handler。DatabasesScheduled TasksSSL/TLS Certificates
DirectAdminDomain Setup / Custom HTTPD 或站点根目录设置。Select PHP Version 或管理员 PHP 设置。MySQL ManagementCron JobsSSL Certificates

Plesk 和 DirectAdmin 的操作入口不同,但最终要求和 cPanel 一样:公开入口必须只暴露 public 内容;如果面板不能修改入口目录,就用固定 public_html 兼容结构。PHP 扩展必须完整,数据库账号必须有权限,计划任务必须能执行 schedule:run,不能常驻队列时使用 Cron + queue:work --once

虚拟主机注意事项

虚拟主机一般不支持 Supervisor、systemd、长驻 queue:workpcntl_signalpcntl_alarm。因此虚拟主机队列必须使用:

Cron + queue:work --once

它可以正常处理邮件、导入、通知、Postback 重试和链接检查,只是不会像 VPS / 独立服务器的常驻 worker 一样实时,通常会有 1 到 5 分钟延迟。

后台登录页前端资源检查

访问后台登录页后,密码框应默认隐藏,显示 / 隐藏密码按钮应可点击。如果按钮无效、页面只刷新或 Livewire JS 404,能使用 Terminal / SSH 时执行:

cd /home/your_user/afftrix
php artisan vendor:publish --tag=livewire:assets --force --no-interaction
php artisan optimize:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

如果面板绑定了特定 PHP 版本,请使用该站点的 PHP 8.3 或更高版本命令。处理后确认 /vendor/livewire/livewire.min.js 返回 200。

部署方式总结

环境推荐配置
VPS / 独立服务器Cron schedule:run + Supervisor / 进程守护 queue:work
cPanel / 虚拟主机Cron schedule:run + Cron queue:work --once
Plesk / DirectAdmin 共享主机优先使用面板任务;不能常驻进程时同样使用 Cron queue:work --once

安装教程里的命令只说明格式。正式部署时,请优先复制安装完成页自动生成的命令。

Shared hosting

虚拟主机安装与兼容性

Afftrix 可以在满足条件的虚拟主机上安装,但正式商用更推荐 VPS、云服务器或独立服务器。虚拟主机必须支持计划任务和队列 Worker 兼容方案,否则页面能打开也不能稳定处理邮件、导入、Postback、自动化和健康检查。

共享主机 部署前检查 不满足条件不建议商用

虚拟主机准入底线

必须支持后台任务

虚拟主机至少要能配置两个定时任务:一个执行 php artisan schedule:run,一个执行 php artisan queue:work ... --once。如果主机既不能运行常驻队列 worker,也不能用 Cron 执行 queue:work --once,就不适合安装 Afftrix。

后台任务最低要求不支持时的影响
Scheduler / 计划任务能通过 Cron / Scheduled Tasks 执行 schedule:run,正式环境优先每 1 分钟一次。授权检查、自动化规则、健康检查、清理任务、GeoIP 更新和提醒不会按时触发。
Queue Worker / 队列优先支持常驻 queue:work;如果虚拟主机不能常驻进程,必须允许 Cron 执行 queue:work --once邮件、导入、通知、Postback 重试、链接检测和后台异步任务会堆积或不执行。
Cron 频率推荐每分钟执行;最低 5 分钟只适合低流量或临时验证。任务会延迟,真实投放、批量导入和高频回传场景不稳定。

必须满足的条件

能力最低要求不满足会怎样
PHPPHP 8.3+,并可启用必装扩展。安装环境检查无法通过。
站点入口目录优先让域名指向应用的 public 目录;如果主机固定入口为 public_html,则让 public_html 承担原 public 目录角色。如果项目根目录被公开暴露,会有安全风险,Laravel 路由也可能异常。
数据库MySQL / MariaDB,支持 utf8mb4多语言、表情符号和特殊字符可能异常。
写入权限普通目录建议 755、普通文件建议 644storagebootstrap/cache 必须可写,建议 775 或由 PHP 用户拥有写权限。缓存、日志、上传和导出失败。
前端静态资源安装包应包含 public/vendor/livewire/livewire.min.js,或主机必须能执行 Artisan 发布静态资源。后台登录页可能无提示刷新、密码框明文、按钮无效。
计划任务和队列必须能执行 schedule:run,并支持常驻队列 worker 或 Cron + queue:work --once 兼容方案。自动化、健康检查、导入、邮件、通知和异步队列会延迟或不执行。
HTTPS支持正式 SSL 证书。登录、API、Postback 和浏览器安全都受影响。
出站网络服务器可以通过 HTTPS 请求外部服务。授权、Offer Health、Postback、Webhook 和上游 API 可能失败。

强烈建议具备的能力

  • 支持 SSH 或 Web Terminal,便于执行 Composer、Artisan、缓存、迁移和队列命令。
  • 支持 Composer;如果不支持,正式安装包必须已经包含依赖目录。
  • 支持后台常驻进程、Supervisor 或类似队列 worker 能力;如果没有常驻能力,就必须使用前面的 Cron + queue:work --once 兼容方案。
  • 虚拟主机通常没有 pcntl_signalpcntl_alarm,只要使用 Cron + queue:work --once,不要求开启常驻队列所需的 pcntl
  • 支持查看 PHP error log、Web server log 和应用日志。
  • 支持 Redis 或至少稳定的数据库队列。

适合和不适合的场景

场景是否建议原因
演示环境、低流量验证、小团队试运行可以考虑只要扩展、根目录、数据库、计划任务和队列兼容方案都满足要求,可以先运行。
正式联盟平台、真实投放、持续导入和高频 Postback不建议虚拟主机通常缺少稳定队列、日志、性能和任务控制。
需要迁移旧数据和大量上传文件谨慎需要 SSH、数据库导入权限、文件同步和足够磁盘空间。
入口固定为 public_html可以按兼容方案处理把原 public 目录改名为 public_html,其他程序目录与它同级,不要把项目根目录公开。
只能把所有文件放进 public_html,且无法把程序目录放到公开入口外层不建议.env、源码、日志和上传文件可能被外部访问,安全风险较高。

固定 public_html 主机怎么放文件

有些 hosting / 虚拟主机不能像 VPS 或完整 cPanel 那样修改 Document Root,只能使用账号根目录下的 public_html。这种情况下可以把 Afftrix 发布包里的 public 目录改名成 public_html,并把其他程序目录放在同一级。

/home/your_user/bootstrap
/home/your_user/config
/home/your_user/database
/home/your_user/integrations
/home/your_user/lang
/home/your_user/resources
/home/your_user/routes
/home/your_user/storage
/home/your_user/vendor
/home/your_user/artisan
/home/your_user/public_html
  • public_html 里面应该是原 public 目录的内容,例如 index.php.htaccess、前端资源和 vendor/livewire
  • bootstrapconfigdatabaseroutesstoragevendor 必须和 public_html 同级,不要放进 public_html
  • 安装向导、Cron、队列和 Artisan 命令的项目目录是 /home/your_user,不是 /home/your_user/public_html
  • 确认 public_html/.htaccess 没有丢失,并且主机允许 Rewrite。
  • 安装后访问 https://你的域名/.envhttps://你的域名/storage/logs/laravel.log 应返回 403 或 404,不能显示文件内容。

虚拟主机提示运行目录不可写

如果安装器列出 storage/framework/cache/databootstrap/cache/packages.phpbootstrap/cache/services.php 不可写,先确认项目根目录。固定 public_html 结构下,项目根目录通常是 public_html 的上一级。

  1. 打开文件管理器,确认 storage/framework/cache/datastorage/framework/sessionsstorage/framework/viewsstorage/logsbootstrap/cache 存在;缺少时创建。
  2. 如果 PHP 以当前主机账号运行,先使用目录 755、文件 644
  3. 如果 Environment Check 仍显示不可写,只对 storagebootstrap/cache 及其子项改为目录 775、文件 664
  4. 共享主机通常不允许执行 chown。如果权限正确仍不可写,请主机商把这两个目录的所属用户修正为当前 PHP 运行账号。
  5. 刷新安装器重新检查;不要把项目根目录或 public_html 整体设为 777
发给主机商的说明

Please make storage and bootstrap/cache writable by this website's PHP runtime user. Directories may use 755 or 775 and files may use 644 or 664. Please do not expose the application root or apply 777 permissions.

购买或部署前问服务商

  • 是否支持 PHP 8.3 或更高版本。
  • 是否能启用 fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmath
  • 是否可以把域名根目录设置到应用的 public 目录,例如 /home/your_user/afftrix/public;如果只能使用 public_html,是否允许把程序目录放在 public_html 同级的账号根目录。
  • 是否允许设置文件权限,尤其是让 storagebootstrap/cache 可写。
  • 是否能执行 php artisan vendor:publish --tag=livewire:assets,或是否允许上传已包含 public/vendor/livewire 的正式安装包。
  • 是否提供 SSH / Terminal / Composer。
  • 是否支持每分钟 Cron Job;是否允许分别配置 schedule:runqueue:work --once 两个任务。
  • 是否允许长期运行 PHP 队列进程或提供进程管理;如果不允许,是否明确允许通过 Cron 执行 php artisan queue:work ... --once
  • 如果最低只能 5 分钟执行一次 Cron,是否能接受邮件、通知、导入、Postback 重试和健康检查延迟。
  • 是否可以查看错误日志并修改 PHP 配置。
  • 是否允许服务器主动访问外部 HTTPS API。

Settings Center

平台设置中心

Settings Center 用于配置品牌、注册、条款、邮件、通知、付款、追踪、集成、缓存和安全。正式上线前,建议逐项检查。

适合平台管理员 上线前必读

首次配置快速路径

如果是给新团队培训,先按下面顺序完成基础项。高级安全、API、Connector 和风控可以在基础链路跑通后再继续配置。

  1. 进入 Settings Center → Platform / Brand,设置平台名称、Logo、Public URL、支持邮箱、默认时区和后台路径。
  2. 进入注册设置,决定 Affiliate 和 Advertiser 是否允许自助注册,以及是否需要管理员审核。
  3. 进入 Mail & SMTP,填写 SMTP 并发送验证邮件。
  4. 进入 Notification Center,开启管理员必须收到的站内通知、邮件或 Telegram 提醒。
  5. 进入员工和权限页面,给每个人分配自己的账号和岗位权限。
  6. 进入 Tracking & GeoIP,确认追踪域名、GeoIP、真实 IP 和代理规则。
  7. 保存后分别用后台、Affiliate 端和 Advertiser 端检查页面显示和权限是否正确。

品牌设置入口

进入后台 Settings Center → Platform / Brand。这里决定客户看到的系统名称、Logo、登录背景、公开域名、支持邮箱、默认时区和公开 Offer 市场开关。

Platform / Brand 设置真实截图
Logo、登录背景、Public site URL 和支持邮箱会影响后台、用户中心、广告主中心、邮件和公开页面。
自定义后台登录路径设置位置标注
管理面板路径默认是 /admin。保存新路径后,请使用新地址登录后台,例如 /afftrix-secure。

设置中心总览

设置页主要用途上线建议
Platform / Brand平台名称、Logo、Favicon、支持邮箱、公开 URL、后台路径、登录背景。上线前必须配置。
Registration SettingsAffiliate / Advertiser 注册开关、审核策略、默认 AM、注册成功提示。根据业务是否开放注册决定。
Affiliate Application自定义申请表字段、嵌入脚本、按钮颜色、语言、宽高参数。如果做联盟招募页,需要配置。
Terms Settings条款标题、条款内容、是否必须同意。建议上线前补完整。
Mail & SMTPSMTP、发件人、验证邮件、系统通知。必须验证成功。
Notification Center站内通知、邮件、Telegram、Webhook。至少配置管理员通知。
Payment Settings币种、最低付款金额、发票信息、支付方式。付款前必须配置。
Tracking & GeoIP追踪域名、GeoIP、质量核减、Anti-Spy、健康检查。投放前必须配置。
IntegrationsWordPress Connector、Integration API、店铺 Connector Key。电商客户必须配置。

推荐配置顺序

  1. 先配置 Platform / Brand,确认客户看到的是自己的品牌。
  2. 配置 SMTP 并发送验证邮件。
  3. 配置 Notification Center,确认管理员能收到关键提醒。
  4. 决定 Affiliate / Advertiser 是否开放注册,以及是否需要审核。
  5. 配置 Terms,避免注册表单缺少必要条款。
  6. 配置 Tracking domain 和 GeoIP,验证 tracking link 跳转。
  7. 配置 Payment,确认币种、最低付款、发票字段。
  8. 最后打开 Dashboard、Offer、Affiliate、Advertiser、Payments 页面做一次完整巡检。

Notification Center 通知中心设置

进入后台 Settings Center → Notification Center。通知中心决定系统事件通过哪些渠道通知谁。它和 Mail & SMTP 不是同一个设置:SMTP 负责“邮件能不能发出去”,通知中心负责“哪些事件要发给哪些角色,以及是否同时发站内通知、Email、Telegram 或 Webhook”。

通知中心设置页面截图
上线时建议至少开启站内通知和管理员 Email 通知。Telegram 与 Webhook 属于可选增强渠道。
区域作用推荐做法
Notification center enabled统一通知服务总开关。正式运营建议开启。登录、找回密码等基础流程不受这个开关影响。
In-app notifications生成后台和用户中心里的站内通知。建议开启,方便管理员和用户在系统内查看历史提醒。
Email channel把通知通过邮件发送给对应收件人。先在 Mail & SMTP 里发送验证邮件成功,再开启这里。
Telegram channel通过 Telegram Bot 推送运营提醒,并提供机器人快捷菜单。团队使用 Telegram 时再开启。先配置 Telegram Bot,再让接收人在 My Notifications 绑定账号。
Webhook channel把安全后的通知 payload 推送到外部系统。对接自有 CRM、工单、企业 IM 或监控系统时使用;生产环境建议使用 HTTPS。
Admin recipients平台管理员接收的渠道和事件。至少保留 in-app 和 email,关键事件不要全部取消。
AM manager recipients联盟经理默认接收哪些提醒。只选择与分配客户、Offer 申请、风险提醒相关的事件,避免噪音太多。
Employee recipients员工默认接收哪些提醒。系统会继续检查员工权限和数据范围,不会把无权限数据发给员工。
Affiliate user notifications联盟用户的转化摘要、实时提醒和受影响 Offer 通知。上线初期建议使用 digest,不建议一开始全部实时推送。
通知事件和收件人设置截图
不同角色可以选择不同事件。管理员建议保留申请、Offer、风控、付款、系统任务失败等关键事件。

通知中心上线配置步骤

  1. 先进入 Settings Center → Mail & SMTP,保存 SMTP 并发送验证邮件。
  2. 进入 Settings Center → Notification Center,开启 Notification center enabled
  3. 开启 In-app notifications,让通知能保存在后台和用户中心。
  4. 开启 Email channel,并为 Admin recipients 勾选 in-app 与 email。
  5. 按业务需要选择管理员事件,建议保留注册申请、Offer 申请、Postback 失败、Profit Guard、付款、后台任务失败。
  6. 如果团队使用 Telegram,进入 Settings Center → Telegram Bot 配置 Bot Token、Webhook secret、菜单模块和命令同步,再让接收人在 My Notifications 绑定自己的 Telegram 账号。
  7. 如果需要对接外部系统,再开启 Webhook,填写默认 Webhook URL 或对应角色的 Webhook URLs。
  8. 点击验证通知,随后打开 Notification Logs 确认每个渠道是 sent、skipped 还是 failed。
数据安全说明

通知中心会根据接收人角色过滤内容。非管理员不会收到上游价格、平台利润、私有来源等敏感数据。给员工和 AM 开启通知时,仍建议只勾选他们工作中真正需要处理的事件。

通知排错

现象优先检查处理方式
邮件收不到Mail & SMTP 是否验证成功、Email channel 是否开启、收件人是否勾选 email。先修 SMTP,再查看 Notification Logs 里的错误信息。
站内通知没有出现Notification center enabled 与 In-app notifications 是否开启。确认事件被勾选,触发后刷新通知中心或用户中心。
Telegram 发送失败Bot Token、Webhook、接收人绑定、fallback Chat ID、事件订阅和队列。先在 Telegram Bot 页面运行诊断,再到 My Notifications 发送验证通知,最后查看 Notification Logs。
Webhook 没收到URL 是否可公网访问、是否返回 HTTP 2xx、服务器是否拦截请求。先用验证通知验证,目标系统必须快速返回 2xx。
通知太多事件勾选过宽,或 Affiliate 转化提醒使用 realtime。减少事件范围,把联盟用户默认转化提醒改为 digest 或 off。
员工收到不该看的内容员工权限、角色通知事件、数据范围。先收窄 Employee recipients,再检查员工角色权限。敏感利润字段默认不会发给非管理员。

Platform / Brand 字段详解

字段在哪里显示怎么填写上线建议
Platform name后台标题、登录页、邮件发件名称、用户中心。填写客户品牌名,例如 Afftrix 或客户公司名。不要保留默认示例名称。
Support email邮件模板、帮助提示、注册/密码问题联系邮箱。填写客户正式客服邮箱。必须能收信。
Public site URL系统生成的公开链接、邮件链接、公开 Offer 市场。填写生产域名,例如 https://affiliate.example.com不要填 localhost 或临时 IP。
Default timezone报表日期、后台默认时间显示。按客户运营时区选择。数据库仍存 UTC,显示按时区转换。
Admin path后台登录地址。建议改成不容易猜的路径,例如 afftrix-secure不要使用 api、affiliate、advertiser、storage 等公共路径。
Affiliate ID startAffiliate 资料、tracking link、报表、API。设置未来新 Affiliate 的公开 ID 起始值,例如 18001上线前设置;已有 Affiliate 不会被重新编号。
Advertiser ID startAdvertiser 资料、Connector、广告主 API、发票和报表。设置未来新 Advertiser 的公开 ID 起始值,例如 28001避免客户看到广告主从 1 开始增长。
Offer ID startOffer 列表、公开 Offer 市场、tracking link、API、报表。设置未来新 Offer 的公开 ID 起始值,例如 88001创建正式 Offer 前设置;如果已有更大公开 ID,会从更大值继续递增。
Logo后台、登录页、公开页、邮件。从 Media Library 选择品牌 Logo。准备透明背景 PNG/SVG,深浅背景都要清楚。
Login background管理员、Affiliate、Advertiser 登录页。Default、Bing daily wallpaper 或 Custom image。没有品牌图时可用 Bing;正式上线建议上传品牌图。

自定义后台登录路径

管理后台默认路径是 /admin。正式上线前建议改成客户自己的私有路径,方便区分环境,也能减少被自动扫描命中的概率。

  1. 进入 Settings Center → Platform / Brand
  2. 找到 管理面板路径 / Admin path
  3. 填写路径名称,例如 afftrix-secure,不要输入前面的 /
  4. 点击保存。
  5. 使用 https://your-domain.com/afftrix-secure 验证后台登录。
  6. 把新后台路径写入平台资料,并通知所有管理员。
路径命名建议

不要使用 apiaffiliateadvertiserstorageoffersinstall 等系统公共路径。修改后如果仍访问旧的 /admin,应以实际后台路径为准。

Tracking & GeoIP、住宅代理和 Offer Health 检测

带国家限制的 Offer 建议先配置住宅代理。系统检测落地页时会从目标国家访问页面,避免服务器本机 IP 与 Offer 国家不一致导致误判。

后台入口:Settings Center → Tracking & GeoIP → Offer link health

Tracking & GeoIP 住宅代理设置
住宅代理用于 Offer Health、落地页检测和目标国家访问验证。截图里的账号密码是示例值,不要在文档或工单里展示真实代理密钥。
字段推荐填写说明
Residential proxy typeSOCKS5H大多数住宅 SOCKS 代理建议使用 SOCKS5H,由代理服务器解析目标域名。只有服务商明确要求本地 DNS 解析时才选择 SOCKS5。
Residential proxy hostgate.example-proxy.com只填写主机名,不要填写 http://;端口单独填写。
Residential proxy port1000必须与代理服务商提供的端口一致。
Username template代理用户名国家代码在用户名里时,可使用 {country}{COUNTRY}
Residential proxy password代理密码国家代码在密码里时,可写成 pass-{COUNTRY}-session
Optional country proxy overrides按需填写只有某个国家需要不同代理时才填写,例如 US=socks5h://user:pass@host:1000
Tracking & GeoIP 代理连通性检测
输入目标国家代码后点击“保存并检测代理”。检测会保存当前配置、读取代理出口 IP,并校验出口国家是否一致。
检测结果含义处理方式
检测成功代理可连接,出口国家与目标国家一致。可以用于 Offer Health 检测。
cURL error 97SOCKS5 服务拒绝账号密码。检查用户名、密码、国家代码和 session 拼接规则。
cURL error 52代理连接后目标服务没有返回内容,常见于 DNS 解析方式不匹配。住宅 SOCKS 代理优先尝试 SOCKS5H。
Country mismatch代理能连通,但出口国家不对。检查 {country} / {COUNTRY} 是否放在服务商要求的位置。
为什么需要外部出口 IP 检测

本机 PHP 只能知道服务器自己的 IP,无法知道代理连接出去后外部网站看到的出口 IP。系统会通过 IP 检测服务读取代理出口 IP,并在一个服务不可用时尝试备用服务。

Logo 和登录背景设置步骤

  1. 进入 Settings Center → Platform / Brand
  2. 在 Platform name 填客户品牌名称。
  3. 在 Logo 选择或上传 Logo 文件。
  4. Login background 如果选择 Bing daily wallpaper,登录页会使用 Bing 每日壁纸。
  5. 如果选择 Custom image,需要在 Login background image 选择媒体库图片。
  6. 保存后打开管理员登录页、Affiliate 登录页和 Advertiser 登录页检查显示效果。
  7. 如果 Logo 在深色背景上看不清,换成浅色版 Logo。
默认背景建议

如果客户没有上传背景图,可以使用 Bing 背景作为默认登录背景;如果客户要强品牌露出,建议上传自己的品牌图或媒体库图片。

公开 Offer 市场设置

公开 Offer 市场在 /offers,用于公开展示可推广项目。平台级开关在 Platform / Brand;单个 Offer 还需要在 Offer 的 Public showcase 中开启。

字段作用建议
Enable public showcase是否开放 /offers正式招募 Affiliate 时开启。
Show payout公开页面是否显示佣金。如果佣金有竞争力可开启;私密项目关闭。
Show offer ID是否显示 Offer ID。老客户熟悉 ID 时开启。
Show private teasers私有/申请制 Offer 是否显示为 teaser。想吸引申请时开启。
Require healthy link只展示健康检查通过的 Offer。建议生产开启,避免公开坏链接。
Indexable是否允许搜索引擎索引。公开招商站可开启,私密平台关闭。
Showcase title / intro公开页面标题和介绍。写清楚平台优势、垂直行业和合作对象。

常见错误

  • SMTP 没配置,导致注册和密码重置邮件无法发送。
  • 后台路径修改后没有记录,管理员找不到登录入口。
  • Public site URL 写成 localhost,邮件链接在生产环境不可用。
  • Tracking domain 没解析到服务器,点击链接无法进入系统。
  • 注册开启但 Terms 没写,客户上线后合规风险较高。

Account Operations

账号与团队初始化流程

本指南说明新平台上线后如何建立运营团队和业务账号。建议按顺序完成 Staff Role、Employee、Manager、Advertiser、Affiliate 的创建,再用审计日志和受限账号验证权限。

适合平台管理员 含真实后台截图

流程目标

项目目标
Staff Role已按岗位建立运营、财务、风控、客服、技术支持等角色模板。
Employee每个后台工作人员都有独立账号,不共用 Super Admin。
Manager / AM联盟用户、广告主或任务可以分配给对应负责人。
Advertiser广告主资料、登录账号和后续 Offer 归属清晰。
Affiliate联盟用户资料、审核状态、Manager 归属和付款资料路径清晰。
Audit创建和修改动作能在 Staff Activities 或审计日志中追踪。

推荐顺序

  1. 先创建 Staff Role,明确岗位能访问哪些模块。
  2. 创建 Employee,并绑定 Staff Role。
  3. 创建 Manager / AM,用于分配联盟用户、广告主和运营任务。
  4. 创建 Advertiser,作为 Offer、账单、Connector Key 的归属对象。
  5. 创建 Affiliate,设置审核状态、Manager 和基础资料。
  6. 使用受限账号登录验证菜单、数据范围和敏感操作是否符合预期。
  7. 在 Staff Activities 中检查创建和修改记录。

1. 创建 Staff Role

进入后台 合作方 > 员工角色,点击创建按钮。Staff Role 是 Employee 的权限模板,创建角色时应先写清楚岗位用途,再勾选权限。

创建 Staff Role 真实截图
Staff Role 表单用于设置角色 key 和可访问权限,建议按岗位职责创建多个模板。
字段 / 区域填写建议注意事项
Role key使用稳定英文标识,例如 staff_financestaff_supportstaff_risk后续审计和排查会引用该 key,不建议频繁改名。
Permissions按模块勾选允许访问的能力。只开放岗位必须权限。
Dashboard普通运营可以开放 view dashboard。不代表可以访问财务或安全设置。
OffersOffer 运营角色可以开放 view/create/edit offers。修改 payout、tracking URL 的权限要谨慎。
Payments只给财务角色开放。不建议和 Offer payout 修改权限放在同一角色。
Settings / Security只给高级管理员或技术负责人。普通员工不应默认拥有。

2. Staff Role 模板建议

Staff Role 列表真实截图
保存后回到员工角色列表,确认角色已经出现,并检查状态和权限范围。
角色模板建议开放不建议开放
FinancePayments、Reconciliation、Reports、Payment methods。Offer payout 修改、Tracking settings。
AM OperatorAffiliates、Offer access requests、Tickets、Notifications。Batch payment、Security settings。
Offer ManagerOffers、Creatives、Categories、Offer health。Global payment settings。
Risk ReviewerProfit Guard、Anti-Spy、Fraud logs、Conversion review。Batch payment、SMTP。
SupportTickets、Notifications、用户基础资料查看。删除用户、修改 payout、发送付款。

3. 创建 Employee

进入后台 合作方 > 员工,点击创建按钮。Employee 是后台工作人员账号,和联盟用户、广告主账号分开管理。

创建 Employee 真实截图
创建员工时同时配置账号、数据范围、登录安全和通知渠道。
字段 / 区域填写建议注意事项
Name填写员工姓名或岗位名称。用于审计日志和操作记录。
Email填写员工专属邮箱。不要多人共用。
Password设置初始密码。首次登录后应立即修改。
Status正常员工选择 Active。离职、外包结束或账号异常时改为 Disabled。
Staff roles绑定上一步创建的 Staff Role。按最小权限分配,避免直接给 Super Admin。
Scope mode根据岗位选择 All data 或限制到 Manager / Advertiser / Offer 范围。数据范围不能替代模块权限,两者都要正确。
Allowed IPs需要限制办公网络时填写 IP 或 CIDR。空白表示允许任意 IP。
Notification preferences选择该员工需要接收的通知渠道。财务、风控、技术类通知应发给对应岗位。
  • 让员工使用自己的邮箱登录后台。
  • 检查左侧菜单是否只显示该角色允许访问的模块。
  • 打开一个无权限页面,确认系统会阻止访问。
  • 修改初始密码。
  • 对财务、技术、Super Admin 类账号启用 2FA。

4. 维护 Employee 列表

Employee 列表真实截图
员工列表用于确认状态、角色、数据范围、2FA 和最后登录时间。
定期复核

每月检查一次离职或停用人员,确认没有多余账号。

异常处理

账号异常时先禁用,再检查最近 Staff Activities。

临时账号

外包或临时人员应限制敏感模块,并设置明确停用时间。

权限分离

财务账号和 Offer 运营账号分开,降低误付款和负利润风险。

5. 创建 Manager / AM

进入后台 合作方 > 经理,点击创建按钮。Manager / AM 用于分配联盟用户、广告主、任务和佣金归属。

创建 Manager 真实截图
Manager 是业务负责人对象,可用于 AM 工作台、经理佣金和用户归属。
场景建议
需要 AM 工作台创建 Manager,并把 Affiliate 分配给该 Manager。
需要经理佣金创建 Manager 后再配置 Manager commission 规则。
只需要后台操作人员创建 Employee 即可,不一定需要 Manager。
Manager 也要登录后台确认登录账号、权限和数据范围符合岗位。

6. 创建 Advertiser

进入后台 合作方 > 广告主,点击创建按钮。Advertiser 是 Offer、账单、Connector Key 和广告主后台数据隔离的核心对象。

创建 Advertiser 真实截图
创建 Offer 之前先准备 Advertiser,可以避免后续频繁修改 Offer 归属。
字段 / 区域填写建议注意事项
Login account选择或创建广告主登录账号。广告主后台登录使用该账号。
Company / Contact填写公司名称、联系人、邮箱和电话。用于账单、通知和支持。
Status新广告主可先设为 Pending 或 Active。未审核广告主不应直接开放大量 Offer。
Manager绑定负责的 AM。后续任务、通知、报表可按负责人筛选。
Billing配置结算周期、账单资料或发票信息。影响财务对账和广告主报表。

7. 创建 Affiliate

进入后台 合作方 > 联盟用户,点击创建按钮。Affiliate 是推广方账号,可以通过公开注册申请进入,也可以由后台手动创建。

创建 Affiliate 真实截图
创建 Affiliate 时应确认登录账号、审核状态、Manager 归属和基础资料。
字段 / 区域填写建议注意事项
Login account选择或创建联盟用户登录账号。一个 Affiliate 应对应明确联系人。
Account status新账号可设为 Pending,审核后改 Active。Pending 账号不应直接投放。
ID系统可自动生成,也可按迁移数据填写。迁移旧系统时保持旧 ID 有助于对账。
Profile填写显示名称、联系人、公司、国家等。影响审核、通知和报表识别。
Manager绑定 AM。便于 AM 工作台管理和后续沟通。
Payment profile引导联盟用户完善付款资料。未完善付款资料会影响付款流程。

8. 验证权限和审计记录

完成账号创建后,进入 员工活动 查看操作记录。

员工活动日志真实截图
员工活动日志用于追踪角色、员工、权限和敏感操作的变更记录。
  • 检查创建 Staff Role 的操作人和时间。
  • 检查创建 Employee 的操作人和时间。
  • 确认员工角色、状态、数据范围是否被修改过。
  • 检查是否有代登录、批量修改、付款或安全设置等敏感动作。
  • 离职或停用人员不应再有近期操作。

上线检查清单

  • 已保留至少一个 Super Admin,且不用于日常操作。
  • 运营、财务、风控、客服、技术支持使用不同 Staff Role。
  • 每个员工都有独立邮箱和独立密码。
  • 财务角色不能修改 Offer payout。
  • Offer 运营角色不能发送批量付款。
  • 技术角色可以处理 API / Tracking,但不能查看不必要财务数据。
  • Manager 已绑定对应 Affiliate / Advertiser。
  • Advertiser 创建后再创建 Offer。
  • Affiliate 审核状态、Manager、付款资料路径明确。
  • Staff Activities 能看到关键创建和修改记录。

常见错误

错误影响正确做法
所有人共用 Super Admin无法追踪真实操作人,风险过高。每个人使用独立 Employee 账号。
先建员工再想权限员工创建后权限容易临时乱给。先设计 Staff Role,再创建 Employee。
财务和 Offer 权限放在一个角色可能同时修改 payout 并付款。财务、运营分离。
未设置 ManagerAM 工作台、任务、报表归属不清晰。创建 Manager 并绑定相关 Affiliate / Advertiser。
员工离职只改密码仍可能保留会话或 API 权限。禁用账号、检查活动日志、轮换相关 key。

Users & Permissions

用户、角色与权限

Afftrix 有平台管理员、Manager、Employee、Affiliate、Advertiser 多种角色。权限配置的目标是让每个角色只看到自己需要处理的数据。

适合管理员和团队负责人

创建员工的正确顺序

不要直接给员工超级管理员权限。推荐流程是:先创建 Staff Role,再创建 Employee,最后通过 Staff Activities 和 Audit Logs 检查操作记录。

员工和权限配置真实截图
员工权限要从岗位职责出发,财务、AM、客服、风控应使用不同 Staff Role。

角色说明

角色典型职责数据范围
Super Admin系统最高权限,配置设置中心和所有业务数据。全平台。
Admin日常运营、Offer、用户、付款、报表、风控。按权限配置。
Manager / AM管理分配给自己的 Affiliate、Offer access、任务和沟通。自己负责的 Affiliate 和相关数据。
Employee客服、财务、风控、运营助理等平台员工。由 Staff Role 控制。
Affiliate推广 Offer,查看自己的点击、转化、佣金和付款。自己的推广数据。
Advertiser提交 Offer、查看自己的转化、账单和 Postback。自己的广告主数据。

创建 Staff Role

  1. 进入后台 Staff Roles
  2. 点击 Create,填写角色名称,例如 Finance、AM Operator、Risk Reviewer。
  3. 勾选该角色允许访问的模块和操作。
  4. 只给岗位必须的权限,不要把 Settings、Payment、Security 默认给所有员工。
  5. 保存后,用一个验证员工账号登录检查菜单是否符合预期。
角色模板建议开放不建议开放
FinancePayments、Batch send、Reconciliation、Reports。Tracking settings、Offer payout rules。
AM OperatorAffiliates、Offer access requests、Tickets、Notifications。Payment send、Security settings。
Offer ManagerOffers、Creatives、Categories、Offer health。Global payment settings。
Risk ReviewerProfit Guard、Anti-Spy、Conversions review、Fraud logs。Batch payment、SMTP。
SupportTickets、basic user profile、Notifications。Delete users、change payouts、payment send。

创建 Employee

  1. 进入后台 Employees 或 Staff Roles。
  2. 先创建 Staff Role,选择允许访问的资源和操作。
  3. 创建 Employee,绑定对应 Staff Role。
  4. 如果员工只处理某类业务,避免授予 Settings、Payments 等敏感权限。
  5. 创建后让员工首次登录并修改密码。
字段怎么填注意
Name员工真实姓名或工作名称。便于审计日志追踪。
Email员工登录邮箱。不要多人共用同一个邮箱。
Password初始密码。让员工首次登录后立即修改。
Staff Role选择上一步创建的角色。不要直接给 Super Admin。
StatusActive / Disabled。员工离职后立刻禁用。
Manager scope如有 AM 数据隔离,绑定对应 Manager。防止看到不属于自己的 Affiliate。

权限设计建议

运营角色

允许管理 Offer、Affiliate、Advertiser、Access Request、Tickets,不建议允许 Security 和付款设置。

财务角色

允许 Payments、Reconciliation、Reports,不建议允许修改 tracking 和 payout 规则。

风控角色

允许 Profit Guard、Anti-Spy、Fraud Logs、Conversion review,不建议允许付款。

客服角色

允许 Tickets、Notifications、Affiliate profile 基础资料,不建议允许删除用户。

代登录和预览

管理员可以代登录 Affiliate、Advertiser、Manager 或 Employee 排查问题。使用代登录时,后台应记录审计日志,避免误操作无法追踪。

安全提醒

代登录适合排查用户反馈,不适合代替用户长期操作。涉及付款、密钥、密码等敏感区域时,建议只让用户本人处理。

权限上线检查

  • 至少保留一个 Super Admin 账号,另外日常运营使用 Employee 账号。
  • 财务角色不能修改 Offer payout,运营角色不能直接批量付款。
  • 员工离职或外包结束后,先禁用账号,再检查最近 Staff Activities。
  • 敏感操作必须能在 Audit Logs 中找到操作者、时间和修改前后内容。
  • 如果客户启用 2FA,要求管理员和财务账号优先启用。

Offer playbook

Offer 从创建到上线完整教程

Offer 是 Afftrix 里最核心的业务对象。联盟用户推广的是 Offer,广告主回传转化也必须归属到 Offer,报表、佣金、付款和风控都围绕 Offer 展开。

上游网络优先 必填字段已标记 点击到转化验证

0. 你会完成什么

完成本教程后,你应该能跑通下面这条链路:

  1. 后台创建广告主。
  2. 后台创建 Offer。
  3. Affiliate 获取 tracking link。
  4. 用户点击 tracking link,Afftrix 生成 cid
  5. 用户跳转到广告主或上游网络页面。
  6. 广告主、上游网络或 Connector 回传转化。
  7. Afftrix 计算收入、佣金和利润。
  8. 报表、转化日志和付款页面都能核对到这笔数据。
准备项示例用途
广告主Demo Fashion StoreOffer 归属、账单、广告主后台数据
Offer 类型CPS电商订单按销售额返佣
分类Ecommerce / Fashion方便 Affiliate 筛选
Destination URLhttps://network.example.com/click?sub1={cid}&pub={aff_id}用户最终跳转地址
收入规则订单金额 20%广告主应付给平台的收入
佣金规则订单金额 12%平台应付给 Affiliate 的佣金

1. 第一步:创建广告主

创建 Offer 前,必须先准备广告主。Offer 的账单、回传、广告主后台和 Connector 都需要绑定广告主。

进入后台 合作方 > 广告主,点击创建广告主。

创建广告主
创建广告主
字段是否必填怎么填写注意事项
Status *必填新客户通常选择 Active;未确认资料时选择 Pending。状态异常会影响广告主后台和 Offer 归属。
Company name *必填填广告主公司名或店铺名。报表、账单和 Offer 详情会显示这个名称。
Email建议填广告主联系人邮箱。后续通知和排查会用到。
Website URL建议填广告主官网或店铺首页。创建 Offer 时用于核对落地页。
Manager可选分配负责该广告主的经理或 AM。方便后续运营跟进。

保存广告主后,再进入 Offer 创建页面。不要为了省事把所有 Offer 都挂在一个验证用广告主下面,否则后续账单和广告主后台数据会混在一起。

2. 第二步:从 Offer 列表进入创建页

进入后台 Offer > Offer 列表,点击右上角的创建按钮。

从 Offer 列表创建
从 Offer 列表创建

Offer 列表不是只用来查看名称。正式上线前,需要在列表里重点检查:

检查重点
Advertiser是否绑定到正确广告主。
Category是否选了合适分类,不要长期使用 Other。
Status正式推广应为 Active。
Revenue / Payout广告主收入和 Affiliate 佣金是否符合合同。
Clicks / Conversions验证后是否有数据。
Public ID公开展示 ID 是否符合平台的公开 ID 规则。

3. 第三步:优先填写必填字段

创建页会分成多个区域。建议先填最重要的基础字段,保存成功后再补 Targeting、Caps、素材和高级策略。

Offer 创建必填项
Offer 创建必填项
字段是否必填推荐填写说明
Offer status *必填Active 或 Draft未准备上线时选 Draft;确认可投放后再改 Active。
Name *必填清楚写出产品、地区或活动名Affiliate 看到名称后应能判断推广内容。
Current group *必填Public / Private / Require approval决定 Affiliate 是否可以看到或申请 Offer。
Advertiser强烈建议选择刚创建的广告主不绑定广告主会影响账单、广告主后台和 Connector。
任务类型 *必填CPA / CPL / CPS / CPI类型名称不要翻译,按业务模型选择。
Offer category强烈建议Ecommerce、Finance、SaaS 等用于公开市场、筛选和报表分组。
Slug可选系统自动生成即可修改后会影响可读 URL。
ID自动写入系统生成不建议手动修改。

必填字段没有填完时不要继续配置复杂规则。先让 Offer 能保存,再按下面的章节补充上线所需设置。

4. Offer 分类怎么选

Offer category 不是装饰字段。分类会影响 Affiliate 查找 Offer、公开市场展示、后台报表分组和运营人员筛选。

场景推荐分类说明
电商商品、独立站、WooCommerce、ShopifyEcommerce后续可以细分 Fashion、Beauty、Home 等。
金融开户、贷款、信用卡Finance注意合规要求和国家限制。
App 安装、游戏、工具类应用Mobile App通常配合 CPI 或 CPA。
SaaS 注册、订阅、试用SaaS常见 CPL、CPA 或 CPS。
表单收集、询盘、预约Lead Generation常见 CPL。
暂时无法归类Other只建议临时使用,上线前最好调整。

如果后台没有合适分类,先到 Offer > 分类 创建分类,再回到 Offer 页面选择。不要把所有 Offer 都放到 Other,否则后期 Affiliate 很难筛选。

5. 第四步:配置 Tracking & Postback

Tracking & Postback 是 Offer 最重要的区域。这里决定点击怎么跳转、cid 怎么传给广告主或上游网络、转化怎么回到 Afftrix。

Offer 追踪设置
Offer 追踪设置

5.1 先区分两个 URL

字段用途应该填写什么不要填写什么
Preview URL给 Affiliate 预览页面商品页、注册页、公开截图页后台地址、需要登录的页面
Destination URL用户点击 tracking link 后最终访问的页面广告主官网、商品页、落地页、上游 click URLAfftrix postback URL、广告主后台地址、无效短链
Advertiser Postback URL广告主在转化发生后请求 Afftrix系统生成的 postback 地址不要填到 Destination URL
Affiliate Postback URLAfftrix 通知 Affiliate 转化Affiliate 在用户中心配置的回调地址广告主回传地址

5.2 上游网络 Offer 怎么填

大多数联盟系统对接上游网络时,Destination URL 应填写上游网络提供的 click URL,并把 Afftrix 的 cid 传给上游要求的点击参数。

常见写法:

https://network.example.com/click?sub1={cid}&pub={aff_id}&offer={offer_id}

如果上游要求参数名是 click_id

https://network.example.com/click?click_id={cid}&pub_id={aff_id}

如果上游要求参数名是 aff_sub

https://network.example.com/click?aff_sub={cid}&source={s1}

重点是:必须把 Afftrix 的 {cid} 放进上游能回传的参数里。否则用户虽然跳到了上游页面,但转化回来时 Afftrix 不知道这笔转化来自哪一次点击。

5.3 上游 Postback 怎么填写

在上游网络后台,需要把 Afftrix 的 Advertiser Postback URL 配进去。上游转化发生后,要把它保存的点击参数原样回传给 Afftrix。

示例:

https://your-afftrix-domain.com/postback?cid={sub1}&amount={payout}&currency=USD&order_id={transaction_id}

如果你在 Destination URL 使用的是 click_id={cid},那么上游 postback 就要这样写:

https://your-afftrix-domain.com/postback?cid={click_id}&amount={payout}&currency=USD&order_id={transaction_id}
上游保存的参数Afftrix 回传字段说明
sub1cid={sub1}最常见写法。
click_idcid={click_id}上游叫 click id 时使用。
aff_subcid={aff_sub}某些网络使用 aff_sub。
transaction_idorder_id={transaction_id}用于去重,避免重复转化。
payoutsale_amountamount={payout}传收入或订单金额,取决于 Offer 计价规则。

上游 postback 验证成功后,到 Afftrix 后台 Tracking > Conversions 查看是否出现转化,并确认 CID、Offer、Affiliate、金额都正确。

5.4 WooCommerce / Shopify / 自建站怎么填

如果广告主是自己的官网、商品页、注册页或店铺页面,Destination URL 可以直接填写广告主页面:

https://shop.example.com/products/summer-shirt

Afftrix 跳转时会自动追加必要参数,广告主最终收到的 URL 类似:

https://shop.example.com/products/summer-shirt?cid=CLICK_ID&aff_id=2001&offer_id=1001&s1=facebook

广告主网站、WooCommerce Connector 或 Shopify App 需要保存 cid,用户下单或注册后再把 cid 带回 Afftrix。这个场景下 Destination URL 通常不需要手动写 {cid}

6. 第五步:配置访问权限和 Targeting

Targeting 决定哪些 Affiliate、国家、设备、浏览器或流量来源可以访问 Offer。

Offer 定向设置
Offer 定向设置
设置什么时候需要建议
Current group控制公开、私有或申请制新 Offer 推荐先 Require approval,确认稳定后再公开。
Allowed countries只允许特定国家投放按广告主合同填写,不要空口放开全部国家。
Blocked countries禁止高风险国家对高欺诈或不服务地区进行阻止。
Device / OSApp 或移动端 OfferCPI 通常要限制 iOS / Android。
Traffic source广告主禁止某些渠道明确禁止 brand bidding、incentive、adult 等。
Fallback URL不符合条件时跳转填公开页面或其他可用 Offer,不要跳空白页。

上线前至少用一个符合条件的点击和一个不符合条件的点击验证跳转结果。

7. 第六步:配置收入、佣金和上限

Pricing & Caps 决定平台赚多少钱、Affiliate 得多少钱,以及转化或预算达到上限后怎么处理。

Offer 收入佣金必填项
Offer 收入佣金必填项
字段是否必填推荐填写说明
Revenue model *必填Fixed amount 或 Percentage广告主给平台的收入计算方式。
Revenue amount / percent *必填固定金额或百分比CPS 通常用百分比,CPA/CPL 常用固定金额。
Payout model *必填Fixed amount 或 Percentage平台给 Affiliate 的佣金计算方式。
Payout amount / percent *必填低于 revenuePayout 高于 Revenue 会导致负利润。
Currency *必填USD 或客户业务币种报表、付款和账单都使用该币种。
Daily cap可选按广告主预算填写达到后可以暂停或限制转化。
Total cap可选按合同总量填写防止超量消耗预算。

示例:

订单金额RevenuePayout平台利润
USD 10020% = USD 2012% = USD 12USD 8
USD 5020% = USD 1012% = USD 6USD 4

如果发现验证数据出现负利润,优先检查 Offer 的 revenue 和 payout 配置,而不是先怀疑报表。

8. 第七步:保存草稿和补全高级设置

创建 Offer 时建议分两次保存:

  1. 第一次保存:只填写基础必填字段、广告主、分类、Destination URL 和基础佣金。
  2. 第二次保存:补 Targeting、Caps、素材、事件、优惠码、fallback、特殊 affiliate rule。

这样即使页面刷新,也不会丢失已填的核心内容。高级设置较多时,先保存草稿再继续编辑更稳。

9. 第八步:验证点击

保存 Offer 后,用验证用 Affiliate 获取 tracking link。打开链接后,到后台 Tracking > Clicks 检查是否出现点击。

需要核对:

字段应该看到什么
CID每次点击生成唯一值。
Affiliate对应验证用 Affiliate。
Offer对应刚创建的 Offer。
Destination跳到你填写的 Destination URL。
Sub IDss1s2 等参数被保存。
Geo / Device国家、设备和浏览器识别正常。

如果 Clicks 页面没有记录,先检查 Offer 是否 Active、tracking domain 是否正确、浏览器是否被风控阻止。

9.1 用 Check link availability 做上线前链接检测

Check link availability 用来快速判断当前 Offer 的目标链接是否可以打开。它适合放在正式放量前使用,先过滤明显无效的上游链接、SSL 问题、404 页面、GEO 限制或代理配置问题。

可以从以下位置运行:

  • Offer 列表的 Actions 菜单。
  • Offer 列表右键菜单。
  • Offer 详情页顶部按钮。
  • Offer Health 页面批量检查。
检测结果含义下一步
Healthy链接可以打开。继续进行真实点击、CID 和转化回传验证。
Warning可以访问,但存在跳转、SSL、重定向或内容风险。打开 Offer Spy 查看完整跳转链路。
Broken链接打不开、被拒绝或返回错误。检查 Destination URL、上游 click URL、SSL、代理和国家限制。
Geo not verified系统无法确认目标国家是否可访问。先配置 Tracking & GeoIP 的住宅代理,再重新检测。

如果系统提示未配置代理,可以继续用服务器 IP 做基础检测,但这只能证明“服务器能不能打开”,不能代表目标国家用户一定能打开。带 GEO 限制、上游风控或国家专属落地页的 Offer,应先配置住宅代理。

10. 第九步:验证转化回传

验证转化时,必须使用刚刚点击产生的 CID。不要随便编一个 CID,否则 Afftrix 无法完成点击归因。

S2S 验证示例:

curl "https://your-afftrix-domain.com/postback?cid=CLICK_ID&amount=100&currency=USD&order_id=TEST-10001"

API 验证示例:

curl -X POST "https://your-afftrix-domain.com/api/integration/v1/conversions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cid":"CLICK_ID","order_id":"TEST-10001","amount":100,"currency":"USD"}'
转化列表
转化列表

验证成功后,应在 Conversions 里看到:

字段检查
Statuspending、approved 或 configured default。
Revenue按 Offer revenue 规则计算。
Payout按 Offer payout 规则计算。
ProfitRevenue 减 Payout 后不应异常为负。
Order ID使用唯一验证订单号,避免重复入账。
Logs请求参数和响应状态可追踪。

11. 第十步:上线前检查

上线前按下面顺序逐项确认:

检查项通过标准
广告主已创建并绑定 Offer。
Offer 基础信息名称、状态、分类、任务类型正确。
Tracking URL上游网络场景已把 {cid} 传给上游参数。
上游 Postback上游能把点击参数回传到 Afftrix 的 cid
WooCommerce / ShopifyConnector 能保存 CID 并回传订单。
Targeting国家、设备、权限和 fallback 已验证。
Revenue / Payout验证转化后利润符合预期。
ClicksAffiliate 点击能生成 CID。
Conversions验证转化能归因到正确 Affiliate 和 Offer。
ReportsPerformance、Affiliate、Advertiser 报表一致。

12. 常见错误

错误后果正确做法
Destination URL 填了 Afftrix postback URL用户点击后无法到达广告主页面Destination URL 填落地页或上游 click URL。
上游 URL 没带 {cid}转化回来无法匹配点击{cid} 放入 sub1click_id 或上游指定参数。
上游 postback 没把 click id 回传到 cidConversion 变成 unattributed 或失败使用 cid={sub1}cid={click_id} 等映射。
Payout 高于 Revenue报表出现负利润重新配置佣金规则,先用验证订单核对。
Offer 直接设为 Public未审核 Affiliate 也可能看到新 Offer 建议先 Require approval。
分类长期用 OtherAffiliate 难以筛选上线前创建清晰分类并重新归类。

Offer 创建完成后,建议把这篇教程和《Offer Tracking URL 怎么填写》《Postback 发送设置与测试》《Offer 收入、佣金与利润》一起使用。一个 Offer 只有在点击、CID、回传、佣金和报表都验证通过后,才算真正可以上线。

Offer Setup

创建 Offer 全流程

本指南以 WooCommerce 电商广告主创建 CPS Offer 为例,说明从创建广告主、创建 Offer、填写分类和追踪链接,到验证点击、回传转化、核对佣金利润的完整流程。

先创建广告主 再创建 Offer Tracking URL 重点说明

快速创建路径

运营或 AM 第一次创建 Offer 时,可以先按这个顺序做。字段很多时不要急着一次性填完,先保证链接、佣金、权限和测试结果正确。

  1. 先创建或选择正确广告主,确认联系人、官网、结算方式和回传要求。
  2. 创建 Offer,填写名称、分类、公开描述、状态和基础展示信息。
  3. 填写 Preview URL 和 Destination URL,并把广告主点击 ID 宏替换成 Afftrix 的 {cid}
  4. 配置 Revenue、Payout、币种、Caps、Targeting 和 Affiliate 访问规则。
  5. 先保存为 Draft 或 Paused,使用测试 Affiliate 链接跑一次点击和回传。
  6. Offer Health、Postback Logs、Conversions 和报表都正常后,再切换为 Active。

0. 本教程要完成什么

完成本指南后,平台应能跑通一条完整业务链路:

  1. 后台创建广告主。
  2. 后台进入 Offer 列表并创建 Offer。
  3. 填写 Offer 必填字段、分类、访问权限、追踪链接和计价规则。
  4. Affiliate 获取 tracking link 并完成一次真实点击。
  5. 广告主或 Connector 回传一笔验证转化。
  6. 后台能看到 Click、CID、Conversion、Revenue、Payout、Profit。

示例业务:

项目示例
广告主Demo Fashion Store
Offer 类型CPS
Offer 分类Ecommerce / Fashion
落地页https://shop.example.com/products/summer-shirt
佣金规则广告主收入 20%,Affiliate 佣金 12%,平台利润 8%

1. 第一步:先创建广告主

创建 Offer 前必须先准备广告主。Offer 的账单、Connector Key、广告主后台数据、转化归属都会绑定到广告主。

进入后台 合作方 > 广告主,点击创建广告主。

创建 Advertiser
创建 Advertiser
字段是否必填怎么填写说明
Status *必填新客户通常选 Active;待审核客户可选 Pending。状态不正确时,广告主后台和 Offer 归属可能不可用。
Company name *必填填广告主公司名或店铺名,例如 Demo Fashion Store。Offer 列表、报表、账单都会显示该名称。
Email建议填写填广告主联系人邮箱。后续通知、账单和排查会用到。
Website URL建议填写填广告主官网或店铺首页。创建 Offer 时核对落地页是否属于该广告主。
Manager可选分配负责该广告主的经理或 AM。便于 AM 工作台、报表和通知归属。
Postback parameter mapping按需填写上游平台参数名不是默认值时再改。普通 WooCommerce / Shopify 广告主通常不用改。

保存后再创建 Offer。不要先用验证用广告主随便创建,后续再改归属,这样容易导致广告主后台、账单和 Connector 数据混乱。

2. 第二步:进入 Offer 列表并点击创建

进入后台 Offer > Offer 列表,点击右上角 创建任务 / 创建 Offer

从 Offer 列表创建任务
从 Offer 列表创建任务

Offer 列表不是只用来查看名称。上线前要在列表里反复检查这些列:

检查重点
Advertiser / 广告主是否绑定到正确广告主。
分类是否不是 Uncategorized / Other。
任务类型CPA、CPL、CPI、CPS 是否符合业务。
当前组Public、Requested、Private 是否符合访问策略。
Status是否仍是 Draft / Pending,还是已经 Active。
Link health是否 Broken、Geo not verified 或 Unchecked。
佣金 / 收入Payout 是否低于 Revenue,避免负利润。

3. 第三步:先填写最重要字段

创建页第一屏是 Offer Basics。红色星号字段必须填写;没有星号但影响运营的字段,也建议在创建时一次填好。

Offer 创建必填字段标注
Offer 创建必填字段标注
优先级字段是否必填推荐填写为什么重要
1Offer status *必填新建先用 Draft 或 Pending review,验证通过后再改 Active。避免未验证用 Offer 被 Affiliate 看到并真实投放。
2Name *必填品牌 + 类型 + 国家,例如 Demo Fashion CPS US运营、Affiliate、广告主和报表都靠名称识别。
3Current group *必填新 Offer 建议 Requested;高价值 Offer 用 Private;成熟 Offer 才 Public。决定 Affiliate 是否能看到、申请或直接推广。
4Advertiser *必填选择第一步创建的真实广告主。影响广告主后台、账单、Connector Key、API 和报表隔离。
5Offer type *必填电商订单用 CPS,注册表单用 CPL,安装用 CPI,普通转化用 CPA。CPA/CPL/CPI/CPS 不要翻译,类型会影响业务理解和报表分类。
6Offer category强烈建议Ecommerce、Fashion、Finance、SaaS、Gaming 等。影响公开市场筛选、Affiliate 查找、推荐和运营分组。
7Slug可选需要稳定公开路径时填写。留空可由系统自动生成。
8Source ID可选上游网络或旧系统 Offer ID。迁移、导入和对账时有用。

4. Offer 分类怎么选

Offer 分类不是装饰字段。它会影响:

  • Affiliate 在用户中心筛选 Offer。
  • 公开 Offer 市场的分类展示。
  • 平台运营按行业查看 Offer。
  • 后续素材、推荐和报表分组。

分类建议:

业务类型推荐分类示例 Offer
电商 / WooCommerce / ShopifyEcommerce、Fashion、Beauty、Home服装、护肤、家居商品 CPS。
金融Finance、Loan、Credit Card、Insurance贷款申请、信用卡开户、保险询价。
SaaS / 软件SaaS、Software、Trial、Subscription免费试用、订阅购买、Demo 预约。
App / 游戏Mobile Apps、Gaming、InstallCPI 安装、游戏注册、首充。
内容 / 表单Lead Generation、Education、Survey表单提交、课程咨询、问卷。

分类使用规则:

  1. 不要所有 Offer 都放到 Other 或 Uncategorized。
  2. 如果没有合适分类,先在后台 Offer > 分类 创建新分类,再回来选择。
  3. 已停用分类如果被旧 Offer 使用,可能仍会在旧 Offer 上显示;新 Offer 应选择当前启用的分类。
  4. 分类面向 Affiliate 和运营人员,名称要清楚,避免使用不清晰代号。

5. 配置流量和访问权限

进入后续步骤或保存草稿后,检查国家、设备、Affiliate 访问权限和公开说明。

Offer 定向和访问权限
Offer 定向和访问权限
配置怎么填常见建议
Supported countries广告主只接受指定国家时必须选择。例如 US-only 就只选 US,不要留空。
Supported devices页面或 App 只适合某类设备时填写。App 安装通常限制 iOS / Android。
Current group / Affiliate accessPublic、Requested、Private 要和投放策略一致。新 Offer 先用 Requested,再审核 Affiliate。
Affiliate access rules指定允许或禁止的 Affiliate。Private Offer 必须给验证用 Affiliate 放行,否则看不到。
Public message写给 Affiliate 看的说明。不要暴露平台利润、上游链接、密钥或原始数据。

6. 设置上线时间和 Affiliate 可见提示

Availability and schedule 用来控制 Offer 的可投放时间,以及 Offer 暂停、到期、预算或 cap 变化时给 Affiliate 看的公开说明。这里不是写团队备注,也不要放上游价格、平台利润、原始 tracking URL 或广告主私密信息。

Offer Availability and schedule annotated screenshot
Availability and schedule:设置开始时间、结束时间、预计恢复时间、Affiliate 可见原因和公开消息。
字段怎么使用建议
Starts atOffer 从什么时间开始可投放。预热期、定时开跑、广告主指定上线时间时填写;可立即开始时留空。
Ends atOffer 到什么时间结束。短期活动、季节性 Offer、广告主给了明确结束时间时填写;长期 Offer 可留空。
Expected resume time暂停后预计什么时候恢复。只有临时暂停、预算补充、技术修复、广告主审核时填写;没有明确时间不要乱填。
Affiliate-facing reasonAffiliate 看到的原因标签。选择 Temporarily paused、Advertiser review、Quality review、Technical check、Budget paused、Cap reached 或 Other。它用于手动对外提示,不等同于自动 cap 触发。
Public message给 Affiliate 看的说明文字。说明是否等待、是否切换流量、预计恢复方向;不要写平台利润、上游链接、密钥或广告主私密信息。
常见场景推荐填写Affiliate 看到后应该怎么做
Offer 自动达到 cap先设置 Daily conversion capTotal conversion cap。当 approved / pending 且 billable 的转化数量达到上限后,用户端自动显示 Cap reached暂停当前流量,等待恢复,或切换同类 Offer。
手动临时显示 Cap reached如果需要立刻让 Affiliate 看到 Cap reached,把 Offer 状态改为 Paused,再把 reason 选为 Cap reached,并填写 Public message。Affiliate 会看到这是暂停提示,不是因为转化数真正自动触发了 cap。
广告主临时审核Reason 选 Advertiser review,Public message 写“广告主正在复核,恢复后会重新开放”。不要继续放大流量,等待通知。
质量复核或拒单异常Reason 选 Quality review,只写公开可见原因,不写具体质量核减规则、利润或风控判断。先停止新增流量,配合提供渠道信息。
技术检查或落地页异常Reason 选 Technical check,Public message 写“落地页或追踪正在检查”。等待恢复,不要继续推广旧链接。
预算暂停Reason 选 Budget paused,不要写广告主真实预算金额。切换其他 Offer 或等预算恢复。
填写原则

Affiliate-facing reason 和 Public message 是对外可见内容,只写 Affiliate 需要知道的运营信息。非公开原因、广告主报价、平台利润、上游原始链接、密钥和风控细节都不要放在这里。

Cap reached 的两种触发方式

自动触发依赖 Daily conversion capTotal conversion cap:当 approved / pending 且 billable 的转化数量达到上限后,Affiliate 端自动显示 Cap reached。手动临时提示则需要先把 Offer 状态改成 Paused,再把 reason 选为 Cap reached,必要时填写 Public message。

7. Tracking URL 是最重要的配置

Offer 里最容易填错的是链接。请先区分三种 URL:

URL 类型谁使用应该填什么不能填什么
Destination / Target URLAfftrix 跳转系统使用用户最终访问的广告主页面,或上游网络 click URL。不要填 Afftrix postback URL、广告主后台地址、无效短链。
Affiliate Tracking LinkAffiliate 推广使用系统在 Offer 保存并放行后生成,Affiliate 在用户中心复制。不要让 Affiliate 直接推广 Destination URL。
Advertiser Postback URL广告主服务器回传使用转化发生后由广告主请求 Afftrix。不要填到 Destination URL。
Offer Tracking URL 标注
Offer Tracking URL 标注

7.1 上游网络 Offer 怎么填

如果对接的是上游联盟网络,上游通常要求把点击 ID 放进它的 sub1click_idaff_sub 参数。此时需要手动把 Afftrix 的 {cid} 放进去:

https://network.example.com/click?sub1={cid}&pub={aff_id}&offer={offer_id}

常见写法可以按上游要求调整:

上游要求的点击参数Destination URL 里怎么写说明
sub1sub1={cid}最常见写法,上游回传时再把 {sub1} 带回来。
click_idclick_id={cid}有些广告主或网络把点击 ID 字段叫 click_id。
aff_subaff_sub={cid}老系统或部分网络常用 aff_sub。
transaction_idtransaction_id={cid}少数上游把点击 ID 当交易追踪 ID 使用。

保存 Offer 后,Affiliate 推广的是 Afftrix tracking link。真实点击发生时,Afftrix 会先生成自己的 CID,再跳到上游网络,并把 CID 写入上游要求的参数。

7.2 上游 Postback 回传怎么填写

上游网络需要在它自己的后台填写 Afftrix 的 Advertiser Postback URL。核心原则是:前面 Destination URL 把 Afftrix 的 {cid} 放进了上游的哪个参数,回传时就要把上游保存的同一个参数带回 Afftrix 的 cid

如果上游 click URL 使用:

https://network.example.com/click?sub1={cid}&pub={aff_id}&offer={offer_id}

那么上游后台的 Postback / Callback / S2S URL 可以参考:

https://your-afftrix-domain.com/postback.php?cid={sub1}&amount={payout}&currency=USD&order_id={transaction_id}&status=approved

常见字段映射如下:

Afftrix 参数是否重要上游宏示例说明
cid必填{sub1}{click_id}{aff_sub}必须带回点击时保存的 Afftrix CID,否则无法归因。
amount建议{payout}{sale_amount}{revenue}用于按订单金额或上游金额计算 revenue / payout。
currency建议USD{currency}固定币种可以直接写 USD;多币种用上游币种宏。
order_id强烈建议{transaction_id}{conversion_id}{order_id}用于去重、查账和排查重复回传。
status按需approvedpending{status}如果上游状态值不统一,先用固定值,后续再做状态映射。
secret按需固定密钥开启 Postback secret 时必须带上,避免伪造回传。

上游后台常见字段名称可能叫 Postback URLCallback URLS2S URLConversion URL。不要把这个 URL 填到 Afftrix 的 Destination URL,也不要把 Affiliate tracking link 填到上游 Postback 里。

验证时先用真实 Affiliate tracking link 产生一次点击,再让上游发送一条验证转化。回传成功后,Afftrix 后台应该能在 Postback Logs 和 Conversions 里看到同一个 cidorder_id 和金额。

7.3 WooCommerce / Shopify / 自建站怎么填

如果广告主是自己的官网、商品页、注册页或店铺页面,Destination URL 直接填写广告主页面即可:

https://shop.example.com/products/summer-shirt

Afftrix 跳转时会自动追加参数,广告主最终收到的 URL 类似:

https://shop.example.com/products/summer-shirt?cid=CLICK_ID&aff_id=2001&offer_id=1001&s1=facebook

这种场景下,Destination URL 不需要手动写 {cid}。广告主网站或 Connector 需要保存 cid,下单后再把 cid 带回 Afftrix。

7.4 Tracking link 从哪里拿

  1. 保存 Offer。
  2. 确认 Offer 状态、Current group 和 Affiliate access 允许验证用 Affiliate 访问。
  3. 用验证用 Affiliate 登录用户中心。
  4. 打开该 Offer 详情。
  5. 复制系统生成的 tracking link。

验证时必须打开 Affiliate tracking link,不要直接打开 Destination URL。直接打开广告主页面不会生成 Afftrix Click,也不会有 CID。

7.5 Tracking URL 验证标准

检查项正确结果
打开 Affiliate tracking link先经过 Afftrix,再跳转到广告主落地页。
最终 URL能看到 cid,或广告主日志能保存 cid
后台 Clicks有本次点击、CID、Affiliate、Offer、国家和设备。
广告主回传postback 或 Connector 使用同一个 CID 创建 conversion。
Link health不应显示 Broken;如果 Broken,先检查目标 URL、SSL、国家限制和跳转链。

8. 配置 Revenue、Payout 和 Caps

电商 CPS 示例推荐使用百分比:广告主收入 20%,Affiliate 佣金 12%。如果验证订单金额是 USD 100,系统应得到 revenue USD 20、payout USD 12、profit USD 8。

Offer Pricing 必填字段标注
Offer Pricing 必填字段标注
字段是否必填推荐值原因
Currency *必填USD 或广告主订单币种。币种不一致会导致报表和付款错误。
Default conversion status *必填Pending 或 Approved。需要人工审核就用 Pending;自动结算就用 Approved。
Advertiser pricing *必填CPS 用 Percentage,CPA/CPL 用 Fixed。决定平台向广告主收多少钱。
Advertiser revenue / percentage *必填20%。平台收入。
Affiliate pricing *必填CPS 用 Percentage,CPA/CPL 用 Fixed。决定 Affiliate 佣金模型。
Affiliate payout / percentage *必填12%。Affiliate 佣金。
Deduction mode *必填先用平台默认值。统一解释为质量核减模式,避免规则配置错误导致数据不一致。
Daily conversion cap建议20 或 50。当 approved / pending 且 billable 的当日转化数达到上限后,Affiliate 端自动显示 Cap reached。

上线前必须确认默认 revenue 大于或等于默认 payout。只要出现负利润,先暂停 Offer,再检查 pricing rule、订单金额、币种和退款处理。

9. 保存草稿并验证

保存 Offer 后,用验证用 Affiliate 打开 Offer 详情,复制 tracking link。

https://link.example.com/click?offer_id=1001&aff_id=2001&s1=verify-click

验证步骤:

  1. 使用无痕窗口打开 tracking link。
  2. 确认页面先经过 Afftrix tracking,再跳转到广告主页面。
  3. 检查最终 URL 或广告主日志是否有 cid
  4. 回到后台 Clicks 或实时日志,确认点击已记录。
  5. 使用 WooCommerce Connector、S2S Postback 或 Pixel 回传验证转化。

S2S 验证示例:

curl "https://afftrix.example.com/postback.php?cid=CLICK_ID&amount=100.00&currency=USD&status=approved&order_id=TEST-10001"

10. 在 Conversions 验证结果

Conversions 列表验证验证转化
Conversions 列表验证验证转化
检查项正确结果错误时怎么排查
Offer / Affiliate命中本次验证 Offer 和验证用 Affiliate。检查 CID 是否来自本次点击,是否用了错误 fallback。
Amount等于验证订单金额,例如 100.00。检查 postback 的 amount 或 Connector order total。
RevenueUSD 20.00。检查 Advertiser pricing 是否为 20%。
PayoutUSD 12.00。检查 Affiliate pricing 是否为 12%。
ProfitUSD 8.00。如果为负,先暂停 Offer,修正 pricing 后再测。
Status符合默认状态或广告主传入状态。检查 postback status 和默认 conversion status。

11. 上线前确认

  • 广告主已创建,并且 Offer 绑定的是正确广告主。
  • Offer 名称、类型、分类、Current group 和状态正确。
  • Destination URL 是用户最终访问页面,不是 postback URL。
  • Affiliate tracking link 可以生成 Click 和 CID。
  • 广告主页面能接收并保存 CID。
  • 验证订单或验证回传能生成 conversion。
  • Revenue、Payout、Profit 计算正确且没有负利润。
  • Postback Logs 或 Connector Logs 有成功记录。
  • Affiliate Postback 如果启用,返回 HTTP 200。
  • Offer 说明、Terms、禁止流量、审核周期已经写清楚。
  • Link health 没有 Broken。
  • 确认没有负利润、错误 cap 或错误访问权限后,再切换为 Active。

Offer Reference

Offer 配置完整参考

本页用于解释 Offer 创建和编辑页里的主要配置区域。它适合平台管理员、运营、AM、广告主审核人员和技术支持查阅。阅读顺序建议是:先看创建流程,再看本页字段说明,最后按上线验证清单验证点击和转化。

Offer 创建必填字段标注
创建 Offer 时优先填写红色星号标记的必填字段,再补充分类、访问权限、追踪链接和佣金规则。
字段级参考 必填项已标记 适合配置核对

1. 配置区域总览

区域主要解决什么问题什么时候必须配置
General / BasicsOffer 名称、广告主、类型、分类、状态和访问组。每个 Offer 都必须配置。
Landing Page / Tracking URL用户点击后去哪里,Afftrix 如何追加 CID 和追踪参数。每个 Offer 都必须配置。
Tracking & Postback广告主如何回传转化,S2S、Pixel、Connector 使用哪一种。上线前必须完成验证。
Targeting哪些国家、设备、系统、浏览器、流量类型可以进入。广告主有投放限制时必须配置。
Affiliate Access哪些 Affiliate 能看到、申请或推广该 Offer。Private / Requested Offer 必须配置。
Revenue / Payout广告主收入、Affiliate 佣金和平台利润。每个 Offer 都必须配置。
Caps / Budget每日、总量、预算或转化数量上限。新 Offer、预算有限或广告主限量时必须配置。
Events / Goalssignup、purchase、deposit、install 等不同转化目标。多事件结算时必须配置。
CreativesBanner、Logo、文案、素材和公开市场展示图。需要 Affiliate 下载素材或公开招募时配置。
Coupons优惠码归因、Affiliate 专属优惠码和电商订单归因。电商、KOL、折扣码投放时配置。
Anti-Fraud / Protection异常访问保护、反作弊、质量规则和风险提醒。高风险流量或大流量 Offer 建议配置。
Fallback不符合规则、被拦截、达到 cap 后跳转到哪里。不想浪费流量或需要备用 Offer 时配置。

2. General / Basics

General 决定 Offer 在后台、Affiliate 中心、公开市场和报表里的基本身份。

字段必填推荐填写说明
Offer status *新建先用 Draft 或 Pending review,验证通过再改 Active。不建议创建后立刻 Active,避免未验证链接被真实投放。
Name *品牌 + 类型 + 国家,例如 Demo Fashion CPS US名称要让运营和 Affiliate 一眼看懂推广对象。
Advertiser *选择真实广告主。影响广告主后台、账单、API、Connector 和报表隔离。
Offer type *CPA、CPL、CPI、CPS、Smartlink。类型影响业务理解和报表分类,CPA/CPL/CPI/CPS 不需要翻译。
Category强烈建议Ecommerce、Finance、Gaming、SaaS 等。影响公开市场筛选、Affiliate 查找、运营分组和推荐。
Current group *Public、Requested 或 Private。决定 Affiliate 是否能直接看到和推广。
Slug可选需要稳定公开路径时手动填写。留空可由系统自动生成。
Source ID / External ID可选上游网络或旧系统的 Offer ID。迁移、导入、对账和 API 同步时有用。

Offer 分类怎么维护

分类会直接影响 Affiliate 查找 Offer 和公开 Offer 市场展示。新建 Offer 时不要长期使用 Other 或 Uncategorized。

业务类型推荐分类示例
电商 / 店铺Ecommerce、Fashion、Beauty、HomeWooCommerce / Shopify 商品 CPS。
金融Finance、Loan、Credit Card、Insurance贷款、信用卡、保险询价。
SaaS / 软件SaaS、Software、Trial、Subscription免费试用、订阅购买。
App / 游戏Mobile Apps、Gaming、InstallCPI 安装、游戏注册。
表单线索Lead Generation、Education、Survey表单提交、课程咨询、问卷。

如果没有合适分类,先到后台 Offer > 分类 创建启用状态的新分类,再回到 Offer 里选择。分类名称应面向运营和 Affiliate,避免使用不清晰代号。

3. Landing Page / Tracking URL

Landing Page 是用户点击 Affiliate tracking link 后最终到达的页面。这里不要填写 Postback URL,也不要填写广告主后台地址。

Offer Tracking URL 标注
Offer Tracking URL 标注

先区分三种链接:

链接用途谁使用
Destination / Target URL用户点击后最终到达的广告主页面或上游 click URL。Afftrix 跳转系统。
Affiliate Tracking Link系统保存 Offer 后生成,Affiliate 复制并推广。Affiliate / 流量渠道。
Advertiser Postback URL转化发生后广告主请求 Afftrix。广告主服务器、上游网络、Connector。
场景Destination URL 示例正确结果
广告主官网https://shop.example.comAfftrix 自动追加 cidaff_idoffer_id 和 Sub ID。
商品页https://shop.example.com/products/a用户直接进入商品页,店铺保存 CID 后下单回传。
注册页https://example.com/signup表单提交时保存 CID,注册成功后 S2S 或 Pixel 回传。
上游网络https://network.example.com/click?sub1={cid}&pub={aff_id}上游把 sub1 原样回传,Afftrix 用 CID 归因。
已有 UTMhttps://shop.example.com/a?utm_source=aff系统使用 & 继续追加参数,原 UTM 不丢失。

上线前验证:

  1. 用验证用 Affiliate 复制 tracking link。
  2. 无痕窗口打开链接。
  3. 确认最终页面能打开。
  4. 地址栏或广告主日志里能看到 cid
  5. 后台 Clicks 能看到本次点击、CID、Affiliate、Offer、国家和设备。

Check link availability 与 Link health

Check link availability 是 Offer 上线前的快速可用性检测。它不会替代真实点击和回传验证,但可以提前发现很多投放前最常见的问题:目标 URL 写错、上游链接失效、SSL 错误、国家限制、代理认证失败、跳转链路异常。

入口适合操作结果保存到哪里
Offer 列表 Actions单个 Offer 快速检查。列表里的 Link health。
Offer 列表右键菜单运营人员在列表中直接处理。当前 Offer 的健康状态和检测时间。
Offer 详情页顶部按钮编辑或查看 Offer 后立即复测。Offer Health / Link health 记录。
Offer Health 页面批量检测、定时巡检和异常追踪。Offer Health 列表和风险提醒。
状态说明处理建议
Healthy链接可访问。继续做真实点击、CID 和转化回传验证。
Warning可以打开,但存在跳转、证书、内容或耗时风险。用 Offer Spy 进一步分析完整链路。
Broken链接不可访问、返回错误或被代理/上游拒绝。修复 URL、SSL、上游链接或代理配置后重测。
Geo not verified当前服务器无法确认目标国家结果。配置 Tracking & GeoIP 住宅代理,再按国家复测。
Unchecked尚未运行检测。新建或导入 Offer 后建议先检测。

如果系统提示未配置代理,说明当前只能用服务器出口 IP 做基础检测。对于上游网络、国家专属 Offer、带风控跳转的页面,建议先配置 Tracking & GeoIP 住宅代理,再运行检测。

4. Tracking & Postback

Tracking & Postback 决定转化如何进入 Afftrix。生产环境优先使用 S2S Postback 或 Storefront Connector。

回传方式适合场景优点注意事项
S2S Postback广告主有开发能力,上游网络支持 server callback。稳定,可传金额、状态、订单号。必须保存 CID,建议启用 secret key。
Image / Iframe Pixel广告主只能放成功页代码。接入快。受浏览器、广告拦截和 Cookie 影响。
JS Pixel需要在页面里读取更多参数。灵活。不适合高价值结算主链路。
Storefront ConnectorWooCommerce / Shopify 店铺。不写代码同步订单、退款、优惠码和商品。必须从 tracking link 进入店铺,订单状态触发规则要明确。

常用参数:

参数是否推荐用途
cid必须优先点击 ID,最准确的归因字段。
amount百分比佣金必须订单金额或广告主确认金额。
currency推荐三位币种,例如 USD。
order_id / txid推荐去重、支持排查和对账。
status推荐pending、approved、rejected、refunded。
goal多事件必须signup、purchase、deposit、install 等。

5. Targeting

Targeting 决定流量是否允许进入 Offer。它不是给 Affiliate 看的说明,而是系统执行的流量规则。

Offer 定向和访问权限
Offer 定向和访问权限
配置什么时候填写示例
Countries广告主只接受指定国家。US、GB、CA。
Devices页面或 App 只适合特定设备。mobile、desktop、tablet。
OS / BrowserApp、插件或特殊页面有限制。iOS、Android、Chrome。
Traffic source合同禁止某些来源。禁止 incentive、brand bidding、adult。
IP / GeoIP rule需要阻止数据中心或特定区域。阻止 proxy、VPN、hosting IP。

常见错误:

  • 广告主要求 US-only,但 Offer 没有限制国家。
  • Targeting 设置太窄,验证人员所在国家无法打开。
  • Affiliate 看到 Offer,但点击后因为设备或国家不匹配被 fallback。

6. Affiliate Access

Affiliate Access 决定谁能看到 Offer、谁能申请、谁能复制 tracking link,以及被禁止的 Affiliate 点击旧链接时是否进入 fallback 或 no access。它和 Targeting 不同:Targeting 判断点击是否符合国家、设备和浏览器规则;Affiliate Access 判断这个 Affiliate 有没有资格推广该 Offer。

访问方式适合场景运营建议
Public普通公开 Offer,任何合格 Affiliate 可见。适合低风险、已验证稳定的 Offer;仍要设置 Targeting、Caps 和禁止渠道。
RequestedAffiliate 先申请,平台审核后放行。新 Offer、品牌敏感 Offer 推荐使用;Access Requests 要每天处理。
Private / Whitelist默认不可见,只给指定 Affiliate 或分组。高价值、定制价格、白名单合作使用;上线验证时先放行验证用 Affiliate。
Blocked / Excluded某些 Affiliate 不允许投放。风控、质量差、合同限制时使用;记录屏蔽原因和恢复条件。
Auto-blocked规则命中后自动限制访问。连续点击无转化、异常点击频率、低质量来源先进入观察,确认后再自动限制。

设置允许推广时建议按这几个步骤验证:

  1. 先确认 Offer 可见性是 Public、Requested 还是 Private。
  2. Private 或专属合作时,在 Allowed Affiliates / Allowed Groups 中加入可以推广的 Affiliate 或分组。
  3. 需要禁止某个 Affiliate 时,加入 Blocked / Excluded list,并写清楚原因。
  4. 保存后用一个允许 Affiliate 复制 tracking link 验证点击。
  5. 再用一个未放行或被禁止 Affiliate 验证,确认看不到 Offer 或不能正常进入投放链路。

审核申请时建议检查:

  • Affiliate 国家、渠道和历史质量。
  • 是否有对应素材和投放经验。
  • 是否接受 Offer terms。
  • 是否需要专属 payout 或 cap。
  • 是否命中过连续点击无转化、拒单率高或 Anti-Spy 风险规则。
完整教程

如果你要设置“哪些用户可以跑、哪些用户禁止跑”,或者要配置连续点击无转化自动提醒、限制或屏蔽,请阅读

7. Availability and schedule

Availability and schedule 是 Offer 对 Affiliate 的“可用状态说明”。它和 Status、Targeting、Affiliate Access 不同:Status 控制后台是否启用,Targeting 控制流量规则,Affiliate Access 控制谁能推广,Availability 用来解释什么时候可跑、什么时候暂停、什么时候可能恢复。

Offer Availability and schedule field reference
Availability and schedule 用于给 Affiliate 展示可投放时间、暂停原因和公开说明。
字段含义推荐填写错误影响
Starts atOffer 生效时间。预定上线、节日活动、广告主指定开跑时间时填写;可立即跑量可留空。未到开始时间 Affiliate 可能无法正常推广,或过早开放真实流量。
Ends atOffer 结束时间。活动类 Offer、限时预算、短期合作必须填写;长期合作可留空。到期 Offer 仍被推广,容易造成拒单、无效点击和客服咨询。
Expected resume time预计恢复时间。暂停、预算补充、广告主复核、技术修复时填写。Affiliate 不知道是否等待或切流量。
Affiliate-facing reason给 Affiliate 看的原因。优先选择系统预设原因:暂停、广告主审核、质量复核、技术检查、预算暂停、cap reached。它用于手动对外说明,不等同于自动 cap 统计。原因不清楚会增加工单;原因写得过细会暴露敏感运营信息。
Public message公开说明文字。只写 Affiliate 下一步需要知道的内容,例如等待恢复、切换 Offer、暂停当前流量。误写利润、上游链接、密钥或风控细节会影响商业安全和专业度。
Active 长期 Offer

Starts at、Ends at、Reason 和 Public message 通常都可以留空,只在 Terms 里写清投放规则。

限时活动 Offer

填写 Starts at 和 Ends at。上线前用验证 Affiliate 跑一次点击和回传,确认时间窗口正确。

临时暂停 Offer

选择 Affiliate-facing reason,填写 Expected resume time,并写一句公开消息说明是否等待或切流量。

达到 Cap

自动显示依赖 Daily / Total conversion cap 达到上限。手动临时提示时,先把 Offer 状态改为 Paused,再把 reason 选 Cap reached。

对外文案规则

Public message 推荐写成“当前 Offer 已暂停,预计在指定时间恢复,请先切换同类 Offer 或等待通知”。不要写“利润太低”“上游拒量”“质量核减比例”“原始落地页链接”等敏感运营内容。

Cap reached 不是普通下拉原因

自动 Cap reached 来自 Daily conversion capTotal conversion cap。只有 approved / pending 且 billable 的转化数量达到上限后,用户端才会自动显示。若只是需要马上给 Affiliate 一个临时提示,应先把 Offer 状态改成 Paused,再选择 Cap reached 作为 reason。

8. Revenue / Payout / Profit

Revenue 是广告主支付给平台的收入,Payout 是平台支付给 Affiliate 的佣金,Profit 是平台利润。

Offer Pricing 设置
Offer Pricing 设置
业务类型Revenue 建议Payout 建议示例
CPL 注册固定金额。固定金额。Revenue 10,Payout 6,Profit 4。
CPA 订单固定金额或广告主确认金额。固定金额。Revenue 20,Payout 12。
CPS 电商订单金额百分比。订单金额百分比。订单 100,Revenue 20%,Payout 12%。
CPI 安装按国家固定金额。按国家固定金额。US 高于 IN、BR 等国家。
多事件每个 goal 单独定价。每个 goal 单独 payout。signup、deposit、purchase 分开。

规则优先级建议:

  1. Affiliate 专属价格。
  2. Coupon / Product 价格。
  3. Goal / Event 价格。
  4. 国家 / 设备价格。
  5. Offer 默认价格。

上线前必须确认默认 revenue 大于或等于默认 payout。只要出现负利润,先暂停 Offer,再检查 pricing rule、订单金额、币种和退款处理。

9. Caps / Budget

Caps 用于防止广告主预算超出、错误配置放大损失或低质量流量短时间冲量。

Cap 类型作用建议
Daily conversion cap每日转化数上限。新 Offer 先设 20 或 50;达到 approved / pending 且 billable 当日上限后,Affiliate 端自动显示 Cap reached。
Total conversion cap生命周期总转化上限。限量活动或固定预算时使用;达到 approved / pending 且 billable 总上限后,Affiliate 端自动显示 Cap reached。
Revenue / budget cap收入或预算上限。广告主按预算采购时使用。
Affiliate cap单个 Affiliate 的上限。新 Affiliate 试跑时使用。
Goal cap某个事件的上限。多事件 Offer 分别控制。

自动 Cap reached 的判断基于 approved / pending 且 billable 的转化数量。达到 cap 后,应明确处理方式:暂停、进入 fallback、隐藏 Offer,或继续记录点击但不接受转化。手动选择 Affiliate-facing reason 只改变暂停时给 Affiliate 看的说明,不会替代 Daily / Total cap 的统计触发。

10. Events / Goals

一个 Offer 可能有多个转化事件,例如注册、首存、购买、续费。不要把所有事件都当成同一个 conversion 处理。

Goal典型场景价格建议
signup用户注册、提交表单。CPL 固定金额。
installApp 安装。CPI,常按国家分层。
deposit金融、游戏、博彩首存。CPA 或阶梯 payout。
purchase电商付款。CPS 百分比。
subscriptionSaaS 订阅。首月 CPA 或 recurring revenue。
refund / cancel退款、取消、拒单。冲正 revenue 和 payout。

11. Creatives and Public Offer

Creatives 决定 Affiliate 是否能快速理解和推广 Offer。公开市场文案要面向 Affiliate,不要写后台备注。

内容推荐做法
Thumbnail使用品牌或商品真实图片,避免空白图。
Short description说明推广对象、国家、设备、佣金和关键卖点。
Terms写清禁止流量、品牌词、激励流量、Cookie 周期、审核周期。
Banners按常用尺寸上传,例如 300x250、728x90、1080x1080。
Email copy提供可复用文案,减少 Affiliate 自己乱写。
Landing preview提供真实预览页或截图,方便投放前审核。

12. Coupons

优惠码适合电商、KOL、Influencer 和线下转线上场景。用户没有点击 tracking link,但使用了 Affiliate 专属优惠码,也可以辅助归因。

配置用途
Coupon code例如 MIKE10LISA15
Affiliate mapping把优惠码绑定到指定 Affiliate。
Offer mapping把优惠码绑定到指定 Offer。
Priority通常 Click CID 优先,其次 Coupon,最后才是默认归因。
Expiration优惠码有效期。

归因建议:

  1. 有 CID 时优先按 CID 归因。
  2. 没有 CID 但有优惠码时按 Coupon 归因。
  3. 两者都没有时不要默认给某个 Affiliate,避免误发佣金。

13. Anti-Fraud / Protection

Anti-Fraud 不建议一开始就强拦截所有规则。新客户上线时可以先用观察或提醒模式,确认规则不会误伤真实流量后再启用自动处理。

功能用途建议
Profit Guard检查负利润、高 payout、低 margin。新 Offer 必开提醒。
Anti-Spy识别可疑 UA、代理、数据中心、侦察工具。先 shadow mode。
Fraud rules识别重复订单、异常 CR、短时间大量点击。与 Review Queue 联动。
Allow / Block list放行重要客户或阻止恶意来源。修改后保存原因。
Review Queue人工审核 held 或风险转化。付款前必须处理高风险记录。

14. Fallback

Fallback 用于处理不符合条件的点击,例如国家不匹配、设备不匹配、达到 cap、Offer 暂停或 Anti-Spy 拦截。

场景推荐 fallback
国家不匹配同类国家可接受 Offer 或 Smartlink。
设备不匹配对应设备版本页面。
Cap reached同广告主备用 Offer 或等待页。
Offer paused公开说明页或同类 Offer。
风险流量安全页、空白页或低风险验证页。

不要把 fallback 直接指向后台、登录页或没有说明的 404 页面。

15. 发布前验收

发布前至少完成一次从 Affiliate 链接到 Conversion 的完整闭环。

验收项通过标准
Offer 状态验证阶段不是 Active,正式上线才 Active。
Affiliate 可见性验证用 Affiliate 能看到并复制链接。
点击记录Clicks 有 CID、Affiliate、Offer、国家、设备。
落地页参数广告主页面收到并保存 CID。
转化回传Conversions 有 order_id、amount、currency、status。
价格计算Revenue、Payout、Profit 正确且不为负。
日志Postback Logs、Connector Logs 或 Pixel 日志有成功记录。
风控Profit Guard、Anti-Spy、Caps 没有误拦截。
公开展示标题、图片、条款和素材对 Affiliate 清楚。

完成验收后,再开放真实 Affiliate 流量。没有验证点击和验证转化记录的 Offer,不建议进入正式投放。

Tracking URL

Offer Tracking URL 怎么填写

Tracking URL 是 Offer 最容易填错的字段。这里说明商家自有网站、WooCommerce 店铺、上游广告网络和特殊宏参数分别应该怎么写。

商家落地页 Postback 不要填这里 CID 必须保留

先区分两个 URL

字段用途应该填写什么不能填写什么
Preview URL给 Affiliate 预览页面商品页、注册页、公开截图页后台管理页、需要登录的页面
Destination URL用户点击 tracking link 后最终访问的页面广告主官网、商品页、落地页、上游 click URLAfftrix postback URL、广告主后台地址、无效短链
Advertiser Postback URL广告主在转化发生后请求 Afftrix系统生成的 postback 地址不要填到 Destination URL
Affiliate Postback URLAfftrix 通知 Affiliate 转化Affiliate 在用户中心配置的回调地址广告主回传地址

不同场景怎么填写

场景Destination URL 示例Afftrix 如何处理验证方式
上游广告网络https://network.example.com/click?sub1={cid}&pub={aff_id}把 Afftrix 的 {cid} 放进上游要求的点击参数上游点击日志里能看到 sub1,回传时能把 {sub1} 带回 Afftrix
广告主官网首页https://shop.example.com跳转时自动追加 cidaff_idoffer_id点击 tracking link 后检查浏览器地址栏是否带参数
商品页或落地页https://shop.example.com/products/a保留原路径,并自动追加追踪参数订单或表单记录里能找到 CID
原 URL 已有参数https://shop.example.com/a?utm_source=aff使用 & 继续追加参数原 UTM 和 Afftrix 参数都存在
WooCommerce Connectorhttps://merchant.com/product/a插件在店铺端保存 CID,订单完成后回传插件 Debug Center 显示 CID 保存成功

上游网络 Postback 怎么填写

上游网络场景里,Destination URL 和 Postback 必须成对配置。前面把 Afftrix 的 {cid} 放到了上游的哪个参数里,回传时就要把同一个参数带回 Afftrix 的 cid

如果 Destination URL 是:

https://network.example.com/click?sub1={cid}&pub={aff_id}&offer={offer_id}

那么上游平台后台的 Postback / Callback / S2S URL 可以参考:

https://your-afftrix-domain.com/postback.php?cid={sub1}&amount={payout}&currency=USD&order_id={transaction_id}&status=approved

常见字段映射:

Afftrix 参数上游宏示例是否重要说明
cid{sub1}{click_id}{aff_sub}必填必须是点击时传给上游的 Afftrix CID。
amount{payout}{sale_amount}{revenue}建议用于计算收入、佣金或对账。
currencyUSD{currency}建议固定币种可直接写 USD。
order_id{transaction_id}{conversion_id}{order_id}强烈建议用于去重和排查重复回传。
statusapprovedpending{status}按需状态值不确定时先用固定 approved 验证。
secret固定密钥按需开启 Postback secret 时必须带上。

不要把 Afftrix 的 Postback URL 填到 Destination URL,也不要把 Affiliate tracking link 填到上游的 Postback URL。验证时先用 Affiliate tracking link 产生真实点击,再让上游发送验证回传,最后在 Postback Logs 和 Conversions 里核对 cidorder_id、金额和状态。

常用宏和参数

宏或参数含义常见使用位置注意事项
{cid}Afftrix 点击 ID上游 sub1clickidtransaction_id转化归因最关键,不能丢
{aff_id}Affiliate ID上游 pub、publisher、affiliate 参数不能替代 CID 去重
{offer_id}Offer ID上游 offer、campaign 参数用于辅助排查和报表
{sub1} - {sub5}Affiliate 自定义追踪参数素材、渠道、关键词、广告组不要放敏感个人信息
cid跳转到广告主页面的实际参数普通网站、Connector、表单落地页广告主必须保存并回传

常见错误

  • 填了 Afftrix postback URL:点击后会进入回传接口,用户无法到达广告主页面。
  • 上游没有接收 CID:上游转化回传时无法带回 Afftrix click id。
  • URL 被重复编码:地址中出现大量 %3A%2F%2F 时,先解码后再填入。
  • 跳转链丢参数:中间落地页或短链如果没有保留 query string,CID 会在跳转中丢失。

保存后怎么验证

  1. 用验证用 Affiliate 复制 tracking link。
  2. 无痕窗口打开链接,确认先记录 click,再跳转到广告主页面。
  3. 检查最终 URL 是否带 cidaff_idoffer_id
  4. 在广告主页面完成验证注册或订单。
  5. 用 S2S、Pixel 或 Connector 回传验证转化。
  6. 在 Conversions 和 Postback Logs 确认 CID、金额、状态和订单号。

Offer Finance

Revenue、Payout 与 Profit 设置

Revenue 是广告主收入,Payout 是付给 Affiliate 的佣金,Profit 是平台利润。上线前必须确认三者口径,否则会出现转化越多亏损越多的情况。

适合运营和财务 上线前必查

核心公式

固定 CPA / CPLProfit = Revenue - Payout

例如广告主支付 USD 12,Affiliate payout USD 8,平台利润 USD 4。

电商 CPSProfit = Order amount x Revenue% - Order amount x Payout%

例如订单 USD 100,revenue 20%,payout 12%,平台利润 USD 8。

混合规则先命中更具体规则,再回退默认规则

Affiliate、国家、设备、商品、目标事件的规则通常高于默认价格。

截图标注

Offer Pricing rules 编号标注 1 2 3 4
1 选择币种;2 设置广告主收入;3 设置 Affiliate 佣金;4 用更细规则覆盖默认价格。

字段怎么选

业务类型Revenue 建议Payout 建议注意事项
注册 CPL固定金额,例如 USD 10。固定金额,例如 USD 6。适合注册、表单、开户等固定价值事件。
购买 CPS订单金额百分比,例如 18%。订单金额百分比,例如 10%。必须确认广告主回传 amountcurrency
安装 CPI固定金额或按国家分层。固定金额或按国家分层。国家价格差异大时使用 Pricing rules。
上游 Network使用上游结算价。低于上游结算价的 Affiliate payout。不要直接信任上游传入 payout,除非已做白名单校验。
多目标事件按 goal 设置不同 revenue。按 goal 设置不同 payout。signup、deposit、purchase 应拆成不同目标或规则。

规则优先级建议

规则越具体,优先级越高。默认价格只适合作为兜底,不能代替国家、Affiliate、商品或目标事件的真实结算规则。

Affiliate 专属规则 Coupon / Product 规则 Goal / Event 规则 国家 / 设备规则 Offer 默认价格

避免负利润清单

  • 默认 revenue 必须大于或等于默认 payout。
  • 百分比规则必须确认订单金额字段来自可信来源。
  • Affiliate override 上线前要单独跑一笔验证转化。
  • 退款和取消订单要确认是否会同步扣回 revenue 和 payout。
  • Profit Guard 开启后,负利润转化应进入 review 或告警队列。
  • 批量导入 Offer 后,应抽查最高 payout 的 10 个 Offer。

排查佣金异常

现象优先检查修复方式
Payout 比预期高Affiliate override、国家规则、商品规则。停用错误规则,重新计算受影响转化。
Revenue 为空广告主是否回传 amount,Offer 是否设置默认 revenue。补默认 revenue 或修复 postback 参数。
Profit 为负Conversion 详情里的 revenue、payout、currency。暂停 Offer,调整价格后再恢复。
Affiliate 看不到佣金转化状态是否 approved,是否仍在 hold period。审核转化或等待 hold period 结束。

Launch QA

Offer 上线验证清单

Offer 不建议创建后直接开放。正确流程是先由平台验证,再给验证用 Affiliate 放行,最后才切换为 Active 并开放真实流量。

适合上线前审核 可作为上线检查清单

上线状态流转

Draft Configuration review Affiliate access check Tracking verification Conversion verification Finance review Active

截图标注

Offer 列表上线检查位置标注 1 2 3 4
1 检查状态;2 检查广告主归属;3 检查 revenue/payout;4 检查 cap、健康检查和异常提醒。

上线前 16 项检查

检查项通过标准不通过时处理
广告主Offer 绑定正确 Advertiser。修改归属后重新检查广告主后台权限。
状态验证阶段使用 Draft / Pending review。不要提前 Active。
访问权限Public / Requested / Private 符合投放策略。给验证用 Affiliate 单独放行。
点击控制连续点击无转化规则先用 Shadow Mode 或提醒模式。稳定前不要直接全平台自动屏蔽。
Destination URL能正常打开,最终页面带 CID。修复 URL、SSL、跳转链或参数保留。
Tracking domain域名解析、HTTPS、跳转都正常。修复 DNS 或证书后再测。
Targeting国家、设备、OS、浏览器和流量来源符合广告主要求。调整 Target group 或提示 Affiliate。
Revenue / Payout利润为正,币种正确。暂停上线,修正价格规则。
CapsDaily cap、total cap 和预算限制已确认。新 Offer 先设置较小 cap。
素材Banner、文案、条款和禁止渠道清楚。补充素材或隐藏未准备好的素材。
点击验证Clicks 有 CID、Affiliate、Offer、国家、设备。回到 tracking link 排查。
转化验证Conversions 生成金额、状态和订单号。检查 postback、pixel 或 Connector。
Affiliate PostbackAffiliate 回调返回 200 或预期响应。修复 Affiliate URL 或重试策略。
风控Profit Guard、Anti-Spy、质量核减规则符合策略。先关闭不确定规则,稳定后再启用。
公开展示公开 Offer 市场展示标题、图、分类、条款正常。修复公开文案和图片。
上线记录保存验证 click、conversion、postback 日志截图。保存证据后再正式上线。

上线后第一小时观察

点击是否增长

Clicks 应随真实流量增长,国家和设备分布应符合预期。

转化是否匹配

转化率不能异常为 0,也不能突然高到不合理。

利润是否正常

Revenue、payout、profit 三列要同时观察,负利润需要立即暂停。

日志是否干净

Postback Logs 不应大量出现 401、403、422、500。

Rules

Targeting、Payout 与 Caps

Targeting 决定流量是否允许进入,Payout 决定佣金怎么计算,Caps 决定 Offer 接收多少转化。三者必须一起配置,否则容易出现流量错投、佣金亏损或预算超支。

适合 Offer 运营和风控 上线前必查

规则入口

创建 Offer 时可以先在 Traffic & Access 中选择国家和设备。保存 Offer 后,进入 Offer 详情或编辑页的 TargetsPricing rulesAffiliate access 关联表,继续配置更细的规则。

Offer targeting and affiliate access screenshot
Targeting、Affiliate access 和 Availability 是三个不同层级:流量、权限、公开提示。

Affiliate Access 与 Targeting 的区别

很多“Affiliate 看不到 Offer”或“点击被拒绝”的问题,都是把访问权限和流量规则混在一起导致的。排查时先确认 Affiliate 有没有资格推广,再确认这次点击是否符合国家、设备、浏览器和 cap 规则。

层级判断对象常见配置不通过时表现
Affiliate Access这个 Affiliate 是否有资格推广这个 Offer。Public、Requested、Private、Allowed、Blocked。看不到 Offer、不能申请、不能复制链接,或旧链接进入 no access / fallback。
Targeting这次点击是否符合广告主投放条件。国家、设备、OS、浏览器、流量类型、fallback。点击被拒绝、跳 fallback、Smartlink 重新分发或记录为不匹配。
CapsOffer 是否还可以继续接收流量或转化。Daily cap、total cap、budget cap、Affiliate cap。达到上限后暂停接收、进入 fallback 或提示 cap reached。

完整的允许名单、禁止名单和连续点击无转化控制,阅读

Targeting 字段说明

字段用途填写示例建议
Country限制国家。US,留空代表全球。只填广告主明确接受的国家。
Device限制设备。mobiledesktop移动 App 或移动页必须限制设备。
OS限制操作系统。iOSAndroid只在广告主明确要求时填写。
Browser限制浏览器。ChromeSafari一般留空,避免误伤流量。
Status规则是否启用。Active / Paused。临时停用用 Paused,不要删除历史规则。
Priority多条规则命中时优先级。100、200。更具体规则给更高 priority。
Redirect URL该规则命中时的备用跳转地址。国家不匹配时跳 Smartlink。需要 fallback 时使用,否则留空。

Targeting 配置示例

美国移动流量

Country 填 US,Device 选 mobile,Status 选 Active。适合广告主只接美国移动用户。

全球桌面注册

Country 留空,Device 选 desktop。适合 SaaS 注册类 Offer。

国家不匹配 fallback

主规则限制 US,Fallbacks 中配置 fallback offer 或 fallback URL,把非 US 流量导到 Smartlink。

临时暂停某国家

把该国家 Target 状态改 Paused,并在 Affiliate availability 写明原因和预计恢复时间。

Payout 和 Revenue 的关系

Offer pricing rules screenshot
Revenue 是广告主给平台的钱,Payout 是平台给 Affiliate 的钱。利润 = Revenue - Payout。
固定佣金

每个有效转化固定金额。例如 CPL 注册:revenue USD 8,payout USD 5。

百分比佣金

按订单金额计算。例如 CPS 电商:revenue = 订单金额,payout = 订单金额 × 20%。

Affiliate Override

给指定 Affiliate 特殊价格。例如普通 20%,优质 Affiliate 28%。

Country / Device Rule

按国家或设备给不同价格。例如 US mobile 22%,GB desktop 18%。

Pricing rules 字段说明

字段作用填写建议
Affiliate override只对某个 Affiliate 生效。留空代表所有 Affiliate。
Country只对某国家生效。留空代表全球。
Device scope只对某些设备生效。可多选;留空代表全部设备。
Goal只对某个事件生效。例如 sale、lead、install;留空代表所有事件。
StatusActive 或 Paused。暂停价格时用 Paused。
Priority同等匹配时高优先级胜出。Affiliate 专属规则建议高于普通国家规则。
Advertiser pricing广告主收入模型。财务岗位可见,固定或百分比。
Advertiser revenue广告主收入金额或比例。空值代表使用 postback amount 或 Offer 默认 revenue。
Affiliate pricingAffiliate 佣金模型。固定或百分比。
Affiliate payoutAffiliate 佣金金额或比例。空值代表使用 Offer 默认 payout。
Visible to affiliates是否可在 Affiliate 端展示该价格规则。特殊价格可以关闭显示。

Pricing 命中优先级

  1. 先找 Affiliate 专属规则。
  2. 再找国家、设备、Goal 更具体的规则。
  3. 如果多个规则同样具体,priority 更高的规则优先。
  4. 没有任何匹配规则时,使用 Offer 默认 revenue / payout。
  5. 如果 postback 带金额,百分比模式会基于该金额计算。
例子

Offer 默认 payout 是 20%。US mobile 规则是 22%。Affiliate Mike 的 US 规则是 28%。Mike 带来 US mobile 订单时,命中 Mike 专属 28%,而不是普通 US mobile 22%。

Caps 限制

Caps 用于限制 Offer 接收转化的数量,避免广告主预算超支或低质量流量突然冲量。

Cap说明使用场景
Daily conversion cap每天最多接收多少 approved / pending 且 billable 的转化。新 Offer 先限量验证;达到当日上限后用户端自动显示 Cap reached。
Total conversion cap整个 Offer 生命周期最多接收多少 approved / pending 且 billable 的转化。限量预算活动;达到总上限后用户端自动显示 Cap reached。
Affiliate cap按 Affiliate 限制。防止单个 Affiliate 占满预算。
Geo cap按国家限制。不同国家预算不同。
Fallback after cap达到 cap 后跳转备用 Offer 或 URL。不浪费流量。

如果只是想临时让 Affiliate 看到 Cap reached,不要把它理解成 cap 统计已经触发。正确做法是把 Offer 状态改为 Paused,再选择 Cap reached 作为 Affiliate-facing reason,并填写对外 Public message。

上线前风控检查

  1. 固定 payout 不要高于固定 revenue。
  2. 百分比 payout 必须确认广告主会回传正确订单金额。
  3. 给 Affiliate override 前,先检查该 Affiliate 的历史质量、退款率和拒单率。
  4. 新 Offer 先设置 Daily cap,确认质量后再放量。
  5. Pricing rules 改动后通知正在跑该 Offer 的 Affiliate。
  6. 开启 Profit Guard,检查负利润、异常 payout、低 margin。
  7. 退款或取消订单要验证是否会撤销或调整佣金。

Creatives

素材与公开 Offer 市场

素材用于帮助 Affiliate 投放,公开 Offer 市场用于展示可推广项目。运营人员需要保证公开内容“能吸引 Affiliate”,同时不暴露平台 revenue、上游 tracking URL 或敏感规则。

适合运营和市场团队

公开 Offer 市场

公开页面入口:/offers。平台可把部分 Offer 设置为 public,让潜在 Affiliate 在注册前了解可推广项目。

公开 Offer 市场
公开 Offer 市场适合展示项目类型、国家、佣金范围和推广亮点。
字段用途建议
Show in public showcase是否在访客 Offer 市场展示。只有确定可公开招募的 Offer 才开启。
Public title公开标题。比后台名称更适合推广,例如 “Premium US Fashion Store CPS”。
Public description公开描述。写流量类型、亮点和结算优势,不写平台利润。
Public thumbnail公开市场图片。使用品牌图、产品图或清晰截图。
Public badge卡片角标。Hot、New、Exclusive、High CR。
Public sort weight公开市场排序。数字越高越靠前。

素材类型

Banner

图片广告素材,适合展示广告和站内推荐。

Landing page copy

广告文案、标题、描述和 CTA。

Email copy

Affiliate 邮件推广可使用的模板。

Product image

电商商品图、品牌图、截图。

Tracking snippets

Pixel、iframe 或 JS 代码片段。

Compliance notes

禁止投放渠道、品牌词限制、国家限制。

Creatives 关联表字段

保存 Offer 后,在 Offer 详情页的 Creatives 关联表点击 Create 添加素材。

字段说明建议
Title素材标题。写清尺寸、语言、渠道,例如 “US Banner 728x90 EN”。
Image素材图片路径或 URL。可以从媒体库选择,也可以粘贴外部图片 URL。
StatusActive 或 Paused。过期素材改 Paused,不要直接删除。
Sort排序权重。数字小的排前面,常用素材排前面。
Notes后台备注。记录适合渠道、过期时间、广告主限制。

素材上传建议

  • 图片命名包含 Offer 名称、尺寸和语言,例如 shop-a-us-728x90-en.png
  • 不要上传过期价格、过期折扣或不可用活动。
  • 如果广告主限制品牌词、成人流量、激励流量,需要写在 Offer 说明中。
  • 素材变更后通知已接入该 Offer 的 Affiliate。

公开内容写法示例

电商 CPS

Public title:US Fashion Store CPS。Description:High-converting fashion store for US traffic. Desktop and mobile traffic accepted. Coupon traffic requires approval.

SaaS CPL

Public title:B2B SaaS Free Trial CPL。Description:Lead generation offer for business software trial registrations. Email traffic and content traffic accepted.

不能写的内容

不要写上游 revenue、平台 Profit Guard 规则、广告主原始 tracking URL、私有 postback key 或用户名单。

Affiliate Workflow

Affiliate 完整操作流程

本文面向联盟用户、AM 和平台客服,说明 Affiliate 从登录、完善资料、申请 Offer、复制推广链接、查看报表、配置 Postback 到等待付款的完整路径。

适合联盟用户、AM 和客服 覆盖申请、链接、报表、Postback、付款

本文面向联盟用户、AM 和平台客服,说明 Affiliate 从登录、完善资料、申请 Offer、复制推广链接、查看报表、配置 Postback 到等待付款的完整路径。

流程总览

顺序操作完成标准
1登录 Affiliate Center能进入仪表盘,看到账户状态
2完善资料个人资料、流量来源、网站地址和付款资料完整
3查找 Offer能看到可申请或可直接推广的 Offer
4申请权限需要审批的 Offer 已提交申请,并写清流量来源
5获取 Tracking Link链接包含 offer_idaff_id,需要时填写 s1s5
6投放并查看数据Clicks、Conversions、CR、EPC、Payout 能对应起来
7配置 Affiliate Postback自有系统能接收 Afftrix 的转化通知
8查看付款approved 转化进入付款周期,付款记录可追踪

登录与资料检查

Affiliate 登录界面
Affiliate 登录界面

Affiliate 登录入口通常是 /affiliate/login。如果平台关闭公开注册,账号由管理员在后台创建;如果平台开启注册审核,Affiliate 提交资料后需要等待审核通过。

首次登录后优先检查这些信息:

区域需要填写什么为什么重要
Profile姓名、公司名称、邮箱、联系方式便于 AM 审核、联系和付款核对
Traffic sourceSEO、Paid Ads、Email、Social、Influencer、Community 等决定 Offer 是否允许投放
Website / Social URL网站、频道、社媒主页或流量证明平台审核流量质量时会查看
Payment methodPayPal、Payoneer、Wire、USDT 或平台支持的方式付款前必须完整,否则会延迟结算
Notification通知邮箱、Telegram、Webhook 等避免错过 Offer 审核、转化状态和付款通知

查找和申请 Offer

Affiliate 可以从两个位置查找 Offer:

  • 公开 Offer 市场:适合未登录用户或潜在 Affiliate 浏览平台可推广项目。
  • Affiliate Center > Offers:登录后查看自己可申请、已获批或可直接投放的 Offer。
公开 Offer 市场
公开 Offer 市场

Offer 的可见性由平台设置决定:

Offer 访问方式Affiliate 看到什么适合场景
Public / Open可直接查看并复制 Tracking Link公开招募流量,审核要求较低
Request required需要点击申请,等待平台批准高价值 Offer、品牌敏感、需要流量审核
Private默认不可见,只有指定 Affiliate 能看到专属合作、白名单流量、定向渠道
Paused / Draft / Archived不应投放或不可见后台配置中、暂停、已下线

申请时建议写清:

  • 主要推广渠道和流量来源。
  • 预计投放国家、设备和语言。
  • 预计日点击量、Lead 量或订单量。
  • 是否会使用 paid ads、brand bidding、coupon、incentive、email 等敏感流量。
  • 是否需要素材、优惠码、专属落地页或特殊结算说明。

获取 Tracking Link

Affiliate 投放时必须使用 Afftrix 生成的 Tracking Link,不要直接推广广告主官网。Tracking Link 负责记录点击、生成 cid,后续转化才能归因。

https://your-afftrix-domain.com/click?offer_id=1001&aff_id=2001&s1=facebook&s2=summer-sale&s3=creative-01

Sub ID 建议统一命名:

参数推荐用途示例
s1流量平台facebookgoogletiktok
s2Campaign / 广告系列summer-sale
s3Adset / 广告组 / 媒体位adset-ahomepage-banner
s4Creative / 素材video-01banner-728x90
s5投放实验编号variant-alp-b

投放前建议用无痕窗口打开一次 Tracking Link,并确认:

  • 页面能跳到正确落地页。
  • 浏览器地址栏最终能带上 cid 或广告主需要的点击参数。
  • Affiliate Center 或后台 Clicks 能看到验证点击。
  • 如果 Offer 有国家或设备限制,验证环境需要符合限制条件。

查看报表

Affiliate 日常看报表时,重点不是只看点击量,而是把流量质量和收益一起看:

指标含义怎么判断
Clicks点击次数判断链接是否正常投放
Unique clicks独立点击判断重复点击、异常刷新或机器人流量
Conversions转化数量判断广告主回传是否正常
CR转化率判断流量质量和落地页匹配度
EPC每次点击收益判断渠道是否值得继续买量
Revenue广告主收入由平台或广告主回传决定
PayoutAffiliate 佣金Affiliate 实际应得金额
Status转化状态pending、approved、rejected、refunded、paid

如果点击正常但没有转化,应先确认广告主是否需要较长审核周期,再联系 AM 提供 offer_idaff_id、点击时间和验证链接。

Affiliate Postback

Affiliate 如果有自己的追踪系统,可以在 Affiliate Center 配置 Postback。Afftrix 会在转化产生或状态变化时请求 Affiliate 的 URL。

https://affiliate-system.example.com/postback?cid={cid}&amount={amount}&status={status}&offer={offerid}&txid={txid}&s1={s1}

常用宏说明:

含义
{cid}点击 ID,用于和 Affiliate 自己系统里的点击对应
{amount}本次转化佣金,也就是 Affiliate payout
{offerid}Offer ID
{affid}Affiliate ID
{status}转化状态
{txid}订单号或交易号
{s1}{s5}Affiliate 追踪链接里的 Sub ID

上线前必须确认:

  • Postback URL 能被公网访问。
  • 参数已经 URL 编码,不能包含未编码空格、中文或特殊符号。
  • Affiliate 自己系统能识别 cid 并做去重。
  • 重复通知不会重复入账。

付款流程

Affiliate 付款通常遵循以下顺序:

  1. 用户点击 Tracking Link。
  2. 广告主回传转化,转化进入 pending 或 approved。
  3. 平台或广告主审核转化质量。
  4. approved 且未 paid 的转化进入可付款余额。
  5. 达到付款周期和最低付款金额。
  6. 平台生成付款批次。
  7. 财务执行付款并更新付款状态。

Affiliate 应保持付款资料完整,并关注平台设置的最低付款金额、付款周期、税务或发票要求。

常见问题

现象常见原因处理方式
看不到 OfferOffer 是 Private、国家不匹配、账号未通过审核或未获批准联系 AM 或提交 Offer 申请
Tracking Link 不跳转Offer 暂停、Affiliate 无权限、Tracking Domain 未配置检查 Offer 状态和权限
有点击没有转化广告主未回传、CID 丢失、订单未完成或处于审核期提供点击时间、Offer ID、Affiliate ID 给平台排查
转化一直 pending广告主需要人工审核或存在风控规则等待审核,必要时联系 AM
Payout 与预期不同命中了国家、设备、Goal 或 Affiliate 专属价格规则核对 Offer terms 和转化详情
付款未到账未到付款周期、未达最低金额、付款资料缺失或转化未 approved检查 Payments 和资料设置

Advertiser Workflow

Advertiser 完整操作流程

本文面向广告主、商家和广告主技术团队,说明广告主如何接入 Afftrix、准备 Offer 信息、完成转化回传、审核订单和查看账单。

适合广告主和技术团队 覆盖 Offer、回传、订单、账单

本文面向广告主、商家和广告主技术团队,说明广告主如何接入 Afftrix、准备 Offer 信息、完成转化回传、审核订单和查看账单。

流程总览

顺序操作完成标准
1创建或登录 Advertiser 账号广告主信息、联系人和状态完整
2准备 Offer 信息落地页、国家、设备、转化目标、价格和限制明确
3选择回传方式S2S、Pixel、API 或 WooCommerce Connector 已确定
4验证点击和转化Click、CID、Postback、Conversion 能完整对应
5上线投放Affiliate 能申请或推广 Offer
6审核转化订单金额、币种、状态、退款和重复订单可核对
7查看账单revenue、payout、balance 与结算周期一致

广告主账号

创建广告主账号
创建广告主账号

广告主账号通常由平台管理员创建,也可以由广告主提交注册申请后审核通过。账号应至少包含:

字段说明建议
Company name广告主公司或店铺名称与合同、发票或结算主体一致
Contact email对接邮箱用于回传问题、账单确认和审核通知
Status账号状态上线前保持 Active
Manager负责人绑定 AM 或运营负责人
Billing info账单信息便于后续充值、发票和对账

准备 Offer 信息

Offer 创建页面
Offer 创建页面

广告主提供 Offer 信息时,应先准备以下内容:

信息必填说明
Offer name后台识别和报表展示使用
Destination URL用户最终进入的广告主页面、商品页、注册页或上游网络 click URL
Preview URL建议Affiliate 预览页面,不应使用后台管理地址
Countries / Devices建议限定可投放国家和设备,避免无效流量
Conversion goalpurchase、lead、signup、install 等
Revenue广告主给平台的收入口径
Payout平台给 Affiliate 的佣金口径
Traffic restrictions建议是否允许品牌词、优惠码、Email、激励流量等
Creatives可选Banner、商品图、文案、邮件模板、优惠码说明

Tracking URL 与落地页

如果广告主是自有网站、WooCommerce、Shopify 或自建站,Destination URL 通常填写官网、商品页、注册页或活动页:

https://shop.example.com/products/product-a
            https://example.com/signup

Afftrix 跳转时会把点击参数带到广告主页面:

https://shop.example.com/products/product-a?cid=abc123&aff_id=2001&offer_id=1001&s1=facebook

广告主系统需要保存 cid,并在注册、下单、付款成功或退款时把 cid 带回 Afftrix。没有 cid 时,系统无法准确知道这笔订单来自哪一次 Affiliate 点击。

如果对接的是上游网络,Destination URL 通常填写上游 click URL,并把 Afftrix 的 {cid} 放进上游要求的点击参数里:

https://network.example.com/click?sub1={cid}&pub={aff_id}&offer={offer_id}

回传方式选择

方式适合场景优点注意事项
S2S Postback有开发能力的网站、App、CRM、上游网络稳定、可控、适合生产必须保存并回传 CID
Pixel成功页可插入代码接入快受浏览器、广告拦截、跳转影响
API外部系统批量同步转化灵活需要安全保存 API Key
WooCommerce ConnectorWooCommerce 店铺不写代码,自动回传订单和退款需要安装插件并验证连接

S2S 示例:

https://your-afftrix-domain.com/postback.php?cid={cid}&order_id={order_id}&amount={amount}&currency=USD&status=approved

常用字段:

字段用途
cid最准确的点击归因
order_id订单去重和排查
amount订单金额或 revenue
currency币种
statusapproved、pending、rejected、refunded
goalsignup、purchase、lead 等事件

WooCommerce Connector

Integrations 页面
Integrations 页面

如果广告主使用 WooCommerce,推荐从后台 Integrations 生成专属 Connector 插件包。插件安装后可以自动填入:

  • Afftrix Site URL。
  • Connector Key。
  • Default Advertiser ID。
  • Default Offer ID 或绑定 Offer。

Connector 会保存 Affiliate 点击参数,并在 WooCommerce 订单创建、支付、完成、退款或取消时回传到 Afftrix。上线前需要跑一次真实验证订单,确认 Click、Order、Conversion、Revenue、Payout 都能对应。

转化审核和对账

转化列表
转化列表

广告主应定期检查:

  • 订单号是否重复。
  • 金额和币种是否正确。
  • 退款、取消、拒单是否同步。
  • pending 转化是否需要审核。
  • approved 转化是否可以进入结算。
  • 异常来源是否需要反馈给平台。

广告主常见问题

现象常见原因处理方式
Afftrix 有点击但没有转化广告主未保存 CID 或未触发回传检查落地页参数和订单回传逻辑
回传成功但归因错误CID 丢失,或使用了错误参数名优先修复 CID 保存和回传映射
订单重复多次发送同一个 order_id统一触发点并启用去重
退款没有同步未监听 refund / cancel 事件增加退款回传或 Connector 退款触发
金额不一致回传了含税、折扣前、错误币种或错误字段和财务确认 revenue 口径
广告主看不到数据日期范围、账号权限或 Offer 归属不正确检查筛选条件和账号绑定

Public Marketplace

公开 Offer 市场与素材管理

公开 Offer 市场用于向潜在 Affiliate 展示可推广项目,素材管理用于帮助 Affiliate 更快启动投放并降低误投风险。

适合运营和市场团队 含公开页面截图

公开市场入口

默认公开入口为 /offers。运营人员应定期检查桌面端和移动端展示效果,确认图片、标题、描述和 CTA 正常。

公开 Offer 市场真实截图
公开 Offer 市场适合展示项目类型、国家、佣金范围和推广亮点。

公开展示字段

字段用途建议
Public visibility是否展示到公开市场仅展示允许公开招募的 Offer。
Public title公开标题使用面向 Affiliate 的标题。
Public description公开描述写国家、行业、结算方式和推广亮点。
Thumbnail卡片图片使用清晰品牌图或产品图。
Badge标签Hot、Exclusive、High CR、New。
Countries支持国家与 Offer targeting 保持一致。

素材管理

Banner 图片

适合展示广告、站内推荐和媒体位投放。

商品图

适合电商 CPS 和内容站推荐。

Landing page 文案

提供标题、描述、CTA 和卖点。

Email 模板

适合允许 Email 流量的 Offer。

优惠码说明

解释 coupon 归因和使用限制。

合规限制

说明禁止渠道、品牌词限制和国家限制。

offer-name-country-size-language-version.png
fashion-us-728x90-en-v1.png
saas-global-email-en-v2.txt

上线检查

  • 公开页面不含平台 revenue、上游 tracking URL、API Key 或用户名单。
  • 图片能正常加载,并且移动端不变形。
  • Offer 状态为 active。
  • 公开描述与 Offer terms 一致。
  • 国家、设备、流量类型与 targeting 一致。
  • Affiliate 点击申请或登录入口正常。
  • 已准备至少一组可用素材。

Visual Guide

复杂流程可视化操作指南

本文把容易出错的流程拆成可视化步骤,适合第一次配置 Offer、回传、Connector 或 Affiliate 申请流程时对照检查。

适合首次配置和培训 覆盖 Offer、Postback、Connector、付款闭环

本文把容易出错的流程拆成可视化步骤,适合第一次配置 Offer、回传、Connector 或 Affiliate 申请流程时对照检查。

Offer 创建到上线

创建广告主创建 Offer填写 Destination URL设置 Revenue / Payout保存并验证

Offer 上线前必须先确认广告主归属、落地页、价格和回传方式。任何一个环节缺失,后续点击、转化或佣金都会不完整。

Offer 创建页必填字段
Offer 创建页必填字段

建议检查顺序:

  1. 先创建或选择 Advertiser。
  2. 再进入 Offers 列表点击创建。
  3. 先填标红或带 * 的必填字段。
  4. Tracking URL / Destination URL 先按业务场景填写。
  5. Revenue 和 Payout 先用最简单的固定金额或百分比跑通。
  6. 保存后用验证点击验证。

上游网络回传闭环

Affiliate 点击 Afftrix 链接Afftrix 生成 cid跳到上游 click URL上游保存 sub1上游 Postback 回传 cidAfftrix 生成转化

对接上游网络时,最关键的是把 Afftrix 的 {cid} 放到上游能原样回传的参数里,例如 sub1={cid}

Destination URL:
            https://network.example.com/click?sub1={cid}&pub={aff_id}&offer={offer_id}

            上游 Postback:
            https://your-afftrix-domain.com/postback.php?cid={sub1}&order_id={transaction_id}&amount={payout}&status=approved

验证方式:

  • Clicks 里能看到验证点击。
  • 上游后台能看到 sub1
  • 上游验证 Postback 后,Afftrix Conversions 能看到转化。
  • 同一个 order_id 重复发送不会重复入账。

WooCommerce Connector 订单回传

后台生成 Connector广告主安装插件保存并验证 Key用户从 Tracking Link 进店插件保存 cid订单支付后回传

Connector 不负责设置佣金,佣金仍然在 Afftrix Offer 里配置。插件负责保存点击参数并把订单、退款、优惠码带回 Afftrix。

Integrations 页面
Integrations 页面

上线前验证:

  1. 在后台生成广告主专属 Connector。
  2. 在 WordPress 安装插件并保存连接。
  3. 从 Affiliate Tracking Link 打开店铺。
  4. 下一个验证订单。
  5. 检查 WooCommerce 插件日志。
  6. 检查 Afftrix Conversions。
  7. 检查 revenue、payout、profit 是否符合 Offer 配置。

Affiliate 申请 Offer

Affiliate 登录查看 Offer提交申请AM 审核复制 Tracking Link投放并看报表

如果 Offer 需要审批,Affiliate 在获批前不应投放。AM 审核时要看流量来源、国家、设备和是否包含敏感流量。

检查要点:

  • Affiliate 账号状态为 Active。
  • Offer 状态为 Active。
  • Offer 访问方式允许该 Affiliate 申请或投放。
  • 国家、设备、分类和流量限制符合要求。
  • 审核通过后再复制 Tracking Link。

财务结算闭环

转化产生状态审核进入可付款余额生成付款批次财务执行标记 paid

只有 approved 且未 paid 的有效转化才应该进入付款。退款、拒单、held 或 rejected 不应直接付款。

批量付款页面
批量付款页面

付款前确认:

  • 日期范围正确。
  • Affiliate 付款资料完整。
  • 只包含 approved unpaid 转化。
  • 退款和拒单已同步。
  • 付款后可以在 Payment 记录里追踪明细。

Scenario Playbook

业务场景实操教程

本文按真实业务场景组织配置步骤。每个场景都包含适用情况、应该怎么填、上线前怎么验证和常见错误。

适合运营、AM、技术对接 按真实业务场景配置和验证

本文按真实业务场景组织配置步骤。每个场景都包含适用情况、应该怎么填、上线前怎么验证和常见错误。

场景一:对接上游联盟网络

适用情况:平台从 Offer18、Affise、Everflow、CJ、Impact 或其他上游网络拿 Offer,再让自己的 Affiliate 推广。

配置步骤:

  1. 后台创建 Advertiser,名称可以用上游网络或广告主名称。
  2. 创建 Offer,Destination URL 填写上游网络提供的 click URL。
  3. 把 Afftrix 的 {cid} 放进上游要求的参数,例如 sub1={cid}click_id={cid}aff_sub={cid}
  4. 在上游网络后台设置 Postback,把上游保存的点击参数原样回传给 Afftrix。
  5. 用验证点击和验证转化验证。
Destination URL:
            https://network.example.com/click?sub1={cid}&pub={aff_id}

            上游 Postback:
            https://your-afftrix-domain.com/postback.php?cid={sub1}&order_id={transaction_id}&amount={payout}&status=approved

常见错误:

  • Destination URL 填成广告主官网,而不是上游 click URL。
  • 没把 {cid} 放到上游会回传的参数里。
  • 上游 Postback 里回传的是 click_id,但 Afftrix 接收参数写成了其他名称。
  • 上游验证时没有先产生 Afftrix 点击。

场景二:广告主自己的 WooCommerce / Shopify / 自建站

适用情况:广告主有自己的店铺、官网、注册页或活动页,需要把订单或注册回传给 Afftrix。

配置步骤:

  1. 创建 Advertiser。
  2. 创建 Offer,Destination URL 填写广告主官网、商品页、注册页或活动页。
  3. 如果使用 WooCommerce,后台生成专属 Connector 插件并发给广告主安装。
  4. 如果是自建站,让广告主保存落地页 URL 中的 cid
  5. 订单支付或注册成功时,用 S2S / API / Connector 回传。
Destination URL:
            https://shop.example.com/products/product-a

            广告主最终收到:
            https://shop.example.com/products/product-a?cid=abc123&aff_id=2001&offer_id=1001

验证方式:

  • 从 Affiliate Tracking Link 进入广告主页面。
  • 浏览器地址栏或广告主系统能看到 cid
  • 完成验证订单或注册。
  • Afftrix Conversions 里能看到对应 cid、订单号、金额和状态。

场景三:优惠码归因

适用情况:电商、直播、KOL、内容合作中,用户可能没有点击 Affiliate Link,但使用了专属优惠码。

推荐逻辑:

优先级归因方式说明
1Click CID最准确,优先使用点击归因
2Coupon Code没有 CID 时用优惠码归因
3UTM / Referrer只作为辅助分析
4Unattributed无法确认来源时不自动给默认 Affiliate

配置建议:

  • 给 Affiliate 分配专属优惠码,例如 MIKE10LISA15
  • 在 Offer 或 Connector 映射里绑定优惠码与 Affiliate。
  • WooCommerce Connector 回传订单时带上 coupon code。
  • 报表里同时查看 click attribution 和 coupon attribution,避免重复计算。

场景四:公开 Offer 市场招募 Affiliate

适用情况:平台希望让潜在 Affiliate 在未登录前就看到部分可推广 Offer,提高注册和申请转化。

配置步骤:

  1. 在 Offer 中开启公开展示。
  2. 填写 Public title、Public description、thumbnail 和允许国家。
  3. 不要在公开页面暴露平台 revenue、上游 tracking URL、API Key 或用户名单。
  4. 准备 Banner、商品图、文案、优惠码说明等素材。
  5. 打开 /offers 检查桌面和移动端展示。
公开 Offer 市场
公开 Offer 市场

场景五:AM 负责广告主和 Affiliate 日常运营

适用情况:平台有多个 AM 或运营人员,需要按负责人管理客户和处理提醒。

建议流程:

  1. 创建 Manager 或 Employee。
  2. 为员工分配 Staff Role。
  3. 绑定负责的 Advertiser、Affiliate 或 Offer。
  4. AM 每天进入 Action Center 查看申请、异常、失败回传和风控提醒。
  5. 对复杂问题创建 Ticket 或记录备注,避免只靠聊天工具沟通。

日常检查:

  • 新 Affiliate 申请是否待审。
  • Offer 申请是否待审。
  • 是否存在失败 Postback。
  • 是否有负利润、异常 CR 或重复订单。
  • 是否有付款资料缺失。

场景六:转化不到账排查

适用情况:Affiliate 说有订单,但 Afftrix 后台没有转化,或广告主说已经回传但后台没看到。

排查顺序:

  1. 查 Clicks:是否有该 Affiliate、Offer、时间段的点击。
  2. 查点击详情:是否生成了 cid
  3. 查广告主或上游系统:是否保存了同一个 cid
  4. 查 Postback Logs:请求是否到达 Afftrix。
  5. 查 Conversions:是否被去重、拒绝或状态不符合筛选条件。
  6. 查 Offer Pricing:金额、币种、payout 是否符合规则。

需要准备的信息:

信息示例
Offer ID1001
Affiliate ID2001
CIDabc123
Order IDORD-20260616-001
点击时间2026-06-16 10:30
Postback URL去掉密钥后提供
Afftrix responseHTTP 状态码和返回内容

场景七:负利润或佣金异常

适用情况:报表里出现 payout 大于 revenue、profit 为负数,或 Affiliate 认为佣金不对。

检查顺序:

  1. 打开转化详情,确认 revenue、payout、profit。
  2. 检查 Offer 默认 Revenue/Payout。
  3. 检查是否命中国家、设备、Goal、Affiliate 专属 Pricing Rule。
  4. 检查广告主回传 amount 是否低于预期。
  5. 检查币种是否一致。
  6. 检查是否有退款、拒单或人工调整。

建议开启 Profit Guard,并把异常记录交给运营或财务复核后再付款。

场景八:批量付款和对账

适用情况:平台按周、半月或月结给 Affiliate 付款。

付款前检查:

  • 日期范围正确。
  • 只包含 approved 且 unpaid 的转化。
  • held、rejected、refunded 不进入付款。
  • Affiliate 付款资料完整。
  • 付款金额与 Performance Report、Payment Balance Check 一致。
批量付款页面
批量付款页面

付款后检查:

  • Payment 记录状态已更新。
  • 转化状态或付款标记已同步。
  • 对账表能导出。
  • 如有失败付款,记录失败原因并重新处理。

Finance Workflow

财务结算完整流程

本流程面向平台财务、运营负责人和管理人员,说明从转化审核到付款批次、对账、发票和异常处理的完整闭环。

适合财务和运营负责人 含付款批次截图

财务闭环

  1. Affiliate 产生点击和转化。
  2. 转化进入 pending 或 approved。
  3. 广告主或平台完成转化审核。
  4. 系统根据 Offer payout 计算佣金。
  5. 达到付款周期和最低付款金额后生成付款批次。
  6. 财务复核批次、付款账号和异常项。
  7. 执行付款并记录付款状态。
  8. 生成对账资料,必要时上传发票或付款凭证。

状态与付款关系

状态是否进入可付款说明
pending等待审核。
approved有效转化,可进入付款流程。
held暂缓,需风控或人工复核。
rejected无效转化,不计佣金。
refunded否或冲减退款或撤销订单。
paid已完成已纳入付款记录。

报表核对

Performance Report 真实截图
付款前先核对时间范围、Affiliate、Offer、状态、币种、revenue、payout 和 profit。
  • 时间范围是否与付款周期一致。
  • approved unpaid 转化金额是否与付款批次一致。
  • 是否存在负利润、异常高 payout 或重复订单。
  • 币种是否统一。

付款批次

批量付款页面真实截图
批量付款前应筛选 approved 且 unpaid 的转化,并排除资料不完整或风险暂缓的 Affiliate。
检查项目的
Affiliate 收款资料完整避免付款失败。
金额达到最低付款门槛避免小额频繁支付。
转化均为 approved避免给未审核转化付款。
无 held / risk 标记避免给异常流量付款。
无重复 order_id避免重复付款。

Troubleshooting Cases

故障排查案例库

本案例库按真实运营场景整理常见故障。处理问题时先记录现象、时间、Offer ID、Affiliate ID、Click ID、Conversion ID、订单号和截图。

适合支持和技术排查 按场景排查

案例 1:有点击没有转化

检查点说明
点击日志是否产生 click 和 cid。
跳转 URL广告主页面是否收到 cid。
广告主系统是否保存 cid 到用户或订单。
Postback 日志是否发送回传请求。
转化列表是否被拒绝、暂缓或去重。

案例 2:Postback 返回错误

Integrations 排查页面真实截图
接口或插件回传异常时,应优先记录 HTTP 状态码、请求 URL、请求体和响应内容。
错误常见原因修复
401 / 403API Key、签名或认证错误重置密钥,确认请求头。
404URL 路径错误使用后台展示的完整 URL。
422缺少必要字段填写 cidorder_idamount
429请求过频增加重试间隔。
500服务异常查看服务器日志和队列状态。

案例 3:佣金金额不对

  • Offer 是否使用固定 payout 或百分比 payout。
  • 是否存在 Affiliate override。
  • 是否存在 Goal payout。
  • 广告主回传 amount 是否正确。
  • 币种是否正确。
  • 退款或拒单是否已同步。

案例 4:付款批次金额异常

付款批次排查真实截图
付款异常通常与时间范围、状态筛选、最低付款金额、多币种或重复批次有关。
  • 确认时间范围是否正确。
  • 确认只选择 approved unpaid。
  • 排除 refunded、rejected、held 转化。
  • 检查 Affiliate 是否达到最低付款金额。
  • 检查是否存在多币种或重复批次。

案例 5:页面加载慢

常见原因处理方式
同步查询过多统计改为懒加载或分页。
报表时间范围过大默认使用当天或较短时间范围。
顶部通知和助手频繁请求使用缓存和延迟加载。
数据表缺少索引检查慢查询日志并补充索引。

案例 6:后台登录页无提示刷新、密码框明文

这个现象通常不是账号密码错误,而是 Livewire / Alpine 前端脚本没有正常加载。优先打开浏览器 Network / Console,确认是否有 Livewire 或 Alpine 相关 .js 资源返回 404。

典型现象

输入账号密码后页面只是刷新,密码框明文,显示 / 隐藏密码按钮无效。

确认方式

检查是否存在 /livewire-xxxx/livewire.min.js 404,或 /vendor/livewire/livewire.min.js 无法访问。

常见原因

动态 Livewire JS 被 Nginx 或面板静态文件规则拦截,或安装包缺少 Livewire 静态资源。

修复目标

发布静态资源并清理缓存,让登录页加载真实存在的 /vendor/livewire/livewire.min.js

cd /path/to/afftrix
php artisan vendor:publish --tag=livewire:assets --force --no-interaction
php artisan optimize:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
  • aaPanel / 宝塔使用站点对应 PHP 版本,例如 /www/server/php/83/bin/php artisan ...
  • VPS / 独立服务器同时检查 Web 根目录是否指向 public,Nginx / Apache 是否把 Laravel 路由交给 index.php
  • cPanel / Plesk / DirectAdmin 使用面板 Terminal、SSH 或主机商提供的任务入口执行。
  • 虚拟主机如果不能执行 Artisan,必须确认安装包已包含 public/vendor/livewire/livewire.min.js
  • 修复后确认 /vendor/livewire/livewire.min.js 返回 200,密码框默认隐藏,按钮可点击。

Admin SOP

管理员日常运营 SOP

本 SOP 面向平台管理员、运营负责人、AM、财务和技术支持,提供每日巡检、每周复盘、每月结算和事故处理流程。

适合平台运营团队 日常巡检模板

每日巡检

后台首页真实截图
后台首页用于查看当天核心数据、异常提醒和待处理任务。
优先级检查项处理动作后台入口
Dashboard 总览查看当天点击、转化、收入、佣金、利润是否正常。Dashboard / Analytics
通知与任务处理 Offer 申请、风控提醒、失败回传和系统告警。顶部通知 / Action Center
转化异常检查异常 CR、重复订单、负利润和异常退款。Conversions / Profit Guard
广告主回传检查 Postback、Connector、API 错误和最近失败原因。Postback Logs / Integrations
支付与财务检查待付款、付款失败、对账差异和未结算金额。Payments / Reconciliation
风险队列处理 held 转化、Profit Guard、Anti-Spy 和人工审核任务。Review Queue / Anti-Spy

每周运营复盘

Performance Report 周复盘真实截图
每周通过 Performance Report 复盘 Top Offer、Top Affiliate、低质量流量、负利润和新 Offer 表现。
  • Top Offer:点击、转化、CR、EPC、revenue、payout、profit。
  • Top Affiliate:有效转化、拒单率、退款率、利润贡献。
  • 低质量流量:异常点击、异常 CR、短时间重复订单。
  • 负利润项目:payout 高于 revenue 或退款未同步。
  • 新 Offer 表现:是否需要放量、暂停或调整佣金。

团队权限巡检

员工管理真实截图
每月检查离职员工、临时账号、财务权限和敏感操作日志。
  • 离职员工是否禁用。
  • 外包、临时账号是否过期。
  • 财务权限是否只给财务人员。
  • Security、Payment Settings 是否只给高级管理员。
  • Staff Activities 中是否存在异常登录或敏感修改。

事故处理原则

  1. 先暂停可能造成损失的入口,例如 Offer、Affiliate 或回传接口。
  2. 保留日志、截图、时间范围和 ID。
  3. 确认影响面:哪些 Offer、Affiliate、Advertiser、订单受影响。
  4. 修复后生成验证点击和验证转化。
  5. 对受影响数据进行补发、冲正或重新结算。
  6. 记录复盘结论,补充 SOP 或自动化规则。

Developer Examples

API 与 Postback 代码示例

本页提供常用 API、Postback、Pixel 和外部系统对接示例。示例中的域名、密钥和 ID 需要替换为实际值。

适合开发者 代码块可复制

连接验证

curl -X GET "https://your-afftrix-domain.com/api/integration/v1/ping" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
{
  "ok": true,
  "app": "Afftrix",
  "version": "1.0.0"
}

创建转化

curl -X POST "https://your-afftrix-domain.com/api/integration/v1/conversions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "cid": "CLICK_ID_FROM_LANDING_PAGE",
    "order_id": "ORDER-10001",
    "amount": 99.00,
    "currency": "USD",
    "status": "approved",
    "goal": "purchase"
  }'

Node.js 示例

const response = await fetch('https://your-afftrix-domain.com/api/integration/v1/conversions', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
    Accept: 'application/json'
  },
  body: JSON.stringify({
    cid: clickId,
    order_id: 'ORDER-10001',
    amount: 99,
    currency: 'USD',
    status: 'approved',
    goal: 'purchase'
  })
});

if (!response.ok) {
  const body = await response.text();
  throw new Error(`Afftrix conversion failed: ${response.status} ${body}`);
}

S2S Postback 与 Pixel

https://your-afftrix-domain.com/postback.php?cid={cid}&order_id={order_id}&amount={amount}&currency=USD&status=approved
<img
  src="https://your-afftrix-domain.com/postback.php?cid=CLICK_ID&order_id=ORDER-10001&amount=99.00&currency=USD"
  width="1"
  height="1"
  alt=""
  style="display:none"
>

Pixel 适合快速接入,但生产环境更推荐 S2S。S2S 必须保存 cid,并使用唯一 order_id 防止重复入账。

错误响应

HTTP含义处理
401API Key 无效检查密钥、前缀和启用状态。
403权限不足确认 key 是否绑定正确广告主或 connector。
404接口不存在检查路径和域名。
409重复订单或重复转化使用已有转化或更换唯一 order_id。
422参数校验失败查看响应中的字段错误。
429请求过频增加重试间隔。
Tracking 设置真实截图
上线前验证点击、CID、回传、金额、状态、订单号和重复请求处理。

Advertiser S2S

广告主 S2S Postback

S2S 是最稳定的转化回传方式。广告主服务器在用户完成注册、支付或订单完成后,直接请求 Afftrix 的 Postback URL。

适合广告主技术人员 推荐生产使用

基础 Postback URL

https://your-tracking-domain.com/postback.php?cid={click_id}&amount={payout}&status=approved&txid={transaction_id}

cid 是最重要的归因字段。正式给广告主时,{click_id}{payout}{transaction_id} 要换成广告主平台自己的宏。广告主页面收到 Afftrix CID 后,应在注册、下单或支付流程里保存,转化发生时再原样带回 Afftrix。

使用追踪域名

广告主 S2S 回传地址建议使用追踪域名,例如 trk.example.com,不要使用后台管理域名。Offer 启用回传密钥时,还要追加 &key=POSTBACK_SECRET

参数说明

参数是否推荐说明
cid必填点击 ID。常见别名:click_idclickid
txid推荐广告主订单号,用于去重和排查。常见别名:transaction_idorder_id
amount推荐订单金额或广告主收入。常见别名:revenuepayout
currency推荐三位币种,例如 USD。常见别名:currency_codecurr
status推荐approved、pending、rejected、held、refunded。常见别名:conversion_statusstate
goal可选事件名,例如 signup、purchase、install。
offer_id辅助CID 缺失时辅助归因。
affiliate_id辅助CID 缺失时辅助归因。
s1-s5可选自定义 Sub ID,可回传给 Affiliate。
key条件必填Offer 启用回传密钥时必须携带。常见别名:tokensecret_key

广告主如何保存 CID

Postback 成败的关键不是 URL 本身,而是广告主能不能把点击时收到的 cid 保存到最终订单或注册事件上。

业务场景保存位置说明
普通注册表单隐藏字段、Session、用户表。用户提交表单时一起保存 CID。
电商下单Cookie、购物车、订单 meta。用户从点击到支付可能跨多个页面,必须持久保存。
CRM 线索Lead 表或 CRM 自定义字段。销售后续转化时仍能找到原始 CID。
移动 App深链参数、归因 SDK、服务端用户表。需要确保安装或注册后仍能拿到点击 ID。
第三方支付订单号关联表。支付回调只带订单号时,通过订单号查回 CID。

广告主对接步骤

  1. 平台后台创建 Offer,并复制广告主 Postback 示例。
  2. Affiliate 使用 tracking link 投放,Afftrix 把 CID 带到广告主落地页。
  3. 广告主落地页保存 CID 到 Cookie、Session、订单表或 CRM。
  4. 用户完成目标事件后,广告主服务器请求 Postback URL。
  5. Afftrix 创建 Conversion,并根据 Offer 规则计算 revenue 和 payout。
  6. 后台在 Conversions 和 Server Postback Logs 中检查结果。

成功标准

  • Postback 返回 HTTP 200。
  • Conversions 出现新记录。
  • Click 的 converted 状态变化。
  • Affiliate、Offer、Advertiser 归因正确。
  • 金额、币种、状态正确。

退款、取消和重复订单

重复 order_id

同一个订单多次回传时,系统应按去重规则处理,避免重复发佣金。

退款

广告主应回传 status=refunded 或独立 refund 事件,让平台撤销或调整佣金。

取消订单

未支付或取消订单建议回传 cancelledrejected

部分退款

如果只退部分金额,应回传新的 amount 或 refund amount,并在账单中保留证据。

S2S 常见失败原因

现象原因处理方式
没有任何日志广告主没有请求 Afftrix。让广告主提供服务器请求日志或 curl 验证结果。
401 / 403密钥、签名或权限不正确。检查 Postback secret、API key、广告主状态。
422参数缺失或格式错误。检查 cid、amount、currency、status、order_id。
409重复订单或重复去重键。确认是否正常重复,或修改 dedup_key。
金额不对广告主传错 amount 或币种。和广告主订单后台核对原始订单。
归因错人CID 丢失后用了错误的 affiliate fallback。优先修复 CID 保存,不建议默认 Affiliate 兜底。

Affiliate Callback

Affiliate Postback

Affiliate Postback 用于把 Afftrix 中的转化结果发送给 Affiliate 自己的系统、广告平台或第三方追踪工具。

适合 Affiliate 和 AM

Postback 类型

Offer Postback

只对某个 Offer 生效,适合单个活动。

Global Postback

对多个 Offer 生效,适合 Affiliate 的统一接收地址。

Pixel

Affiliate 提供 image、iframe 或 HTML tag,由系统在特定场景触发。

Advanced Setup

需要自定义 HTTP method、headers、POST body 或 JSON 时使用。

发送优先级

如果某个 Offer 设置了 Offer Postback,优先发送 Offer Postback;如果没有 Offer Postback,就发送默认 Global Postback;如果两者都没有,就不发送 Affiliate Postback。

Affiliate Postback 示例

https://affiliate-system.example.com/postback?cid={cid}&amount={amount}&status={status}&country={country}&offer={offerid}&txid={txid}&s1={s1}

推荐先使用 Server Postback。这里的 {amount} 表示 Affiliate 佣金,也就是平台要通知给 Affiliate 的 payout,不是广告主收入。

创建 Postback 的步骤

  1. Affiliate 登录用户中心,进入 Postbacks 或 Offer 详情页。
  2. 选择 Global Postback 或某个 Offer 的 Postback。
  3. 填写接收 URL,使用系统提供的宏拼接参数。
  4. 选择触发状态,例如 pending、approved、rejected 或 all status。
  5. 保存后点击 Send test,填写 CID、Amount、Status、Country、Offer ID 和 Transaction ID,确认 Affiliate 服务器返回 HTTP 200。
  6. 真实转化产生后,在 Affiliate Postback Logs 检查发送结果。
CID: test-cid-xxxx
Amount: 1.00
Status: approved
Country: US
Offer ID: 1001
Transaction ID: test-txid-xxxx

Send test 只发送样例请求并写入验证记录,不会创建真实转化,也不会改 Affiliate 余额。

常用宏

说明
{cid}点击 ID。
{amount}联盟用户佣金,也就是 payout。
{currency}币种。
{status}转化状态。
{country}国家。
{affid}Affiliate ID。
{offerid}Offer ID。
{offer_name}Offer 名称。
{txid}交易号或订单号。
{goal}目标事件。
{s1}{s5}Affiliate 在 tracking link 中传入的 Sub ID。
{useragent}用户 UA。
{timestamp}发送时间戳。

发送逻辑

Postback 可以按状态发送,例如创建时、approved、pending、rejected、held 或任意状态变化。对于需要实时优化广告的 Affiliate,通常发送 approved 或 pending;对于风控严格的业务,建议只发送 approved。

排查建议

如果 Affiliate 没收到回调,先看 Affiliate Postback Logs,检查 HTTP Status、Response、Postback URL、Conversion ID 和发送时间。

Postback 验证和排查

检查项怎么看常见处理
URL 是否可访问浏览器或 curl 打开验证 URL。Affiliate 服务器必须公网可访问。
是否返回 200查看 Postback Logs 的 HTTP Status。非 200 需要 Affiliate 修复接收端。
宏是否替换查看实际发送 URL。拼错宏会原样发送或为空。
状态是否触发查看该 Postback 的触发状态配置。只监听 approved 时,pending 不会发送。
是否被限流看连续失败和重试日志。对方接口慢或限流时启用重试并降低频率。
失败提示含义处理方式
Postback URL must start with http:// or https://Affiliate 填写的地址不是有效 URL。要求 Affiliate 使用完整公网 URL。
domain could not be resolvedAffiliate 域名 DNS 解析失败。检查域名解析、拼写和 DNS 生效状态。
connection timed outAffiliate 服务器超时或防火墙阻断。让 Affiliate 检查服务器、防火墙和接口响应时间。
SSL connection failedAffiliate HTTPS 证书异常。修复证书链,确认 HTTPS 可被公网访问。
HTTP 403 / 404 / 500请求到达 Affiliate 服务器,但对方返回失败。让 Affiliate 根据状态码修复接收端逻辑。

Testing

Pixel 与集成验证

Pixel 适合广告主没有服务器回传能力的场景。正式投放前,应完成 tracking link、Postback、Pixel 和 Affiliate callback 的集成验证。

适合技术对接和客服排查

Pixel 类型

Image Pixel

在成功页面加载 1×1 图片,兼容性好,但传参能力有限。

Iframe Pixel

适合 Affiliate 或广告主提供 iframe 代码的场景。

JS Pixel

可执行更复杂逻辑,但依赖浏览器和脚本加载。

Cookieless C2S

当第三方 Cookie 受限时,需要额外保存 click 参数。

什么时候用 Pixel

场景是否推荐 Pixel原因
广告主没有服务端开发能力可以使用只需要把代码放到成功页。
注册成功页或感谢页稳定存在可以使用用户完成事件后浏览器会加载 Pixel。
电商支付后跳第三方页面谨慎使用用户可能不回到成功页,Pixel 不触发。
高价值订单或严格结算不推荐优先使用Server Postback 更稳定、更可审计。
移动 App 安装归因通常不适合需要深链、SDK 或服务端回传。

Pixel 示例

<img src="https://your-domain.com/pixel?cid=CLICK_ID&amount=99.00" width="1" height="1" alt="">

<iframe src="https://your-domain.com/pixel-frame?cid=CLICK_ID&amount=99.00" width="1" height="1"></iframe>

<script src="https://your-domain.com/pixel.js?cid=CLICK_ID&amount=99.00"></script>

手动集成验证

  1. 在 Affiliate 端复制 tracking link。
  2. 打开链接,确认跳转到广告主页面。
  3. 在后台 Clicks 查看是否生成点击和 CID。
  4. 把 CID 填入 Postback 或 Pixel 验证 URL。
  5. 触发验证 URL。
  6. 在 Conversions 查看是否创建转化。
  7. 在 Affiliate Postback Logs 查看 Affiliate 是否收到回调。

成功页放置步骤

  1. 确认广告主有稳定的成功页,例如注册成功、订单完成、支付成功页面。
  2. 确认成功页可以读取点击时保存的 cid
  3. 把 Image、Iframe 或 JS Pixel 放到成功页底部。
  4. 如果金额来自订单,确保 amountcurrency 是服务器输出的真实订单数据。
  5. 打开 tracking link 进入广告主页面,完成一次验证注册或验证订单。
  6. 在浏览器 Network 面板确认 Pixel 请求发出。
  7. 在 Afftrix Conversions 和 Pixel / Postback 日志中确认记录。

常见验证失败原因

  • Tracking link 缺少 offer 或 affiliate 参数。
  • Offer targeting 不匹配当前 IP、国家或设备。
  • 落地页没有保存 CID。
  • Postback URL 的参数名写错。
  • 重复 order_id 被去重。
  • Affiliate Postback 返回非 200 状态码。
  • 浏览器广告拦截插件屏蔽了 Pixel 请求。
  • 成功页没有加载,用户支付后没有回到广告主网站。
  • Pixel 代码放在需要登录后才加载的区域,验证用户未触发。

Pixel 和 S2S 的区别

Pixel

由用户浏览器触发,部署简单,但受浏览器、广告拦截、成功页加载影响。

S2S

由广告主服务器触发,稳定性和审计能力更强,适合生产和高价值结算。

Connector

适合 WooCommerce 等电商,插件保存 CID 并自动回传订单。

Integration API

适合 CRM、支付系统、Shopify App 或自定义后台。

Reports & Logs

报表、转化状态与日志

报表用于分析经营结果,日志用于排查技术链路。正式运营中,点击、转化、Postback、付款和风控日志都很重要。

适合运营、AM、技术支持

常用报表

报表、日志和风控真实截图
报表看经营结果,日志查技术链路,风控判断是否需要人工审核或暂停付款。
报表用途常用筛选
Performance Report按日期、Affiliate、Offer、广告主看点击、转化、收入、佣金和利润。时间、Offer、Affiliate、国家。
Clicks查看点击明细和跳转归因。CID、Offer、Affiliate、IP、国家。
Conversions查看转化明细、状态、金额和证据。状态、Offer、Affiliate、order_id。
Server Postbacks查看广告主回传是否成功。HTTP 状态、错误信息、CID。
Affiliate Postbacks查看系统发送给 Affiliate 的回调。HTTP 状态、Affiliate、Offer、Conversion ID。
Offer Health查看 Offer 健康度和异常链接。Offer、状态、风险等级。

转化状态说明

状态是否可付款说明
pending等待审核或广告主确认。
approved有效转化,可进入付款流程。
held暂缓,需要人工或风控审核。
blocked被规则阻止。
rejected拒绝转化,不计佣金。
paid已付款已进入付款记录。
refunded退款或撤销场景。

Postback 日志字段

  • Postback URL:实际发送或接收的 URL。
  • Conversion ID:关联的转化。
  • HTTP Status:200 通常表示成功。
  • Response:对方服务器返回内容。
  • Error:参数验证、签名、去重、权限等错误。
  • Postback Time:发送或接收时间。

常见问题怎么查

现象先看哪里继续排查
Affiliate 说没有转化Clicks 按 CID 或 Affiliate 搜索。确认点击是否生成 CID,再看 Server Postbacks 是否收到回传。
广告主说订单已产生Server Postbacks 按 order_id 或时间搜索。如果没有日志,广告主没有发回传;如果有日志,查看参数错误。
Postback 失败Postback Logs 的 HTTP Status 和 Response。401/403 检查密钥,422 检查字段,409 检查重复订单。
佣金不对Conversions 详情和 Offer pricing rules screenshot。确认是否命中国家、设备、Affiliate 分组或自定义 payout 规则。
付款金额对不上Payments 和 Reconciliation。只统计 approved 且未 paid 的转化,排除 held、rejected、refunded。
利润突然变负Profit Guard 和 Performance Report。检查 revenue、payout、币种、汇率、退款和批量改价记录。

日常使用建议

  • 日常查看数据时,先看 Dashboard,再看 Performance Report,最后用 Clicks、Conversions 和 Postback Logs 排查明细。
  • 报表默认建议看当天数据,历史数据通过顶部日期范围筛选,避免误把首页数据理解为累计总数据。
  • 导出给广告主或 Affiliate 的报表不要包含平台利润、风控规则、其他用户邮箱和密钥。
  • 每次上线新 Offer 后,保留一条验证点击、验证回传和验证转化截图,方便后续支持排查。

Finance

付款、对账与发票

付款模块负责把 approved 转化结算给 Affiliate。对账模块用于核对外部支付记录和平台付款记录。

适合财务和平台管理员

付款流程总览

付款和对账页面截图
付款不是简单点击发送。必须先确认转化状态、余额、付款方式、风险和外部交易记录。

付款前提

  • Affiliate 状态 active。
  • 转化状态 approved。
  • 未被标记 fraud held、blocked 或 rejected。
  • 达到最低付款金额。
  • Affiliate 已填写有效付款方式。
  • 付款周期和币种符合平台设置。

付款设置在哪里

付款前必须先进入 Settings Center → Payment Settings 配置币种、最低付款金额、付款方式、发票信息和付款周期。

设置项用途建议
Default currency平台默认币种。上线前确定,不建议频繁修改。
Minimum payout最低付款金额。低于该金额不进入付款批次。
Payment methods支持的付款方式。只开启平台实际能付款的方式。
Invoice information发票抬头、地址、税号等。根据客户所在地合规要求填写。
Payment cycle周付、半月付、月付等。要和 Affiliate 条款一致。
Finance notification付款提醒和失败提醒。建议发送给财务和管理员。

付款流程

  1. 进入 Payments 或 Batch Send。
  2. 选择时间范围、Affiliate、币种和付款方式。
  3. 预览可付款转化和金额。
  4. 生成付款记录。
  5. 线下或第三方支付完成后,标记为 paid。
  6. Affiliate 用户中心查看付款和发票。

付款状态流转

付款状态含义财务动作
draft付款批次草稿。继续核对金额、Affiliate 和付款方式。
pending等待付款。准备外部转账或第三方付款。
processing付款处理中。等待第三方或银行结果。
paid已付款。记录交易号,Affiliate 可查看。
failed付款失败。记录失败原因,修正收款信息后重试。
cancelled取消付款。保留取消原因,不建议删除记录。

批量付款页面怎么用

步骤操作检查点
选择日期范围选择付款周期,例如上月或本周。日期范围要和客户财务周期一致。
筛选 Affiliate选择达到最低付款金额的 Affiliate。确认付款方式和收款信息完整。
检查转化状态只纳入 approved 且可支付转化。held、rejected、refunded 不应进入付款。
生成付款批次创建 Payment records。创建前建议导出备份。
外部付款通过 PayPal、银行、加密货币或人工方式付款。记录外部交易号。
更新状态标记 paid、failed 或 pending。失败付款需要保留失败原因。

失败付款怎么处理

  1. 打开付款记录,查看失败原因和外部交易返回信息。
  2. 检查 Affiliate 付款方式是否缺少字段、格式错误或账号不可用。
  3. 联系 Affiliate 更新付款资料。
  4. 不要直接删除失败付款记录,应保留审计痕迹。
  5. 修正后重新生成付款或使用 Retry。
  6. 重试成功后记录新的外部交易号。

对账场景

银行转账

导入银行流水,按金额、时间、收款人匹配付款记录。

批量付款平台

导入第三方付款结果,标记成功、失败或待处理。

退款或扣回

广告主退款后,需要调整对应转化和付款资格。

发票导出

Affiliate 可下载付款发票,后台可导出付款项目。

财务权限分离

为了避免误付款或操作风险,不建议同一个员工同时拥有修改佣金规则和批量付款权限。

角色建议允许不建议允许
财务Payments、Batch Send、Invoices、Reconciliation。修改 Offer payout、删除转化、修改系统安全设置。
运营Offer、Affiliate、Advertiser、Reports。最终标记 paid、修改财务设置。
风控Profit Guard、Fraud Logs、Conversions review。批量付款、SMTP。
超级管理员完整权限。日常操作不建议一直使用超级管理员账号。

财务风险提醒

  • 付款前检查 Profit Guard、Fraud Logs 和 rejected / held 转化。
  • 不要把 pending 或 held 转化提前付款,除非业务明确允许。
  • 财务员工不应同时拥有修改 payout 和批量付款的权限。
  • 负利润 Offer 必须先处理,再进入付款周期。
  • 批量付款前导出备份,付款后记录外部交易号。

Core capability

Offer Health 健康度检测

Offer Health 用来判断一个 Offer 是否还适合继续开放给联盟用户推广。它不只看链接能不能打开,还会结合 Link Health、健康分、目标国家、HTTP 状态、最终 URL、异常关键词和历史表现,帮助运营在上线前和日常巡检时发现坏链接、跳转异常和配置风险。

适合运营、AM 和实施人员 上线前必查 Broken 后建议接着用 Offer Spy

入口在哪里

集中巡检入口

后台进入 Operations > Offers > Offer Health,按健康分、状态和时间范围查看需要处理的 Offer。

单条 Offer 检测

在 Offer 列表或详情页使用 Check link availability,适合刚改完 Tracking URL 后立即复测。

批量检测

在 Offer 列表勾选多条记录后批量运行健康检测,适合导入 Offer 后或每日巡检。

详情页记录

进入 Offer 详情后查看 Health score、Link Health 记录和最近一次检测结果。

什么时候一定要用

  • 新建 Offer 后,正式开放给 Affiliate 之前先检测一次。
  • 批量导入 Offer 或从 Offer Source 同步后,先跑批量检测再开放。
  • 广告主或上游网络更换 click URL、落地页、国家限制或 broker 链路后。
  • Affiliate 反馈 tracking link 打不开、白屏、跳错页面或某个国家访问失败时。
  • 公开 Offer 市场、大流量 Offer、邮件推广 Offer 建议定期巡检,避免用户继续推坏链接。

操作步骤

Offer Health 健康度检测标注图
Offer Health 集中页适合每日巡检。先按异常状态筛选,再看健康分、原因和 View Score 详情,确认是链接、GEO、代理、回传还是表现数据导致的风险。
  1. 先确认 Tracking & GeoIP 里的 GeoIP 和住宅代理已经配置好;有国家限制的 Offer 建议先配置目标国家代理。
  2. 进入 Offer Health,先按 BrokenWarning、低健康分或最近更新时间筛选。
  3. 需要集中处理时,按广告主、Offer、国家、分类或健康分范围缩小列表。
  4. 对刚创建或刚修改的 Offer,进入 Offer 列表或详情页点击 Check link availability
  5. 检测完成后查看状态、HTTP code、Final URL、页面标题、错误信息、代理国家和检测时间。
  6. 如果结果是 Warning 或 Broken,复制检测里的 URL 或最终 URL,继续用 找出具体坏在哪一步。

状态怎么判断

状态代表什么下一步
Healthy链接可访问,最终落地页和检测条件基本正常。可以继续开放;大流量 Offer 仍建议定期复测。
Warning可以打开,但存在跳转过多、SSL、耗时、页面内容或最终 URL 风险。用 Offer Spy 查看完整跳转链路,确认是否误报。
Broken链接不可访问、HTTP 错误、DNS 异常、代理失败、上游拒绝或落地页失效。暂停放量或临时隐藏公开入口,再联系广告主或上游修复。
Geo not verifiedOffer 有国家限制,但当前服务器或代理没有验证到目标国家。检查住宅代理、国家代码、SOCKS5/SOCKS5H 和 fallback country。
Unchecked尚未运行检测,或历史检测记录不足。上线前先运行一次 Check link availability。

处理建议

低分但能打开

先看是否是近期没有点击、价格过期、回传失败或落地页耗时导致,不要只看一个分数就下线。

Broken

优先暂停公开推广或通知 AM,保留检测记录、HTTP 状态、最终 URL 和截图,方便上游排查。

GEO 失败

先到 Tracking & GeoIP 检查代理连通性,再用同一国家重新检测,不要用服务器 IP 判断有国家限制的 Offer。

反复波动

把 Offer 加入重点巡检清单,观察是否是上游限流、broker 不稳定或某些国家代理被拒绝。

验收标准

  • 核心 Offer 至少有一次最新检测记录。
  • 公开市场展示的 Offer 不应该长期处于 Broken。
  • 带国家限制的 Offer 能说明使用哪个国家代理检测。
  • Warning / Broken 都能追溯到 HTTP 状态、最终 URL 和错误信息。
  • 修复后重新检测,状态和健康分已经更新。

Core capability

Offer Spy 链路分析

Offer Spy 用来还原一个 Offer 从入口链接到最终落地页之间的完整跳转过程。它不是普通的“打开网址看一下”,而是把 301/302、broker、中间域名、最终 URL、HTTP 状态、SSL 问题和参数传递拆出来,帮助你判断问题发生在 Afftrix、上游网络、代理国家还是最终落地页。

适合排查坏链接和跳错页 支持追踪跳转链路 常和 Offer Health 配合使用

入口在哪里

后台菜单

进入 Operations > Offers > Offer Spy。如果使用顶部搜索,也可以直接搜索 Offer Spy

排查来源

可以粘贴上游 click URL、Affiliate tracking link、短链、落地页 URL 或 Offer Health 里的最终 URL。

权限

员工角色需要允许 Use Offer Spy 或对应的 redirect_trace.view 权限。

代理设置

带国家限制的 Offer,先确认 Tracking & GeoIP 里的住宅代理和目标国家配置正确。

什么时候使用

  • Offer Health 显示 Broken、Warning 或 Geo not verified,需要看具体是哪一步失败。
  • Affiliate 反馈链接打不开、落地页白屏、跳错页面、变成无关产品页。
  • 点击有记录但广告主没收到 CID、subid、transaction_id 或其他关键参数。
  • 上游网络经过多个 broker,中间链路不透明,需要确认最终落地页和跳转次数。
  • 同一个 Offer 在不同国家、设备、代理环境下表现不一致。

操作步骤

Offer Spy 链路分析标注图
Offer Spy 用来复现链接实际跳转。粘贴问题链接后,按国家、代理和 SSL 条件复现,再看最终页面和每一步 Redirect Visualization。
  1. 复制要分析的 URL。优先使用实际出问题的 Affiliate tracking link;如果没有,就用上游提供的 click URL。
  2. 打开后台 Offer Spy,把 URL 粘贴到输入框。
  3. Max redirects 默认保持 10;如果上游链路很长,可以临时调到 15 或 20。
  4. Verify SSL certificate 生产环境建议开启。只有本地验证、自签证书或确认是证书问题时才临时关闭。
  5. 如果页面提供目标国家或代理选项,选择和用户反馈一致的国家、设备或访问环境。
  6. 点击 Analyze Offer,等待系统完成链路分析。
  7. 先看 Offer SummaryFinal Landing URL,确认最终页面是不是预期页面。
  8. 再看 Tracking DetectionRedirect Visualization,逐步核对每一步 URL、Host、HTTP 状态、耗时和跳转方式。

结果怎么读

看到的结果通常代表建议动作
最终 200 且 Final Landing URL 正确链路基本可用,问题可能在用户环境、目标国家或浏览器侧。换目标国家、设备或代理复测;同时检查点击日志和转化回传。
301 / 302 次数过多上游 broker 或中转域名过多,可能导致耗时、参数丢失或被拦截。把跳转链路发给广告主或上游,要求减少无效中转或确认参数保留。
404 / 410落地页或中间链接已经下线。暂停 Offer 或隐藏公开入口,要求上游换新链接。
403 / 451上游拒绝当前 IP、国家、设备、User-Agent 或代理。用目标国家代理重测,并确认 Offer 的 Targeting 是否一致。
5xx上游服务器异常或限流。保留时间、URL 和状态码,联系上游;必要时临时降低流量。
SSL / TLS 错误证书过期、证书链不完整、本地 CA 或自签证书问题。生产环境不要关闭 SSL 验证,先让上游修复证书。
参数丢失CID、subid、click_id 或自定义参数在中间跳转时被吞掉。检查 Tracking URL 模板、上游参数白名单和 broker 是否保留 query string。
最终页面不是预期产品上游分流、GEO 跳转、Offer 下线或 broker 重定向到兜底页面。截图并保存最终 URL,联系广告主确认是否允许这种分流。

和其他工具怎么配合

Offer Health

先用它做批量巡检和健康分判断。发现 Warning / Broken 后,再用 Offer Spy 分析具体跳转步骤。

Traffic Simulator

更适合模拟 Afftrix 自己的路由、Targeting、Smartlink、预览和代理国家效果。

Postback Debugger

用于排查转化回传参数、状态码和回调失败;它不负责还原落地页跳转链路。

Tracking Logs

Offer Spy 看链路,Clicks / Conversions 看真实流量是否进入系统,两边一起核对才完整。

排查工单需要保留什么

  • 原始 URL、Affiliate tracking link 或上游 click URL。
  • 目标国家、设备、浏览器、代理类型和复现时间。
  • Offer Summary、Final Landing URL、Redirect Visualization 和错误状态截图。
  • 哪一步开始丢参数,尤其是 CID、subid、order_id、transaction_id。
  • 如果是上游问题,附上完整跳转链路和 HTTP 状态,不要只描述“打不开”。

Risk & Automation

Profit Guard、Anti-Spy 与自动化

风控模块用于保护利润和流量质量,自动化模块用于把重复运营动作变成规则和提醒。

适合风控、运营和管理层

风控运营地图

报表日志风控真实截图
风险提示不是最终结论。运营需要从报表进入日志,再结合规则判断是配置错误、流量异常还是广告主回传问题。

Profit Guard 能检查什么

负利润

payout 高于 revenue,导致平台亏损。

低毛利率

利润率低于设定阈值,需要人工复核。

高 payout 变化

佣金规则突然变化,可能是配置错误。

币种异常

revenue 和 payout 币种不一致时提醒审核。

风险等级怎么处理

等级常见原因建议动作
Info普通提醒、配置建议、轻微异常。记录即可,不需要立即处理。
Warning低毛利、Postback 偶发失败、点击波动。运营复核,必要时通知 AM 或广告主。
High负利润、高拒绝率、异常流量、连续失败。暂停放量、检查规则、联系相关 Affiliate。
Critical严重亏损、疑似作弊、批量异常转化。暂停 Offer 或 Affiliate 访问,进入人工审核。

Anti-Spy 和 Fraud

Anti-Spy 主要识别可疑点击和访问环境,Fraud 主要识别异常转化和流量质量。

  • 可疑 User-Agent。
  • 可疑 Referrer。
  • 数据中心或代理流量。
  • 短时间大量点击。
  • Offer sweep 行为。
  • 重复转化或异常 order_id。

Shadow Mode

上线初期建议先使用 Shadow Mode。系统只记录风险,不直接阻止流量。观察几天后再决定是否启用拦截。

  1. 首次上线前 3 到 7 天开启 Shadow Mode。
  2. 每天查看风险日志,标记误报和真实风险。
  3. 把误报来源加入 allow list 或调整阈值。
  4. 确认规则稳定后,再开启自动拦截或自动暂停。
  5. 开启自动动作后,前几天仍要人工复核。

每日风控巡检

  1. 打开 Profit Guard,先处理负利润和高 payout 变化。
  2. 查看 Offer Health,确认核心 Offer 的 tracking link 和落地页没有失效。
  3. 查看 Fraud Logs,按 Affiliate、Offer、IP、国家和设备聚合异常。
  4. 查看 Postback Logs,确认广告主和 Affiliate 回调没有连续失败。
  5. 对需要付款的 Affiliate 做最后检查,held、blocked、rejected 不进入付款。
  6. 把确认误报的规则加入说明,避免运营团队重复处理同一类提醒。

自动化规则示例

规则动作适合场景
Offer 负利润提醒管理员或暂停 Offer。防止配置错误造成亏损。
Affiliate 高拒绝率创建 AM task 或限制 Offer access。控制低质量流量。
连续点击无转化通知 AM、进入 Review,或限制该 Affiliate 对单个 Offer 的访问。防止无质量流量持续消耗预算。
Postback 连续失败通知技术支持。广告主或 Affiliate 回调异常。
Pending payout 超时提醒财务处理。避免付款积压。

点击控制和无转化自动屏蔽

当某个 Affiliate 在指定时间窗口内点击很多但没有转化,系统可以先提醒 AM 或进入 Shadow Mode,确认规则稳定后再自动限制该 Affiliate 对单个 Offer 的访问。不要一开始全平台封禁,避免把广告主验收、平台验收或低样本 Offer 当成作弊。

先观察

最近 24 小时点击超过阈值且转化为 0,只记录风险和通知 AM。

再限制

确认不是误报后,限制该 Affiliate 推广这个 Offer,或把点击导到 fallback。

可恢复

设置 24 小时冷却或人工恢复,避免一次异常永久影响合作。

留证据

日志记录 Affiliate、Offer、点击数、转化数、规则窗口、动作和处理人。

完整配置步骤见

自动化规则配置步骤

  1. 先明确规则目的,例如提醒、暂停、创建任务、发送通知或进入人工审核。
  2. 选择触发条件,例如毛利率低于阈值、Postback 连续失败、Affiliate 拒绝率过高。
  3. 设置观察窗口,例如最近 1 小时、当天、最近 7 天,避免因为单条数据误触发。
  4. 先启用 Shadow Mode,只记录提醒,不直接暂停 Offer 或拒绝转化。
  5. 观察日志和误报率,确认稳定后再启用自动动作。
  6. 每次修改规则都记录原因,方便后续审计和客户支持。

常见风控案例

案例判断方式处理方式
Offer 负利润Performance Report 中 payout 大于 revenue。检查 Offer 默认 payout、pricing rules 和广告主回传金额。
Affiliate 拒单率高某 Affiliate rejected / total 明显高于平均。限制访问、降低 cap、联系 AM 核查流量来源。
点击突然暴增短时间同 IP、同 UA 或同 referrer 大量点击。检查是否爬虫、代理、恶意扫描,必要时加入 block list。
Postback 连续失败日志中同一广告主或 Affiliate 多次非 200。通知技术,暂停自动重试或降低重试频率。
退款异常某 Offer 或 Affiliate 退款比例突然升高。暂停付款,等待广告主确认订单质量。

Glossary

核心术语表

本页解释 Afftrix 中最常用的业务、追踪、财务和排查术语。建议在创建 Offer、配置回传和核对报表前先阅读。

适合所有角色 基础概念

核心角色

术语含义常见操作
Platform / Network运行 Afftrix 的联盟平台或代理网络。创建 Offer、审核用户、设置佣金、处理付款和风控。
Advertiser提供产品、服务或活动的广告主。接入 S2S、Pixel 或 Connector,回传订单和转化状态。
Affiliate / Publisher推广 Offer 并获得佣金的联盟用户。申请 Offer、获取 tracking link、查看佣金和付款。
AM / Manager负责维护 Affiliate、Advertiser 或 Offer 的运营人员。分配权限、处理申请、跟进任务和质量问题。
Employee平台员工账号。根据角色权限进入财务、客服、风控、技术或运营模块。

Offer 和投放

术语含义配置建议
Offer一个可推广的活动、商品、服务或落地页。至少配置广告主、落地页、revenue、payout、国家和访问规则。
Landing Page / Destination URL用户点击 tracking link 后最终访问的页面。电商类 Offer 通常填写广告主网站首页、商品页或活动页。
Tracking LinkAffiliate 用来推广的 Afftrix 链接。系统点击后生成 CID,并把用户跳转到落地页。
Public Offer可在公开 Offer 市场展示的 Offer。只展示公开展示信息,不展示平台私有 revenue、风控规则或上游链接。
CreativeBanner、文本、落地页文案、素材包等投放资源。素材应标明尺寸、语言、国家、有效期和使用限制。
Cap点击、转化、预算或收入上限。可按天、周、月、Affiliate、Offer 或国家设置。

追踪和归因

术语含义排查重点
CID / Click ID每次有效点击生成的唯一追踪编号。转化回传必须带 CID,缺失 CID 通常无法归因到点击。
aff_idAffiliate 的用户编号。用于识别推广来源,通常由 tracking link 自动携带。
offer_idOffer 编号。用于把点击和转化归入指定 Offer。
sub1 - sub5Affiliate 自定义子参数。常用于渠道、广告位、素材、关键词或渠道追踪编号。
Postback广告主或 Affiliate 服务器向 Afftrix 发送的回调请求。重点检查 URL、参数名、密钥、CID、状态和返回码。
Pixel放在成功页的浏览器端转化追踪代码。适合无法接 S2S 的场景,但受浏览器、广告拦截和 Cookie 影响。
Deduplication重复转化去重。常用 order_id、transaction_id、cid + goal 组合避免重复记佣金。

财务字段

术语含义注意事项
Revenue广告主应向平台支付的收入。通常来自 Offer 定价规则或广告主回传金额。
Payout平台应向 Affiliate 支付的佣金。必须根据 Offer、Affiliate、国家、商品或分层规则计算。
Profit平台利润,通常为 revenue 减 payout。负利润需要检查价格规则、币种、退款和回传金额。
EPC每次点击平均收益。用于评估 Offer 或 Affiliate 的流量价值。
CR转化率,通常为 conversions / clicks。异常升高或降低都需要结合流量质量判断。
Hold Period转化进入可付款前的等待期。用于等待广告主确认订单、退款或作弊检查。

状态和排查

状态含义处理方式
Pending转化已记录,但仍等待审核或确认。等待广告主确认,或按规则自动转为 approved。
Approved转化有效,可进入佣金和付款流程。进入报表统计和付款周期。
Rejected转化被拒绝。记录拒绝原因,必要时通知 Affiliate。
Refunded订单发生退款。同步调整 revenue、payout 和利润。
Blocked流量或转化被风控拦截。查看 Profit Guard、Anti-Spy 和 Fraud Logs。
Failed Postback回调请求失败或返回非成功状态。查看 Postback Logs 的返回码、响应内容和重试记录。

Field Reference

字段字典

本页按模块解释 Afftrix 常见字段的含义、推荐填写方式和错误影响。适合实施人员、客服、运营和技术支持在配置或排查时快速查阅。

适合实施、客服和运营 字段级说明

使用方法

字段字典用于回答三个问题:这个字段是什么、应该怎么填、填错会影响什么。遇到不确定字段时,先查本页,再进入对应专题文章查看完整流程。

配置前

先看“推荐填写”,避免用临时域名、错误状态或不合理佣金上线。

排查时

按“错误影响”快速判断问题可能来自 Offer、Tracking、Conversion、Payment 还是权限。

实施时

向运营团队提供字段字典,减少字段含义确认和排查成本。

字段速查矩阵

字段组核心字段主要影响排查入口
Offer 基础Name、Advertiser、Status、Type、Category、Current group、Starts / Ends at。Offer 是否可见、归属是否正确、是否能进入投放。
TrackingTracking domain、Destination URL、Preview URL、CID macro、Fallback URL。点击是否记录、跳转是否正确、CID 是否能带到上游。
Postbackcid、order_id、amount、currency、status、secret、dedup_key。转化是否创建、去重是否正确、金额和状态是否进入报表。
FinanceRevenue、Payout、Profit、Hold period、Payment status、External transaction ID。利润、佣金、付款金额、对账差异和发票。
APIBase URL、API Key、Bearer Token、pagination、error code、rate limit。外部系统能否鉴权、分页读取和正确处理错误。
RiskRisk score、Shadow mode、Allow list、Block list、Fraud rule、Review status。是否误拦截、是否进入审核、是否影响付款。
PermissionStaff Role、Employee status、Manager scope、API permission、Audit log。员工能看什么、能改什么、重要操作能否追溯。

Offer 基础字段

Offer 创建页面字段截图
Offer 创建向导中的字段决定广告主、访问权限、落地页、追踪、佣金和上线状态。
字段含义推荐填写错误影响
Offer statusOffer 当前状态。新建用 Draft 或 Pending review;验证通过后改 Active。直接 Active 会让 Affiliate 看到未验证 Offer。
NameOffer 名称。品牌 + 类型 + 国家,例如 Shop A CPS US名称太泛会导致报表和 Affiliate 端难以识别。
AdvertiserOffer 所属广告主。选择真实广告主账号。广告主后台、账单、Connector Key 和报表归属会错误。
Offer type计费或推广类型。CPS 电商、CPL 注册、CPA 行为、CPI 安装。Affiliate 会误解推广目标,报表分类不准确。
CategoryOffer 分类。电商、金融、游戏、SaaS 等。公开市场和筛选体验变差。
Current group访问组或可见性。新 Offer 用 Requested 或 Private,稳定后可 Public。Public 过早开放会导致未审核流量进入。
Slug公开路径或短标识。可留空自动生成;需要固定链接时手动填写。重复或过长会影响 URL 可读性。
Starts at / Ends atOffer 生效和结束时间。活动类 Offer 必填结束时间,长期 Offer 可留空。过期后仍被推广,或未到开始时间无法转化。

Tracking 和 Postback 字段截图

Tracking 和 Postback 字段截图
Tracking 字段控制用户跳转,Postback 字段控制转化如何回传。两者都和 CID 归因有关。
字段含义推荐填写错误影响
Tracking domain点击追踪域名。使用已解析、已配置 HTTPS 的追踪域名。链接打不开、证书错误、点击无法记录。
Destination URL用户最终访问的广告主页面。填写广告主首页、落地页、商品页或上游 tracking URL。跳转错误、CID 丢失、广告主无法归因。
Preview URL给 Affiliate 查看页面效果的预览地址。填写公开可访问页面或截图页面。Affiliate 无法判断推广内容。
Click ID macro广告主或上游网络代表点击 ID 的宏。上游网络常用 sub1={cid}click_id={cid}Postback 回来没有 CID,转化无法准确归因。
Postback secret回传安全密钥。生产环境建议启用,并只给广告主技术人员。未启用时更容易被伪造回传;填错会导致回传失败。
Transaction ID订单号或转化唯一 ID。用广告主订单号、支付单号或上游转化 ID。去重失败,可能重复记佣金。
Status转化状态。approved、pending、rejected、refunded 等。状态错会影响佣金、付款和报表。
Amount订单金额或广告主收入。电商 CPS 必须传真实订单金额。百分比佣金和利润计算错误。

Revenue、Payout 和 Caps 字段

Revenue 和 Payout 字段截图
Revenue 是广告主给平台的钱,Payout 是平台给 Affiliate 的钱。上线前必须确认 Profit 为正。
字段含义推荐填写错误影响
CurrencyOffer 默认币种。和广告主结算币种一致。报表和付款金额换算错误。
Revenue model平台收入计算方式。固定金额、百分比或广告主回传金额。收入计算偏差,Profit Guard 可能误报。
Payout modelAffiliate 佣金计算方式。CPL/CPA 用固定金额,CPS 用百分比。佣金不符合合同,可能出现亏损。
Default revenue未命中特殊规则时的默认收入。至少大于默认 payout。负利润或报表收入偏低。
Default payout未命中特殊规则时的默认佣金。按合同填写,先用验证转化验证。Affiliate 佣金错误。
Pricing rule priority价格规则优先级。更具体的 Affiliate / Country / Device 规则优先级更高。错误命中默认价格或错误 override。
Daily cap每日转化或预算上限。新 Offer 先设置较小 cap。预算超支或过早停止接量。
Total capOffer 生命周期总上限。限量活动或固定预算时设置。超过广告主预算或无法继续转化。
Hold period转化进入可付款前的等待期。电商订单建议覆盖退款期。过早付款,后续退款难以追回。

Targeting 和 Access 字段

Targeting 和 Access 字段
Targeting 控制流量是否允许进入,Access 控制 Affiliate 是否能看到或推广 Offer。
字段含义推荐填写错误影响
Country允许投放国家。只填写广告主明确接受的国家。错投国家会导致拒单或不结算。
Device允许设备。移动 App 或移动页限制 mobile;SaaS 注册可 desktop。用户打开失败或转化率异常。
OS操作系统限制。App 安装类 Offer 根据 iOS / Android 限制。不合规设备进入,广告主拒绝转化。
Browser浏览器限制。一般留空,除非广告主明确要求。限制过细会误伤正常流量。
Affiliate accessAffiliate 访问权限。Allow、Block 或清除特殊规则。Affiliate 看不到 Offer,或未审核流量进入。
Affiliate-facing reason给 Affiliate 看的暂停原因。写广告主审核、预算暂停、cap reached 等。说明不清会增加客服咨询。
Expected resume time预计恢复时间。临时暂停时填写。Affiliate 无法判断是否继续排期。

Conversion 字段

Conversion 字段排查截图
Conversion 字段用于核对点击归因、订单金额、状态、去重和佣金计算。
字段含义推荐检查错误影响
CID点击 ID。优先确认每条转化是否带 CID。缺失 CID 可能无法归因到 Affiliate。
Affiliate转化所属联盟用户。应与 tracking link 的 aff_id 一致。佣金记给错误用户。
Offer转化所属 Offer。应与点击记录和订单来源一致。报表、价格规则和广告主账单错误。
Advertiser广告主归属。通常由 Offer 自动决定。广告主后台看不到数据或看到错误数据。
Order ID / Transaction ID订单号或转化唯一编号。用于去重和支持排查。重复订单可能重复记佣金。
Statuspending、approved、rejected、refunded 等。付款前只统计 approved。付款金额、报表和风控结果错误。
Revenue平台收入。和广告主结算或回传金额一致。利润、报表和对账错误。
PayoutAffiliate 佣金。和 Offer 价格规则一致。少付或多付佣金。
Dedup key去重键。店铺 webhook 建议使用 source:order_id:event重复回传导致重复佣金。

Payment 和 Reconciliation 字段

付款字段和对账页面截图
付款字段必须和 approved conversions、hold period、balance、batch 和 payment provider response 一起核对。
字段含义推荐检查错误影响
Payable balance可付款余额。只包含 approved、未 paid、已过 hold period 的转化。付款金额不准。
Minimum payout最低付款金额。按平台政策设置,例如 USD 50 或 USD 100。过低会增加财务成本,过高会影响 Affiliate 体验。
Payment methodAffiliate 收款方式。PayPal、Wire、Crypto 等,按客户业务开放。付款失败或资料不完整。
Batch status付款批次状态。draft、pending、sent、failed、paid。重复付款或漏付款。
Provider response支付服务商返回内容。失败时保留错误码和响应。无法判断失败原因。
Invoice number发票或付款编号。财务对账时必须保留。后续审计和客户对账困难。
Adjustment人工调整金额。必须记录原因和操作人。账目不透明,容易产生争议。

用户、员工和权限页面字段截图

员工和权限页面字段截图
生产环境应按角色分配权限,不建议所有人员共用 Super Admin。
字段含义推荐填写错误影响
Status账号状态。active 才能正常登录和操作。用户无法登录、Offer 无法申请或数据不可见。
Role员工角色。按运营、财务、客服、技术、风控分配。权限过大或无法完成工作。
Manager / AM负责该用户的客户经理。按团队分配。任务、沟通和报表归属混乱。
Payment profileAffiliate 收款资料。上线付款前要求补全。批量付款失败。
Notification preference通知偏好。开启必要邮件、Webhook 或 Telegram。审核、付款、异常通知无法送达。
Two-factor authentication双因素认证。管理员和财务账号建议开启。账号安全风险升高。
Impersonation代登录排查。只用于支持排查,并保留审计日志。误操作无法追踪。

系统设置字段

字段含义推荐填写错误影响
APP URL程序主访问地址。填写最终生产域名。邮件链接、登录跳转和公开页面错误。
Public site URL公开站点地址。和站点公开访问域名一致。公开 Offer、邮件链接和注册页地址错误。
Affiliate / Advertiser / Offer ID start未来新建账号和 Offer 的公开 ID 起始值。上线前设置,例如 Affiliate 18001、Advertiser 28001、Offer 88001。设置太晚不会重编号已有数据;公开链接和 API 会继续使用已有公开 ID。
Tracking domain默认追踪域名。单独域名并配置 HTTPS。tracking link 不稳定或无法记录点击。
SMTP host邮件服务器。使用客户正式邮箱服务。注册、密码重置和通知邮件发送失败。
Redis hostRedis 服务地址。生产环境建议配置 Redis。缓存、队列和后台性能受影响。
Queue connection队列存储方式。生产环境优先 Redis。邮件、导入、通知、回调重试可能阻塞页面请求。

Troubleshooting Matrix

故障排查矩阵

这张矩阵适合客服和实施人员快速定位问题。先找到用户反馈的现象,再按“检查位置、常见原因、修复动作、验证结果”逐项处理。

适合支持和技术排查 按现象处理

先收集 6 个基础信息

开始排查前,应先收集基础信息。缺少这些信息时,容易在错误页面来回查找,影响处理效率。

Offer ID

确认问题发生在哪个 Offer,不要只看 Offer 名称。

Affiliate ID

确认是单个 Affiliate 问题还是全局问题。

CID / Click ID

有 CID 才能沿点击到转化完整排查。

订单号或转化 ID

电商和 S2S 问题必须提供订单号。

发生时间

要包含时区,便于查日志。

截图或请求日志

包含 Clicks、Conversions、Postback Logs、Connector 日志。

故障矩阵

现象优先检查位置常见原因修复动作验证结果
Tracking link 打不开Offer 详情、Link Health、Tracking domainOffer 未 Active、域名未解析、SSL 错误、Destination URL 无效。修复状态、DNS、证书或目标 URL。无痕窗口打开链接能正常跳转,并生成 Click。
跳转到错误页面Destination URL、Fallback URL、Targeting填了预览页、上游 URL 宏错误、国家设备命中 fallback。修正 Destination URL 和目标规则。最终 URL 是正确广告主页面,参数没有丢失。
有点击没有转化Clicks、Postback Logs、Connector DebugCID 没传到广告主、广告主未保存 CID、回传未到 Afftrix。修复跳转参数、广告主保存逻辑或回传地址。验证订单生成 Conversion。
Postback 401 / 403Postback Logs、API Key、secret key密钥错误、key 被禁用或接口权限不足。重置 key,检查 header 和 secret 参数。Postback 返回 success。
Postback 422请求参数、字段字典、状态映射缺少 CID、金额格式错误、状态值不支持、币种错误。补必填字段,修正字段名和格式。日志不再出现 validation error。
重复转化Dedup rule、order_id、conversion logs广告主多次回传、订单状态重复触发、去重字段为空。设置 cid + order_id 或稳定 dedup key。同一订单只保留一条有效转化。
佣金金额不对Conversion 详情、Pricing rules、Offer payout命中错误规则、币种不一致、广告主金额错误。调整规则优先级,修复 amount/currency。revenue、payout、profit 与预期一致。
Profit 为负Performance Report、Profit Guard、Offer pricingpayout 高于 revenue、百分比金额错误、退款未同步。暂停 Offer,修复价格规则,复核受影响转化。新转化利润为正,旧转化已处理。
Affiliate 看不到 OfferOffer access、Affiliate status、Public OffersOffer 是 Private、Affiliate 未审核、国家设备不匹配。审核 Affiliate,放行 Offer,调整可见性。Affiliate 端能看到并申请或复制链接。
后台登录无提示刷新、密码框明文浏览器 Network / Console、public/vendor/livewire、Web server 规则Livewire / Alpine JS 未加载、动态 JS 被静态规则拦截、安装包缺少静态资源。发布 Livewire 静态资源,清理缓存;VPS 检查 Nginx / Apache 规则,虚拟主机确认安装包包含静态资源。密码框默认隐藏,按钮可用,错误提示正常,/vendor/livewire/livewire.min.js 返回 200。
WooCommerce 没有订单回传Connector 设置、插件日志、订单状态不是从 Afftrix 链接进入、CID 未保存、触发状态不匹配。重新验证点击链,调整订单状态触发规则。验证订单进入 Conversions。
付款金额不对Payments、Affiliate Balance、Reconciliationpending/held 转化被计入、退款未扣回、汇率或最低付款金额不一致。按 approved unpaid 转化重算,修复退款和汇率。付款批次金额和报表余额一致。
后台页面慢队列、Cron、缓存、报表时间范围没有 Redis/OPcache、悬浮助手频繁请求、大报表范围过大。启用缓存和队列,默认限制当天或近 7 天,延迟加载重数据。页面先出框架,数据异步加载完成。

截图标注

Conversions 排查页面截图 1 2 3 4
1 先确认症状;2 沿点击和 CID 检查;3 再看回传和日志;4 最后核对佣金、付款和风控状态。

处理顺序

  1. 先复现。用同一个 tracking link、同一个 Affiliate 和同一地区环境复现问题。
  2. 再看点击。Clicks 没有记录时,不要先排查 postback。
  3. 沿 CID 追踪。确认 CID 是否传到广告主页面、订单、回传 URL 和 Afftrix 日志。
  4. 检查规则。Targeting、Pricing rules、Cap、Anti-Spy、Profit Guard 都可能改变最终结果。
  5. 保存证据。修复前后应保存关键截图、请求 URL、响应体和受影响 ID。

Support Playbook

故障排查中心

本页用于客服、运营和技术支持快速定位问题。先根据用户反馈选择症状,再按点击、CID、回传、佣金、付款、API 和性能顺序排查。

适合客服、运营和技术支持 按症状定位

排查总览

Afftrix 故障排查页面截图
客服收到问题后,不要直接改配置。先确认症状,再收集 Offer、Affiliate、CID、订单号、时间和日志。
用户反馈优先查看页面第一判断
Tracking link 打不开或跳错页面Offers、Clicks、Link Health、Anti-Spy先确认 Offer 状态、Affiliate 权限、Destination URL 和 tracking domain。
有点击但没有转化Clicks、Conversions、Postback Logs先确认 CID 是否生成、是否传到广告主页面、广告主是否带 CID 回传。
转化有了但佣金不对Conversions、Offer Pricing rules、Performance Report先确认 revenue、payout、currency、status 和命中的 pricing rule。
Affiliate 看不到 OfferOffer access、Affiliate status、Public Offer、Applications先确认 Offer 可见性、Affiliate 状态和访问规则。
安装器提示 storage / bootstrap/cache 不可写Environment Check、文件所属用户、目录与文件权限先确认项目根目录和 PHP 运行用户,再检查目录 775、文件 664 是否只应用于运行时目录。
后台登录页无提示刷新、密码框明文或按钮无效浏览器 Network / Console、Livewire assets、Web server 静态规则先确认 Livewire / Alpine 前端脚本是否 404 或被静态文件规则拦截。
Postback 失败Postback Logs、Affiliate Postbacks、Advertiser API logs先看 HTTP 状态码、请求 URL、响应内容和连续失败次数。
付款金额不对Payments、Conversions、Reconciliation、Affiliate Balance先确认只统计 approved 且未 paid 的转化。
后台变慢Queue、Cron、Cache、Reports、Server logs先确认 Redis、队列 worker、Cron 和大报表筛选范围。

客户高频问题快速定位

问题先判断什么推荐查看页面常见修复
为什么没有点击?Tracking link 是否真的经过 Afftrix 跳转。Offers、Offer Spy、Clicks、Tracking Domains启用 Offer、放行 Affiliate、修正 tracking domain、检查目标国家/设备限制。
为什么没有转化?Click 是否生成 CID,广告主是否保存并回传 CID。Clicks、Conversions、Advertiser Postback Logs修正 Destination URL 参数、保存 CID、检查 postback 参数名、处理去重或状态映射。
为什么 Postback 没收到?请求是否到达 Afftrix,还是广告主根本没有发出。Advertiser Postback Logs、Server logs、Traffic Simulator复制完整 Postback URL,检查网络、防火墙、HTTPS、secret、cid 参数和 HTTP 状态码。
为什么佣金不对?Conversion 命中的 revenue / payout 规则是否正确。Conversion detail、Offer Pricing rules、Performance Report调整默认价格、Affiliate override、国家/商品规则、币种和退款状态。
为什么联盟用户看不到 Offer?Offer 可见性、Affiliate 状态和访问规则是否允许。Offers、Affiliate profile、Offer access requests审核 Affiliate、批准申请、改为 Public、调整 targeting 或手动 allow access。
为什么安装器提示可写目录失败?PHP 运行用户是否拥有 storagebootstrap/cacheEnvironment Check、面板文件管理器、PHP-FPM 配置创建缺少的运行时目录,修正所属用户,并分别设置目录 775、文件 664;虚拟主机由文件管理器或主机商处理。
为什么后台登录没有提示、密码框明文?Livewire / Alpine 核心脚本是否正常加载。浏览器 Network / Console、public/vendor/livewire、Web server 规则发布 Livewire 静态资源、清理缓存,并确认 vendor/livewire/livewire.min.js 可以访问。
为什么插件连接失败?Site URL、Connector Key 和插件版本是否匹配。Integrations、Connector logs、WordPress plugin logs重新生成独立 connector key,确认 Afftrix URL、HTTPS、API 返回和订单触发状态。
为什么付款状态不更新?转化是否 approved 且未 paid,付款批次是否成功完成。Payments、Payment items、Reconciliation、Affiliate Balance检查最低付款金额、币种、付款 provider response、失败重试和对账差异。

排查时不要只看一个页面。点击、转化、佣金、付款是同一条链路,任何一个环节缺字段都会影响后续结果。

安装器提示可写目录失败

当 Environment Check 标记“可写目录必须修复”时,问题通常不是程序文件缺失,而是 PHP-FPM / Web 运行用户不能写入 Laravel 的运行时目录。常见不可写路径包括:

storage/framework/cache/data
storage/framework/sessions
storage/framework/views
storage/logs
bootstrap/cache/packages.php
bootstrap/cache/services.php

aaPanel / 宝塔、VPS 或独立服务器

不要照抄别人的域名目录或 www:www。先确认项目根目录和 PHP / Web 运行用户,再替换下面三个变量:

PROJECT_ROOT="/replace/with/afftrix-project-root"
WEB_USER="replace_with_web_user"
WEB_GROUP="replace_with_web_group"

cd "$PROJECT_ROOT"
mkdir -p storage/framework/cache/data storage/framework/sessions storage/framework/views storage/logs bootstrap/cache
touch storage/logs/laravel.log
chown -R "$WEB_USER:$WEB_GROUP" storage bootstrap/cache
find storage bootstrap/cache -type d -exec chmod 775 {} \;
find storage bootstrap/cache -type f -exec chmod 664 {} \;
php artisan optimize:clear

aaPanel / 宝塔常见运行用户是 www,Debian / Ubuntu 常见是 www-data,但实际值应以当前站点 PHP-FPM、Nginx、Apache 或面板配置为准。最后一行也应使用站点实际 PHP CLI 路径。

cPanel、Plesk、DirectAdmin 或虚拟主机

共享主机通常不允许 chown。在文件管理器中只处理 storagebootstrap/cache:先用目录 755、文件 644;如果仍不可写,再用目录 775、文件 664。固定 public_html 结构下,这两个目录应与 public_html 同级,不在 public_html 里面。

如果调整后仍失败,请主机商让当前网站的 PHP 运行账号拥有这两个目录。不要把整个项目改成 777,这会掩盖所属用户问题并增加安全风险。

验证结果

  • 刷新 /install,Environment Check 不再列出不可写文件。
  • php artisan optimize:clear 执行时没有 Permission denied。
  • 安装完成后日志、缓存、上传、Session 和队列任务可以正常写入。

后台登录页无提示刷新、密码框明文或按钮无效

如果后台登录页输入账号密码后只是刷新、没有错误提示,或者密码输入框默认显示明文、显示 / 隐藏密码按钮无效,通常不是账号密码错误,而是 Livewire / Alpine 前端核心脚本没有正常加载。

常见原因

Afftrix 后台登录页依赖 Livewire / Alpine 前端脚本。部分 Nginx、aaPanel、宝塔或虚拟主机环境会把 Livewire 的动态 JS 地址当成普通静态文件处理。

/livewire-xxxx/livewire.min.js

这个地址看起来像 .js 文件,但它本应由 Laravel 动态返回。如果 Web server 的静态文件规则提前接管,服务器找不到真实文件,就会返回 404,导致登录页交互失效。

如何确认

打开浏览器开发者工具,进入 Network 或 Console,刷新后台登录页,查看是否有类似 /livewire-xxxx/livewire.min.js 的资源返回 404。如果该文件 404,并且登录页出现密码框明文、按钮无效、提交后无提示刷新,基本可以按本方案处理。

通用处理命令

cd /path/to/afftrix

php artisan vendor:publish --tag=livewire:assets --force --no-interaction
php artisan optimize:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

如果服务器上有多个 PHP 版本,必须使用网站实际运行的 PHP 8.3 或更高版本执行命令。

不同服务器环境处理方式

环境处理方式说明
aaPanel / 宝塔 + Nginx优先发布 Livewire 静态资源,再清理缓存。这是高频场景。面板的 .js 静态规则可能先返回 404,发布静态资源后页面会加载真实文件。
VPS / 独立服务器 + Nginx发布静态资源;同时检查站点 root 是否指向 public,Nginx 规则是否把 Laravel 路由交给 index.php推荐让页面加载 /vendor/livewire/livewire.min.js。如果继续使用动态 Livewire 地址,要确保 /livewire-* 请求不会被静态规则提前拦截。
VPS / 独立服务器 + Apache / LiteSpeed发布静态资源;确认 DocumentRoot 指向 public,并启用 rewrite / .htaccessApache 通常受 .htaccess 影响,若 rewrite 未启用,也会导致动态资源或路由异常。
cPanel / Plesk / DirectAdmin能使用 Terminal / SSH 时,按通用命令执行;不能执行命令时,请服务商执行或使用面板提供的 Artisan / Composer 任务入口。PHP 命令要使用该站点绑定的 PHP 版本。处理后检查 /vendor/livewire/livewire.min.js 是否返回 200。
虚拟主机如果没有 Terminal / SSH,安装包必须已经包含 public/vendor/livewire/livewire.min.js 和相关 manifest 文件。如果主机无法执行 Artisan,且安装包也不包含静态资源,需要联系服务商补执行命令,或更换支持命令行的主机。

aaPanel / 宝塔常见 PHP 8.3 绝对路径示例:

cd /www/wwwroot/your-domain.com

/www/server/php/83/bin/php artisan vendor:publish --tag=livewire:assets --force --no-interaction
/www/server/php/83/bin/php artisan optimize:clear
/www/server/php/83/bin/php artisan config:clear
/www/server/php/83/bin/php artisan route:clear
/www/server/php/83/bin/php artisan view:clear

VPS / 独立服务器可以先确认当前 PHP 版本:

which php
php -v

如果默认 PHP 不是站点实际版本,请换成实际 PHP 路径,例如 /usr/bin/php8.3/usr/local/bin/php 或面板显示的 PHP 路径。

处理后检查

  • 后台登录页密码框默认隐藏密码。
  • 显示 / 隐藏密码按钮可点击。
  • 账号密码错误时能显示错误提示。
  • 登录成功后能进入后台。
  • 浏览器 Network 中没有 Livewire JS 404。
  • 访问 /vendor/livewire/livewire.min.js 返回 200。

新安装时,如果使用的正式安装包已经包含 Livewire 静态资源,一般不会出现。使用旧安装包、手动上传源码、或打包时没有发布 Livewire 静态资源时,仍可能在 Nginx、面板环境或虚拟主机中复现。

Tracking link 打不开或跳错页面

Offer 列表和状态检查
Offer 列表能快速确认状态、广告主、访问组、payout、revenue、cap 和健康检查状态。
  1. 打开 Offer,确认 status 是 Active,没有被暂停、过期或达到 cap。
  2. 确认 Affiliate 是 active,并且对该 Offer 有 access。Private 或 Requested Offer 需要单独放行。
  3. 检查 Destination URL 是否为空、是否含错误宏、是否需要 HTTPS。
  4. 检查 Tracking domain 是否解析到正确服务器,SSL 是否正常。
  5. 检查 Targeting 是否限制国家、设备、OS 或浏览器。
  6. 检查 Anti-Spy、Fraud、Link Health 是否拦截或标记异常。
常见原因

Offer 还是 Draft、Affiliate 未放行、Destination URL 使用广告主后台地址、tracking domain 没解析、目标国家不匹配、落地页 SSL 证书错误。

先用 Check link availability 快速判断

排查 tracking link 之前,建议先在 Offer 列表或 Offer 详情页运行 Check link availability。它会从当前配置读取目标链接,检查链接是否可访问,并把结果更新到 Link health。

检测结果说明下一步
Healthy目标链接基础可访问。继续检查 tracking domain、Affiliate access、CID 和 Clicks。
Broken目标链接本身打不开,或被 SSL、代理、上游风控拒绝。先修 Destination URL、上游 click URL、证书或代理账号。
Geo not verified没有目标国家出口,无法确认对应国家访问结果。到 Settings Center → Tracking & GeoIP 配置住宅代理。
Warning能打开,但跳转链路、耗时、证书或页面内容存在风险。用 Offer Spy 查看每一步跳转和最终 URL。

没有配置代理时,系统可以继续用服务器 IP 做基础检测,但这个结果只适合判断链接是否完全失效。遇到国家限制、上游风控、移动端专属页或代理相关错误时,应先配置代理再复测。

Offer Health 代理检测失败

Offer Health 用于检测落地页是否能打开、是否命中错误页面、是否被目标国家限制拦住。带国家限制的 Offer 建议先配置住宅代理,再运行健康检测。

代理连通性检测截图
代理连通性检测会保存当前代理配置、读取出口 IP,并检查出口国家是否符合目标国家。
现象常见原因处理方式
Connection failed主机、端口、账号、密码或代理类型错误。回到 Settings Center → Tracking & GeoIP 检查代理配置,并点击保存后重新检测。
cURL error 97SOCKS5 服务拒绝账号密码,常见于国家代码、session、密码拼接规则错误。对照服务商生成规则检查用户名和密码。国家代码在密码里时,使用 {country}{COUNTRY}
cURL error 52本地 DNS 与代理 DNS 解析方式不匹配,或检测服务短暂无响应。住宅 SOCKS 代理优先使用 SOCKS5H,让代理服务器解析目标域名。
Country mismatch代理出口 IP 不是目标国家。检查国家代码是否正确;必要时在国家代理覆盖里为该国家单独填写完整代理。
Offer Health 仍显示 Broken代理能连通,但落地页自身拒绝访问、证书错误、页面含无效关键词或上游链接失效。用同一目标国家重新检测落地页,并检查最终 URL、HTTP 状态、页面标题和关键词。
出口 IP 检测说明

如果一个公共出口 IP 检测服务不可用,系统会自动尝试备用检测服务。若所有检测服务都不可达,优先检查服务器出站网络、DNS、防火墙和代理服务商状态。

有点击但没有转化

转化不到账排查截图
漏单排查必须沿着 CID 走。只要 CID 在某一步丢失,后续转化就无法准确归因。
检查点通过标准失败处理
Clicks能看到 click、CID、offer、affiliate、country、device。如果没有 click,回到 tracking link 和跳转排查。
落地页 URL广告主页面收到 cidaff_idoffer_id检查 Destination URL、跳转链和反向代理是否丢参数。
广告主保存订单、注册或用户记录里能找到 CID。普通网站检查 Cookie/Session,WooCommerce 检查插件日志。
Postback Logs有请求记录,HTTP 200 或系统返回 success。没有日志表示请求没到 Afftrix;有日志但失败则看错误信息。
Conversions生成正确转化,状态符合预期。检查去重、状态映射、风控和密钥。

转化有了但佣金不对

佣金问题不要只看 Affiliate 端金额。必须同时看 Conversion 详情、Offer 默认价格、Pricing rules、币种、状态和退款记录。

Payout 太高

检查是否命中了 Affiliate override、国家规则、商品规则,或广告主回传了不该信任的 payout。

Revenue 太低

检查广告主 amount、currency、百分比 revenue、退款和部分退款。

Profit 为负

确认 revenue 大于 payout;如果是百分比规则,检查订单金额是否正确。

Affiliate 看不到佣金

确认转化状态是否 approved,pending/held/rejected/refunded 不应进入可付款余额。

Offer Pricing rules 排查截图
Pricing rules 命中错误是佣金异常的高频原因。更具体的 Affiliate / Country / Device 规则应高于默认规则。

Affiliate 看不到 Offer

原因检查方式修复方式
Affiliate 未审核查看 Affiliate status。审核通过或要求补充资料。
Offer 是 Private查看 Offer Current group。手动给 Affiliate Allow access。
Offer 需要申请查看 Offer Applications。批准申请或修改为 Public。
国家或设备不匹配查看 Targeting。调整 targeting 或提示 Affiliate 合规流量范围。
Offer 已暂停或到期查看 Offer status、start/end time、cap。恢复 Offer 或设置预计恢复时间。

Postback 失败

Postback 失败要分清楚是广告主回传给 Afftrix 失败,还是 Afftrix 通知 Affiliate 失败。两个方向排查页面不同。

方向查看页面重点字段
Advertiser -> AfftrixServer Postback Logs、Conversionscid、order_id、amount、status、secret key、response。
Afftrix -> AffiliateAffiliate Postback Logstarget URL、HTTP status、response body、retry count。
HTTP 状态含义处理方式
200 / 201请求成功。如果转化仍未生成,检查响应内容和业务错误。
400 / 422参数错误。检查字段名、金额格式、状态值、必填字段。
401 / 403密钥或权限错误。检查 API Key、secret、connector key、IP 白名单。
404地址不存在。检查 Postback URL 是否复制完整。
429请求过多。降低重试频率,检查是否重复触发。
500 / 502 / 503对方服务器异常。保留日志,稍后重试或联系对方技术。

WooCommerce Connector 已连接但没有订单转化

WooCommerce Connector 回传设置截图
插件连接成功只代表 API Key 可用;完整闭环还需要 tracking link 进入店铺、保存 CID、订单状态触发回传。
  1. 确认插件 Site URL 指向正确 Afftrix 域名,Connector Key 是该广告主或店铺独立 key。
  2. 确认订单是从 Afftrix Affiliate tracking link 进入店铺后产生。
  3. 检查浏览器或插件日志中是否保存了 CID、aff_id、offer_id。
  4. 确认 WooCommerce 订单状态属于插件设置的触发状态。
  5. 查看插件日志中的 Afftrix response,确认不是 401、403、422 或重复订单。
  6. 退款、取消和部分退款要确认是否启用同步规则。

付款金额或付款状态异常

付款和对账页面截图
付款前要从 approved conversions、hold period、balance、payment batch 和 reconciliation 多个位置核对。
  • 只统计 approved 且未 paid 的转化。
  • pending、held、blocked、rejected、refunded 不应进入付款。
  • 检查付款周期、最低付款金额、币种和汇率。
  • 检查是否存在人工调整、退款扣回、chargeback 或 advertiser reconciliation。
  • 批量付款失败时,先看 payment provider response,再决定重试或人工处理。

API 和后台性能问题

问题检查项建议处理
API 401 / 403Header、Key 状态、账号状态、接口权限、接口路径。重新生成 key,确认使用正确 API 类型。
API 422必填字段、金额格式、币种、状态值、JSON 格式。对照接口字段表修正请求。
后台变慢Redis、OPcache、队列 worker、Cron、大报表日期范围、悬浮助手数据接口。生产环境启用缓存和队列,报表限制默认日期范围。
邮件发不出去SMTP host、port、encryption、from email、应用专用密码、安全组。先发送验证邮件,再检查邮件服务商日志。

提交支持工单需要提供什么

信息越完整,排查越快。不要只提交“没有转化”或“佣金不对”。建议按下面清单收集证据。

业务信息

Offer ID、Affiliate ID、Advertiser、订单号、转化时间、国家、设备、投放渠道。

追踪信息

tracking link、CID、落地页 URL、Postback URL、请求参数、HTTP 状态码。

截图信息

Clicks、Conversions、Postback Logs、Offer Pricing rules、插件日志或广告主订单截图。

变更记录

最近是否改过 Offer、payout、tracking domain、Connector key、缓存或服务器配置。

Go-live checklist

生产上线检查清单

本清单用于 Afftrix 正式投入生产环境前的最后确认。检查重点不是“页面能打开”,而是确认追踪、回传、佣金、报表、付款、权限和系统任务都能按预期运行。

生产上线检查 追踪转化闭环 系统健康与安全

上线验收模式

按下面顺序逐项勾选。浏览器会在本机记住勾选状态,方便实施人员现场验收、刷新页面后继续核对。正式上线前建议清空一次,从真实生产环境重新跑。

上线进度

完成后再开放真实 Affiliate 和广告主使用。

0 / 12

1. 上线检查目标

上线前需要确认以下闭环已经跑通:

  1. 管理员可以登录后台,并完成品牌、语言、注册、邮件和追踪设置。
  2. 广告主、Affiliate、Offer 可以正常创建和审核。
  3. Affiliate 能复制 tracking link,并产生 Click / CID。
  4. 广告主能通过 S2S Postback、Pixel、API 或 Connector 回传 Conversion。
  5. Afftrix 能正确计算 revenue、payout 和 profit。
  6. 报表、日志、付款、风控和通知能够互相对得上。
  7. 队列、Cron、缓存、邮件、备份和安全策略已经配置完成。

2. 必备资料

类别上线前必须确认检查标准
访问入口后台入口、Affiliate 入口、Advertiser 入口、文档入口所有入口都能通过 HTTPS 打开
管理账号超级管理员、运营账号、财务账号、技术账号不同角色只能看到对应权限
域名信息主域名、追踪域名、公开 Offer 域名DNS 已生效,SSL 证书正常
业务样例验证用广告主、验证用 Affiliate、验证用 Offer可以跑通点击、回传和佣金计算
回传资料Postback URL、验证 CID、验证订单号后台能看到成功日志
运维资料PHP、数据库、Redis、队列、Cron、备份路径生产环境负责人明确

3. 正式上线检查清单

检查项必须完成验证方式
域名解析主站域名、后台域名、tracking domain 都解析到正确服务器或 CDN。使用浏览器和 DNS 查询确认访问无跳转错误。
SSL / HTTPS所有入口都使用有效证书,证书链完整。浏览器无安全警告,Postback 和插件请求不被 HTTPS 拦截。
Web 根目录站点根目录指向 public访问域名不会看到源码目录、.env、composer 文件。
Redis / 文件缓存与安装时选择一致;高流量环境优先 Redis。后台 Performance / Cache 显示配置正确,页面缓存无异常。
Queue worker队列常驻运行。邮件、导入、Postback 重试、通知不会持续堆积。
Cron / Scheduler每分钟执行 php artisan schedule:run后台健康检查或日志能看到 scheduler 正常触发。
SMTP发件地址、SMTP host、port、encryption、账号密码正确。发送验证邮件并确认收件箱收到。
授权激活生产环境完成 License Key 或 CodeCanyon Purchase Code 激活。License 状态为 active / verified,不在公开截图或文档中展示完整凭据。
后台路径如已修改自定义后台路径,团队使用新入口。/admin 不作为唯一入口写入上线资料。
Tracking Domain追踪域名可访问、SSL 正常、参数不丢失。点击 tracking link 后 Clicks 页面生成 CID。
Offer Health 代理检测有国家限制的 Offer 已配置住宅代理,优先使用 SOCKS5H在 Tracking & GeoIP 输入目标国家并通过代理连通性检测。
Postback 验证至少完成一次 S2S / API / Pixel / Connector 回传。Conversions 页面出现转化,日志显示成功响应。
备份策略数据库、上传文件、.env 和代码包有备份计划。可以说明备份频率、保留天数和恢复负责人。

4. 系统环境检查

检查项通过标准常见问题
HTTPS主域名和追踪域名证书无警告证书链不完整、CDN 未配置 HTTPS
Web 根目录指向项目 public 目录指向项目根目录会暴露源码
PHPPHP 8.3+,必装扩展 fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmath 已启用;生产建议启用 redisexifopcache;ionCube 加密包需要 ionCube Loader;GeoIP 数据库更新建议 PHP-FPM 和 PHP CLI 的 memory_limit 至少 512M缺少扩展、OPcache 未启用、PHP-FPM 未重启、内存限制过低
数据库字符集使用 utf8mb4,连接稳定账号权限过大、慢查询未优化
Redis / 文件缓存与安装时选择的存储方式一致生产环境建议使用 Redis
Queue worker后台任务持续运行邮件、回调、导入和通知堆积
Scheduler cron每分钟触发 Laravel scheduler报表汇总、清理和提醒不执行
日志错误日志可查看,敏感字段已隐藏生产环境开启 debug

5. 后台基础设置

设置项后台位置检查方法
Logo 与品牌Settings / Platform / Brand登录页、后台导航、公开页面显示正确
默认语言Settings / General 或安装向导切换语言后菜单、按钮、提示都能翻译
后台入口路径Settings / Security 或 Platform如果修改了 /admin,文档和团队都要使用新入口
注册规则Registration SettingsAffiliate / Advertiser 注册开关和审核策略正确
邮件 SMTPMail & SMTP发送验证邮件,确认收件箱能收到
Tracking & GeoIPTracking & GeoIP点击日志能识别国家、设备、IP 和来源;GeoIP 数据库已通过 MaxMind 自动更新或手动上传;有国家限制的 Offer 需要通过代理连通性检测
Action CenterSettings 或运营助手设置是否显示悬浮按钮按客户需要配置

6. Offer 与追踪检查

检查项必须确认验证方式
AdvertiserOffer 绑定正确广告主广告主后台可以看到自己的 Offer 数据
Offer status正式投放使用 ActiveDraft、Paused、Rejected 不应出现在正式推广中
Preview URLAffiliate 预览页可打开不需要登录,不暴露后台管理页
Destination URL用户最终访问页正确上游网络场景要带 {cid} 或对应 click id 参数
Tracking linkAffiliate 能复制推广链接点击后后台 Clicks 有新记录
CID点击后生成唯一 CIDConversion 回传时能通过 CID 找到点击
Targeting国家、设备、浏览器和访问权限正确不符合条件的访问进入 fallback 或被拒绝
PricingRevenue、Payout、Profit 符合合同验证转化后金额计算正确
Caps日限额、总限额、预算限额正确达到上限后状态符合预期

7. 回传与转化检查

场景检查点通过标准
S2S Postback上游回传 Afftrix 的 postback URLConversion 日志显示成功
Pixel广告主页面安装转化像素浏览器访问后能产生验证转化
WooCommerce Connector插件保存 CID 并回传订单WordPress 下单后 Afftrix 出现转化
API开发者使用 API 创建转化返回成功,重复 order_id 不重复入账
Refund / Cancel退款或取消订单处理转化状态、收入和佣金同步调整

8. 报表与财务检查

模块检查内容通过标准
Dashboard今日点击、转化、收入、佣金、利润默认显示当天数据
Performance Report按日期、Affiliate、Offer 分组与 Clicks / Conversions 明细一致
Advertiser Report广告主收入和转化与广告主后台看到的数据一致
Affiliate Report佣金、EPC、CR与 Affiliate 中心看到的数据一致
Payments可付款余额、批量付款、付款状态只包含 approved 且未付款的佣金
Reconciliation对账差异能定位差异来源并处理

9. 风控与通知检查

功能检查内容通过标准
Profit Guard负利润、异常 payout、异常订单风险项有明确处理入口
Anti-Spy可疑访问、扫描、异常 IP可查看并加入阻止或允许列表
Action Center待处理任务、失败回传、风控提醒一键处理或忽略后数量会下降
Notifications邮件、站内通知、后台提醒关键事件能通知对应角色
Audit Logs操作人、操作时间、操作对象敏感配置变更有记录

10. 安全检查

检查项建议
授权激活生产环境必须完成安装授权,License Key、Purchase Code 和 Activation Token 不要写入公开文档或截图
管理员账号超级管理员只保留给平台负责人
员工权限按岗位分配角色,不要所有人都用超级管理员
API Key按用途拆分,泄露后可以单独禁用
Postback 签名上游支持签名时建议启用
Debug生产环境关闭 debug,不在页面输出错误堆栈
备份数据库、附件、配置文件都要定期备份

11. 上线前最后验证

上线前按以下顺序完成一次真实验证:

  1. 创建验证用广告主。
  2. 创建验证用 Affiliate。
  3. 创建验证用 Offer,填写 Destination URL 和佣金规则。
  4. Affiliate 复制 tracking link 并访问一次。
  5. 后台 Clicks 页面确认出现点击和 CID。
  6. 使用 Postback、API、Pixel 或 Connector 回传验证转化。
  7. 后台 Conversions 页面确认转化成功。
  8. Performance Report 核对 revenue、payout 和 profit。
  9. Payments 页面确认佣金进入待付款。
  10. 删除或标记验证数据,避免影响正式报表。

12. 常见上线问题

问题可能原因处理方式
点击没有记录Tracking 域名未解析、CDN 丢参数、Offer 未启用先验证原始 tracking link,再检查域名和 Offer 状态
转化找不到点击上游没有回传 CID,或参数名填错检查 Destination URL 和上游 postback 参数
佣金金额不对Revenue / Payout 规则配置错误用一笔固定金额验证订单重新核对
报表和明细对不上缓存、日期范围或时区不一致清缓存并使用同一日期范围复查
邮件不发送SMTP 错误或队列未运行先发验证邮件,再检查 queue worker
后台入口打不开自定义后台路径被修改使用设置里的最新后台入口,不要固定认为是 /admin

生产上线后,建议每天至少检查 Dashboard、Action Center、Conversions、Performance Report、Payments、Profit Guard 和系统日志,确认核心业务持续正常。

Developer integration

20. API 开发者快速集成

本文给开发者一条最短路径:拿到接口地址、拿到 key、验证连接、创建点击或转化、确认日志。正式集成前请同时阅读完整 API 文档和字段字典。

API Postback Connector

1. 开发者需要先拿到什么

资料从哪里获取用途
Afftrix Base URL客户安装域名所有 API 请求的基础地址
API KeyAffiliate、Advertiser 或后台 Integrations认证请求
Offer IDOffer 列表或详情页优先使用公开 Offer ID,关联点击、转化和报表
Affiliate IDAffiliate 资料页优先使用公开 Affiliate ID,归因和排查
Advertiser IDAdvertiser 资料页或 Connector优先使用公开 Advertiser ID,广告主 API 和店铺归属会展示该编号
Connector Key后台 Integrations / Storefront ConnectorWooCommerce、Shopify、CRM 回传
Postback URLOffer Tracking / Advertiser Postback 页面广告主 S2S 回传
验证 CID点击 tracking link 后生成验证转化归因
ID 口径

平台用户、Affiliate、广告主和外部 API 默认看到的是公开 ID。公开 ID 可在 Settings Center > Platform / Brand > Public IDs 设置起始值,系统数据库主键不会暴露。搜索、报表和 API 会尽量兼容公开 ID 与历史导入 ID。

2. 选择正确接口

场景使用接口说明
Affiliate 查询自己的 Offer、点击、佣金Affiliate API使用 Affiliate token
广告主查看自己的转化和日志Advertiser API使用 Advertiser API key
店铺插件或 CRM 回传订单Integration API使用 Connector Key
广告主服务器直接回传转化S2S Postback使用 postback URL 和 cid
成功页无法做后端回传Pixel在成功页放置 JS / Image Pixel

3. 验证连接

Integrations 页面提供 Connector Key 和插件下载入口
Integrations 页面提供 Connector Key 和插件下载入口

Integration API 连接验证:

curl -H "X-Afftrix-Integration-Key: YOUR_CONNECTOR_KEY" \
  -H "X-Afftrix-Store-Domain: shop.example.com" \
  "https://afftrix.example.com/api/integration/v1/test"

预期返回:

{
  "success": true,
  "data": {
    "status": "connected",
    "store_domain": "shop.example.com"
  }
}

如果随便填写 key 也返回成功,说明接口校验有问题。正式上线前必须修复,不能让客户误以为错误 key 可用。

4. 回传一笔订单转化

Conversions 页面用于确认 API 回传结果
Conversions 页面用于确认 API 回传结果
curl -X POST "https://afftrix.example.com/api/integration/v1/conversions" \
  -H "Content-Type: application/json" \
  -H "X-Afftrix-Integration-Key: YOUR_CONNECTOR_KEY" \
  -H "X-Afftrix-Store-Domain: shop.example.com" \
  -d '{
    "source": "woocommerce",
    "event": "order_completed",
    "dedup_key": "woocommerce:10001:order_completed",
    "order_id": "10001",
    "order_number": "WC-10001",
    "amount": 128.50,
    "currency": "USD",
    "status": "approved",
    "cid": "CLICK_ID_FROM_AFFTRIX",
    "coupon_code": "MIKE10"
  }'

回传后检查:

  1. Conversions 页面出现订单。
  2. cid 能匹配到点击。
  3. Affiliate、Offer、Advertiser 归因正确。
  4. revenue、payout、profit 计算正确。
  5. 相同 dedup_key 重复请求不会产生重复佣金。

5. S2S Postback 最小示例

广告主保存点击时收到的 cid,转化发生后请求:

https://afftrix.example.com/postback.php?cid=CLICK_ID&amount=99.00&currency=USD&status=approved&order_id=ORD-10001

关键点:

  • cid 是最可靠的归因字段。
  • order_idtxid 用于去重。
  • amount 影响 revenue 和百分比 payout。
  • status 影响是否计入佣金。
  • 生产环境建议启用 postback secret 或签名校验。

6. 错误排查

HTTP 状态常见原因开发者处理
200请求成功到后台确认数据是否符合预期
401Key 错误或 Header 不对检查 Header 名称和 key 状态
403无权限检查角色权限、Key 状态和 Connector 状态
409重复订单或重复去重键确认 webhook 是否重复触发
422参数缺失或格式错误查看 response message
429请求过快降低频率或加入重试退避
500服务端异常提供 request ID、时间、payload 给技术支持

7. 上线前开发者清单

  • 生产环境使用 HTTPS。
  • Key 只保存在服务端。
  • 不传明文邮箱、手机号、支付账号。
  • 每个订单有稳定 dedup_key
  • 退款和取消订单有对应状态。
  • 网络失败时加入重试,但不要无限重试。
  • 保存 Afftrix response,方便排查。
  • 上线前验证正常、错误 key、重复订单、退款和无 CID 场景。

Server migration

服务器搬家、换域名与授权迁移

本教程用于把已有 Afftrix 站点从旧服务器迁移到新服务器,或在保留数据的情况下更换主域名、追踪域名。搬家时最重要的是保留原 APP_KEY、完整恢复数据库和上传文件,并在新环境完成授权验证。

服务器搬家 换域名 授权重新验证

1. 什么时候使用这篇教程

场景是否适用重点
从旧 VPS 迁移到新 VPS适用备份数据库、.env、上传文件,恢复后重新验证授权。
从宝塔 / aaPanel 换到 cPanel、Plesk 或 DirectAdmin适用确认新面板能把站点根目录指向 public,并能配置 Cron 和队列兼容方案。
只更换主站域名适用更新 APP_URL、SSL、品牌公开 URL、邮件链接,并重新验证授权。
只更换追踪域名适用更新 Tracking Domains、SSL、Affiliate tracking link 和广告主 Postback URL。
从其他联盟系统迁移业务数据不完全适用请优先使用

2. 搬家总流程

确认搬家窗口 旧站备份 冻结队列和 Cron 准备新环境 恢复文件和 .env 导入数据库 补齐迁移 重新验证授权 切换 DNS 启动队列和 Cron 业务验收
最重要的底线

搬家不是全新安装。保留旧数据时,不要重新生成 APP_KEY,不要让安装器重新初始化已有数据库,也不要执行会清空数据的 migration 命令。APP_KEY 错误会影响历史加密数据、API Key、Connector Key、授权数据、会话和部分配置读取。

3. 搬家前准备

准备项要确认什么
搬家窗口选择低峰期,提前通知运营、财务、AM 和技术支持。
当前版本记录旧服务器正在运行的 Afftrix 版本,优先用同版本程序包恢复。
域名计划确认主站域名、追踪域名是否保持不变,DNS TTL 是否需要提前降低。
授权凭据准备 Afftrix License Key 或 CodeCanyon Purchase Code,但不要写入公开工单或截图。
新服务器权限确认 SSH、数据库导入、文件上传、Cron、队列和 SSL 配置权限。
回滚方案明确 DNS 可回切旧服务器,旧服务器备份和服务在验收完成前不要删除。

4. 旧服务器冻结和备份

正式切换前,建议先暂停旧服务器的队列 worker 和计划任务,避免新旧服务器同时处理邮件、Postback、导入、自动化规则或付款任务。

cd /path/to/afftrix
php artisan down
php artisan queue:restart

如果队列由 Supervisor、宝塔进程守护或 systemd 管理,需要在面板或进程管理器里停止旧 worker。Cron 也应临时禁用,或把旧服务器上的每分钟任务暂停。

备份内容是否必须说明
数据库 SQL必须用户、Offer、点击、转化、付款、设置和授权相关数据都在数据库里。
.env必须必须保留旧系统原来的 APP_KEY、数据库、队列、SMTP 和授权中心配置。
storage/app/public必须Logo、素材、附件、上传图片和公开文件。
storage/app/geoip建议如果使用手动 GeoIP 数据库,搬家时一起复制 GeoLite2-City.mmdb
正式程序包建议优先使用和旧站一致的发布包,减少搬家时同时升级带来的风险。
最近日志建议保留最近 7-30 天,方便搬家后排查差异。

数据库备份示例:

mysqldump -h 127.0.0.1 -u afftrix_prod -p --single-transaction --routines --triggers --events --default-character-set=utf8mb4 afftrix_prod > afftrix-prod.sql

文件备份可以使用面板压缩包、SFTP、rsync 或主机商备份工具。备份包不要放在 Web 可访问目录下。

5. 新服务器准备

  • PHP 使用 8.3+,安装 fileinfombstringopensslpdo_mysqlcurlzipintlgdbcmath
  • 如果生产环境使用 Redis,确认 Redis 扩展和服务可用。
  • 站点根目录必须指向程序的 public 目录。
  • 配置 Nginx / Apache / LiteSpeed 伪静态规则。
  • 申请主站域名和追踪域名的 HTTPS 证书。
  • 创建空数据库,字符集使用 utf8mb4,排序规则建议 utf8mb4_unicode_ci
  • 设置 storagebootstrap/cache 可写。

目录权限示例:

PROJECT_ROOT="/replace/with/afftrix-project-root"
WEB_USER="replace_with_web_user"
WEB_GROUP="replace_with_web_group"

cd "$PROJECT_ROOT"
chown -R "$WEB_USER:$WEB_GROUP" storage bootstrap/cache
find storage bootstrap/cache -type d -exec chmod 775 {} \;
find storage bootstrap/cache -type f -exec chmod 664 {} \;

迁移后的项目路径和 Web 运行用户以新服务器实际配置为准,不要照抄旧服务器或其他教程的路径与用户。

6. 恢复程序、.env 和上传文件

  1. 把正式程序包上传到新服务器项目目录。
  2. 把旧服务器备份的 .env 恢复到项目根目录。
  3. 如果主域名变化,修改 APP_URL 为新生产域名;如果主域名不变,不要改。
  4. 保留旧系统原来的 APP_KEY,不要执行 php artisan key:generate
  5. 恢复 storage/app/public、素材、Logo、附件和必要的 GeoIP 文件。
  6. 重新创建 storage 软链接。
cd /path/to/afftrix
php artisan storage:link
.env 迁移规则

搬家时可以修改数据库连接、Redis、SMTP、APP_URL 和队列配置,但 APP_KEY 必须使用旧系统原值。授权中心地址 AFFTRIX_LICENSE_CENTER_URLS 也要保留或按服务商提供的新地址配置。

7. 导入数据库并补齐迁移

把旧服务器导出的 SQL 上传到新服务器,再导入新数据库。

mysql -u afftrix_prod -p afftrix_prod < /path/to/afftrix-prod.sql

导入后只执行补齐迁移,不要重新初始化数据库。

cd /path/to/afftrix
php artisan migrate --force
php artisan optimize:clear
可以执行不要执行
php artisan migrate --forcephp artisan migrate:fresh
php artisan optimize:clear重新跑全新安装器创建空数据
php artisan storage:linkphp artisan key:generate

8. 授权迁移和重新验证

Afftrix 授权会和安装环境、域名、授权中心验证状态有关。搬家完成后必须到后台重新确认授权状态。

  1. 登录新服务器后台。
  2. 进入 License & Updates 或授权设置页面。
  3. 先点击 Verify Connection,确认当前安装能被授权中心验证。
  4. 如果验证失败,使用原 License Key 或 CodeCanyon Purchase Code 重新激活。
  5. 如果提示激活次数、旧域名或旧服务器占用,需要在授权中心释放旧激活,或联系技术支持处理。
搬家情况授权处理
主域名不变,只换服务器通常先 Verify Connection;如果本地激活令牌失效,再重新激活。
主域名变化更新 APP_URL 后重新激活或重新验证,授权中心可能识别为新安装。
旧服务器授权仍占用不要手动复制 Activation Token;应在授权中心释放旧激活或联系技术支持。
CodeCanyon 客户使用原 Purchase Code 重新激活;必要时只向支持人员提供隐藏中间字符后的码段。
不要公开授权数据

License Key、Purchase Code、Activation Token、授权中心返回内容都不要写入公开截图、公开文档或普通工单正文。排查时只提供隐藏中间字符后的码段和错误提示。

9. 切换主域名和追踪域名

项目主域名不变主域名变化
DNS把 A 记录指向新服务器 IP。新域名解析到新服务器,旧域名保留跳转或公告。
APP_URL保持原值。改成新生产域名。
后台品牌 URL一般不变。更新公开 URL、邮件链接、登录入口说明。
授权Verify Connection。重新 Verify 或 Activate Installation。

如果追踪域名也变化,还要额外检查:

  • Tracking Domains 里新增或更新追踪域名。
  • 追踪域名 DNS 指向新服务器。
  • 追踪域名 SSL 可用。
  • Affiliate 端复制的新 tracking link 使用新追踪域名。
  • 广告主 Postback URL 如果使用旧追踪域名,需要通知广告主更新。
  • 旧追踪域名建议保留一段时间,避免旧广告素材和旧链接立刻失效。

10. 启动新服务器任务

确认新服务器页面可以访问、数据库导入成功、授权通过后,再启动新服务器上的 Cron 和队列 worker。旧服务器的 Cron 和 worker 应保持关闭。

cd /path/to/afftrix
php artisan config:cache
php artisan view:cache
php artisan queue:restart
php artisan up
环境队列建议
VPS / 独立服务器使用 Supervisor、systemd 或面板进程守护运行常驻 queue:work
aaPanel / 宝塔在 Supervisor 管理器或进程守护中新增 worker,并在计划任务里配置每分钟 scheduler。
cPanel / 虚拟主机使用 Cron + queue:work --once 兼容方案。

搬家时最常见的事故是新旧服务器同时跑队列,导致邮件、回传、导入或通知重复处理。正式切换前务必确认只有新服务器在跑后台任务。

11. 搬家后验收清单

  • 后台可以登录,管理员、Affiliate、Advertiser 入口都正常。
  • 授权状态为 active / verified,后台没有授权安全警告。
  • Logo、素材、Offer 图片、发票附件和上传文件可以显示。
  • Offer 列表、Affiliate 列表、Advertiser 列表、Conversions 和 Payments 可以打开。
  • Affiliate tracking link 能跳转并生成 Click / CID。
  • 广告主 S2S Postback、Pixel、Connector 或 API 能创建验证转化。
  • Affiliate Postback 能发送,Postback Debugger 能查到完整链路。
  • SMTP 能发送验证邮件。
  • Cron 心跳正常,队列没有持续堆积,php artisan queue:failed 没有持续增长。
  • storage/logs/laravel.log 没有新增严重错误。

12. 回滚和常见问题

问题常见原因处理方式
搬家后登录异常或密钥读取失败APP_KEY 和旧站不一致。恢复旧 APP_KEY,清缓存后重试。
授权验证失败域名变化、旧激活占用、授权中心不可达或服务器时间错误。先 Verify Connection,再重新激活;必要时释放旧激活。
图片和 Logo 不显示storage/app/public 未恢复或缺少 storage link。恢复上传文件并执行 php artisan storage:link
点击有记录但转化没有进来广告主仍在请求旧 Postback URL,或追踪域名 DNS 未切换。检查 Tracking Domains、Postback URL、DNS 和 Postback Logs。
任务重复执行新旧服务器同时运行 Cron 或 queue worker。立即停止旧服务器任务,只保留新服务器任务。
新服务器 500 错误PHP 扩展缺失、目录权限不正确、数据库连接失败或缓存过期。检查扩展、权限、.env、日志,并执行 php artisan optimize:clear

如果新服务器验收失败且短时间无法修复,可以把 DNS 回切旧服务器,并继续保持旧服务器数据库和文件不被覆盖。回滚后先确认是否有新服务器期间产生的新点击、转化或付款记录,避免数据丢失。

Operations

21. 备份、升级与运维

Afftrix 作为业务系统,保存了点击、转化、佣金、付款和用户数据。正式上线后必须建立备份、升级、日志和性能维护流程。

Backup Upgrade Runbook

1. 需要备份什么

内容是否必须说明
数据库必须用户、Offer、点击、转化、付款和设置
.env必须数据库、队列、SMTP 等配置
上传文件必须Logo、素材、发票、导入文件、媒体库
插件包推荐WooCommerce Connector 生成包
日志推荐排查问题用,可保留最近 7-30 天
代码包推荐记录当前运行版本,方便回滚

不要只备份代码。大多数客户真正需要恢复的是数据库和上传文件。

2. 备份频率

客户规模数据库备份文件备份保留周期
小型客户每日 1 次每日 1 次7-14 天
中型客户每日 2-4 次每日 1 次14-30 天
高流量客户每小时或主从复制每日 1 次30 天以上

付款、批量导入、迁移和升级前应额外做一次手动备份。

3. 升级前检查

  1. 确认当前版本号和目标版本号。
  2. 阅读 release notes,确认是否有数据库迁移、配置项变更。
  3. 备份数据库、.env 和上传文件。
  4. 确认服务器 PHP 版本和扩展满足新版本要求。
  5. 暂停大批量导入、批量付款和自动任务。
  6. 在验证环境完成一次升级演练。

4. 推荐升级步骤

备份 -> 上传新代码 -> 安装依赖 -> 执行迁移 -> 清缓存 -> 重启队列 -> 验证业务闭环

Laravel 项目常见操作顺序:

php artisan down
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan queue:restart
php artisan up

如果使用面板部署,需要把这些命令转换成面板里的终端任务、计划任务或守护进程配置。

5. 生产环境后台任务命令

Afftrix 的邮件、通知、导入、Postback 重试、报表聚合、自动化和链接健康检查都依赖队列与 scheduler。生产环境至少要配置一个每分钟 Cron 和一个常驻 queue worker。

每分钟 Cron 有两种配置方式。面板方式通常在计划任务 / Cron 页面选择“每分钟”,命令框只填实际执行命令;手动 crontab -e 才需要写完整 cron 行和前面的 * * * * *

aaPanel / 宝塔面板命令框填写:

cd /www/wwwroot/your-domain.com && /www/server/php/83/bin/php artisan schedule:run >> /dev/null 2>&1

如果面板没有显示计划任务入口,可先到软件商店或应用商店启用 Cron / 计划任务组件。

手动 crontab 写法:

* * * * * cd /path/to/afftrix && php artisan schedule:run >> /dev/null 2>&1

队列 Worker:

php artisan queue:work redis --queue=default,emails,imports,checks,postbacks --sleep=3 --tries=3 --timeout=120

如果安装时选择的是 database queue:

php artisan queue:work database --queue=default,emails,imports,checks,postbacks --sleep=3 --tries=3 --timeout=120

部署升级后重启队列:

php artisan queue:restart

Supervisor 配置示例:

[program:afftrix-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/afftrix/artisan queue:work redis --queue=default,emails,imports,checks,postbacks --sleep=3 --tries=3 --timeout=120
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/path/to/afftrix/storage/logs/worker.log
stopwaitsecs=130

aaPanel / 宝塔可以在软件商店或应用商店安装 SupervisorSupervisor ManagerSupervisor 管理器。新增进程时,运行目录填写 Afftrix 项目根目录,启动用户建议使用 www,命令填写 queue worker 命令,进程数量先设置 1 或 2。

验证 Cron 是否正常:

php artisan schedule:run
php artisan queue:failed

后台系统健康检查如果提示 scheduler heartbeat 缺失,通常就是 Cron 没有每分钟执行 php artisan schedule:run

6. 升级后验收

模块检查内容
登录管理员、Affiliate、Advertiser 都能登录
Dashboard不报错,今日数据正常
Offer列表和编辑页可以打开
Trackingtracking link 能产生点击
ConversionPostback / Connector 能创建转化
Reports报表可以按日期筛选
Payments付款列表和批量付款正常
Queue队列没有持续堆积,php artisan queue:failed 没有持续增长
Scheduler后台 scheduler heartbeat 正常,Cron 每分钟执行
Logs没有新增严重错误

7. 回滚策略

升级失败时不要反复刷新后台。应按以下顺序处理:

  1. 记录错误页面、日志和时间。
  2. 如果只是缓存问题,先清理缓存并重启队列。
  3. 如果迁移失败,确认数据库是否已经部分变更。
  4. 必要时恢复升级前数据库和代码。
  5. 恢复后重新验证登录、Offer、点击和转化。

回滚前必须确认是否有升级期间产生的新订单、新转化或新付款,避免直接覆盖造成数据丢失。

8. 日常运维看板

后台首页用于观察当天数据和异常提醒
后台首页用于观察当天数据和异常提醒

建议每天检查:

  • 最近 24 小时转化量是否异常。
  • Postback 失败是否增加。
  • Profit Guard 是否出现负利润。
  • 队列 failed jobs 是否增加。
  • 数据库和磁盘空间是否充足。
  • 邮件发送是否失败。
  • 付款队列是否有异常。

9. 性能维护

  • 开启 OPcache。
  • 生产环境缓存 config、route、view。
  • 大报表默认使用日期范围和分页。
  • 高频统计使用缓存或异步聚合。
  • Action Center、顶部通知、AI 助手等非核心模块应懒加载。
  • 定期清理过期日志、失败 webhook 和导入临时文件。
  • 数据量较大时使用 Redis 队列和独立 worker。

10. 上线后运维确认

正式上线时,不要只确认“后台可以用了”。需要同时确认:

  • 谁负责服务器备份。
  • 谁负责升级。
  • 出现 500 错误时在哪里看日志。
  • 数据误删后可恢复到哪个时间点。
  • 付款或佣金异常时先冻结付款,再排查转化。

Security governance

22. 安全、合规与权限治理

Afftrix 会处理用户账号、推广数据、订单金额、佣金、付款信息和 API Key。正式上线前,必须把权限、安全和数据保护作为上线准备内容的一部分。

Security Roles Audit

1. 账号安全

项目建议
超级管理员只分配给系统负责人,不用于日常运营
员工账号每个人独立账号,不共用密码
密码策略使用强密码,修改后提醒浏览器更新保存密码
2FA对超级管理员、财务、技术账号开启
离职处理立即禁用员工账号和 API Key
登录日志记录登录时间、IP、User Agent 和异常失败

2. 权限拆分

员工和权限页面用于拆分后台角色
员工和权限页面用于拆分后台角色

建议至少拆分以下角色:

角色允许操作不应允许
Super Admin全部配置、员工、财务不用于日常投放
OperationsOffer、Affiliate、Advertiser、素材批量付款、系统安全设置
Account Manager管理分配给自己的 Affiliate / Advertiser查看全局财务和系统设置
Finance付款、对账、发票、财务报表修改 Offer payout
Support查看日志、协助排查删除数据、修改财务字段
DeveloperAPI、Postback、Connector、日志批量付款、修改用户余额

权限原则:能只读就不要给编辑,能按范围限制就不要给全局权限。

3. API Key 安全

  • 每个广告主、店铺、插件使用独立 key。
  • Key 泄露后只禁用对应客户,不影响全平台。
  • Key 不写入前端页面、公开文档或截图。
  • 日志中只显示 mask 后的 key。
  • 删除员工或广告主时同步检查相关 key。
  • 高风险 key 应定期轮换。

4. 系统安全

  • .env 不进入公开目录。
  • 生产环境关闭 APP_DEBUG。
  • API Key、Connector Key 和 Postback secret 不写入前端页面。
  • 生产环境优先 HTTPS。
  • 重要操作保留审计日志。
  • 日志中隐藏邮箱、支付账号和 key。

5. 数据隐私

建议默认不保存敏感个人信息。确实需要保存时,应遵守客户所在地区的数据保护要求。

数据建议
邮箱报表和 API 尽量使用哈希
手机号不建议传入 tracking 或 sub 参数
支付账号只在付款模块必要位置显示
IP 地址用于风控和排查,设置保留周期
User Agent用于设备识别和反作弊
Sub 参数禁止放身份证、银行卡、密码等敏感信息

6. Tracking 和 Postback 安全

Tracking 设置和回传日志用于安全排查
Tracking 设置和回传日志用于安全排查
  • Postback 优先使用 S2S。
  • 对广告主 Postback 启用 secret 或签名。
  • 检查 cidorder_idamountcurrencystatus
  • 对重复 order_iddedup_key 做去重。
  • 对异常金额、负利润、高退款率触发 Profit Guard。
  • 不要让 Postback 接口被 CDN、WAF 或 JS Challenge 阻断。

7. 服务器安全

  • Web 公开入口只能暴露 public 内容;固定入口虚拟主机可使用 public_html 兼容结构。
  • .env、storage 原始文件、备份压缩包不能公开访问。
  • 生产环境关闭 debug。
  • 定期更新 PHP、数据库和系统安全补丁。
  • 使用 HTTPS。
  • 限制 SSH 登录和数据库远程访问。
  • 给数据库账号最小权限。
  • 定期检查磁盘空间和异常日志。

8. 审计和留痕

建议记录以下操作:

  • 登录、登出、登录失败。
  • 创建、修改、暂停 Offer。
  • 修改 revenue / payout / caps。
  • 审核 Affiliate、Advertiser。
  • 创建或删除 API Key。
  • 批量付款和付款状态变更。
  • 清空日志或删除数据。

审计日志要服务于排查,而不是无限制保存。建议支持按时间保留和导出。

9. 正式上线安全清单

  • APP_DEBUG 关闭。
  • HTTPS 可用。
  • 后台路径不使用默认弱入口。
  • 超级管理员密码已更改。
  • 关键账号启用 2FA。
  • API Key 已按客户隔离。
  • Postback 签名或 secret 已启用。
  • .env 不可公开访问。
  • 备份和恢复流程已验证。

Support workflow

23. 支持工单与排查资料模板

客户遇到问题时,如果只描述“不能用”“没有数据”,技术支持很难快速定位。建议把本模板放到知识库中,让客户提交问题前先准备必要信息。

Support Troubleshooting Ticket

1. 通用工单信息

信息示例
问题标题Offer 1024 有点击但没有转化
发生时间2026-06-14 15:30 - 16:10
影响范围单个 Offer / 单个 Affiliate / 全平台
操作账号[email protected]
浏览器和设备Chrome 125 / Windows
页面地址/admin/conversions
截图问题页面和错误提示
期望结果应该出现 1 条 approved conversion
实际结果没有转化或金额不正确

2. Tracking 问题需要提供

Offer 和点击问题通常从 Offer 列表开始定位
Offer 和点击问题通常从 Offer 列表开始定位
  • Offer ID。
  • Affiliate ID。
  • Tracking link。
  • 点击时间。
  • 最终落地页 URL。
  • 浏览器地址栏是否带 cid
  • Clicks 页面截图。
  • 中间跳转链或短链服务。
  • 是否经过 Cloudflare、CDN、WAF。

3. 转化不到账需要提供

Conversions 页面用于核对转化是否进入系统
Conversions 页面用于核对转化是否进入系统
  • Offer ID。
  • Affiliate ID。
  • CID。
  • Order ID 或 Transaction ID。
  • Postback URL。
  • 请求时间。
  • 请求 payload 或 query string。
  • Afftrix response。
  • Advertiser Postback Logs 截图。
  • Conversions 页面筛选截图。

如果使用 WooCommerce Connector,还需要:

  • WordPress 域名。
  • 插件版本。
  • Connector Key 的 mask 值。
  • WooCommerce 订单号。
  • 订单状态。
  • 插件日志截图。
  • Afftrix Integration API response。

4. 佣金或利润不对需要提供

  • Offer ID。
  • Conversion ID。
  • 订单金额。
  • 币种。
  • Offer revenue 设置截图。
  • Offer payout 设置截图。
  • 是否命中特殊 pricing rule。
  • 是否有退款或取消。
  • 报表截图和转化详情截图。

排查顺序:

  1. 先看转化详情里的 revenue、payout、profit。
  2. 再看 Offer pricing rule。
  3. 再看广告主回传 amount。
  4. 最后看报表聚合是否缓存或日期范围不一致。

5. 付款问题需要提供

  • Affiliate ID。
  • Payment ID。
  • 付款周期。
  • 应付金额。
  • 实际金额。
  • 付款方式。
  • 是否存在 pending / rejected / refunded conversion。
  • Payment items 截图。
  • Finance / Reconciliation 页面截图。

付款异常时,不建议继续批量付款。先冻结相关 Affiliate 的付款,确认余额和转化状态后再继续。

6. 安全和账号问题需要提供

  • 当前域名。
  • 登录账号角色。
  • 错误码或页面截图。
  • 最近一次操作时间。
  • 是否更换服务器、域名或缓存配置。

不要在工单里发送数据库密码、服务器 root 密码、完整 API Key 或支付账号。

7. 性能问题需要提供

  • 慢页面 URL。
  • 打开耗时。
  • 数据范围。
  • 当前数据量:Offer、Affiliate、Clicks、Conversions 数量。
  • 服务器配置。
  • PHP / MySQL / Redis 状态。
  • 队列是否堆积。
  • 浏览器控制台错误。
  • 服务端日志时间段。

如果只有某个报表慢,请提供筛选条件和 group by 维度。

8. 工单优先级

优先级场景响应建议
P0全站无法访问、数据严重错误、付款错误立即处理
P1转化大面积丢失、后台无法登录当天优先处理
P2单个 Offer 或单个客户问题排队处理
P3使用咨询、文案修改、普通配置问题正常支持

工单越完整,定位越快。建议客户每次提交问题时都带上 ID、时间、截图和日志。

Support

常见问题

这里收集上线和运营中最常见的问题,建议客服和技术支持优先查看。

适合客服、运营和技术支持 排查入口

域名解析后还是打不开

先确认 DNS 是否解析到正确服务器 IP。可以用 nslookup your-domain.com 检查。然后确认服务器防火墙开放 80 和 443,Web 站点已经绑定该域名,站点根目录指向 public,SSL 证书没有错误。

安装页面提示目录不可写

检查普通目录是否保持 755、普通文件是否保持 644,并确认 storagebootstrap/cache 允许 PHP 运行用户写入,建议设置为 775。不要简单把整站改成 777。修改权限后刷新 Environment Check。

安装页面数据库连接失败

检查数据库 host、port、database、username、password 是否正确。数据库用户要有当前数据库权限。远程数据库还要检查防火墙和白名单。连接成功后再执行迁移。

后台登录后跳转异常

检查 APP URL、Public site URL、HTTPS 强制跳转和反向代理配置。生产环境不要使用 localhost 或服务器 IP 作为 APP URL。使用 Cloudflare 时确认 SSL 模式没有造成循环跳转。

邮件发送失败

进入 Mail & SMTP 发送验证邮件。检查 SMTP host、port、encryption、username、password、from email。部分邮箱需要应用专用密码。服务器安全组也要允许连接 SMTP 端口。

Tracking link 没跳转

检查 Offer 是否 active、Affiliate 是否 active、是否有访问权限、Destination URL 是否为空、Tracking domain 是否解析正确,以及 Anti-Spy 是否拦截。

Click 有记录,Conversion 没有记录

检查广告主是否触发 Postback、是否带 CID、API Key 或 Postback secret 是否正确、是否被去重或风控过滤。

广告主说已经回传,但后台没有转化

先查 Server Postback Logs。如果没有日志,说明请求没有到达 Afftrix。如果有日志,看 HTTP 状态、错误信息、cid、order_id、amount、status。常见原因是 CID 丢失、参数名写错、重复订单、密钥错误。

API 返回 401

通常是缺少 API Key、Key 错误、Key 被禁用、账号不是 active,或用错了 Affiliate / Advertiser API 路径。

API 返回 422

通常是字段格式错误或必填字段缺失。检查 JSON 是否有效,金额是否是数字,币种是否是三位代码,状态值是否在系统允许范围内。

WooCommerce 订单没有回传

检查插件是否激活、Site URL 和 API Key 是否正确、订单状态是否属于触发状态,以及插件日志里的 Afftrix response。

插件显示 Connected 但没有转化

Connected 只代表 API Key 可用,不代表业务闭环完成。必须从 Affiliate tracking link 进入店铺,下验证订单,然后检查插件是否保存 CID、订单状态是否触发回传、Afftrix Conversions 是否生成记录。

为什么不建议默认 Affiliate 兜底

广告主可能还有 Google Ads、SEO、邮件营销、线下等渠道。所有无 CID 订单都记给一个默认 Affiliate,容易误算佣金。

佣金为什么是负利润

通常是 payout 高于 revenue、广告主回传金额太低、币种配置不一致、pricing rules 命中错误,或退款没有同步。先看 Conversion 详情,再看 Offer Pricing rules 和 Profit Guard。

Affiliate 付款金额不对

确认只统计 approved 且未 paid 的转化。pending、held、rejected、blocked、refunded 不应进入付款。再检查最低付款金额、付款周期、币种和是否有人工调整。

没有配置计划任务和队列命令会怎样

如果 schedule:run 和队列命令都没有配置,网站前台和后台不一定马上坏,登录、浏览页面、保存配置这类同步操作通常还能继续。但系统会变成只处理同步请求,后台自动任务基本停摆。

没有配置 schedule:run 时,GeoIP 数据库自动更新、授权定期验证、Demo 数据每日重置、Offer 源自动同步、Offer 链接健康检测、报表聚合、Top Offers 刷新、自动化规则、通知失败重试、日志清理、后台任务清理和 System Health 定时任务心跳都不会自动执行。

没有配置队列命令时,联盟用户 postback 外发、邮件发送、邮件营销、Offer 导入、链接检测、postback 队列任务、后台长任务、通知和失败重试等异步任务不会被消费。

广告主访问 postback.php 时,系统仍然可以实时接收请求并创建转化;但后续联盟用户 postback、邮件通知和其他异步处理可能不会执行。最常见的现象是:转化已有但联盟 postback 没发出、导入一直卡住、邮件不发送、报表不更新或明显延迟、Demo 不重置、System Health 持续警告,以及 jobs 表里的任务越来越多。

后台很慢怎么办

生产环境建议使用 Redis 缓存和 Redis 队列,开启 OPcache,配置队列 worker 和 Cron,大数据页面使用分页、缓存和懒加载。

客户更新密码后浏览器还填旧密码

这是浏览器或密码管理器保存的旧密码。用户重新登录成功后,如果浏览器询问是否更新密码,应选择更新。平台也应在密码修改成功后给出明确提示,避免用户下次继续使用旧密码。