Giter Site home page Giter Site logo

ga_data_api's Introduction

API для сервиса сбора данных из GA

Общее

Адрес для отправки запросов:

http://X.X.X.X:XXXX/api/

  • Все обращения к методам API должны производиться POST-методом
  • Отправка данных в методы должна быть в формате JSON
  • В отправляемых JSON данных обязательно должны присутствовать
    • Email пользователя в переменной user
    • секретный ключ в переменной SECRET_API_KEY:
{
    "SECRET_API_KEY": "СЕКРЕТНЫЙ КЛЮЧ",
    "user": "Email пользователя"
}

Используемые методы

API метод Описание Ссылка для отправки запроса
get_jobs_list Получение списка заданий http://X.X.X.X:XXXX/api/get_jobs_list/
add_job Добавление нового задания по сбору данных из GA http://X.X.X.X:XXXX/api/add_job/
check_job Проверка статуса исполнения задания http://X.X.X.X:XXXX/api/check_job/
get_job_result Получение результатов задания http://X.X.X.X:XXXX/api/get_job_result/
remove_job Удаление задания из списка заданий http://X.X.X.X:XXXX/api/remove_job/

Формат входных и исходящих данных

get_jobs_list

  • Ссылка для отправки запроса:

http://X.X.X.X:XXXX/api/get_jobs_list/

  • Формат входных данных:
{
    "SECRET_API_KEY": "СЕКРЕТНЫЙ КЛЮЧ",
    "frequency": "строковое значение",
    "status": "строковое значение",
    "user": "строковое значение"
}
  • Описание параметров входных данных:
Параметр Описание Возможные значение
frequency Необязательный параметр. Задает периодичность заданий, которые необходимо получить daily - задания, выполняемые ежедневно. temp - разовые задания без периодичности
status Необязательный параметр. Указывается статус выполнения задания new - новое задание, сбор данных по которому еще не начат. pending - задание выполняется в данный момент. success - успешно выполненное задание, error - при выполнении задания возникла ошибка
  • Формат исходящих данных в случае успеха:
{
    "success": true,
    "result": [{}] // список доступных по запросу заданий
}
  • Формат исходящих данных в случае ошибки:
{
    "success": false,
    "result": "описание ошибки"
}
  • Пример возвращаемых данных в "result":
[{'id': 70, 'function': '', 'table_name': 'site_cta_header', 'metrics': '[{"expression": "ga:uniqueEvents"}]', 'dimensions': '[{"name": "ga:date"}, {"name": "ga:hostname"}, {"name": "ga:eventAction"}]', 'filtersExpression': 'ga:[email protected].;ga:eventCategory==CTA: Header', 'segment': None, 'add_data': None, 'frequency': 'dilers_temp', 'view_id': '178431333', 'transliterate': 0, 'byday': None, 'date_from': None, 'date_to': None, 'user': None, 'report_link': None, 'status': 'error'}, 
{'id': 71, 'function': '', 'table_name': 'site_menu', 'metrics': '[{"expression": "ga:uniqueEvents"}]', 'dimensions': '[{"name": "ga:date"}, {"name": "ga:hostname"}, {"name": "ga:eventAction"}]', 'filtersExpression': 'ga:[email protected].;ga:eventCategory==Offsite Link;ga:eventAction!~(\\?|innerLink)', 'segment': None, 'add_data': None, 'frequency': 'dilers_temp', 'view_id': '178431323', 'transliterate': 0, 'byday': None, 'date_from': None, 'date_to': None, 'user': None, 'report_link': None, 'status': 'success'}] 

add_job

  • Ссылка для отправки запроса:

http://X.X.X.X:XXXX/api/add_job/

  • Формат входных данных:
{
    "SECRET_API_KEY": "СЕКРЕТНЫЙ КЛЮЧ",
    "user": "строковое значение",
    "job_data":
        {
        "date_from": "2020-09-01", // формат ГГГГ-ММ-ДД
        "date_to": "2020-09-24", // формат ГГГГ-ММ-ДД
        "metrics": ["список"],
        "dimensions": ["список"],
        "filtersExpression": "строковое значение",
        "segment": {"словарь": ""},
        "frequency": "строковое значение",
        "view_id": 123, // числовое значение
        "byday": true, // bool
        "table_name": "строковое значение"
    }
}
  • Описание параметров входных данных:
