Hoihoi i ka ʻikepili Amplitude ma o API

Hōʻike

Ua hōʻike maikaʻi ʻo Amplitude iā ia iho ma ke ʻano he mea hana loiloi huahana ma muli o kāna hoʻonohonoho hanana hanana maʻalahi a me ka hiki ke ʻike. A pinepine pono e hoʻonohonoho i kāu kumu hoʻohālike ponoʻī, nā mea hoʻohana cluster, a i ʻole e kūkulu i kahi dashboard ma kahi ʻōnaehana BI ʻē aʻe. Hiki ke hana i kēlā ʻano hoʻopunipuni me ka ʻikepili hanana hanana mai Amplitude. E haʻi kēia ʻatikala iā ʻoe pehea e loaʻa ai kēia ʻikepili me ka liʻiliʻi o ka ʻike polokalamu.

Nā mea e pono ai

  1. He papahana ma Amplitude kahi i hoʻonohonoho pono ʻia ai nā hanana a hōʻiliʻili ʻia nā helu ma luna o lākou
  2. Ua hoʻokomo ʻia ʻo Python (ke hana nei au ma ka mana 3.8.3), hiki i ka mea heluhelu ke hana me ka liʻiliʻi loa ma kahi pae kumu.

Nā kuhikuhi

KaʻAnuʻu Hana 1. Loaʻa i ka API-ki a me ka huna-ki

No ka hoʻouka ʻana i ka ʻikepili, pono ʻoe e kiʻi i kahi kī API a me kahi kī huna.

Hiki iā ʻoe ke loaʻa iā lākou ma ka hahai ʻana i kēia ala:

  1. "Manage data" (aia ma ka ʻaoʻao hema o ka pale)
  2. E koho i ka papahana i makemake ʻia kahi e hoʻoiho ʻia ai ka ʻikepili a hele i laila
  3. Ma ka papa kuhikuhi papahana e wehe ana, koho i "Nā hoʻonohonoho papahana"
  4. Loaʻa iā mākou ke kī API a me nā kaula huna, kope a mālama iā lākou ma kahi palekana.

Me ke kaomi ʻole, hiki iā ʻoe ke hahai i ka loulou, e like me kēia ma ke ʻano nui:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
kahi $$$$$$ ka inoa amplitude o kāu hui, ʻo ****** ka helu papahana

KaʻAnuʻu Hana 2: Ke nānā ʻana i ka hele ʻana o nā hale waihona puke i makemake ʻia

ʻO ka nūhou maikaʻi, ua kokoke ʻoe i kēia mau hale waihona puke i hoʻokomo ʻia e ka paʻamau a i hoʻoiho ʻia, akā pono ʻoe e nānā. ʻO ka papa inoa piha o nā hale waihona puke aʻu i hoʻohana ai i ka wā e kākau ai (e hōʻike ʻia nā mana i loko o nā pale i kahi kūpono):

  1. noi (2.10.0) - hoʻouna i kahi noi ma o api no ka loaʻa ʻana o ka ʻikepili
  2. pandas (1.0.1) - heluhelu i ka json, hana i ka ʻikepili a laila kākau i kahi faila
  3. zipfile - wehe i nā faila mai kahi waihona i loaʻa ma o ka API
  4. gzip - wehe i nā faila json mai .gz
  5. os - ka loaʻa ʻana o kahi papa inoa o nā faila mai kahi waihona i wehe ʻole ʻia
  6. manawa - koho, e ana i ka manawa holo o ka palapala
  7. tqdm - koho, no ka maʻalahi o ka nānā ʻana i ka holomua ʻana o ka faila

KaʻAnuʻu 3. Kākau i ka palapala hoʻoili ʻikepili

'Ōlelo Aʻo: aia ka palapala hoʻoiho piha ma ka hope o ka ʻatikala; inā makemake ʻoe, hiki iā ʻoe ke lawe koke a nānā i ka wehewehe ʻana i kēlā me kēia ʻanuʻu inā pono.

KaʻAnuʻu 3.1. Ke lawe nei i nā hale waihona puke

Hoʻokomo mākou i nā hale waihona puke a pau i helu ʻia ma ka ʻanuʻu ʻelua.

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

KaʻAnuʻu 3.2. Ke waiho ʻana i kahi noi iā Amplitude

E ʻike kākou i ka hoʻomaka ʻana o ka hoʻokō ʻana a kākau iā ia i ka variable a.

