Cache Busting

To speed up internet browsing, individual user browsers store local copies of web pages and images that are accessed frequently. On subsequent requests for the same URL, browsers use the locally stored content to minimize data transmission and decrease load times. This is known as caching.

In order to ensure accurate pixel counts, pixels need to make unique calls to the server and defeat caching, which is done by appending a constantly changing random number, called a cache buster, into the URL, thereby making the browser believe each request is unique. Without a cache buster, there will most likely be discrepancies between first-party and third-party servers.

Cache Busters

Web browsers store local copies of HTML code and images for pages they have previously accessed. Large Internet service providers (ISPs) often store frequently accessed content on their own proxy servers. Both activities are known as caching. On subsequent requests for the same URL, browsers use cached copy to minimize data transmission and increase speed. This creates a problem for Ad and Pixel servers since subsequent requests are not visible to them.

For example,

If someone comes to a page containing a DSP Pixel on July 1 for the first time, the browser would request the Pixel from the Zeta server and then will cache the Pixel. When the same person visits the same page with the same browser again on July 15, the Pixel would not be requested from the server and would instead be served from the local cache. Thus, Zeta would not know about the July 15 visit, but only the July 1 one.

On the first-page visit the request might be something like:

http://thepixelserver.com/ca.gif?rb=3&ca=1991&ra=20110701_08:00:00.000

The next time the user visits the page the URL will differ because it uses a new timestamp and the browser is forced to request the Pixel from the server again, rather than using timestamps:

http://thepixelserver.com/ca.gif?rb=3&ca=1991&ra=20110715_08:00:00.000

A clever way to defeat caching is to insert dynamically into the URL a value that is different every time the page is requested; this makes the browser believe it is a unique page and forces it to request the Pixel from the server every time. This value is called a cache buster.

There is more than a way to generate this unique value. One is to ask the system for a timestamp with sufficient precision to reflect milliseconds (As demonstrated in the example above). However, more frequently, cache busters are random values generated by the code on the Pixel's page or generated by macros in "container" (aka "parent") Pixels such as those provided by DART Floodlight. When such a page is served, these macros are replaced by the actual values. Here are the most common Container Pixels and their cache-busting macros:

Container Pixel

Cache Busting Macro

Example of Use in DSP Pixel

DoubleClick Floodlight

%n

http://a.rfihub.com/ca.gif?rb=3&ca=1991&ra=%n

Atlas

%RAND%

http://a.rfihub.com/ca.gif?rb=3&ca=1991&ra=%RAND%

24/7 Real Media OAS

%%REALRAND%%

http://a.rfihub.com/ca.gif?rb=3&ca=1991&ra=%%REALRAND%%