A tiny banner for Perl community announcements
A lightweight way to help good Perl stuff get seen.
Add one script tag to your site to show a small rotating banner of Perl community announcements like newsletters, podcasts, security tips, jobs, learning resources, and more.
If there are no active announcements, nothing is displayed and your page stays the same.
It helps Perl projects reach Perl developers where they already are.
Choose your path
- I run a website (show the banner)
You add one script tag (plus a target<div>if you want control). Done. - I publish announcements (get listed)
You add an entry toperl-ads.jsonvia PR — or open an issue and we’ll help.
For website owners
1. Add the script
Paste this anywhere on your page:
<script src="https://perl-ads.perlhacks.com/perl-ads.js"></script>
That's it.
What to expect
- If there’s an active announcement, you’ll see a banner.
- If there aren’t any active announcements, nothing shows.
- If there are multiple announcements, one is shown at random.
- Remove the script any time.
2. Control where it appears (optional)
By default, the banner is inserted at the very top of the page.
To place it somewhere specific, add this element where you want it to appear:
<div id="perl-ad-target"></div>
If perl-ad-target exists, the banner is inserted there.
3. Style it (optional)
The markup we insert includes stable IDs, so you can style it with CSS:
- Container:
#perl-ad - Title:
#perl-ad-title - Description:
#perl-ad-desc - Link:
#perl-ad-link
Turn off default styles
By default, Perl Ad Server injects a small set of styles for the banner.
If you want no injected styles (and will style it yourself), add
data-no-styles to the target <div>:
<div id="perl-ad-target" data-no-styles></div>
Want another hook or behavior? Open an issue and describe what you’re trying to do.
For publishers
What counts as an “announcement”?
Anything genuinely useful to the Perl community, like:
- newsletters and posts
- podcasts / episodes
- security guidance
- contribution opportunities
- jobs
- books / courses / learning resources
Add your announcement
You have two easy options:
- Send a pull request updating
docs/perl-ads.jsonin the repository - Open an issue if you’d like help writing or formatting your entry
JSON format
Each entry in perl-ads.json can include:
- title — the title of the announcement
- description — a short description
- link — the URL to send people to
- publisher — an identifier for the organization or project publishing it
- start (optional) — the first date it should appear
- end (optional) — the last date it should appear
Why the dates? So announcements can automatically start/stop without anyone needing to babysit the rotation.
In the future, publisher may be used by websites to filter which
announcements they display.
If you include start and/or end, use:
YYYY-MM-DD(example:2026-01-31)
Announcements without start and end are treated as
always valid.
Tracking and analytics
To help you understand where your traffic is coming from, Perl Ads automatically appends standard UTM tracking parameters to all outgoing links:
utm_source=perl-ads— identifies traffic from the Perl Ads Serverutm_medium=banner— specifies the ad format typeutm_campaign={publisher}— your publisher identifier fromperl-ads.jsonutm_content={hostname}— the website displaying your ad
These parameters work with Google Analytics and most analytics platforms, allowing you to track which sites are sending you traffic and measure the effectiveness of your announcements.
Example: A link to https://example.com/ becomes
https://example.com/?utm_source=perl-ads&utm_medium=banner&utm_campaign=your-publisher&utm_content=sitename.com
In the wild
A list of places where Perl Ads can be seen. If you want your site to be added to this list, just let us know.