ʻO ka lā hoʻomaka a me ka lā hope ke kuleana no ka manawa no ka hoʻoiho ʻana i ka ʻikepili a ua kūkulu ʻia i loko o ka kikokikona o ka noi i hoʻouna ʻia i ka server Amplitude; ma kahi o ka lā, hiki iā ʻoe ke kuhikuhi i ka hola ma ka hoʻololi ʻana i ka waiwai ma hope o 'T' i ka noi.

ʻO api_key a me secret_key e pili ana i nā waiwai i loaʻa i ka hana mua; no nā kumu palekana, kuhikuhi wau i nā kaʻina maʻamau ma kahi o kaʻu iho.

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

KaʻAnuʻu 3.3. Hoʻoiho ʻana i kahi waihona me ka ʻikepili

Piʻi mai mākou me kahi inoa no ka waihona a kākau iā ia i ka filename variable. No koʻu ʻoluʻolu, hōʻike wau i ka manawa + hōʻike he ʻikepili amplitude kēia. A laila, hoʻopaʻa mākou i ka pane i loaʻa mai Amplitude i loko o ka waihona.

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

KaʻAnuʻu 3.4. Ke kiʻi nei i nā faila mai kahi waihona ma kāu kamepiula

Hoʻokomo ʻia ka waihona zipfile e kōkua i ka unuhi ʻana i nā faila. Ma ke kolu o ka laina, e akahele a kakau iho i kou ala ma kahi e maalahi ai oe e unuhi.

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

KaʻAnuʻu 3.5. json hoʻololi

Ma hope o ka unuhi ʻana i nā faila mai ka waihona, pono ʻoe e hoʻohuli i nā faila json i ka format .gz a kākau iā lākou i loko o kahi dataframe no ka hana hou aku.

E ʻoluʻolu, pono ʻoe e hoʻololi hou i ke ala iā ʻoe iho, a ma kahi o 000000 e kākau i kāu helu papahana mai Amplitude (a i ʻole e wehe lima i ke ala i lawe ʻia ai ka waihona a nānā i ka inoa o ka waihona i loko).

I mea e:

Ke kākau ʻana i kahi papa kuhikuhi i kahi mea hoʻololi, loaʻa i kahi papa inoa o nā faila mai ka papa kuhikuhi, hana i kahi dataframe ʻole, time.sleep(1) no ka tqdm e hana pololei, i loko o ka loop wehe mākou i nā faila .gz a hoʻohana koke i nā pandas e heluhelu i ka json a hoʻopiha. ka ʻikepili i hāʻawi ʻia.

# Преобразование 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')

KaʻAnuʻu 3.6. Ke kākau ʻana i ka ʻikepili ma excel

He laʻana wale nō ka hoʻouka ʻana i excel ma aneʻi. I nā manawa he nui, ʻoi aku ka maʻalahi o ka hana ʻana me ka ʻikepili i loaʻa i loko o ka python a i ʻole e waiho i ka ʻikepili i kahi waihona.

Pono ʻoe e hoʻololi i ke ala hoʻoili ʻikepili ma ʻaneʻi me kāu iho.

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

KaʻAnuʻu 3.7. Helu mākou i ka manawa holo o ka palapala

E hoʻopaʻa ana i ka manawa o kēia manawa ma ka helu b, e helu ana i ka ʻokoʻa a me ka helu o nā minuke, e hōʻike ana i ka huina o nā minuke. ʻO kēia ka hana hope loa.

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

hopena

Hiki iā ʻoe ke kāhea i ka papaʻaina a hoʻomaka e hana pū me ia ma ke kāhea ʻana i ka amplitude_dataframe variable kahi i kākau ʻia ai ka ʻikepili. Loaʻa iā ia ma kahi o 50 kolamu, a ma 80% o nā hihia āu e hoʻohana ai: event_type - event name, event_properties - event parameters, event_time - event time, uuid - client id, user_properties - client parameters, you should start working with them. . A i ka hoʻohālikelike ʻana i nā helu mai kāu helu ponoʻī me nā hōʻailona mai nā dashboards Amplitude, mai poina ʻoe e hoʻohana ana ka ʻōnaehana i kāna ʻano hana ponoʻī no ka helu ʻana i nā mea kūʻai aku / funnels, a me nā mea ʻē aʻe, a ma mua o ka hana ʻana i kēia, pono ʻoe e heluhelu pono i ka palapala Amplitude.

Mahalo i kou nānā ʻana! I kēia manawa hiki iā ʻoe ke hoʻouka i ka ʻikepili hanana maka i Amplitude a hoʻohana piha iā ia i kāu hana.

Palapala holoʻokoʻa:

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

Pākuʻi i ka manaʻo hoʻopuka