Получение данных Amplitude через API

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Введение

Amplitude как инструмент продуктовой аналитики очень хорошо зарекомендовал себя благодаря несложной настройке событий и гибкости визуализаций. И нередко возникает потребность наладить собственную модель атрибуции, провести кластеризацию пользователей или построить дашборд в другой BI-системе. Выполнить подобную махинацию возможно, только имея сырые данные о событиях из Amplitude. О том, как получить эти данные с минимальными знаниями программирования — и будет в этой статье.

Пререквизит

  1. Проект в Amplitude, в котором уже корректно настроены события, и по ним собирается статистика
  2. Установлен python (работаю в версии 3.8.3), с которым потенциальный читатель уже умеет работать хотя бы на базовом уровне

Инструкция

Шаг 1. Получение API-key и secret-key

Чтобы выгрузить данные, в первую очередь необходимо получить API-key и secret-key.

Найти их можно, перейдя по следующему пути:

  1. «Manage data» (находиться в левой нижней части экрана)
  2. Выбираем нужный проект, из которого будут выгружаться данные, и переходим в него
  3. В открывшемся меню проекта выбираем «Project settings»
  4. Находим строки API-key и secret-key, копируем и сохраняем их в надежном месте.

Без прокликивания можно перейти по ссылке, которая в общем виде выглядит так:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
где $$$$$$ — логин вашей организации в amplitude, ****** — номер проекта

Шаг 2. Проверка наличия нужных библиотек

Хорошая новость в том, что эти библиотеки почти наверняка уже у вас установлены по умолчанию или скачаны, но проверить необходимо. Полный список используемых мною библиотек на момент написания статьи (в скобках указаны версии, где уместно):

  1. requests (2.10.0)- отправление запроса через api для получения данных
  2. pandas (1.0.1) — чтение json, создание dataframe и последующая запись в файл
  3. zipfile — извлечь файлы из архива, полученного через API
  4. gzip — распаковка json файлов из .gz
  5. os — получение списка файлов из распакованного архива
  6. time — необязательная, измерение времени работы скрипта
  7. tqdm — необязательная, для удобства наблюдения за прогрессом обработки файлов

Шаг 3. Написание скрипта загрузки данных

Хинт: полный скрипт загрузки находится в конце статьи, при желании можно сразу взять его и обращаться к пошаговым пояснениям при необходимости.

Шаг 3.1. Импорт библиотек

Производим импорт всех библиотек, перечисленных на втором шаге.

# Импорт библиотек import requests import pandas as pd import zipfile import gzip import os import time import tqdm from tqdm import tqdm 

Шаг 3.2. Отправление запроса в Amplitude

Засечем начало выполнения скрипта и запишем в переменную a.

startdate и enddate отвечают за период для выгрузки данных и встраиваются в текст отправленного запроса на сервер Amplitude, помимо даты можно также указывать час, меняя значение после 'T' в запросе.

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

a = time.time() # Параметры начальной и конечной даты startdate = '20200627' enddate = '20200628'  api_key = 'kldfg844203rkwekfjs9234' secret_key = '094tfjdsfmw93mxwfek' # Отправление запроса в Amplitude response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key)) print('1. Запрос отправлен') 

Шаг 3.3. Скачивание архива с данными

Придумываем название для архива и записываем в переменную filename. Для своего удобства я указываю период + указываю, что это данные amplitude. Далее записываем полученный ответ от Amplitude в архив.

# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
    code.write(response.content)
print('2. Архив с файлами успешно скачан') 

Шаг 3.4. Извлечение файлов в папке на компьютере

В дело вступает библиотека zipfile, которая поможет осуществить извлечение файлов. В третьей строке будьте внимательны и пропишите свой путь, куда вам удобнее произвести извлечение.

# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')

z.extractall(path = 'C:Users...'+filename)

print('3. Архив с файлами извлечен и записан в папку ' + filename)

Источник: habr.com

Комментарии: