| Recommend this page to a friend! |
| Packages of Matthew Asham | Binkterm PHP | docs/Advertising.md | Download |
|
|||||||||||||||||||||
AdvertisingBinktermPHP includes a built-in ANSI advertising system that lets sysops promote services, events, and other BBSes directly within their node ? both on the web dashboard and through scheduled echomail posts into active message areas. The system is designed around the way FTN networks actually work. Ads are authored in classic ANSI art, stored in a central library, and delivered through two complementary channels: a rotating carousel on the dashboard for visitors browsing the web interface, and automated campaign posts that reach users reading echomail across the network. A single ad can appear in both places simultaneously, or be restricted to one channel. Campaigns give sysops fine-grained control over timing and reach. Each campaign targets one or more echomail areas and fires on a configurable weekly schedule with per-timezone awareness. Weighted ad selection within a campaign means you can favor certain ads over others without manual intervention. Every post ? whether triggered automatically by the scheduler or run manually ? is recorded in a history log, making it easy to audit what was sent, when, and to which areas. The ad library tracks content hashes so duplicate uploads are flagged before they crowd out your rotation. Existing flat-file ads from the legacy Content is managed from Admin ? Ads and Bulletins ? Content Library. Broadcasts are managed from Admin ? Ads and Bulletins ? Broadcast Manager. Features
Ad LibraryEach ad is stored in the database with:
Duplicate uploads are allowed. If the ANSI payload matches an existing ad, the system warns but does not block the upload. TagsAds can be tagged with freeform labels such as Tags are used for organization in the library and can also be used by ad campaigns to control eligibility. Campaign tag filtering supports two modes:
Tag filters can be combined with explicitly assigned ads:
Dashboard AdsThe dashboard advertising window pulls from ads marked for dashboard display.
If only one eligible ad exists, the dashboard simply shows that ad without carousel controls. Quick Setup WizardThe Quick Setup button on the Broadcast Manager page opens a three-step wizard that pre-configures a new campaign based on a common use case: | Type | Description | Default schedule | |---|---|---| | Weekly BBS Ad | Post a weekly BBS advertisement to one or more echoareas | Weekly (Tuesdays) | | Event Announcement | Time-limited campaign for a specific event | Daily | | Door Game Promotion | Recurring promotion for a door game or tournament | Tue/Fri | | File Echo Update | Weekly summary of new files generated by an external script | Weekly (Fridays) | | League/Network Recruit | Recruitment drive for a league or network | Mon/Wed/Fri | | Sub of the Week | Highlight a featured echomail area each week | Weekly (Mondays) | | Anniversary/Milestone | Countdown to a system milestone | Daily | | Tech Notice | Short-term technical announcement | Every 3 days | | Node of the Month | Monthly spotlight on a network node | Weekly | The wizard sets sensible defaults for post interval, repeat gap, schedule, and subject template for each type. Step 2 collects the campaign name, posting user, echoarea targets, subject template, and an optional expiry date. Step 3 shows a review before creating the campaign. The File Echo Update type automatically creates a dynamic ad linked to
CampaignsCampaigns let the sysop post ads automatically into echomail areas. Each campaign can define:
Each target contains:
Each schedule contains:
The campaign runner chooses an eligible ad using weighted random selection. Normal eligibility rules still apply, including active state, auto-post eligibility, and any configured date window on the ad. Dynamic AdsAn ad can generate its body at post time by setting a Content Command instead of (or in addition to) static ANSI content. At post time the script is run via
This allows fully dynamic content ? weekly file listings, player scoreboards, system statistics, or anything else a script can generate. Allowed ScriptsFor security, the content command must be one of:
The Content Command field in the ad editor is a dropdown populated from these sources. Free-text entry is not permitted. The system automatically resolves the selected script to an absolute path and
invokes it through ArgumentsAn optional Arguments field accepts space-separated parameters passed to the
script at runtime. For example, selecting
Each argument is individually passed through Creating a Dynamic AdVia the Content Library: In Admin ? Ads and Bulletins ? Content Library, select a script from the Content Command dropdown and leave the file picker empty. A title is still required. Enable Allow Auto-Post so campaigns can use it. Via the Quick Setup wizard: The File Echo Update and Weather Report campaign types automatically create a dynamic ad pre-configured with the appropriate script. No manual selection is needed. Installing a Custom Script
Scripts in Writing a Content Command ScriptThe script must:
Example skeleton (
What the Content Command Is ForUse Content Command when the ad body should be generated fresh at post time instead of being stored as a fixed ANSI file in the ad library. Good fits include:
Content Command ExamplesWeekly New Files DigestThe built-in Typical use:
Custom Generated BulletinsPlace any custom script in Recommended PatternFor recurring generated posts:
This keeps scheduling, targeting, and post logging inside the advertising system while your script controls only the generated body text. Click-Through URLsEach ad can optionally include a Click-Through URL. When set, a Visit button appears next to the ad on the dashboard. Clicking it opens the URL in a new tab. Impressions (how many times the ad was shown) and clicks are tracked automatically per user and stored in the database. Both counts are visible in the Content Library ad list and in the Ad Analytics page. Ad AnalyticsAdmin ? Analytics ? Ad Analytics (requires a valid license) provides a performance overview of all ads:
Scheduler IntegrationCampaigns are processed automatically by The scheduler checks due schedule slots and attempts posts for each active campaign target. Matching is based on the configured local schedule time with a grace window for slightly late runs. For manual testing or one-off runs, you can also use:
Post HistoryThe Broadcast Manager page includes a post history table showing:
Both manual and automatic campaign runs are recorded in the same history log. Echomail Posting Notes
|