{% extends "base.html" %} {% block title %}Game Analytics Dashboard - Admin{% endblock %} {% block content %}

Game & Widget Analytics

Game Sessions

{{ analytics.games.total_sessions or 0 }}

{{ analytics.games.total_completions or 0 }} completed
Widget Views

{{ analytics.widgets.total_views or 0 }}

Across all widgets
Unique Users

{{ analytics.users.unique_players or 0 }}

{{ analytics.users.registered_users or 0 }} registered
Completion Rate

{% if analytics.games.total_sessions > 0 %} {{ "%.1f"|format((analytics.games.total_completions / analytics.games.total_sessions * 100)) }}% {% else %} 0% {% endif %}

Games finished
Daily Usage Trends
Game Types
Games by Type
Sessions started
{% if analytics.games.by_type %}
{% for game_type, count in analytics.games.by_type.items() %} {% endfor %}
Game Type Sessions Popularity
{% if game_type == 'memory' %} Memory {% elif game_type == 'rebus' %} Rebus {% else %} {{ game_type.title() }} {% endif %} {{ count }} {% set percentage = (count / analytics.games.total_sessions * 100) if analytics.games.total_sessions > 0 else 0 %}
{{ "%.1f"|format(percentage) }}%
{% else %}

No game data available for this period

{% endif %}
Widgets by Usage
Total views
{% if analytics.widgets.by_widget %}
{% for widget, count in analytics.widgets.by_widget.items() %} {% endfor %}
Widget Views Share
{% if 'featured' in widget.lower() %} {% elif 'gallery' in widget.lower() %} {% elif 'discovery' in widget.lower() %} {% else %} {% endif %} {{ widget.replace('_', ' ').title() }} {{ count }} {% set percentage = (count / analytics.widgets.total_views * 100) if analytics.widgets.total_views > 0 else 0 %}
{{ "%.1f"|format(percentage) }}%
{% else %}

No widget data available for this period

{% endif %}
Engagement Insights
Most Popular Game
{% if analytics.games.by_type %} {% set popular_game = analytics.games.by_type.items()|list|sort(attribute=1, reverse=true)|first %}

{{ popular_game[0].title() }}

{{ popular_game[1] }} sessions {% else %}

No data

{% endif %}
Most Popular Widget
{% if analytics.widgets.by_widget %} {% set popular_widget = analytics.widgets.by_widget.items()|list|sort(attribute=1, reverse=true)|first %}

{{ popular_widget[0].replace('_', ' ').title() }}

{{ popular_widget[1] }} views {% else %}

No data

{% endif %}
User Engagement
{% set engagement_rate = ((analytics.users.registered_users / analytics.users.unique_players * 100) if analytics.users.unique_players > 0 else 0) %}

{{ "%.1f"|format(engagement_rate) }}%

Registration rate
Peak Activity
{% if analytics.games.daily_usage %} {% set peak_day = analytics.games.daily_usage.items()|list|sort(attribute=1, reverse=true)|first %}

{{ peak_day[1] }}

{{ peak_day[0] }} {% else %}

No data

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