【问题标题】:Error using metrics listed in Google's Metrics and dimensions使用 Google 指标和维度中列出的指标时出错
【发布时间】:2016-01-08 06:16:53
【问题描述】:

我正在使用这段代码来查询api

    function getResults(&$analytics, $profileId) {
  // Calls the Core Reporting API and queries for the number of sessions
  // for the last 30 days.
   return $analytics->data_ga->get(
       'ga:' . $profileId,
       '30daysAgo',
       'today',
       'ga:sessionCount,ga:sessionDurationBucket,ga:users,ga:percentNewSessions,ga:bounceRate,ga:pageviews');
}

执行代码时出现此错误

致命错误:未捕获的异常“Google_Service_Exception”与 message '调用 GET 时出错 https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A114460017&start-date=30daysAgo&end-date=today&metrics=ga%3AsessionCount%2Cga%3AsessionDurationBucket%2Cga%3Ausers%2Cga%3ApercentNewSessions%2Cga%3AbounceRate%2Cga%3Apageviews: (400) 未知指标:ga:sessionCount, ga:sessionDurationBucket

有人经历过吗?我不明白为什么它在列出时无法识别这些指标

https://developers.google.com/analytics/devguides/reporting/core/dimsmets#view=detail&group=user&jump=ga_sessioncount

【问题讨论】:

    标签: api google-analytics metrics dimensions


    【解决方案1】:

    如果您更仔细地查看该文档,您会发现会话数不是一个指标,而是一个维度。原因是您希望能够按会话计数对指标进行细分(例如“显示 3 个会话的用户的平均会话持续时间”),因此您需要分类数据。

    即使您忽略了目录中的(不是特别独特的)列标题(ga:sessionCount 在“维度”列中),数据类型是字符串的事实也将是一个死的赠品。指标始终是数字。维度始终是字符串,即使它们有时看起来像数字。

    ga:sessionDurationBucket 也是如此。

    看看这个example from the documentation,看看维度是如何通过一个包含可选参数的数组传递到查询中的:

    private function queryCoreReportingApi() {
      $optParams = array(
          'dimensions' => 'ga:source,ga:keyword',
          'sort' => '-ga:sessions,ga:source',
          'filters' => 'ga:medium==organic',
          'max-results' => '25');
    
      return $service->data_ga->get(
          TABLE_ID,
          '2010-01-01',
          '2010-01-15',
          'ga:sessions',
          $optParams);
    }
    

    你需要构造一个类似的 $optParams 数组:

    $optParams = array(
              'dimensions' => 'ga:sessionCount,ga:sessionDurationBucket'
              '); 
    

    并将其传递给您的查询:

    return $analytics->data_ga->get(
           'ga:' . $profileId,
           '30daysAgo',
           'today',
            $optParams,  
           'ga:users,ga:percentNewSessions,ga:bounceRate,ga:pageviews');
    }
    

    并从指标列表中删除维度。

    顺便说一句。 Google 有一个wonderful documentation page,说明维度和指标之间的差异以及它们在报告中的使用方式。

    【讨论】:

    • 当我打印结果时我会怎么做?我目前正在这样做 $rows = $results->getRows(); $visits = $rows[0][0]; $visitDuration = $rows[0][1]; $avgVisitLength = $visits / $visitDuration; $uniqueVisitor = $rows[0][2]; $percentNewSession = $rows[0][3]; $bounceRate = $rows[0][4]; $avgDuration = $rows[0][5]; $pageView = $rows[0][6]; $pagesPerVisit = $pageView / $visits;但是现在数据都乱了,我将如何调用维度的结果?
    • 抱歉,我似乎无法弄清楚如何使用代码添加评论
    • 您的行不会以维度的值开头,后跟该维度的指标(因此,如果您在查询中指定两个维度,用户将不会位于索引 $rows[0][2 ] - 即共享所选维度特定值的用户数)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    相关资源
    最近更新 更多