Recuperazione di dati Amplitude via API

Introduzione

Amplitude hà dimustratu assai bè cum'è un strumentu di analisi di u produttu per via di a so facilità di cunfigurazione di l'avvenimentu è di a flessibilità di visualizazione. È spessu ci hè bisognu di stabilisce u vostru propiu mudellu di attribuzione, l'utilizatori di cluster, o di custruisce un dashboard in un altru sistema di BI. Hè solu pussibule di realizà un tali fraudulente cù dati di l'avvenimentu crudu da Amplitude. Questu articulu vi diciarà cumu uttene queste dati cù una cunniscenza minima di prugrammazione.

Prerequisites

  1. Un prughjettu in Amplitude in quale l'avvenimenti sò digià cunfigurati currettamente è e statistiche sò cullate nantu à elli
  2. Python hè stallatu (aghju travagliatu in a versione 3.8.3), chì u lettore potenziale pò digià travaglià cù almenu à un livellu basicu.

Instructions

Passu 1. Ottenimentu API-key è secret-key

Per caricate dati, avete prima bisognu di ottene una chjave API è una chjave secreta.

Pudete truvà elli seguendu a strada seguente:

  1. "Gestisce i dati" (situatu in u fondu à manca di u screnu)
  2. Selezziunà u prughjettu desideratu da quale dati sarà telecaricatu è vai à lu
  3. In u menù di prughjettu chì si apre, selezziunate "Configurazione di u prughjettu"
  4. Truvemu l'API-key è secret-key strings, copiate è salvate in un locu sicuru.

Senza cliccà, pudete seguità u ligame, chì in generale pare cusì:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
induve $$$$$$ hè u login di ampiezza di a vostra urganizazione, ****** hè u numeru di prughjettu

Passu 2: Cuntrollà a prisenza di i biblioteche nicissarii

A bona nutizia hè chì quasi certamente avete digià queste librerie installate per difettu o scaricate, ma avete bisognu di verificà. A lista cumpleta di biblioteche chì aghju utilizatu à u mumentu di a scrittura (i versioni in parentesi sò indicati induve apprupriatu):

  1. richieste (2.10.0) - mandendu una dumanda via api per riceve dati
  2. pandas (1.0.1) - leghje json, creendu un dataframe è dopu scrive in un schedariu
  3. zipfile - estrae i schedari da un archiviu ricevutu via l'API
  4. gzip - unpacking json files from .gz
  5. os - ottene una lista di schedari da un archiviu unpacked
  6. tempu - opzionale, misura u tempu di esecuzione di u script
  7. tqdm - opzionale, per un seguimentu faciule di u prugressu di trasfurmazioni di i fugliali

Passu 3. Scrivite un script di carica di dati

Suggerimentu: u script di scaricamentu cumpletu hè à a fine di l'articulu; se vulete, pudete piglià immediatamente è riferite à e spiegazioni passu à passu se necessariu.

Passu 3.1. Importazione di biblioteche

Avemu impurtà tutte e biblioteche listati in u sicondu passu.

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

Passu 3.2. Invia una dumanda à Amplitude

Detectemu l'iniziu di l'esecuzione di u script è scrivitemu à a variabile a.

A data di partenza è a data di fine sò rispunsevuli di u periodu di scaricamentu di i dati è sò integrate in u testu di a dumanda mandata. servitore Ampiezza, in più di a data, pudete ancu specificà l'ora cambiendu u valore dopu à 'T' in a dumanda.

api_key è secret_key currispondenu à i valori ottenuti in u primu passu; per ragioni di sicurità, specifichi sequenze aleatorii quì invece di a mo propria.

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. Запрос отправлен')

Passu 3.3. Scaricatu un archiviu cù dati

Avemu un nome per l'archiviu è scrivitemu à a variabile di u nome di file. Per a mo comodità, aghju indicatu u periodu + indicanu chì questu hè dati di amplitude. Dopu, avemu registratu a risposta ricevuta da Amplitude in l'archiviu.

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

Passu 3.4. Ritruvà i schedari da un cartulare nant'à u vostru urdinatore

A biblioteca zipfile entra in ghjocu per aiutà à estrazione di i schedari. In a terza linea, fate attenzione è scrivite a vostra strada induve hè più còmuda per voi per estrarre.

# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)

Passu 3.5. cunversione json

Dopu avè estratti i schedari da l'archiviu, avete bisognu di cunvertisce i schedari json in u formatu .gz è scrivite in un dataframe per più travagliu.

Per piacè nutate chì quì avete bisognu di cambià a strada di novu à u vostru propiu, è invece di 000000 scrivite u vostru numeru di prughjettu da Amplitude (o apre manualmente u percorsu induve l'archiviu hè stata estratta è fighjate u nome di u cartulare dentru).

Per:

Scrivite un repertoriu à una variabile, ottene una lista di schedari da un repertoriu, creendu un dataframe viotu, time.sleep (1) per tqdm per travaglià currettamente, in u ciclu apremu i fugliali .gz è immediatamente aduprà pandas per leghje json è riempie. u dataframe datu.

# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
    with gzip.open(directory + '\' + i) as f:
        add = pd.read_json(f, lines = 'True')
    amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)    
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')

Passu 3.6. Scrittura dataframe in excel

L'upload à excel hè solu un esempiu quì. In parechji casi, hè più còmuda di travaglià cù u quadru di dati resultanti in python o mette i dati in almacenamiento.

Vi tuccherà à rimpiazzà a strada di upload di dati quì cù u vostru propiu.

# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)

Passu 3.7. Contemu u tempu di esecuzione di u script

Registrazione di l'ora attuale in a variabile b, calculà a diferenza è u numeru di minuti, affissendu i minuti totali. Questu hè l'ultimu passu.

b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))

cunchiusioni

Pudete chjamà a tavula è cumincià à travaglià cun ellu chjamendu a variàbile amplitude_dataframe in quale i dati sò stati scritti. Avarà circa 50 colonne, di quale in u 80% di i casi avete aduprà: event_type - event name, event_properties - event parameters, event_time - event time, uuid - client id, user_properties - client parameters, duvete principià à travaglià cun elli prima. . È quandu paragunate i figuri di i vostri calculi cù l'indicatori da i dashboards di Amplitude, ùn deve micca scurdate chì u sistema usa a so propria metodulugia per calculà clienti / funnels unichi, ecc.

Grazie per a vostra attenzione! Avà pudete caricate dati di l'avvenimenti crudi à Amplitude è aduprà cumplettamente in u vostru travagliu.

Scrittura sana:

# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# Параметры начальной и конечной даты
startdate = '20200627'
enddate = '20200628'

api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# Отправление запроса в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. Запрос отправлен')

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

# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)

# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
    with gzip.open(directory + '\' + i) as f:
        add = pd.read_json(f, lines = 'True')
    amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)    
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')

# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)

b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))

Source: www.habr.com

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster