Skip to main content

Track & visualize user interactions with your streamlit app.

Project description

streamlit-analytics2 👀

PyPi CodeFactor PyPI - Downloads Build Status Coverage

Enhanced tracking & visualization for your Streamlit apps.

streamlit-analytics2 is a fork and extension of the original streamlit-analytics, aimed at improving and securing the analytics functionality within Streamlit applications. With minimal setup, track user interactions and visualize analytics directly in your browser, akin to Google Analytics but tailored for Streamlit.

This fork was initiated due to the inability to collaborate directly on the upstream project, which currently has several unresolved security issues and bugs. Our intention is to maintain a positive relationship with the original project and its creator, focusing on enhancing the tool's reliability and security for the community.

[!Note] This fork is confirmed to fix the deprecation st.experimental_get_query_params alerts. Context
It also resolved 25 security issues that exist in the upstream (2 Critical, 11 High, 10 Moderate, 2 Low)

This project is in active development. We welcome contributions and address security concerns on a best-effort basis, with details available in our CONTRIBUTING.md and SECURITY.md respectively.

Installation

pip install streamlit-analytics2

Migration from upstream streamlit-analytics

Only two single characters need to be changed and this has been tested and verified to work.

  1. Change your requirements.txt or other dependency file to use 'streamlit-analytics2'. Just add a '2'
  2. Change your code import to use 'streamlit_analytics2 as streamlit_analytics'. Also, just add a '2'. Seen below.

[!IMPORTANT] This project aims to be backwards compatible with the upstream and migration literally just means adding the number 2 and getting the new package.
The above steps should be sufficient but if you need more steps, check out our Migration Guide.

How to Use

Simple integration with any Streamlit app:

import streamlit as st
import streamlit_analytics2 as streamlit_analytics

with streamlit_analytics.track():
    st.write("Hello, World!")
    st.button("Click me")

All interactions are now tracked, supporting all standard Streamlit widgets.

Another way to get the tracking is to call the streamlit_analytics.track() on your main() function:

import streamlit as st
import streamlit_analytics2 as streamlit_analytics

with streamlit_analytics.track():
    main()

def main():
    st.write("Hello, World!")
    st.button("Click me")

Using streamlit_analytics.track() is the recommended method and will become the primary way to initiate streamlit-analytics2 after the upcoming v.1.0.0 release.

Moving Forward

  • TODOs and Feature Requests: We've transitioned our roadmap and feature requests to GitHub Issues. Feel free to contribute ideas or report bugs!
  • Advanced Configuration: Detailed guidance on advanced setup (including password protection and database integration) options are available in our Project Wiki.
  • Improved Performance: We are focused on providing a use of streamlit-analytics2 that doesn't impact the performance of your app.
    All suggestions and inputs are welcome on our forum

Contributing

Your contributions are welcome! Please refer to our CONTRIBUTING.md for guidelines on how to make a difference. The step by step guide will show you how to set up a dev environment, testing standards and how to make a PR.

Security

We prioritize the security of our users' data. For reporting security vulnerabilities or for more information, please review our SECURITY.md.

Acknowledgments

A special thanks to jrieke and all contributors to the original streamlit-analytics project. Your work has inspired continued innovation and community collaboration.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamlit_analytics2-0.7.3.tar.gz (15.3 kB view hashes)

Uploaded Source

Built Distribution

streamlit_analytics2-0.7.3-py3-none-any.whl (13.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page