ralkage/flarum-ext-ad-management

Comprehensive ad management system for Flarum with zones, analytics, and ad owner self-service.

Maintainers

Package info

github.com/Ralkage/flarum-ext-ad-management

Language:JavaScript

Type:flarum-extension

pkg:composer/ralkage/flarum-ext-ad-management

Statistics

Installs: 141

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 1

v2.0.0-beta.8 2026-03-30 14:44 UTC

This package is auto-updated.

Last update: 2026-04-30 14:59:13 UTC


README

A comprehensive ad management system for Flarum forums. Supports image banners, HTML/JS ads, and Google AdSense with zones, analytics, an approval workflow, and a user self-service portal.

Features

  • Ad Zones — Named positions (header, below_header, between_posts, sidebar, above_footer, footer, custom) with optional dimension constraints
  • Ad Types — Image banners, raw HTML/JS, and Google AdSense units
  • Rotation — One random ad per zone per page load (randomized each visit)
  • Analytics — Per-ad impression and click tracking with daily breakdowns and CTR
  • Approval Workflow — User-submitted ads queue for admin review before going live; optional approval for image changes
  • Email Notifications — Expiration reminders and performance reports via cron, with customizable templates
  • Admin Notifications — Instant email alert when a user submits an ad for review
  • Rate Limiting — Anti-fraud protection on click and impression tracking endpoints
  • Group Visibility — Show ads only to specific member groups; hide ads for premium groups
  • Post Shortcodes — Embed any zone inline in discussion posts: {myadvertisements[zone_name]}
  • Image Processing — Automatic resizing to zone dimensions; optional compression via PHP GD or reSmush.it API
  • GDPR Compliance — Purge old click records with the built-in console command

Requirements

  • Flarum ^1.8
  • PHP ^8.0 with GD extension (for image resizing/compression)
  • PHP curl extension (optional, for reSmush.it API compression)

Links

Installation

composer require ralkage/flarum-ext-ad-management

Then enable it in your Flarum admin panel under Extensions.

Quick Start

  1. Go to Admin → Ad Management → Zones and create a zone (or use a built-in default zone).
  2. Go to Advertisements and create your first ad.
  3. Set up the cron job for email notifications:
    0 8 * * * php /var/www/flarum ad-management:send-notifications >> /dev/null 2>&1
    
  4. (Optional) Grant the Submit Advertisements permission to allow forum members to submit ads for review.

Console Commands

Command Description
php flarum ad-management:send-notifications Send expiration reminders and performance reports
php flarum ad-management:purge-clicks [days] Delete click records older than N days (default: 90) for GDPR compliance

Documentation

See ADMIN_GUIDE.md for full configuration and usage documentation.

License

MIT — see LICENSE.