Параметр Описание Возможные значение
job_data Обязательный параметр. Содержит параметры для сбора данных Параметры указаны ниже
  • Параметры для сбора данных должны передаваться в параметре job_data:
Параметр Описание Возможные значение
date_from Обязательный параметр. Дата, с которой будут начат собраны данные Например, 2020-09-01
date_to Обязательный параметр. Дата, по которую будут собраны данные Например, 2020-09-24
metrics Обязательный параметр. Список метрик, которые необходимо собирать Например, [{"expression": "ga:users"}, {"expression": "ga:sessions"}]
dimensions Обязательный параметр. Список параметров, по которым необходимо собирать метрики Например, [{"name": "ga:date"}, {"name": "ga:landingPagePath"}]
filtersExpression Необязательный параметр. Значение фильтр для сбора данных Например, ga:source=@google
segment Необязательный параметр. Задает сегмент для сбора данных Например, [{"name": "ga:segment"}, {"name": "ga:date"}, {"name": "ga:searchKeyword"}]
frequency Обязательный параметр. Задает периодичность задания daily - задание выполняется ежедневно и собирает данные за предыдущий день. temp - разовое задание без периодичности
view_id Обязательный параметр. ID представления из GA Например, 178431603
byday Обязательный параметр. Задает метод сбора данных true - данные собираются по дням для избежания семплирования false - данные собираются целиком за весь указанный период
table_name Обязательный параметр, если задается frequency со значением "daily". В других случаях необязательный параметр. Задает название для периодического отчета. Только латинские символы и знак _ Например, site_paid_sources
  • Формат исходящих данных в случае успеха:
{
    "success": true,
    "result": 123 // id добавленного задания в числовом значении
}
  • Формат исходящих данных в случае ошибки:
{
    "success": false,
    "result": "описание ошибки"
}

check_job

  • Ссылка для отправки запроса:

http://X.X.X.X:XXXX/api/check_job/

  • Формат входных данных:
{
    "SECRET_API_KEY": "СЕКРЕТНЫЙ КЛЮЧ",
    "id": 123 // id задания в числовом значении
    "user": "строковое значение"
}
  • Описание параметров входных данных:
Параметр Описание Возможные значение
id Обязательный параметр. ID задания Например 123
  • Формат исходящих данных в случае успеха:
{
    "success": true,
    "result": 'статус задания'
}
  • Формат исходящих данных в случае ошибки:
{
    "success": false,
    "result": "описание ошибки"
}

get_job_result

  • Ссылка для отправки запроса:

http://X.X.X.X:XXXX/api/get_job_result/

  • Формат входных данных:
{
    "SECRET_API_KEY": "СЕКРЕТНЫЙ КЛЮЧ",
    "id": 123 // id задания в числовом значении
    "user": "строковое значение"
}
  • Описание параметров входных данных:
Параметр Описание Возможные значение
id Обязательный параметр. ID задания Например 123
  • Формат исходящих данных в случае успеха:
{
    "success": true,
    "result": "ссылка на скачивание отчета"
}
  • Формат исходящих данных в случае ошибки:
{
    "success": false,
    "result": "описание ошибки"
}

remove_job

  • Ссылка для отправки запроса:

http://X.X.X.X:XXXX/api/remove_job/

  • Формат входных данных:
{
    "SECRET_API_KEY": "СЕКРЕТНЫЙ КЛЮЧ",
    "id": 123 // id задания в числовом значении
    "user": "строковое значение"
}
  • Описание параметров входных данных:
Параметр Описание Возможные значение
id Обязательный параметр. ID задания Например 123
  • Формат исходящих данных в случае успеха:
{
    "success": true,
    "result": true
}
  • Формат исходящих данных в случае ошибки:
{
    "success": false,
    "result": "описание ошибки"
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.