neoseeker / url-campaignify
一个PHP类,用于帮助向独立URL以及字符串内的URL(例如电子邮件)添加Google Analytics营销活动
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-13 04:34:21 UTC
README
背景
这是一个工具,可以帮助将Google Analytics营销活动跟踪参数添加到URL和整个文本块。
最初由pixelistik编写,用于添加开源网络分析工具Piwik的营销链接。
这个分支已被修改,只与Google Analytics一起使用,并支持GA的所有营销参数,用于对传入链接进行分类。此工具通过向HTTP URL附加额外的GET参数来实现
http://my-site.tld/?utm_campaign=newsletter-5&utm_term=header-link&medium=email&utm_source=response
内容
这个类旨在使动态向URL添加此类参数更加容易。
单个URL
您无需担心?
和&
,只需这样做即可
$uc = new UrlCampaignify();
$url = "http://some-blog.tld/cms.php?post=123&layout=default";
$newUrl = $uc->campaignify($url, "newsletter-5", "header-link");
结果已正确附加了参数
http://some-blog.tld/cms.php?post=123&layout=default&utm_campaign=newsletter-5&utm_term=header-link
文本块
您也可以将整个文本块抛给函数。它将找到并营销化其中的所有HTTP URL。
$uc = new UrlCampaignify();
$text = "Look at http://my-site.tld especially".
"here: http://my-site.tld/news.htm";
$newUrl = $uc->campaignify($text, "newsletter-5", "header-link");
如果您期望HTML输入,则只更改href
属性中的URL是有意义的。为此请使用campaignifyHref()
。它将
See <a href="http://site.tld">http://site.tld</a> for more information.
转换为
See <a href="http://site.tld?utm_campaign=foo">http://site.tld</a> for more information.
查看测试用例,了解哪些情况和边缘情况已覆盖或未覆盖。
在文本块中自动编号URL
文本块中的所有营销化URL都会计数(从1开始)。您可以使用URL的当前编号在sprintf()
样式的关键字中使用。如果您想在单个文本中区分几个相同的URL,这非常有用。
$uc = new UrlCampaignify();
$text = "Here comes the header link: http://my-site.tld".
"here is a long and verbose text".
"and another link at the end: http://my-site.tld";
$newUrl = $uc->campaignify($text, "news", "link-%d");
这将给您
Here comes the header link: http://my-site.tld?utm_campaign=news&utm_term=link-1
here is a long and verbose text and another link at the end:
http://my-site.tld?utm_campaign=news&utm_term=link-2";
域名
只有当您实际分析它们时,添加营销活动才有意义。这意味着您控制网站及其分析工具。您可以将UrlCampaignify限制为只处理给定域名的URL。只需将其传递给构造函数
$uc = new UrlCampaignify('my-site.tld')
注意,子域名将自动包含在内(这与原始行为不同),因此上述实例将触及www.my-site.tld
上的URL。
您可以使用以下方式禁用此自动行为
$uc->set_campaignify_subdomains(false);
您可以指定多个域名作为数组
$uc = new UrlCampaignify(array('my-site.tld', 'www.my-site.tld', 'my-other-site.tld'))
此分支与原始版本的主要差异
- 仅使用Google Analytics:utm_campaign、utm_source、utm_medium等。utm_medium默认为“电子邮件”
- 子域名将默认修改。
- 已修改campaignify()和campaignifyHref()方法,以接受Google Analytics参数
- Campaignify将应用于未设置utm_medium的URL(原始代码仅在未设置utm_campaign时应用campaignify)
- Campaignify不会替换URL中已存在的utm值。
安装
使用composer
URL-Campaignify符合PSR-0文件布局,并在Packagist上。您应该能够简单地输入
composer require neoseeker/url-campaignify:dev-master
composer install
以从master分支获取最新代码并将其包含到您的项目中。
仅获取文件
您还可以简单地下载提供类的单个文件:https://github.com/Neoseeker/url-campaignify/raw/master/src/Pixelistik/UrlCampaignify.php