{% extends 'base.html' %} {% block title %}Analytics — {{ site.name }} — AgentForms{% endblock %} {% block head_extra %} {% endblock %} {% block content %} {% with messages = get_flashed_messages(with_categories=true) %} {% if messages %} {% for category, message in messages %}
{{ message }}
{% endfor %} {% endif %} {% endwith %}

{{ site.name }} — Analytics

Submission analytics and spam tracking

← Back
{{ summary.total_submissions }}
Total Submissions
{{ summary.total_spam }}
Total Spam Blocked
{{ summary.today_submissions }}
Today
{{ summary.week_submissions }}
This Week

Submissions Over Time

Form Impressions & Conversions

{% if analytics_level == 'advanced' %} {% if impressions %}
{{ impressions.impressions }}
Impressions
{{ impressions.submissions }}
Submissions
{{ impressions.conversion_rate }}%
Conversion Rate
Impressions
Submissions
{% else %}

No impression data yet. Install the embed SDK to start tracking.

{% endif %} {% elif analytics_level == 'basic' %}

📊 Track form views and conversion rates. Available on Pro and above.

View Plans
{% else %}

📊 Track form views and conversion rates. Available on Pro and above.

View Plans
{% endif %}

Top Locations

{% if analytics_level in ['standard', 'advanced'] %} {% if geo and (geo.top_cities or geo.top_countries) %}
{% if geo.top_cities %}

Top Cities

{% set max_city = geo.top_cities[0].count %} {% for c in geo.top_cities %}
{{ c.city }}
{{ c.count }}
{{ c.country }}
{% endfor %}
{% endif %} {% if geo.top_countries %}

Top Countries

{% set max_country = geo.top_countries[0].count %} {% for c in geo.top_countries %}
{{ c.country }}
{{ c.count }}
{% endfor %}
{% endif %}
{% else %}

No location data yet. Geolocation is tracked on submissions.

{% endif %} {% else %}

🌍 See where your form submissions come from. Available on Starter and above.

View Plans
{% endif %}

Device Breakdown

{% if analytics_level in ['standard', 'advanced'] %} {% if device and (device.devices or device.browsers or device.os) %}
{% if device.devices %}

Devices

{% for d in device.devices %}
{{ d.label }}
{{ d.count }}
{{ d.pct }}%
{% endfor %}
{% endif %} {% if device.browsers %}

Browsers

{% for d in device.browsers %}
{{ d.label }}
{{ d.count }}
{{ d.pct }}%
{% endfor %}
{% endif %} {% if device.os %}

OS

{% for d in device.os %}
{{ d.label }}
{{ d.count }}
{{ d.pct }}%
{% endfor %}
{% endif %}
{% else %}

No device data yet. Device parsing runs on form submissions.

{% endif %} {% else %}

📱 See what devices and browsers your visitors use. Available on Starter and above.

View Plans
{% endif %}

Session Insights

{% if analytics_level == 'advanced' %}
{{ session_stats.total_sessions if session_stats else 0 }}
Form Sessions
{{ session_stats.completed_sessions if session_stats else 0 }}
Completed
{{ session_stats.abandonment_rate if session_stats else 0 }}%
Abandonment Rate
{{ "%.0fs"|format(session_stats.avg_completion_time_seconds) if session_stats and session_stats.avg_completion_time_seconds else '—' }}
Avg Completion (sec)
{{ session_stats.return_visitor_count if session_stats else 0 }}
Return Visitors
{{ session_stats.return_visitor_rate if session_stats else 0 }}%
Return Rate
{% if field_dropoff and field_dropoff|length > 0 %}

Field Drop-off (where visitors stopped)

{% set max_drop = field_dropoff[0].drop_off_rate if field_dropoff|length > 0 else 1 %} {% for f in field_dropoff[:8] %}
{{ f.field_key }}
{{ f.abandoned }}
{{ f.drop_off_rate }}%
{% endfor %} {% endif %} {% else %}

🎯 Track visitor sessions, abandonment, and field-level drop-off. Available on Pro and above.

View Plans
{% endif %}

Daily Breakdown

{% if analytics %} {% for day in analytics|reverse %} {% endfor %}
Date Submissions Spam Clean
{{ day.day }} {{ day.submission_count }} {% if day.spam_count > 0 %} {{ day.spam_count }} {% else %} — {% endif %} {{ day.submission_count - day.spam_count }}
{% else %}

No analytics data yet. Submissions will appear here.

{% endif %}
{% endblock %} {% block scripts %} {% endblock %}