您好我正试图在我的网站上显示不同的内容,如果用户已经访问了我的Google Adwords广告系列。
我在Chrome控制台中使用了document.referrer来查找引荐来源并将此信息放在下面的代码中
如果我将引荐来源设置为Google.com并从那里访问,那么该脚本会执行 - 但是当尝试与Google Adwords引荐来源网址匹配时,它无效。
我在想我可以尝试匹配字符串长度,或只是字符串的'/?gclid ='部分
<?php
// This is to check if the request is coming from a specific URL
$ref = $_SERVER['HTTP_REFERER'];
if($ref == 'http://domain.nl/?gclid=CjwKEAiApOq2BRDoo8SVjZHV7TkSJABLe2iDnbfXanR14L-Di0IaoXGFTRx_uF_SGJ6QrmMstGDQChoCbBzw_wcB') {
echo "yes";
}
else {
echo "no";
}
?>
答案 0 :(得分:1)
是的,您可以测试referer是否具有 gclid 参数(它几乎总是具有不同的长度),但是您丢失了有关WHICH广告系列导致该信息的信息,并且可能基于此消息不同。
赞:如果有人刚从产品关键字中访问暗示购买意愿(如iPhone 6 64 GB Paris)或只是一般关键字“智能手机”
我建议您使用UTM参数,在本例中为AdWords manual tagging,至少对于您希望展示此内容的网页而言。
url则可能像http://domain.nl/?utm_source=google&utm_medium=ppc&utm_campaign=content_x
答案 1 :(得分:0)
我使用preg_match来识别每个adwords引荐来源网址中的gclid字符串。
这有效 - 但还有另一个问题。当页面最初加载时,引用者URL未设置 - 仅在导航到下一页时(脚本工作时)设置。
然而,当页面首次加载时,Adwords引用位于浏览器地址栏中,因此我使用REQUEST_URI和'或'来检测地址栏中的gclid字符串。这是代码:
<?php
if(preg_match('/gclid/i', $_SERVER['HTTP_REFERER']) or preg_match('/gclid/i', $_SERVER['REQUEST_URI'])) {
echo "adwords visitor content";
}
else {
echo "regular visitor content";
}
?>