GoogleAdSense.java
package my.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLEncoder; import javax.servlet.http.HttpServletRequest; /** * 嵌入Google AdSense 广告代码 * * @author Winter Lau * @date 2009-7-1 下午10:49:27 */ public class GoogleAdSense { private static final String PAGEAD = "http://pagead2.googlesyndication.com/pagead/ads?"; static void googleAppendUrl(StringBuilder url, String param, String value) throws UnsupportedEncodingException { if (value != null) { String encodedValue = URLEncoder.encode(value, "UTF-8"); url.append("&").append(param).append("=").append(encodedValue); } } static void googleAppendScreenRes(StringBuilder url, String uaPixels, String xUpDevcapScreenpixels) { String screenRes = uaPixels; String delimiter = "x"; if (uaPixels == null) { screenRes = xUpDevcapScreenpixels; delimiter = ","; } if (screenRes != null) { String[] resArray = screenRes.split(delimiter); if (resArray.length == 2) { url.append("&u_w=").append(resArray[0]); url.append("&u_h=").append(resArray[1]); } } } static void googleAppendDcmguid(StringBuilder url, String dcmguid) { if (dcmguid != null) { url.append("&dcmguid=").append(dcmguid); } } /** * 显示广告 * @param req * @param pub_id (pub-1307862221338762) * @param channel (4062021557) * @throws IOException */ public static String ad(HttpServletRequest req, String pub_id, String channel) throws IOException { long googleDt = System.currentTimeMillis(); String googleHost = (req.isSecure() ? "https://" : "http://") + req.getHeader("Host"); StringBuilder googleAdUrlStr = new StringBuilder(PAGEAD); googleAdUrlStr.append("ad_type=text_image"); googleAdUrlStr.append("&channel="); googleAdUrlStr.append(channel); googleAdUrlStr.append("&client=ca-mb-"); googleAdUrlStr.append(pub_id); googleAdUrlStr.append("&dt=").append(googleDt); googleAdUrlStr.append("&format=mobile_single"); googleAppendUrl(googleAdUrlStr, "host", googleHost); googleAppendUrl(googleAdUrlStr, "ip", RequestUtils.getRemoteAddr(req)); googleAdUrlStr.append("&markup=xhtml"); googleAdUrlStr.append("&oe=utf8"); googleAdUrlStr.append("&output=xhtml"); googleAppendUrl(googleAdUrlStr, "ref", req.getHeader("Referer")); String googleUrl = req.getRequestURL().toString(); if (req.getQueryString() != null) { googleUrl += "?" + req.getQueryString().toString(); } googleAppendUrl(googleAdUrlStr, "url", googleUrl); googleAppendUrl(googleAdUrlStr, "useragent", req .getHeader("User-Agent")); googleAppendScreenRes(googleAdUrlStr, req.getHeader("UA-pixels"), req .getHeader("x-up-devcap-screenpixels")); googleAppendDcmguid(googleAdUrlStr, req.getHeader("X-DCMGUID")); StringBuilder html = new StringBuilder(); URL googleAdUrl = new URL(googleAdUrlStr.toString()); BufferedReader reader = new BufferedReader(new InputStreamReader( googleAdUrl.openStream(), "UTF-8")); for (String line; (line = reader.readLine()) != null;) { html.append(line); } return html.toString(); } }
收藏
0人收藏
- 2013-11-01 19:35:08调用Google CDN的jQuery库,如果失败使用本地jQuery库 by GauSir
- 2014-07-18 14:44:22Python从URL地址提取文件名 by xwz
- 2015-03-22 19:09:25借用Google API 写一个查看天气预报的类 by owensh
- 2015-11-22 11:44:08nginx反向代理google by 缺心眼子
- 2013-11-17 15:27:21php将字符串中的url转换成超级链接 by 屁屁果
- 2014-07-30 21:46:31利用google地图根据地址批量获取经纬度 by 他山之石
- 2015-04-04 19:37:06对URL加密和解密的一个函数 by firedtoad
- 2015-12-31 17:55:21Google API for Java 示例代码 by 廖钊权
- 2013-12-02 10:41:17Delphi从一个url快捷方式获取url地址 by Kevin.
- 2014-08-01 16:27:23验证用户注册信息 by starstroll
- 2019-02-14 11:33:05收到控股和授课风格吧 by nfzy8yhh
相关聚客文章