Amplitude дайындары API аркылуу алынууда

тааныштыруу

Амплитуда окуяны оңой орнотуу жана визуалдаштыруу ийкемдүүлүгүнөн улам продукт аналитикасынын куралы катары өзүн жакшы көрсөттү. Жана көбүнчө өзүңүздүн атрибуция моделиңизди, кластердик колдонуучуларды орнотуу же башка BI тутумунда башкаруу тактасын куруу зарылчылыгы бар. Мындай алдамчылыкты Амплитуданын чийки окуя маалыматтары менен гана жасоого болот. Бул макалада минималдуу программалоо билими менен бул маалыматтарды кантип алуу керектиги айтылат.

Пререквизиттер

  1. Окуялар мурунтан эле туура конфигурацияланган жана алар боюнча статистика чогултулган Amplitude долбоору
  2. Python орнотулду (мен 3.8.3 версиясында иштеп жатам), аны менен потенциалдуу окурман жок дегенде базалык деңгээлде иштей алат

нускама

1-кадам. API-ачкыч жана жашыруун ачкыч алуу

Дайындарды жүктөө үчүн, адегенде API ачкычын жана жашыруун ачкычты алышыңыз керек.

Сиз аларды төмөнкү жол менен таба аласыз:

  1. "Маалыматтарды башкаруу" (экрандын төмөнкү сол жагында жайгашкан)
  2. Маалыматтар жүктөлө турган керектүү долбоорду тандап, ага өтүңүз
  3. Ачылган долбоордун менюсунда "Долбоор орнотууларын" тандаңыз.
  4. Биз API-ачкыч жана жашыруун ачкыч саптарын табабыз, көчүрөбүз жана коопсуз жерде сактайбыз.

Чыкпастан, сиз шилтемени ээрчий аласыз, ал жалпысынан төмөнкүдөй көрүнөт:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
бул жерде $$$$$$ – уюмуңуздун амплитудалык логин, ****** – долбоордун номери

2-кадам: Керектүү китепканалардын болушун текшерүү

Жакшы жаңылык, сизде бул китепканалар демейки боюнча орнотулган же жүктөлгөн, бирок текшерүү керек. Жазуу учурунда мен колдонгон китепканалардын толук тизмеси (керектүү жерде кашаанын ичиндеги версиялар көрсөтүлгөн):

  1. суроо-талаптар (2.10.0) - маалыматтарды алуу үчүн api аркылуу суроо-талапты жөнөтүү
  2. pandas (1.0.1) - json окуу, dataframe түзүү жана андан кийин файлга жазуу
  3. zipfile - API аркылуу алынган архивден файлдарды чыгаруу
  4. gzip - .gzден json файлдарын ачуу
  5. os - таңгаксыз архивден файлдардын тизмесин алуу
  6. убакыт - кошумча, скрипттин иштөө убактысын өлчөө
  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 серверине жөнөтүлгөн сурамдын текстине орнотулган; датадан тышкары, суроо-талаптагы "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 = '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)

3.5-кадам. json конверсиясы

Архивден файлдарды чыгарып алгандан кийин, сиз json файлдарын .gz форматына конвертациялашыңыз керек жана андан аркы иштөө үчүн аларды dataframeге жазышыңыз керек.

Көңүл буруңуз, бул жерде сиз жолду кайра өзүңүзгө өзгөртүшүңүз керек жана 000000 ордуна Амплитудадан долбооруңуздун номерин жазыңыз (же архив алынган жолду кол менен ачып, ичиндеги папканын атын караңыз).

Тартипте:

Каталогду өзгөрмөгө жазуу, каталогдон файлдардын тизмесин алуу, бош dataframe түзүү, tqdm туура иштеши үчүн time.sleep(1), циклдин ичинде биз .gz файлдарын ачабыз жана json окуу жана толтуруу үчүн дароо пандаларды колдонобуз. берилген dataframe.

# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+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')
0000' 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')

3.6-кадам. Excelде dataframe жазуу

Excelге жүктөө бул жерде бир гана мисал. Көпчүлүк учурларда, python ичиндеги алынган маалымат алкагы менен иштөө же маалыматтарды сактоого коюу ыңгайлуураак.

Ошондой эле бул жерде маалымат жүктөө жолун өзүңүзгө алмаштырууга туура келет.

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

3.7-кадам. Биз сценарийдин иштөө убактысын эсептейбиз

Учурдагы убакытты б өзгөрмөсүнө жазуу, айырманы жана мүнөттөрдүн санын эсептөө, жалпы мүнөттөрдү көрсөтүү. Бул акыркы кадам.

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

жыйынтыктоо

Сиз таблицага чалып, маалыматтар жазылган amplitude_dataframe өзгөрмөсүн чакырып, аны менен иштей баштасаңыз болот. Анда 50гө жакын тилке болот, алардын ичинен 80% учурларда сиз колдоносуз: event_type - окуянын аталышы, окуя_касиеттери - окуянын параметрлери, event_time - окуянын убактысы, uuid - кардар id, user_properties - кардар параметрлери, адегенде алар менен иштей башташыңыз керек. . Жана өзүңүздүн эсептөөлөрүңүздөгү цифраларды Amplitude панелдериндеги көрсөткүчтөр менен салыштырып жатканда, система уникалдуу кардарларды/фунельдерди ж.б. эсептөө үчүн өзүнүн методологиясын колдоноорун унутпашыңыз керек жана муну жасоодон мурун, сөзсүз түрдө Амплитудалык документацияны окуп чыгышыңыз керек.

Конул бурганын учун рахмат! Эми сиз Амплитудага чийки окуя дайындарын жүктөй аласыз жана аны жумушуңузда толугу менен колдоно аласыз.

Толук сценарий:

# Импорт библиотек
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+'
# Импорт библиотек
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))
0000' 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

Комментарий кошуу