Как получить данные по целям с Яндекс.Метрика? [через апи]

Приветствую всех!
Задача: получить данные по целям с Яндекс.Метрика. Просмотры, визиты можно вывести в виде информера. А вот по целям как создать запросы через reachGoal?
И так, чтобы общее количество выводить, а не за какой-то период.
Суть в том, чтобы вывести для посетителей показания, сколько раз было просмотрено фотографий, воспроизведено видео, скачано видео и т.д.
Заранее благодарен.

Я практично не работал с этим вопросом, поэтому относись к ответу без полного доверия. Все равно попробую подсказать куда смотреть.

Точка входа в целом в апи которое дает данные по целям Введение | API Яндекс Метрики

Вот тут смыслы для goal-ов (конверсий в терминологии документации)
Are you not a robot?. Тебе интересен смысл для reaches.

Тебе надо найти айдишники goal-ов создаваемых через reachGoal. (будет развернутый текст от ИИ в конце моего ответа)

Вот какой код ИИ нагенерировал в ответ на твой запрос. Тебе надо найти айдишники конверсий создаваемых через reachGoal и поиграться с параметрами апи (подобрать и сгенерировать даты). Это пример запроса по одному goal-у, в разрезе дат по характеристике reaches

// Функция для получения данных по целям
function getGoalsStats() {
    const TOKEN = 'ВАШ_ТОКЕН';
    const COUNTER_ID = 'ВАШ_СЧЕТЧИК_ID';
    
    // Запрос к API
    fetch(`https://api-metrika.yandex.net/stat/v1/data?
           metrics=ym:s:goals<goal_id>reaches&
           dimensions=ym:s:date&
           date1=2010-01-01&
           date2=today&
           id=${COUNTER_ID}`, {
        headers: {
            'Authorization': `OAuth ${TOKEN}`
        }
    })
    .then(response => response.json())
    .then(data => {
        // Обработка полученных данных
        displayGoalsData(data);
    });
}

ИИшный ответ где взять айдишник goal


goal_id можно найти несколькими способами:

  1. В интерфейсе Яндекс.Метрики:
  • Зайдите в Яндекс.Метрику
  • Перейдите в раздел “Настройки” → “Цели”
  • У каждой цели будет свой ID в списке целей или в URL при редактировании цели
  1. Через API Яндекс.Метрики:

// Получение списка целей через API
fetch(https://api-metrika.yandex.net/management/v1/counter/${COUNTER_ID}/goals, {
headers: {
‘Authorization’: OAuth ${TOKEN}
}
})
.then(response => response.json())
.then(data => {
console.log(data.goals); // Здесь будет список целей с их ID
});

  1. В URL при редактировании цели:
    Когда вы открываете редактирование цели, в URL будет параметр вида:

https://metrika.yandex.ru/goals?id=XXXXX&goal_id=YYYYY

Где YYYYY - это и есть ID цели.

  1. Через JavaScript-код на странице:

// Получить все цели счётчика
ym(COUNTER_ID, ‘getGoals’, function(goals) {
console.log(goals); // Объект со всеми целями и их ID
});

  1. В коде отправки цели:

// При отправке цели можно использовать как имя цели, так и её ID
ym(COUNTER_ID, ‘reachGoal’, ‘GOAL_NAME’); // По имени цели
// или
ym(COUNTER_ID, ‘reachGoal’, ‘goal_GOAL_ID’); // По ID цели

Пример использования ID цели в запросе к API:

// Для цели с ID 123456
const goalMetrics = ‘ym:s:goal123456reaches’; // Формат: goalreaches

fetch(https://api-metrika.yandex.net/stat/v1/data?metrics=${goalMetrics}&id=${COUNTER_ID}, {
headers: {
‘Authorization’: OAuth ${TOKEN}
}
})
.then(response => response.json())
.then(data => {
console.log(data); // Данные по достижениям цели
});

Важно помнить:

  1. ID цели - это числовое значение
  2. При создании новой цели ID присваивается автоматически
  3. ID цели уникален в пределах одного счётчика
  4. После удаления цели её ID больше не используется для новых целей

ID счётчика и целей я знаю, как достать (они открыто написаны) А что это такое Ваш Токен?

oauth авторизация.

Данные по метрикам логично недоступны обычным людям, а доступны только владельцу метрики. Токен может получить только владелец (механизма не знаю, нужно читать документацию)

Кстати, нехорошая идея вставлять токен на клиент. Любой скучаюший школьник может его взять и с ним подергать апи и как увидеть данные по метрикам так и что-то поменять.

По-хорошему надо бы все данные по метрикам подтянуть на сервере и потом только отдать браузеру. Так пользователь не сможет никак получить доступ к данным ему не предназначающимся.

Но смотри-читай сам. Может там можно сделать токены с ограниченным доступов к данным. Тогда его можно вставлять на клиент.

Благодарю! С этим пока повременю. Но смысл понятен.