View file modules/admob.php

File size: 4.76Kb
<?php
// AdMob Publisher Code
// Language: PHP
// Version: 20080401
// Copyright AdMob, Inc., All rights reserved

// change to "live" when ready to deploy
define("ADMOB_MODE", "live");

function admob_append_params(&$params, $key, $val) {
  if(!empty($val)) $params .= ("&" . urlencode($key) . "=" . urlencode($val));
}
function admob_append_headers(&$params) {
  $admob_ignore = array("HTTP_PRAGMA","HTTP_CACHE_CONTROL","HTTP_CONNECTION","HTTP_USER_AGENT","HTTP_COOKIE");
  foreach ( array_keys( $_SERVER ) as $var ) {
    if ( substr( $var, 0, 4 ) == "HTTP" && !in_array( $var, $admob_ignore ) ) {
      $params .= "&" . urlencode("h[" . $var . "]" ) . "=" . urlencode( $_SERVER[$var] );
    }
  }
}
function admob_ad($admob_params=array()) {
  // build url
  $admob_page_url  = sprintf("http%s://%s%s",
  (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == TRUE ? "s": ""),
  $_SERVER["HTTP_HOST"],
  $_SERVER["REQUEST_URI"]
  );
  $md5_sid = session_id();
  if(!empty($md5_sid)) $md5_sid = md5($md5_sid);
  $admob_post = "s=" . $admob_params[ADMOB_SITE_ID];
  admob_append_params($admob_post, "u", $_SERVER["HTTP_USER_AGENT"]);
  admob_append_params($admob_post, "i", $_SERVER["REMOTE_ADDR"]);
  admob_append_params($admob_post, "p", $admob_page_url);
  admob_append_params($admob_post, "t", $md5_sid);
  admob_append_params($admob_post, "e", "UTF-8"); 
  admob_append_params($admob_post, "ma", $admob_params[ADMOB_MARKUP]);
  admob_append_params($admob_post, "v", ADMOB_VERSION);
  admob_append_params($admob_post, "d[pc]", $admob_params[ADMOB_POSTAL_CODE]);
  admob_append_params($admob_post, "d[ac]", $admob_params[ADMOB_AREA_CODE]);
  admob_append_params($admob_post, "d[coord]", $admob_params[ADMOB_COORDINATES]);
  admob_append_params($admob_post, "d[dob]", $admob_params[ADMOB_DOB]);
  admob_append_params($admob_post, "d[gender]", $admob_params[ADMOB_GENDER]);
  admob_append_params($admob_post, "k", $admob_params[ADMOB_KEYWORDS]);
  admob_append_params($admob_post, "search", $admob_params[ADMOB_SEARCH]);
  admob_append_headers($admob_post);
  if(ADMOB_MODE == "test") $admob_post .= "&m=test";

  // request ad
  $admob_request = @fsockopen(ADMOB_HOST, 80);
  if ($admob_request) {
    stream_set_timeout($admob_request, ADMOB_TIMEOUT);
    fwrite($admob_request, "POST " . ADMOB_ENDPOINT ." HTTP/1.0\r\n");
    fwrite($admob_request, "Host: " . ADMOB_HOST . "\r\n");
    fwrite($admob_request, "Content-Type: application/x-www-form-urlencoded\r\n");
    fwrite($admob_request, "Content-Length: " . strlen($admob_post). "\r\n\r\n");
    fwrite($admob_request, $admob_post);
    $admob_info = stream_get_meta_data($admob_request);
    $admob_timeout = $admob_info['timed_out'];
    $admob_contents = "";
    $admob_body = false;
    while (!feof($admob_request) && !$admob_timeout) {
      $admob_line = fgets($admob_request);
      if(!$admob_body && $admob_line == "\r\n") $admob_body = true;
      if($admob_body && !empty($admob_line)) $admob_contents .= $admob_line;
      $admob_info = stream_get_meta_data($admob_request);
      $admob_timeout = $admob_info['timed_out'];
    }
    fclose($admob_request);
    if($admob_timeout) {
      return "<img src=\"http://t.admob.com/li.php/c.gif/u/" . $admob_params[ADMOB_SITE_ID] . "/1/" . ADMOB_TIMEOUT . "/" . md5($admob_page_url) . "\" alt=\"\" width=\"1\" height=\"1\" />";
    } else {
      return $admob_contents;
    }
  }
}
define("ADMOB_SITE_ID", "ADMOB_SITE_ID");
define("ADMOB_HOST", "r.admob.com");
define("ADMOB_ENDPOINT", "/ad_source.php");
define("ADMOB_VERSION", "20080401-PHPF-a447a68fbd5a488a");
define("ADMOB_TIMEOUT", 1);
define("ADMOB_MARKUP", "ADMOB_MARKUP");
define("ADMOB_AREA_CODE", "ADMOB_AREA_CODE");
define("ADMOB_COORDINATES", "ADMOB_COORDINATES");
define("ADMOB_POSTAL_CODE", "ADMOB_POSTAL_CODE");
define("ADMOB_DOB", "ADMOB_DOB");
define("ADMOB_GENDER", "ADMOB_GENDER");
define("ADMOB_KEYWORDS", "ADMOB_KEYWORDS");
define("ADMOB_SEARCH", "ADMOB_SEARCH");

$admob_params = array(
    ADMOB_SITE_ID     => "",  // REQUIRED - get from admob.com
    ADMOB_MARKUP      => "xhtml", // OPTIONAL - Your site markup, "xhtml", "wml", "chtml"
    ADMOB_AREA_CODE   => "", // OPTIONAL - Area Code, e.g. "415"
    ADMOB_COORDINATES => "", // OPTIONAL - Latitude and Longitude (comma separated), e.g. "37.563657,-122.324807"
    ADMOB_POSTAL_CODE => "", // OPTIONAL - Postal Code, e.g. "90210"
    ADMOB_DOB         => "", // OPTIONAL - Date of Birth formatted like YYYYMMDD, e.g. "19800229"
    ADMOB_GENDER      => "", // OPTIONAL - Gender, m[ale] or f[emale]
    ADMOB_KEYWORDS    => "", // OPTIONAL - keywords, e.g. "sports baseball la dodgers"
    ADMOB_SEARCH      => ""  // OPTIONAL - visitor's search term. e.g. "free games"
);
//echo admob_ad($admob_params); // display an ad
?>