Конечная точка API Adobe Analytics 2.0 для получения событий, реквизитов и событий набора отчетов - PullRequest
0 голосов
/ 18 октября 2019

Мне трудно найти способ в API 2.0, чтобы я мог получить список Evars, Props и Events для данного набора отчетов. Версия 1.4 имеет конечную точку reportSuite.getEvents () и аналогична для Evars и Props.

Пожалуйста, дайте мне знать, если есть способ получить те же данные, используя конечные точки API 2.0.

1 Ответ

1 голос
/ 18 октября 2019

Документы 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
}
...