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
一个基于实体跟踪属性的库,用于将归因渠道分配给实体。
此库处于早期发布阶段,正在等待单元测试。
用例
一个典型的用例是,你有一个可追踪的实体(例如 user
或 lead
),它通过API注册或创建,具有一个或多个跟踪属性(http_referer
、utm_source
、utm_medium
、gclid
等)。
给定实体及其跟踪属性,你希望将其分类到归因渠道中,并将该归因渠道(有机搜索 -> 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
;然而,在实际应用程序中,这可能是一个 user
或 lead
模型。
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
有了您的 AttributionTracker
和 TrackableEntityInterface
,就可以对实体进行分类。
$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