{% extends "admin/_admin_base.html" %}
{% from "components/pagination.html" import render_pagination %}
{% block title %}Advertisements · Admin · CampusCart{% endblock %}
{% block admin_header %}
Monitor campaign performance, rewarded advertisements, placements, and engagement across Student Bazaar.Advertisements
Across all advertisements there are {{ '{:,}'.format(overview.total_impressions) }} impressions and {{ '{:,}'.format(overview.total_clicks) }} clicks.
Campaigns by placement: {% for p in placement_summary %}{{ p.label }} {{ p.count }}{{ ', ' if not loop.last }}{% endfor %}.
No data yet
| Preview | Title | Type | Placement | Weight | Status | Start | End | Impr. | Clicks | CTR | Active | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {# Media preview — image opens enlarged, video opens the player; icon-only ads are static. #} |
{% if ad.redirect_url %} {{ ad.redirect_url }} {% endif %}
{{ '{:,}'.format(ad.impression_count) }}
{{ '{:,}'.format(ad.click_count) }}
CTR {{ ctr_txt }}
{% if ad.placement.value == 'chat' and row.rewarded and row.rewarded.has_activity %}
{{ '%.0f%%'|format(row.rewarded.completion_rate) }}
{{ row.rewarded.rewards_granted }}
{% if row.rewarded.rejections %} {{ row.rewarded.rejections }}{% endif %}
{% endif %}
|
{{ ad.advertisement_type.value|title }} {{ 'Video' if ad.is_video else 'Image' }} | {% if ad.placement.value == 'chat' %}{% endif %}{{ ad.placement.display_name }} | {{ 'High' if pr >= 8 else ('Medium' if pr >= 4 else 'Low') }} · {{ pr }} | {% with status = row.status %}{% include "admin/advertisements/_status_badge.html" %}{% endwith %} | {{ ad.start_at.strftime('%d %b %Y') if ad.start_at else '—' }} | {{ ad.end_at.strftime('%d %b %Y') if ad.end_at else '—' }} | {{ '{:,}'.format(ad.impression_count) }} | {{ '{:,}'.format(ad.click_count) }} |
{{ ctr_txt }}
|
{% if ad.is_active %} On {% else %} Off {% endif %} |
|
{{ es_body }}
{% if has_filters %} Clear filters {% else %} Create advertisement {% endif %}