Install Chartsy on Django
Add the script to the base template every page extends.
1Add the script to your base template
Copy your snippet from Growth Attribution in the Chartsy sidebar: step 1 of Set up tracking has it with your site's public key, which is safe to expose:
Paste it in the <head> of the template every page extends - usually templates/base.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{% block title %}{% endblock %}</title>
<script async src="https://chartsy.fra1.digitaloceanspaces.com/production/static/track.js"
data-key="ch_pk_..."
data-api="https://dashboard.chartsy.app/api/attribution"></script>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>Check that your signup page extends it too. If you use django-allauth, make sure its pages render through your base template (override its layout if not) - a signup page without the script shows every signup as an unknown source.
Add it once. Two copies on the same page double-count everything.
2Check it worked
Open your deployed site in a private window, then in Chartsy go to Settings → Domains and click View setup checklist on the site's row. "Add tracking snippet" flips to done as soon as the first visit lands - it is inferred from real traffic, so it confirms the snippet is firing, not just pasted.
Nothing arriving? View the page source and confirm the <script> tag is there with your real key. A blank or placeholder key is the most common cause.
Testing locally records nothing: the script ignores localhost and private IP addresses. Automated browsers (Playwright, Puppeteer, Selenium, headless Chrome) are ignored too, so automated tests won't show up in your reports.
3Track signups
The script now records where each visitor came from. To see which channels bring signups - and later revenue - tell Chartsy who signed up.
Other stacks: see all signup tracking guides.


