Adobe Analytics 2.0 API 用于获取报表套件事件、道具和 evar 的端点
Adobe Analytics 2.0 API endpoint to get report suite events, props, and evars
我很难在 2.0 API 中找到一种方法来获取给定报表包的 Evar、道具和事件列表。 1.4 版本具有 reportSuite.getEvents() 端点,与 Evars 和 Props 类似。
如果有办法使用 2.0 API 端点获取相同数据,请告诉我。
API v2.0 github docs aren't terribly useful, but the Swagger UI 更有用,它显示了可以推送给它们的端点和参数,您可以与之交互(使用您的 oauth 凭证登录)并查看 requests/responses。
您特别想要的两个 API 端点是 metrics
和 dimensions
。您可以指定许多选项,但要获取所有选项的转储,这些选项的完整端点 URL 将是:
https://analytics.adobe.io/api/[client id]/[endpoint]?rsid=[report suite id]
其中:
[client id]
- 贵公司的客户 ID。 应该 与来自 v1.3/v1.4 API 共享秘密凭证的遗留 username:companyid
(companyid
部分)的值相同,除了它以“0”为后缀,例如如果您的旧 username:companyid
是 "crayonviolent:foocompany",则 [client id]
将是 "foocompany0",因为..原因?我不确定那是什么,但它就是这样。
[endpoint]
- 值应为 "metrics" 以获取事件,值应为 dimensions
以获取道具和 eVar。因此,您将需要发出 2 API 个端点请求。
[rsid]
- 您要从中获取 events/props/eVars 列表的报表包 ID。
示例:
https://analytics.adobe.io/api/foocompany0/metrics?rsid=fooglobal
关于响应需要注意的一件事:它们不像 v1.3 或 v1.4 方法,在这些方法中您只查询那些特定事物的列表。它将分别针对每个事件和维度 return json 对象数组,甚至是原生事件、计算指标、给定维度的分类等。据我所知,没有任何方法可以过滤API 查询(在我能找到的任何文档中,无论如何..),所以你必须自己遍历数组和 select 相关的。
我不知道您使用的是什么语言,但这里有一个 javascript 示例,说明我的基本操作:
var i, l, v, data = { prop:[], evar: [], events:[] };
// dimensionsList - the JSON object returned from dimensions API call
// for each dimension in the list..
for (i=0,l=dimensionsList.length;i<l;i++) {
// The .id property shows the dimension id to eval
if ( dimensionsList[i].id ) {
// the ones we care about are e.g. "variables/prop1" or "variables/evar1"
// note that if you have classifications on a prop or eVar, there are entries
// that look like e.g. "variables/prop1.1" so regex is written to ignore those
v = (''+dimensionsList[i].id).match(/^variables\/(prop|evar)[0-9]+$/);
// if id matches what we're looking for, push it to our data.prop or data.evar array
v && v[1] && data[v[1]].push(dimensionsList[i]);
}
}
// metricsList - the JSON object returned from metrics API call
// basically same song and dance as above, but for events.
for (var i=0,l=metricsList.length;i<l;i++) {
if ( metricsList[i].id ) {
// events ids look like e.g. "metrics/event1"
var v = (''+metricsList[i].id).match(/^metrics\/event[0-9]+$/);
v && data.events.push(metricsList[i]);
}
}
然后结果 data
对象将有 data.prop
、data.evar
和 data.events
,每个都是各自 props/evars/events 的数组。
data.events[n]
的示例对象条目:
{
"id": "metrics/event1",
"title": "(e1) Some event",
"name": "(e1) Some event",
"type": "int",
"extraTitleInfo": "event1",
"category": "Conversion",
"support": ["oberon", "dataWarehouse"],
"allocation": true,
"precision": 0,
"calculated": false,
"segmentable": true,
"supportsDataGovernance": true,
"polarity": "positive"
}
data.evar[n]
的示例对象条目:
{
"id": "variables/evar1",
"title": "(v1) Some eVar",
"name": "(v1) Some eVar",
"type": "string",
"category": "Conversion",
"support": ["oberon", "dataWarehouse"],
"pathable": false,
"extraTitleInfo": "evar1",
"segmentable": true,
"reportable": ["oberon"],
"supportsDataGovernance": true
}
data.prop[n]
的示例对象条目:
{
"id": "variables/prop1",
"title": "(c1) Some prop",
"name": "(c1) Some prop",
"type": "string",
"category": "Content",
"support": ["oberon", "dataWarehouse"],
"pathable": true,
"extraTitleInfo": "prop1",
"segmentable": true,
"reportable": ["oberon"],
"supportsDataGovernance": true
}
我很难在 2.0 API 中找到一种方法来获取给定报表包的 Evar、道具和事件列表。 1.4 版本具有 reportSuite.getEvents() 端点,与 Evars 和 Props 类似。
如果有办法使用 2.0 API 端点获取相同数据,请告诉我。
API v2.0 github docs aren't terribly useful, but the Swagger UI 更有用,它显示了可以推送给它们的端点和参数,您可以与之交互(使用您的 oauth 凭证登录)并查看 requests/responses。
您特别想要的两个 API 端点是 metrics
和 dimensions
。您可以指定许多选项,但要获取所有选项的转储,这些选项的完整端点 URL 将是:
https://analytics.adobe.io/api/[client id]/[endpoint]?rsid=[report suite id]
其中:
[client id]
- 贵公司的客户 ID。 应该 与来自 v1.3/v1.4 API 共享秘密凭证的遗留 username:companyid
(companyid
部分)的值相同,除了它以“0”为后缀,例如如果您的旧 username:companyid
是 "crayonviolent:foocompany",则 [client id]
将是 "foocompany0",因为..原因?我不确定那是什么,但它就是这样。
[endpoint]
- 值应为 "metrics" 以获取事件,值应为 dimensions
以获取道具和 eVar。因此,您将需要发出 2 API 个端点请求。
[rsid]
- 您要从中获取 events/props/eVars 列表的报表包 ID。
示例:
https://analytics.adobe.io/api/foocompany0/metrics?rsid=fooglobal
关于响应需要注意的一件事:它们不像 v1.3 或 v1.4 方法,在这些方法中您只查询那些特定事物的列表。它将分别针对每个事件和维度 return json 对象数组,甚至是原生事件、计算指标、给定维度的分类等。据我所知,没有任何方法可以过滤API 查询(在我能找到的任何文档中,无论如何..),所以你必须自己遍历数组和 select 相关的。
我不知道您使用的是什么语言,但这里有一个 javascript 示例,说明我的基本操作:
var i, l, v, data = { prop:[], evar: [], events:[] };
// dimensionsList - the JSON object returned from dimensions API call
// for each dimension in the list..
for (i=0,l=dimensionsList.length;i<l;i++) {
// The .id property shows the dimension id to eval
if ( dimensionsList[i].id ) {
// the ones we care about are e.g. "variables/prop1" or "variables/evar1"
// note that if you have classifications on a prop or eVar, there are entries
// that look like e.g. "variables/prop1.1" so regex is written to ignore those
v = (''+dimensionsList[i].id).match(/^variables\/(prop|evar)[0-9]+$/);
// if id matches what we're looking for, push it to our data.prop or data.evar array
v && v[1] && data[v[1]].push(dimensionsList[i]);
}
}
// metricsList - the JSON object returned from metrics API call
// basically same song and dance as above, but for events.
for (var i=0,l=metricsList.length;i<l;i++) {
if ( metricsList[i].id ) {
// events ids look like e.g. "metrics/event1"
var v = (''+metricsList[i].id).match(/^metrics\/event[0-9]+$/);
v && data.events.push(metricsList[i]);
}
}
然后结果 data
对象将有 data.prop
、data.evar
和 data.events
,每个都是各自 props/evars/events 的数组。
data.events[n]
的示例对象条目:
{
"id": "metrics/event1",
"title": "(e1) Some event",
"name": "(e1) Some event",
"type": "int",
"extraTitleInfo": "event1",
"category": "Conversion",
"support": ["oberon", "dataWarehouse"],
"allocation": true,
"precision": 0,
"calculated": false,
"segmentable": true,
"supportsDataGovernance": true,
"polarity": "positive"
}
data.evar[n]
的示例对象条目:
{
"id": "variables/evar1",
"title": "(v1) Some eVar",
"name": "(v1) Some eVar",
"type": "string",
"category": "Conversion",
"support": ["oberon", "dataWarehouse"],
"pathable": false,
"extraTitleInfo": "evar1",
"segmentable": true,
"reportable": ["oberon"],
"supportsDataGovernance": true
}
data.prop[n]
的示例对象条目:
{
"id": "variables/prop1",
"title": "(c1) Some prop",
"name": "(c1) Some prop",
"type": "string",
"category": "Content",
"support": ["oberon", "dataWarehouse"],
"pathable": true,
"extraTitleInfo": "prop1",
"segmentable": true,
"reportable": ["oberon"],
"supportsDataGovernance": true
}