从Google AnalyticsAPI获取终身价值

时间:2016-05-01 07:55:55

标签: google-analytics-api google-analytics-v4

Google AnalyticsAPI文档显示,为获取生命周期值,不应指定日期范围。但是当我提出这样的请求(没有日期范围)时,它会返回空维度和度量结果。但是当我使用日期范围时,它会返回该日期范围的维度和指标值。

以下摘自API documentation

  

不应为群组或生命周期值指定日期范围   请求。

例如,如果我发出没有日期范围的请求,如下所示:

{
 "reportRequests": [
  {
   "viewId": "XXXXXXXXX",
   "dimensions": [
    {
     "name": "ga:date"
    },
    {
     "name": "ga:eventLabel"
    }
   ],
   "metrics": [
    {
     "expression": "ga:totalEvents"
    }
   ]
  }
 ]
}

我收到以下回复:

{
 "reports": [
  {
   "columnHeader": {
    "dimensions": [
     "ga:date",
     "ga:eventLabel"
    ],
    "metricHeader": {
     "metricHeaderEntries": [
      {
       "name": "ga:totalEvents",
       "type": "INTEGER"
      }
     ]
    }
   },
   "data": {
    "totals": [
     {
      "values": [
       "0"
      ]
     }
    ]
   }
  }
 ]
}

但是,如果我包含日期范围,

{
 "reportRequests": [
  {
   "viewId": "XXXXXXXX",
   "dimensions": [
    {
     "name": "ga:date"
    },
    {
     "name": "ga:eventLabel"
    }
   ],
   "metrics": [
    {
     "expression": "ga:totalEvents"
    }
   ],
   "dateRanges": [
    {
     "startDate": "2016-01-01",
     "endDate": "2016-04-30"
    }
   ]
  }
 ]
}

我收到以下回复:

{
 "reports": [
  {
   "columnHeader": {
    "dimensions": [
     "ga:date",
     "ga:eventLabel"
    ],
    "metricHeader": {
     "metricHeaderEntries": [
      {
       "name": "ga:totalEvents",
       "type": "INTEGER"
      }
     ]
    }
   },
   "data": {
    "rows": [
     {
      "dimensions": [
       "20160412",
       "http://mytestblog.com/"
      ],
      "metrics": [
       {
        "values": [
         "1"
        ]
       }
      ]
     },
     {
      "dimensions": [
       "20160412",
       "http://mytestblog.com/2016/04/first-post.html"
      ],
      "metrics": [
       {
        "values": [
         "3"
        ]
       }
      ]
     },
     {
      "dimensions": [
       "20160419",
       "http://mytestblog.com/"
      ],
      "metrics": [
       {
        "values": [
         "4"
        ]
       }
      ]
     },
     {
      "dimensions": [
       "20160419",
       "http://mytestblog.com/2016/04/fourth.html"
      ],
      "metrics": [
       {
        "values": [
         "13"
        ]
       }
      ]
     }
    ],
    "totals": [
     {
      "values": [
       "21"
      ]
     }
    ],
    "rowCount": 4,
    "minimums": [
     {
      "values": [
       "1"
      ]
     }
    ],
    "maximums": [
     {
      "values": [
       "13"
      ]
     }
    ]
   }
  }
 ]
}

为什么即使在文档中指定,我还必须在ReportRequest中指定日期范围才能获取值?我在这里误解了终身价值的含义吗?

1 个答案:

答案 0 :(得分:0)

reportRequest对象应具有dateRanges的值或cohortGroup的定义值。如果省略这两个请求,则会假定startDate 7daysAgoendDate yesterday的默认值。

对文档的正确解释是,reportRequest不应为群组和LTV请求定义dateRange。但是,为了进行同类群组或生命周期值请求,您必须添加同类群组定义。对于终身价值请求,除dateRange字段设置为 true 外,群组定义应具有特定lifetimeValue

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
    "reportRequests": [
    {
        "viewId": "XXXX",
        "dimensions": [
            {"name": "ga:cohort" },
            {"name": "ga:cohortNthWeek" }],
        "metrics": [
            {"expression": "ga:cohortTotalUsersWithLifetimeCriteria"},
            {"expression": "ga:cohortRevenuePerUser"}
        ],
        "cohortGroup": {
            "cohorts": [{
                "name": "cohort 1",
                "type": "FIRST_VISIT_DATE",
                "dateRange": {
                    "startDate": "2015-08-01",
                    "endDate": "2015-09-01"
                }
            },
            {
                "name": "cohort 2",
                "type": "FIRST_VISIT_DATE",
                "dateRange": {
                    "startDate": "2015-07-01",
                    "end_date": "2015-08-01"
                }
            }],
           "lifetimeValue": True
        }
    }]
  }