Mira la IAB (Interactive Advertising Bureau)
Ellos tienen especificaciones en algunos comúnmente acordados cosas como formatos ad-banner. Parecen tratar principalmente en cuestiones comerciales y menos en las especificaciones técnicas/de implementación.
La implementación más simple es simplemente apuntando a una imagen de otro servidor. Ese servidor identificará en qué sitio se muestra el anuncio (desde el encabezado 'Referer', o desde un id o token pasado con la solicitud de imagen). Luego se devuelve la imagen y se graba la vista de página. Si el espectador hace clic en el anuncio, un enlace que apunta también al servidor de anuncios registrará un "clic" y luego reenviará la solicitud al anunciante.
La base de datos podría tener este aspecto (drasticly simplificado en exceso, por ejemplo solamente):
Pages
+---------+----------------+
| page_id | name |
+---------+----------------+
| 1 | mycoolsite.com |
+---------+----------------+
Advertisements
+-----------------+------------------+--------------------------------+
|advertisement_id | image_name | target_url |
+-----------------+------------------+--------------------------------+
| 1 | banner1_468.png | http://new-amazing-product.com |
+-----------------+------------------+--------------------------------+
Activity
+--------------+--------------------+--------+--------+
| page_id | advertisement_id | views | clicks |
+--------------+--------------------+--------+--------+
| 1 | 1 | 0 | 0 |
+--------------+--------------------+--------+--------+
En la página que mostrará el complemento que había puesto esto en el html:
<iframe src="http://your-ad-server.com/ads/image?site=1" />
Cuando un usuario veía la página, la solicitud de la imagen se dirigía al servidor de anuncios. El servidor de anuncios buscará la solicitud, seleccionará un anuncio para mostrar (muchos algoritmos de propiedad aquí), registrará la solicitud y finalmente devolverá la respuesta.
Activity
+--------------+--------------------+--------+--------+
| page_id | advertisement_id | views | clicks |
+--------------+--------------------+--------+--------+
| 1 | 1 | * 1 * | 0 |
+--------------+--------------------+--------+--------+
La respuesta podría contener la siguiente (recuperado la de la base de datos):
<a href="http://your-ad-server.com/ads/click?id=1">
<img src="http://your-ad-server.com/ads/banner1_468.png" />
</a>
Ahora la imagen se carga y se muestra en la página. Si el usuario decide hacer clic en él, nuevamente la solicitud va al servidor de anuncios que registra el clic y finalmente redirige la solicitud a la página que se anuncia.
GET /ads/click?id=1
301 Moved Permanently
Location: http://mycoolsite.com
Actvity
+--------------+--------------------+--------+--------+
| page_id | advertisement_id | views | clicks |
+--------------+--------------------+--------+--------+
| 1 | 1 | 1 | * 1 * |
+--------------+--------------------+--------+--------+
Gracias ... Por esta maravillosa información. ¿Hay libros/libros blancos disponibles para el mismo, para que pueda tener una mejor idea. – Mahesh
¿No debería ser '302' aquí según esta respuesta: http: //stackoverflow.com/questions/1393280/http-redirect-301-vs-302-temporary-vs-permanent/1393298#1393298? – user198729