Документы github API v2.0 не очень полезны, но пользовательский интерфейс Swagger немного более полезен, показывая конечные точки и параметры, которые вы можете передать им, и выможете взаимодействовать с ним (входя в систему с помощью oauth) и просматривать запросы / ответы.
В частности, вам нужны две конечные точки API: metrics
и dimensions
. Существует несколько опций, которые вы можете указать, но для того, чтобы получить дамп всех из них, полный URL-адрес конечной точки будет:
https://analytics.adobe.io/api/[client id]/[endpoint]?rsid=[report suite id]
Где:
[client id]
- идентификатор клиента для вашей компании. Это должно быть тем же значением, что и унаследованная username:companyid
(часть companyid
) из общих секретных учетных данных API v1.3 / v1.4, за исключением того, что к нему добавляется суффикс "0",Например, если ваш старый username:companyid
был "crayonviolent: foocompany", [client id]
был бы "foocompany0", потому что ... причины? Я не уверен, о чем это, но это то, что есть.
[endpoint]
- значение должно быть «метрикой» для получения событий, и dimensions
для получения реквизитов и электронных переменных. Таким образом, вам нужно будет сделать 2 запроса конечной точки API.
[rsid]
- Идентификатор набора отчетов, из которого вы хотите получить список событий / реквизитов / электронных переменных.
Пример:
https://analytics.adobe.io/api/foocompany0/metrics?rsid=fooglobal
Следует отметить одну вещь: ответы не похожи на методы v1.3 или v1.4, где вы запрашиваете список только этих конкретных вещей. Он будет возвращать массив объектов json для каждого отдельного события и измерения, соответственно, даже нативных, вычисленных метрик, классификаций для данного измерения и т. Д. AFAIK Не существует способа фильтрации запроса API (это есть в любой документации, которую яможно найти, в любом случае ..), так что вам придется перебирать массив и выбирать нужные из них самостоятельно.
Я не знаю, какой язык вы используете, но вот пример 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
, каждый из которых представляет собой массив соответствующих реквизитов / событий / событий.
Пример записи объекта для 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
}