GifAds
A self-hosted, lightweight animated GIF banner service. Upload your creatives, embed one script tag on any website, and track impressions & clicks — no third parties, no external trackers.
Why this service?
1. Very simple compared to the competition
No useless bloatware, yet, batteries included. Both usage of the ready-for-production platform as well as installation of it is simple and understandable.
No useless bloatware, yet, batteries included. Both usage of the ready-for-production platform as well as installation of it is simple and understandable.
2. No Artificial Intelligence (AI) (LMM (Learning Machines))
The platform is not complicated with any software that uses a lot of resources. We can survive without it! :D
The platform is not complicated with any software that uses a lot of resources. We can survive without it! :D
How it works
1. Register & upload
Create an account, upload horizontal and/or vertical GIF banners for each ad, and set a click-through URL.
Create an account, upload horizontal and/or vertical GIF banners for each ad, and set a click-through URL.
2. Embed anywhere
Drop a single
Drop a single
<script> tag on any page. It fetches a random active ad and renders it inline.
3. Track results
Every impression and click is recorded in a local SQLite database. View per-ad stats in your dashboard.
Every impression and click is recorded in a local SQLite database. View per-ad stats in your dashboard.
Embedding an ad
Choose orient=hor for horizontal banners or orient=vert for vertical ones.
Horizontal banner
<div id="gifads-slot"></div>
<script>
(function(){
var s = document.createElement('script');
s.src = "https://81net.duckdns.org/gifads/serve.php?orient=hor&callback=gifadsInit";
document.head.appendChild(s);
})();
function gifadsInit(ad){
if(!ad) return;
var el = document.getElementById('gifads-slot');
var a = document.createElement('a');
a.href = "https://81net.duckdns.org/gifads/click.php?id=" + ad.id +
"&ref=" + encodeURIComponent(location.href);
a.target = "_blank";
var img = document.createElement('img');
img.src = ad.gif; img.width = ad.width; img.height = ad.height; img.alt = ad.name;
img.style.display = 'block';
a.appendChild(img); el.appendChild(a);
}
</script>
For a vertical banner change orient=hor to orient=vert.
JSON API
You can also call the endpoint directly and handle rendering yourself:
GET https://81net.duckdns.org/gifads/serve.php?orient=hor GET https://81net.duckdns.org/gifads/serve.php?orient=vert
Returns:
{ "id": 42, "name": "My Campaign", "gif": "https://81net.duckdns.org/gifads/meta/abc.gif",
"link": "https://example.com", "width": 728, "height": 90 }
Clicks are tracked via https://81net.duckdns.org/gifads/click.php?id=<ad_id>&ref=<referer> which logs the click then redirects to the destination URL.