Howdy..
This is the J2se5 code:
admobRequiredParams = new HashMap();
Map admobControlParams = new HashMap();
Map admobOptionalParams = new HashMap();
admobRequiredParams.put("ANALYTICS_ID", "na"); // Required to collect Analytics data. To find your Analytics ID, log in to your Analytics account and click on the "Edit" link next to the name of your site.
admobRequiredParams.put("COOKIE_DOMAIN", null); // If your mobile site uses multiple subdomains, replace "null" with your root domain (e.g. "example.com") to make the AdMob cookie visible across subdomains.
admobControlParams.put("ANALYTICS_REQUEST", true); // To enable the collection of analytics data, set to true.
admobControlParams.put("TEST_MODE", false); // While testing, set to true. When you are ready to make live requests, set to false.
// Additional optional parameters are available at:
http://developer.admob.com/wiki/AdCodeD ... ation
// admobOptionalParams.put("title", "Enter Page Title Here"); // Analytics allows you to track site usage based on custom page titles. Enter custom title in this parameter.
// admobOptionalParams.put("event", "Enter Event Name here"); // To learn more about events, log in to your Analytics account and visit this page:
http://analytics.admob.com/reports/events/add
// Send request to AdMob. To make additional ad requests per page, copy and paste this function call elsewhere on your page.
out.print(admobRequest(request, response, pageContext, admobRequiredParams, admobControlParams, admobOptionalParams));
%>
requiredParams, Map controlParams, Map optionalParams) {
if (requiredParams == null || controlParams == null)
return "";
StringBuilder admobReturn = new StringBuilder();
try {
Boolean adMode = false;
if (requiredParams.get("PUBLISHER_ID") != null && controlParams.get("AD_REQUEST") != null)
adMode = controlParams.get("AD_REQUEST");
Boolean analyticsMode = false;
Boolean pixelSent = (pageContext.getAttribute("admobPixelSent") == "true") ? true : false;
if (requiredParams.get("ANALYTICS_ID") != null && controlParams.get("ANALYTICS_REQUEST") != null && !pixelSent)
analyticsMode = controlParams.get("ANALYTICS_REQUEST");
String rt = adMode ? (analyticsMode ? "2" : "0") : (analyticsMode ? "1" : "-1");
if (rt == "-1") return "";
double now = System.currentTimeMillis()/(double)1000;
DecimalFormat df = new DecimalFormat("0.000");
String z = df.format(now);
String p = request.getRequestURL().toString() + (request.getQueryString() == null ? "" : "?" + request.getQueryString().toString());
String o = admobGetCookieValue(request, response, pageContext, requiredParams.get("COOKIE_DOMAIN"));
StringBuilder admobContents = new StringBuilder();
admobAppendParams(admobContents, "rt", rt);
admobAppendParams(admobContents, "z", z);
admobAppendParams(admobContents, "u", request.getHeader("User-Agent"));
admobAppendParams(admobContents, "i", request.getRemoteAddr());
admobAppendParams(admobContents, "p", p);
admobAppendParams(admobContents, "t", admobMd5(request.getSession() == null ? null : request.getSession().getId()));
admobAppendParams(admobContents, "v", "20081105-JAVA15-b9c74666c607fc70");
admobAppendParams(admobContents, "o", o);
if (adMode) admobAppendParams(admobContents, "s", requiredParams.get("PUBLISHER_ID"));
if (analyticsMode) admobAppendParams(admobContents, "a", requiredParams.get("ANALYTICS_ID"));
if (optionalParams != null) {
for (Map.Entry entry : optionalParams.entrySet()) {
admobAppendParams(admobContents, entry.getKey(), entry.getValue());
}
}
List ignoreHeaders = Arrays.asList(new String[]{"PRAGMA", "CACHE-CONTROL", "CONNECTION", "USER-AGENT", "COOKIE"});
for (Enumeration names = request.getHeaderNames(); names.hasMoreElements()Wink {
String name = names.nextElement();
if (!ignoreHeaders.contains(name.toUpperCase()))
admobAppendParams(admobContents, "h["+name+"]", request.getHeader(name));
}
if (controlParams.get("TEST_MODE") != null && controlParams.get("TEST_MODE")) admobContents.append("&m=test");
BufferedReader admobReader = null;
int ADMOB_TIMEOUT = 1000; // 1 second timeout
long start = System.currentTimeMillis();
try {
URL admob_url = new URL("
http://r.admob.com/ad_source.php");
HttpURLConnection admobConnection = (HttpURLConnection)admob_url.openConnection();
admobConnection.setRequestMethod("POST");
admobConnection.setDoOutput(true);
admobConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
admobConnection.setRequestProperty("Content-Length", Integer.toString(admobContents.length()));
admobConnection.setConnectTimeout(ADMOB_TIMEOUT);
admobConnection.setReadTimeout(ADMOB_TIMEOUT);
BufferedWriter admobWriter = new BufferedWriter(new OutputStreamWriter(admobConnection.getOutputStream()));
admobWriter.write(admobContents.toString());
admobWriter.close();
admobReader = new BufferedReader(new InputStreamReader(admobConnection.getInputStream()));
for (String line; (line = admobReader.readLine()) != null;)
admobReturn.append(line);
}
catch (Exception e) {admobReturn.setLength(0);}
finally {if (admobReader != null) admobReader.close();}
long stop = System.currentTimeMillis();
if (!pixelSent) {
pageContext.setAttribute("admobPixelSent", "true");
admobReturn.append("");
}
}
catch (Exception e) {}
return admobReturn.toString();
}
private String admobGetCookieValue(HttpServletRequest request, HttpServletResponse response, PageContext pageContext, String cookieDomain) {
try {
Cookie cookies[] = request.getCookies();
if (cookies != null) {
for (int i = 0; i 0) {
if (contents.length() > 0) contents.append("&");
contents.append(URLEncoder.encode(key, "UTF-8")).append("=").append(URLEncoder.encode(val, "UTF-8"));
}
}
%>
and putting it in just leaves a mess...
-John