{"adoption": {"forks": 174, "observed_at": "2026-08-28T04:04:17.659221+00:00", "stars": 1301}, "canonical_url": "https://ross.abutalabs.com/products/django-analytical", "card": {"archived": false, "artifact_type": "library", "description": "Analytics services for Django projects", "domain": ["web-development", "analytics", "backend"], "enriched": true, "function": ["analytics", "templating", "middleware"], "health_score": 63, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["jazzband/django-analytical"], "name": "jazzband/django-analytical", "platform": ["python"], "pushed_at": "2026-03-08T16:10:32+00:00", "repo": "jazzband/django-analytical", "stars": 1301, "tags": ["django", "web-analytics", "tracking", "jazzband", "template-tags", "web-server"], "topics": ["python", "django", "analytics", "templates"], "urls": [], "use_cases": ["add Google Analytics to a Django site without editing templates", "integrate multiple analytics services like Matomo, Mixpanel, and Hotjar in one Django project", "keep tracking IDs and analytics configuration out of Django templates", "set up asynchronous analytics tracking code following each service's recommended installation", "swap analytics providers without rewriting template code"], "what_it_is": "A Django application that integrates many third-party analytics services into Django projects via a generic template tag interface. It hides service-specific JavaScript tracking code and configuration details from templates, keeping identifiers in settings.", "when_to_avoid": ["your project is not built on Django", "you need server-side or first-party analytics rather than client-side JavaScript tracking", "you use a service not on the supported list and cannot extend it"], "when_to_choose": ["you run a Django project and want simple, centralized analytics integration", "you need to support several analytics or marketing services behind one consistent interface", "you want tracking configuration in settings rather than scattered across templates"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/django-analytical", "repo": "jazzband/django-analytical", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:17.659221+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:52:15.212199+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ab7b208388e475f8781b89c8bc1778520cf8b80a72fb33cf3abd3bb54128111", "fetched_at": "2026-08-28T04:04:17.659221+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jazzband/django-analytical"}, {"content_hash": "60dbf6f42ecfa2358587ba126fd777f441f71580fe35513e375f394fffa9b8e7", "fetched_at": "2026-08-29T12:09:45.138139+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/django-analytical/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 71, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5707, "days_push": 178, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}