Create Dynamic Banner Ads for Blogs & News Sites
Published: February 12th, 2009 by: Andrew
When you visit a site, their usual advertisers might catch your eye once or twice, but after that, you forget it's there. Designing a banner ad that automatically updates with information such as current sales or latest blog posts is a great way to get repeat clicks and return visitors. In this article, I'm going to explain the code behind a dynamic ad implementation I use right here on this site.
If you go look at our Promote this Site page, you will see that a dynamic ad is offered that shows the most recent article on this site. This is accomplished by creating a PHP script that reads this site’s RSS Feed, finding the latest post title, and overlaying it onto a graphic template.
I think this concept has potential with blogs and news sites because static banner ads become holes in the page to repeat visitors. If I get somebody interested in this site once, then that banner will continue to catch their eyes when the article changes, and if they see a title that interests them again, they will visit the site again to read the latest article.
Here is some sample code based on what I have implemented on this site’s advertising page:
<?php
/* there is no need to call the feed up every time, so we will cache it for 1 hour */
if (!file_exists('feed.cache') || filemtime('feed.cache') + 3600 < time())
{
/**
* Looks like we don't have a recent copy, so we will use Snoopy to fetch the remote feed.
* See: http://phpstarter.net/2008/12/how-to-post-data-and-fetch-remote-pages-from-php-scripts/
*/
require('../includes/Snoopy.class.php');
$snoopy = new Snoopy();
/* set this to the RSS feed where we want to fetch the title from */
$snoopy->fetch('http://phpstarter.net/feed/');
/* save this to a local cache file so the RSS feed isn't called too often */
file_put_contents('feed.cache', $snoopy->results);
}
/**
* We will use lastRSS to parse the feed.
* See: http://phpstarter.net/2009/01/load-rss-feeds-into-php-arrays-with-lastrss/
*/
require('../includes/lastRSS.php');
$rss = new lastRss();
/* load the cached file */
$feed = $rss->get('feed.cache');
/* this is the banner add that we will overlay the text on top of */
$im = imagecreatefromgif('banner_ad_article.gif');
/* set some colors */
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
$orange = imagecolorallocate($im, 249, 160, 33);
/* load the font we want to use */
$f_domestic = '../includes/Domestic_Manners.ttf';
/* this is the title taken from the RSS feed's first (or most recent) item */
$title = $feed['items'][0]['title'];
/* get the width of the to-be-printed text so we can center it */
$bbox = imagettfbbox(12, 0, $f_domestic, $title);
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2);
/* write the text to the base image */
imagettftext($im, 12, 0, $x, 52, $orange, $f_domestic, $title);
/* tell the browser that we are outputting a GIF image */
header('Content-type: image/gif');
/* render the image */
imagegif($im);
?>
No related posts.


