balfour/attribution-tracker

一个基于实体跟踪属性的库,用于将归因渠道分配给实体。

dev-master 2019-05-22 10:07 UTC

This package is auto-updated.

Last update: 2024-09-22 22:37:48 UTC


README

一个基于实体跟踪属性的库,用于将归因渠道分配给实体。

此库处于早期发布阶段,正在等待单元测试。

用例

一个典型的用例是,你有一个可追踪的实体(例如 userlead),它通过API注册或创建,具有一个或多个跟踪属性(http_refererutm_sourceutm_mediumgclid等)。

给定实体及其跟踪属性,你希望将其分类到归因渠道中,并将该归因渠道(有机搜索 -> Google)存储在实体中以便于报告。

安装

composer require balfour/attribution-tracker

用法

步骤 1

您创建一个 AttributionTracker 并定义您的跟踪规则。

此仓库包含一个 GenericChannel 类以方便使用;虽然您可以创建一个自定义类以实现 ChannelInterface。在实际应用程序中,您的渠道和规则可能是从数据库加载的模型。

use Balfour\AttributionTracker\AttributionTracker;
use Balfour\AttributionTracker\GenericChannel;
use Balfour\AttributionTracker\Rules\GoogleAdsRule;
use Balfour\AttributionTracker\Rules\GoogleTrackingRule;
use Balfour\AttributionTracker\Rules\HttpRefererRule;

$tracker = new AttributionTracker();

$channel1 = new GenericChannel('Direct', 'Direct');
$tracker->setDefaultChannel($channel1);
// if the tracker can't find a matching rule, the default channel is returned

$channel2 = new GenericChannel('Paid Media', 'Google');
$rule1 = new GoogleAdsRule($channel2);
$tracker->addRule($rule1);

// this will match on utm_source = google AND utm_medium = ppc
$rule2 = new GoogleTrackingRule($channel2, 'google', 'ppc');
$tracker->addRule($rule2);

$channel3 = new GenericChannel('Referral', 'Facebook');
$rule3 = new HttpRefererRule($channel3, 'lm.facebook.com');
$rule4 = new HttpRefererRule($channel3, 'm.facebook.com');
$rule5 = new HttpRefererRule($channel3, 'l.facebook.com');
$rule6 = new HttpRefererRule($channel3, 'www.facebook.com');
$rule7 = new HttpRefererRule($channel3, 'facebook.com');
$tracker->addRules([$rule3, $rule4, $rule5, $rule6, $rule7]);

步骤 2

您有一个对象,实现了 TrackableEntityInterface,您希望对其进行分类。

此仓库包含一个 GenericTrackableEntity;然而,在实际应用程序中,这可能是一个 userlead 模型。

use Balfour\AttributionTracker\GenericTrackableEntity;
use Balfour\AttributionTracker\TrackingMeta;

$props = new \stdClass();
$props->http_referer = 'https://google.co.za';
$props->utm_source = 'google';
$props->utm_medium = 'ppc';
$meta = new TrackingMeta($props);

$entity = new GenericTrackableEntity($meta);

步骤 3

有了您的 AttributionTrackerTrackableEntityInterface,就可以对实体进行分类。

$channel = $tracker->getChannel($entity);

var_dump($channel);
var_dump($channel->getCategory()); // Paid Media
var_dump($channel->getLabel()); // Google
var_dump($channel->getFullName()); // Paid Media -> Google