Google analytics 如何使用api_请求作为度量或维度?
我试图测量通过服务器进行的API调用,而不是将API使用情况存储在服务器中,而是使用测量协议将其推送到GA4。我已经成功地实现了它,并且正在使用以下代码成功地推送事件:Google analytics 如何使用api_请求作为度量或维度?,google-analytics,google-analytics-api,google-analytics-firebase,google-analytics-4,Google Analytics,Google Analytics Api,Google Analytics Firebase,Google Analytics 4,我试图测量通过服务器进行的API调用,而不是将API使用情况存储在服务器中,而是使用测量协议将其推送到GA4。我已经成功地实现了它,并且正在使用以下代码成功地推送事件: $eventData = [ 'appInstanceId' => $appInstanceId, 'userId' => $userId, 'events' => [ 'name' => 'api_request',
$eventData = [
'appInstanceId' => $appInstanceId,
'userId' => $userId,
'events' => [
'name' => 'api_request',
'params' => []
]
];
$firebaseAppId = Settings::get('firebase_app_id');
$appSecret = Settings::get('firebase_api_secret');
$out = Http::get(sprintf('https://www.google-analytics.com/mp/collect?firebase_app_id=%s&api_secret=%s', $firebaseAppId, $appSecret), function ($http) use ($eventData) {
$http->setOption(CURLOPT_POSTFIELDS, json_encode($eventData));
});
这基本上是PHP对的改编
它成功地将事件推送到firebase,我甚至可以在firebase分析控制台上查看它。但是,当我尝试使用GA4数据API获取相同的数据时,它失败了。我试图从Google Analytics dashboard的“自定义定义”选项卡手动创建度量,它出现在meta API中,并显示在度量数组下。但是,当我获取数据时,它失败了
我做了一些实验,尝试将字段重命名为api_request_2,并使用了相同的代码。这一次,当我转到“自定义定义”部分时,它自动创建了字段,但作为“维度”除外。我感到困惑,所以我尝试使用RunReportAPI进行相同的获取,但这次将其用作维度,度量用作eventCount。这实际上起了作用并返回了一个结果。但这对我来说并不有用,因为我需要它作为一个度量,这样我就可以把它放在一个图上,与它的维度(日期)相对照,这样我就可以每天统计API请求的数量。我该如何进行这项工作?如果您试图每天获取“API请求”事件的计数,则不需要使用自定义定义。您共享的测量协议代码将发送带有
api\u请求的eventName
的事件。您可以通过以下请求通过GA4数据API创建每日报告:
POST https://analyticsdata.googleapis.com/v1alpha:runReport
{
"entity": { "propertyId": "YOUR_GA4_PROPERTY_ID" },
"dateRanges": [{ "startDate": "2021-03-01", "endDate": "2021-03-20" }],
"dimensions": [{ "name": "date" }],
"metrics": [{ "name": "eventCount" }],
"dimensionFilter": {
"filter": {
"fieldName": "eventName",
"stringFilter": {
"value": "api_request"
}
}
},
}
在数据API中有使用维度过滤器的示例
您可以使用自定义定义做什么?
如果要记录有关请求的其他信息,可以添加事件参数,注册自定义定义,并在数据API请求中使用自定义定义。例如,假设您正在向多个API发出API请求(例如和)。您可以向事件添加api\u方法参数,如下所示:
$eventData = [
'appInstanceId' => $appInstanceId,
'userId' => $userId,
'events' => [
'name' => 'api_request',
'params' => [
'api_method': 'drive-api'
]
]
];
注册参数api\u方法的自定义定义后,可以在报告()中使用该参数。此请求通过GA4数据API创建每日报告,该报告由API\u方法进一步细分:
POST https://analyticsdata.googleapis.com/v1alpha:runReport
{
"entity": { "propertyId": "YOUR_GA4_PROPERTY_ID" },
"dateRanges": [{ "startDate": "2021-03-01", "endDate": "2021-03-20" }],
"dimensions": [{ "name": "date" },{ "name": "customEvent:api_method" }],
"metrics": [{ "name": "eventCount" }],
"dimensionFilter": {
"filter": {
"fieldName": "eventName",
"stringFilter": {
"value": "api_request"
}
}
},
}
下面是报告的响应行示例。这一行表示您在3月10日将1337请求记录到驱动器api
"rows": [
...
{
"dimensionValues": [
{
"value": "20210310"
},
{
"value": "drive-api"
}
],
"metricValues": [
{
"value": "1337"
}
]
},
...
哇,这很有效,解决了这个问题。非常感谢。