用户参数被传输到 Yandex Metrika userParams
:
{
"partner_name": "Тестовый партнер",
"partner_guid": "551d7b62-8892-12d9-aa79-605054503031",
"user_id": "1",
"user_roles": [
"Менеджер",
"Логист",
"Бухгалтер"
]
}
任务是在构建报告时使用这些参数 ( userParams
) 进行分组和过滤。
收集、验证数据。现在的问题是:如何通过指标 API 过滤/获取/分组此类数据?例如,获取测试合作伙伴访问的总数(partner_name
或partner_guid
)。或者获取“原始”数据,其中存储在深度中的度量将被放下userParams
以进行独立处理。
或许这是做不到的。我在文档中找到了一个参数列表,其中没有,虽然有ym:s:paramsLevel1
,但我不确定它是什么。
对于调试,我使用这样的脚本,请参阅我的尝试filters:
:
"use strict";
const
querystring = require('querystring'),
https = require('https')
;
let params = {
access_token: "****************", // мой токен
counter: "0000000" // номер счетчика
}
let analyticsParams = {
"ids": `${params.counter}`,
// filters: "EXISTS(ym:s:paramsLevel1=='userParams')", // возвращает ноль
// filters: "EXISTS(ym:s:paramsLevel1=='partner_guid')", // возвращает ноль
// filters: "EXISTS(ym:s:paramsLevel1=='partner_guid' AND ym:s:paramsLevel2=='551d7b62-8892-12d9-aa79-605054503031')", // возвращает ноль
// filters: "EXISTS(ym:pv:URL=='login')", // возвращает ноль, почему?
filters: "ym:s:trafficSource=='organic'", // работает
"metrics": [
"ym:s:visits"
],
dimensions: [ "ym:s:browser" ]
};
let getOptions = {
host: 'api-metrika.yandex.net',
port: '443',
path: '/stat/v1/data/?' + querystring.stringify(analyticsParams),
headers: {
"Content-Type": "application/x-yametrika+json",
"Authorization": `OAuth ${params.access_token}`
}
}
console.log(getOptions);
function getData() {
return new Promise((resolve, reject)=> {
https.get(getOptions, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
data = JSON.parse(data);
if(data.error) {
console.log("Error", data.error);
reject(new Error(data.error));
return;
}
resolve(data);
});
}).on("error", (err) => {
reject(new Error('Произошла ошибка: ' + err.message));
});
});
}
let run = async () => {
try {
let data = await getData();
console.log("----------- resilts -----------");
console.log(JSON.stringify(data));
console.log();
console.log(data.data);
} catch (e) {
console.log(e);
}
}
run();
技术支持报告该参数
userParams
既不能过滤也不能接收数据。