Cliente para la plataforma Umami Analytics de código abierto, preservando la privacidad, basada en httpx y pydantic .
umami-analytics está destinado a agregar datos personalizados a su instancia de Umami (autohospedado o SaaS). Muchos eventos umami pueden suministrarse directamente desde HTML a través de sus atributos data-* . Sin embargo, algunos no pueden. Por ejemplo, si tiene un evento activado en su aplicación pero no tiene una acción HTML clara, puede agregar eventos personalizados. Estos aparecerán en la parte inferior de su página de Umami Analtytics para un sitio web.
Un ejemplo es un evento de curso de compra que ocurre en el fondo del código de Python en lugar de en HTML en Talk Python Training. Así es como se ve nuestra sección de eventos para un día de fin de semana típico (hora del Pacífico de EE. UU.):
La API de Umami es extensa y gran parte de eso está destinada a que su código frontend pueda funcionar. Probablemente no quieras o necesitas eso. umami-analytics solo cubre el subconjunto que la mayoría de los desarrolladores necesitarán para acciones comunes de SaaS, como agregar eventos personalizados. Dicho esto, los PR son malos.
Vea el ejemplo de uso a continuación para la API de Python alrededor de estas características.
? Async es compatible pero no es necesario para su código Python. Para las funciones que acceden a la red, hay una variante func() y func_async() que funciona con async de Python y await .
Solo pip install umami-analytics
import umami
umami . set_url_base ( "https://umami.hostedbyyouorthem.com" )
# Auth is NOT required to send events, but is for other features.
login = umami . login ( username , password )
# Skip the need to pass the target website in subsequent calls.
umami . set_website_id ( 'cc726914-8e68-4d1a-4be0-af4ca8933456' )
umami . set_hostname ( 'somedomain.com' )
# List your websites
websites = umami . websites ()
# Create a new event in the events section of the dashboards.
event_resp = umami . new_event (
website_id = 'a7cd-5d1a-2b33' , # Only send if overriding default above
event_name = 'Umami-Test' ,
title = 'Umami-Test' , # Defaults to event_name if omitted.
hostname = 'somedomain.com' , # Only send if overriding default above.
url = '/users/actions' ,
custom_data = { 'client' : 'umami-tester-v1' },
referrer = 'https://some_url' )
# Create a new page view in the pages section of the dashboards.
page_view_resp = umami . new_page_view (
website_id = 'a7cd-5d1a-2b33' , # Only send if overriding default above
page_title = 'Umami-Test' , # Defaults to event_name if omitted.
hostname = 'somedomain.com' , # Only send if overriding default above.
url = '/users/actions' ,
referrer = 'https://some_url' )
# Call after logging in to make sure the auth token is still valid.
umami . verify_token ()Este listado de código es un código psuedo de muy alta fidelidad. Si desea un ejemplo de ejecutable realmente, vea el cliente de ejemplo en el repositorio.
Consulte la documentación de la API para agregar los puntos finales restantes. Los PR son bienvenidos. Pero primero abra un problema primero para ver si la función propuesta se ajusta a la dirección de esta biblioteca.
Disfrutar.