Php 登录页重定向跟踪-谷歌 问题

Php 登录页重定向跟踪-谷歌 问题,php,redirect,google-analytics,google-analytics-campaign-builder,Php,Redirect,Google Analytics,Google Analytics Campaign Builder,我有由第三方服务托管的表单。我们称之为www.3rdpartyform.com 我有我的网站,www.mysite.com 我希望能够通过访问www.3rdpartyform.com的谷歌分析活动跟踪流量 我的解决方案 我已经创建了一个登录页www.mysite.com/redirected 它是这样使用的: www.mysite.com/redirected/?redirected\u url=www.3rdpartyform.com/theform&utm\u googlestuff=stu

我有由第三方服务托管的表单。我们称之为www.3rdpartyform.com

我有我的网站,www.mysite.com

我希望能够通过访问www.3rdpartyform.com的谷歌分析活动跟踪流量

我的解决方案 我已经创建了一个登录页www.mysite.com/redirected

它是这样使用的:

www.mysite.com/redirected/?redirected\u url=www.3rdpartyform.com/theform&utm\u googlestuff=stuff

页面基本上是这样的:

<?php $redirection_link = htmlspecialchars($_GET['redirected_url']); ?>
<html>
  <head>
    (google analytics script)

    <!-- Should address any possible negative impact on SEO caused by redirect. -->
    <meta name="robots" content="noindex, nofollow, noarchive">

  </head>
  <body>
    <script>
      var retryAttempts = 0;
      function checkIfAnalyticsLoaded() {
          console.log('Checking if GA loaded.');
          if (window.ga && ga.create) {
              console.log('GA loaded.');
              redirect();
          } else if (window.urchinTracker) {
              console.log('Old GA loaded.');
              redirect();
          } else if (retryAttempts < 10) {
              retryAttempts += 1;
              setTimeout(checkIfAnalyticsLoaded, 500);
          } else {
              console.log('GA not loaded')
              redirect();
          }
      }

      function redirect() {
          console.log('Redirecting');
          setTimeout(function () {
             window.location.href= '<?php echo $redirection_link; ?>';
          }, <?php echo $time_to_redirect * 1000 ?>);
      }

      checkIfAnalyticsLoaded();
    </script>
  </body>
</html>

(谷歌分析脚本)
var-retrytruments=0;
函数checkIfAnalyticsLoaded(){
日志('检查GA是否加载');
if(window.ga&&ga.create){
console.log('GA-loaded');
重定向();
}else if(window.urchinTracker){
console.log(“旧GA加载”);
重定向();
}否则如果(重试次数<10次){
重试次数+=1;
设置超时(checkIfAnalyticsLoaded,500);
}否则{
console.log('GA未加载')
重定向();
}
}
函数重定向(){
log(“重定向”);
setTimeout(函数(){
window.location.href='';
}, );
}
checkIfAnalyticsLoaded();
我认为它将如何工作 有人点击链接,页面加载my google analytics,查看活动URL参数并记录点击,然后重定向将用户带到www.3rdpartyform.com/theform的表单

我的问题 我试图寻找一个解决方案,但想不出要搜索什么,结果却给出了相关的结果。对于我目前的问题,有没有比我正在尝试的更好的解决方案?google analytics是否会使用此解决方案注册视图/活动(即使是反弹)

谢谢

更新的解决方案 这是我迄今为止根据的回应更新的解决方案

为了消除重定向可能对我的SEO造成的负面影响,我添加了nofollow、noindex元数据。此解决方案并非100%,但似乎符合逻辑

为了解决竞争条件
,我添加了一个函数来检查GA是否已加载

至于糟糕的用户体验/速度问题,我认为目前的实施/目标受众配置没有问题

我已经更新了上面的解决方案

剩余问题


希望按照建议使用GA事件,以防止此页面的点击被视为反弹。虽然还没有搞乱GA事件,需要了解它们,但现在必须进入下一个项目。

是的,这可能是最合理的分析解决方案。GA将在您的登录页上注册点击,并按预期将活动信息赋予他们。当然,请注意,您要衡量的是登录页面访问量:您无法跟踪人们在第三方表单站点上执行的操作(页面浏览、单击等)。按照您当前的设置方式,对登录页的所有访问都可能被视为跳转,因为用户只会触摸您的站点一次。为了防止这种情况发生,您可以在标题中添加一行javascript,以向GA发送另一个点击(例如事件)。

是的,这可能是最合理的分析解决方案。GA将在您的登录页上注册点击,并按预期将活动信息赋予他们。当然,请注意,您要衡量的是登录页面访问量:您无法跟踪人们在第三方表单站点上执行的操作(页面浏览、单击等)。按照您当前的设置方式,对登录页的所有访问都可能被视为跳转,因为用户只会触摸您的站点一次。为了防止出现这种情况,您可以在页眉中添加一行javascript,以向GA发送另一个点击(例如事件)。

这种带有javascript重定向的中间页面可能对SEO不利,但我的SEO日子已经过去了,我不确定是否有,所以我不想再提这一点

您没有提到的其他问题:

  • 竞争条件:由于GA代码段是异步的,因此实际上无法保证它将在重定向发生之前加载并跟踪页面视图。由于以下问题,增加超时不是解决方案

  • 糟糕的用户体验/速度:在您的用户有机会加载第三方网站之前,他们将面临1次额外的页面加载+1秒超时,可能需要几秒钟不必要的等待,这不是很好。Facebook也做了类似的事情,但他们有一个超高速的基础设施,而你的可能要慢很多

解决办法:

:这将允许您,从而保证跟踪,并且一旦PHP发出API调用,您就可以发出
302
重定向,从而消除超时、难看的重定向以及潜在的额外页面加载(您可以让客户端向/redirected/发送AJAX请求以进行该调用)。然而,这个解决方案是相当困难的

:此解决方案可能是最佳的“价值”(接近100%的可靠性,没有太多的实施工作)。我们的想法是禁用链接的默认行为(例如
return false;
),并使用GA的功能来实现。

这种带有JavaScript重定向的中间页面可能不利于SEO,但我的SEO时代已经过去了,我不确定是否会有这样的情况,所以我不想忽略这一点

您没有提到的其他问题:

  • 竞争条件:由于GA代码段是异步的,因此实际上无法保证它将在重定向发生之前加载并跟踪页面视图。由于以下问题,增加超时不是解决方案

  • 糟糕的用户体验/速度:在用户有机会加载第三方网站之前,他们