如何使用 Google Analytics 跟踪 Facebook Instant Articles 的内容统计信息

How to track content Statistics for Facebook Instant Articles with Google Analytics

您好,我们已经在 脸书

Facebook 面向出版商的即时文章功能(目前主要在 2016 年 3 月 30 日在 FB iOS 应用上推出) 允许通过 Google 分析代码进行跟踪。 但是,即使按照说明实施了 GA 代码,我们也无法找到推荐人或 GA 中 FB Instant Articles 的其他信息。 谁能帮助我了解在 GA 中究竟在哪里可以找到有关 Facebook Instant Articles 内容消费的信息? 它会显示为推荐来源还是主机名? Instant Articles 在 FB 内打开。

根据他们的文档https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCampaigns#generalCampaign可以通过分析脚本设置来源、媒介和标题。需要设置标题,因为FB应用程序上IA的页面标题为空。

请注意代码中的大写字母应该根据您的静态或动态值进行更新。

<figure class="op-tracker"> 
    <iframe hidden>
        <script>
            (function (i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function () {(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),                         m=s.getElementsByTagName(o)0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-   analytics.com/analytics.js','ga');
            ga('create', 'ANALYTICS ID', 'auto');
            ga('require', 'displayfeatures');
            ga('set', 'campaignSource', 'Facebook');
            ga('set', 'campaignMedium', 'Social Instant Article');
            ga('set', 'title', 'POST TITLE OR THE TITLE YOU WANT'); 
            ga('send', 'pageview');
        </script>
    </iframe>
</figure>

再次请注意,大写的单词将替换为您的实际值。好好享受。

我运行遇到了同样的问题。在这里起作用的是:

URL to source of analytics code

If your analytics code can be served directly from a specific URL, you can specify the URL using the src attribute on the element.

<figure class="op-tracker">
    <iframe src="https://www.myserver.com/trackingcode"></iframe>
</figure>

(Source: https://developers.facebook.com/docs/instant-articles/reference/analytics)

我现在唯一不知道的是:如果我使用extended Analytics code 如何拉取页面标题?

这似乎是一个常见问题,我将尝试在此处提供更多信息:

首先,确保检查您在 Analytics 上使用的任何代码。此处提供的第一个答案粘贴了使用 Google GA.JS 代码的代码,但今天许多网站使用新的 Analytics.JS 代码(我的情况)。所以我的建议是从您的网站或您的 GA 面板复制您的 GA 代码。

其次,检查您的 GA 代码是否正确地传递到您的即阅文 RSS 提要(我假设您使用带有某些插件的 Wordpress 来构建 RSS)。如果您使用新的 analytics.js 方法,您的 RSS 提要(每篇文章)中的代码应该是这样的:

<!-- Adding tracking if defined -->
<figure class="op-tracker">
    <iframe>
        <script>
            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
            })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
            ga('create', 'YOUR_GA_ID', 'auto');
            ga('send', 'pageview');
        </script>
    </iframe>
</figure>

第三,如果在添加分析代码之前您的文章已经在 Facebook Instant Article Production 列表中,他们将不会更新/加载代码。最好的测试方法是编辑您的任何文章(标点符号的简单更改就足够了)并在您的 wordpress 上重新发布。然后转到您在 Facebook 上的 IA 面板,配置 并单击以重新加载/重建您的 RSS。稍等片刻,然后查看 post 将更新的 I.A 列表(您将看到日期更改),然后在编辑选项中打开它并在代码末尾进行检查。您的 GA 代码应该在那里。

因此,如果现在一切顺利,您的最后一步(至少对我而言)是删除 Facebook 上所有旧的 Instant Articles(我假设您没有'已发布它们)并在配置区域重新加载 RSS 提要,因此它将使用 GA 代码重建您的文章。

希望对您有所帮助。

PS:我没有使用 Automattic 的插件从 WP 发布 IA,因为它只是垃圾。有一种更简单的方法可以解决 w/o 的任何问题:https://wordpress.org/plugins/allfacebook-instant-articles/

我正在使用下面的解决方案(有点不同)并且它运行良好。

<figure class="op-tracker">
<iframe>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-9999999-9', 'mydomain.com');
ga('require', 'displayfeatures');
ga('set', 'campaignSource', 'Facebook');
ga('set', 'campaignMedium', 'Social Instant Article');
ga('set', 'title', 'My post title here');
ga('send', 'pageview');
</script>
</iframe>
</figure>

不幸的是,其他答案都涉及某种混乱,可能会使人们感到困惑。这是一种可靠的现代解决方案的尝试,它使用 UNIVERSAL ANALYTICS(新的)而不是 "ga.js"(旧的,尽管还有更旧的 urchin.js 没有人再使用了)。

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'YOUR_UID_REPLACE_THIS', 'auto');
  ga('require', 'displayfeatures');
  ga('set', 'campaignSource', 'Facebook');
  ga('set', 'campaignMedium', 'Social Instant Article');
  ga('set', 'title', ia_document.title);
  ga('send', 'pageview');

</script>
  • YOUR_UID_REPLACE_THIS: 显然把你的个人GA代码放在这里。
  • campaignSource:在 GA 中显示为 "Source"。
  • campaignMedium:在 GA 中显示为 "Medium"。
  • ia_document.title:这使用 FB javascript 变量作为标题。

到目前为止,我的标题已成功替换为此代码。

我在尝试使用 "REAL-TIME" Analytics 报告对此进行测试时遇到了一些非常令人困惑的经历,其中显示了多个具有相同标题的帖子,但总的来说我认为它是有效的。

  • 测试 'title' 字段:REAL-TIME > BEHAVIOR
  • 要测试 'Source' 和 'Media' 字段:REAL-TIME > TRAFFIC SOURCES

要查看 GA 的 Acquisitions 部分下的流量,请转至 Acquisitions > Source / Medium,它将与其他来源(包括来自 facebook 的几个不同来源)。

FLAW(与所有其他解决方案共享)- 不幸的是,我的解决方案没有让 IA 流量显示在 Acquisitions > Social > Facebook 报告。更糟糕的是,它甚至没有显示在 Acquisitions > Social 报告中。可悲的是,它在 Acquisitions > Other 中丢失了,对于我们大多数人来说,这将意味着一个完全 messed-up Social 总体报告。

  • "Social" 频道与其他频道一样,有一组非常精确的 source / medium 值,它将像 Facebook 一样过滤到不同的类别。
  • 显然,Facebook / Social Instant Article 不在该列表中。
  • 有关详细信息,请参阅 This other Whosebug post I made about this particular issue。我将在这里更新我的示例,无论结果如何都是最佳实践。

ia_document.title 代码来源:https://developers.facebook.com/docs/instant-articles/analytics

我已经使用维度完成了,我认为这是更好的做法,尤其是在您跟踪潜在客户时。

<figure class="op-tracker">
  <iframe>
    <script>
            (function (i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function () {(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),                         m=s.getElementsByTagName(o)0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-   analytics.com/analytics.js','ga');
            ga('create', 'ANALYTICS ID', 'auto');
            ga('require', 'displayfeatures');
            ga('send', 'pageview', {
               'dimension3': 'Facebook Instant Article'
            });
    </script>
  </iframe>
</figure>

然后在 GA 的管理中创建维度 3,并创建一个段,其中维度 3 具有 'Facebook Instant Article' 值。 这样您就可以将活动来源和媒介用于实际目的。

感谢您之前的所有回答和解决方案。他们启发我在 this public gist.

中总结我的学习和解决方案

我正在使用 Google's global site tag (gtag.js) 跟踪综合浏览量并成功将其归因于 Google 分析中的社交媒体。

以下代码段说明了对我有用的方法。请注意,我们使用 jinja 模板(使用 Nunjucks)来添加必要的和缺失的数据(例如 {{googleAnalytics}})。

<figure class="og-tracker">
  <iframe>
    <script async src="https://www.googletagmanager.com/gtag/js?id={{googleAnalytics}}"></script>
    <script type='text/javascript'>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', '{{googleAnalytics}}', {
        'page_title': '{{articleTitle}}',
        'page_path': '/{{articlePath}}', // The path portion of location. This value must start with a slash (/) character. (optional, but recommended)
        'page_location': '{{articleUrl}}', // page's URL (optional, but recommended)
        'campaign': {
          'source': 'ia.facebook.com', // utm_source
          'medium': 'referral', // utm_medium
          'name': 'Facebook Instant Articles' // utm_campaign
        },
      });
    </script>
  </iframe>
</figure>

我把它像这样嵌入到我的 feed 中

<figure class="op-tracker">
    <iframe src="https://www.example.com/fia-google-analytics-tracking.html"></iframe>
</figure>

实施文档

这里的大多数答案都提到了硬编码 campaignSourcecampaignMedium

如果您这样做,您的分析将无法记录任何使用 UTM 标签的特定活动。 此外,Google Analytics 会将您所有访问 Instant Article 的流量视为广告活动,并且数字不会归入 "Social" 流量。

解决办法是将referrer设置为https://i.facebook.com/。 使用此 Google Analytics 会将您的流量视为来自 Facebook,并且表现得好像它是 "Social" 流量。

要区分即时文章流量和常规 Facebook 流量,您可以过滤 referrer 或添加自定义维度。

请记住在以下代码段中更改 XX-X。

<!-- Google Analytics Tracker -->
      <figure class="op-tracker">
          <iframe src="" hidden>
            <script>
              (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
              (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
              m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
              })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

              ga('create', 'UA-472932XX-X', 'auto');
              ga('set', 'referrer', 'https://i.facebook.com/');
              ga('send', 'pageview', {title: "<page-title>"});
            </script>
          </iframe>
      </figure>