jdi/tntaffiliate

dev-master 2015-06-13 17:26 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:28:45 UTC


README

Latest Stable Version Total Downloads Build Status

简介

请阅读以下集成指南并遵循所有说明,以确保您的设置就绪并开始跟踪数据。

设置DNS

所需操作:创建DNS条目

在您开始使用新的联盟系统之前,您需要配置两个主机名指向我们的服务器,以提供您的跟踪链接(track.)和联盟门户(affiliates.)。由于跟踪生命周期中所需的调用,您必须在您的产品域上应用这些DNS条目。如果您正在运行多个产品,您应该在每个域上都有这些条目。

affiliates.youdomain.tld > CNAME > affiliates.tntaffiliate.com

track.yourdomain.tld > CNAME > track.tntaffiliate.com

尽管这些是默认设置,但您可以选择以下替代方案之一作为您的主机名。

TNT Affiliate API

跟踪过程的大部分是通过我们的API执行的。这是由于双方的可靠性和控制。该API是一个基本的HTTP JSON过程,通过OAUTH2进行身份验证。为了简化PHP项目中的连接,我们为您创建了一个composer包(jdi/tntaffiliate),您可以将其包含到您的项目中。允许您进行一些基本的调用。本指南假设将使用此包。如果您不想使用此包,您应该能够查看代码以了解如何连接、身份验证和调用API。API文档将在稍后提供。

###链接

Packagist: https://packagist.org.cn/packages/jdi/tntaffiliate

GitHub: https://github.com/jdi/tntaffiliate

注册新联盟

有两种方法可以将新联盟注册到系统中。为了简单起见,最简单的方法是将您的联盟重定向到affiliates.yourdomain.tld,在那里他们将获得一个登录表单,还有一个创建账户的链接,如果他们尚未注册。如果您不想使用此功能,您可以在品牌配置选项中禁用它。

或者,您可以通过我们的API创建联盟,可以通过以下调用完成

$tnt = new TntAffiliateApi();

$tnt->createAffiliate('email','password','name');

跟踪用户(引用)

一旦您为访客有了自己的唯一标识符,您就可以向tnt提供引用和原始访客ID,这将允许您使用该引用调用所有操作。这提高了跟踪效果,因为您可以为替代设备、浏览器甚至电话销售调用操作。

访客ID放置在名为“TNT:VID”的cookie中,该cookie位于您的域中。TntAffiliate类包含一个辅助方法,可以从php超全局$_COOKIE中检索此cookie,但是,如果您通过其他方法读取cookie,建议您手动检索访客ID。

$tnt = new TntAffiliateApi();

$visitorId = TntAffiliate::getVisitorId();       // Attempts to pull visitor id from $_COOKIE
$tnt->visitorReference('reference', $visitorId); // Create the reference

操作

从您的网站跟踪操作的首选方法是使用curl。此方法为您和您的联盟提供了最准确的结果。您也可以按您喜欢的任何方式处理联盟跟踪像素。

$tnt = new TntAffiliateApi();

$actionOptions                 = new \JDI\TntAffiliate\Models\ActionOptions();
$actionOptions->eventReference = 'my_action_reference';     // Action reference, e.g. Order ID
$actionOptions->userReference  = $userId;    // User Reference. if a visitor ID is provided, this will store the reference for future calls.
$actionOptions->pixels         = false;      // Whether to return pixels to fire
$actionOptions->data           = [   // Any custom data you wish to allocate to the action, which will be available in the future.
  'user_id'    => $userId,
  'email'      => 'test@abc.com',
  'other_data' => 'some other information'
];

$actionId = $api->triggerAction('action_key', $visitorId, $actionOptions)->getActionId();

批准操作

在控制面板中设置操作时,您可以选择它们自动批准或需要批准。这允许您自动批准每个点击操作,但每个销售操作都需经过您的订单系统验证后才能执行。一旦您确定了操作的最终状态,您就可以对挂起的操作采取行动。在此阶段可以进行3个操作。

  • 批准:批准将完成原始操作并支付所需的佣金。

  • 取消:这将标记操作为已取消,不支付任何佣金。

  • 欺诈:与取消类似,不支付佣金,但也会通知联盟营销商有关欺诈行为。

    $approveOptions = new \JDI\TntAffiliate\Models\ApproveOptions(); $approveOptions->type = 'action_type'; $approved = $api->approveAction( $eventReference, // 操作引用,例如订单ID \JDI\TntAffiliate\Constants\ApprovalState::APPROVE, $approveOptions );

退款、取消和欺诈

有时,您的客户决定不再使用您的产品,在这种情况下,您可以选择

$tnt = new TntAffiliateApi();

$refundOptions             = new \JDI\TntAffiliate\Models\RefundOptions();
$refundOptions->type       = 'action_type';
$refundOptions->reason     = 'fraudulent';

$refunded = $api->refund($orderId, $refundOptions);

触发像素

当操作被触发时,可以根据涉及到的联盟营销商等排队像素。建议在操作时拉回这些像素以尽可能接近触发时间执行,并避免不断检查队列。

$tnt = new TntAffiliateApi();

$visitorId = TntAffiliate::getVisitorId(); //A User Reference is also valid
$tnt->getPendingPixels($visitorId); //array of pending pixels