Google Chrome 浏览器诡异的代理服务器设置

天天要翻墙,自然要用到代理服务器设置,最近在试用 Google Chrome ,速度是不错,地址栏跟搜索栏合在一起了,也很方便。就是代理服务器设置让我哑然,居然是用 IE 的代理设置。Google Chrome 是 Webkit 的内核怎么会和 IE 用一样代理设置呢(IE 是基于 Trident 内核的)?

还有就是 Google Chrome 浏览器居然没有整合 Google 的服务,我很多网络应用都是基于 Google 的,平时用最多的就是 Google Toolbar ,Google Chrome 浏览器居然不整合自己的服务,也是蛮搞笑的。

网上有个朋友说可以用:新建一个 Chrome 的快捷方式,然后给快捷方式加启动参数,”……\chrome.exe” –proxy-server=166.111.xxx.xxx:8080,这样就跟IE的设置没关系了。

FireFox 挺好,插件也多,就是太耗内存,虽说现在内存是白菜价,但是一些笔记本用户还是蛮吃不消的。

Google AdWords 可以这么投放!太牛逼了!

PPG 当年的 B2C 明星,最近彻底被清盘了,当年我想方设法的去学习的 PPG 居然真的就倒了。说正题,今天在 Google 搜索些 PPG 的消息,结果 Google 赞助商链接把我吓住了,PPG衬衫官方网站 YES PPG 居然以 www.ppg.com 的域名出现了,该域名一直是由美国化工巨头PPG公司持有,如今成了PPG衬衫官方网站,难道PPG死而不僵、死而还魂、诈尸了??

点击后,居然跳转到了 VANCL 的网站,查看 Header 记录,该广告的域名为 www.ppg.com ,但是 URL 确是 http: //www.dman.org.cn/yesppg.php,然后http: //www.dman.org.cn/yesppg.php 302 跳转到了 http://www.vancl.com。做过 Google AdWords 的人知道url 和 domain 不符合是不可以发布,但是这是特例吗?

Google AdWords

Hreder 记录:

GET /aclk?sa=L&ai=CZ3yOuctJS97qHY28NLrHxMMNr4eMmwG7v8DSEtDxlQsIABACKAJQ86PR8_v_____AWCdidiBwAXIAQGpAhGdqMqfqIM-qgQZT9C8F73scDoBbU2ezrx0IK2RcESZ5m9OgA&sig=AGiWqtzN3nkfGSzKV7IEE6rw9LEV9dGD7w&q=http: //www.dman.org.cn/yesppg.php HTTP/1.1
Accept: */*
Referer: http://www.google.cn/search?hl=zh-CN&source=hp&q=PPG
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727; CIBA)
Host: www.google.cn
Connection: Keep-Alive
Cookie: PREF=ID=e04463858e79b66f:U=f086defb28904878:NW=1:TM=1259329544:LM=1259595005:S=maSBbes7CVokPDlu; NID=29=avZIELsrzkwF8paUl2c1EIDdM7-UWewZEYNLxkKnRQUJX1NE5AuxSHM41KblaVpZZSo03zXkuISL1F9rK0HaFOaNxlfzk3y2YFkbIQNtd_0ZiBjxI__HlmCASunKxbX0; UniProc1224141825=212628826360067715

HTTP/1.1 302 Found
Cache-Control: private
Location: http://www.dman.org.cn/yesppg.php
Content-Type: text/html; charset=UTF-8
Date: Sun, 10 Jan 2010 12:45:24 GMT
Server: AdClickServer
Content-Length: 0
X-XSS-Protection: 0

GET /yesppg.php HTTP/1.1
Accept: */*
Referer: http://www.google.cn/search?hl=zh-CN&source=hp&q=PPG
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727; CIBA)
Host: www.dman.org.cn
Connection: Keep-Alive

HTTP/1.1 302 Moved Temporarily
Connection: close
Date: Sun, 10 Jan 2010 12:45:28 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: PHP/5.2.2
Location: http://www.vancl.com/WebSource/WebSource.aspx?Source=eqf&SourceSunInfo=84526|&Url=http://www.vancl.com
Content-type: text/html


GET /WebSource/WebSource.aspx?Source=eqf&SourceSunInfo=84526|&Url=http: //www.vancl.com HTTP/1.1
Accept: */*
Referer: http://www.google.cn/search?hl=zh-CN&source=hp&q=PPG
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727; CIBA)
Host: www.vancl.com
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=fal0awi0q2qx5pucynpr01ra; client_guid=d8a88de5-2f96-452e-a639-c21963c2bca4; WebSource=eqf$84526|; union_visited=1; BIGipServerpool_new=1057007808.20480.0000; UniProc1224141825=212631269200630723

HTTP/1.1 302 Found
Date: Sun, 10 Jan 2010 12:45:04 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: http://www.vancl.com?Source=eqf&SourceSunInfo=84526|
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 173

GET /?Source=eqf&SourceSunInfo=84526| HTTP/1.1
Accept: */*
Referer: http://www.google.cn/search?hl=zh-CN&source=hp&q=PPG
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727; CIBA)
Host: www.vancl.com
Connection: Keep-Alive
Cookie: ASP.NET_SessionId=fal0awi0q2qx5pucynpr01ra; client_guid=d8a88de5-2f96-452e-a639-c21963c2bca4; WebSource=eqf$84526|; union_visited=1; BIGipServerpool_new=1057007808.20480.0000; UniProc1224141825=212631269200630723
If-Modified-Since: Fri, 08 Jan 2010 11:15:35 GMT; length=104702

HTTP/1.1 304 Not Modified
Content-Location: http://www.vancl.com/Default.htm
Last-Modified: Fri, 08 Jan 2010 11:15:35 GMT
Accept-Ranges: bytes
ETag: "806510e65390ca1:258"
Vary: Accept-Encoding
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Sun, 10 Jan 2010 12:45:05 GMT

Google Adsense 在 IE 下出现异常!

从昨晚开始 IE 浏览器中的 Google Adsense 出现 JS 错误提示,Google Adsense 无法在 IE 下正常显示,从 IE5 、IE6 、 IE7 皆是如此,Internet Explorer 的全部崩溃,Firefox 等正常。

根据 Google Adsense 官方网站提示是”在 10-1-9,我们的工程师会在 PST 大约 上午10:00 到 下午2:00 对网站进行维护。“,很明显时间还没有到。

我本以为是我网站的问题,但是找了几个其他的网站看也是如此。目前在 Google 没有解释,但是目前网站投放 Google Adsense 广告的很少了,05、06年那时候打开什么网站都是 Google Adsense 的广告,现在很少了,阿里妈妈和百度的很多。

继续关注中……

B2C期待第三方购物平台的出现

上次记者来采访我,问到在经营B2C中最大的瓶颈是什么?我说是广告的投入产出比的问题。

我认为B2C的广告分为两大块,一是:品牌广告;二是:销售广告。销售广告是要直接带来销量的,特别是自建平台的自有品牌,你的网站无人知晓,更加谈不上销售,不做广告永远都是死气腾腾。但是销售广告的转化率是很低的,拿Google的AdWord来说,一般转化率在0.1%左右,也就是说一千人通过广告点击进入你的购物网站大约只有1个人会购买你的产品。Google AdWord的一次点击基本要¥0.5~¥1元,一般B2C的购物网站经营的产品单价不会超过¥200元。这么算下来,每张订单都是亏的。

有人会说:B2C就是这样的,第一张订单都是亏的,只有靠提高客户的满意度来刺激其的多次购买和影响购买(介绍你的商品给身边的人)才能赢利。但是,你的客户满意度可以达到100%吗,不可能!80%的客户的满意度?甚至更低!

而且第一张订单是要一个很大的基数的,很多B2C的网站在等不到客户下第二张订单的时候,就已经死了。真正牛XX的可以在销售一开始或者还没有开始就拿到风投的,很少很少,陈年有几个啊?

很多人在没做B2C的网站之前都认为网络广告有多贵啊,真正去了解了才知道不比CCTV便宜。算了吧,贵就贵吧,直销嘛,来一个买一个,一做才知道转化率这么低!

目前有很多B2C的网站在做网站分销,我也在做,模式很简单,就是:在你的网站放上我的销售广告,然后根据你的ID将从你的网站过来销售提成给你。这样很好,省去了高额的广告费,增加了品牌的曝光率。但是问题又来了,对于个人网站来说,信任问题,因为我的广告链接给你引导过去了,到底有没有购买呢?我是不知道的,因为销售过程是发生在我掌握不了的地方。所以很多个人网站都害怕白做了,即使放了你的广告链接,每天还在琢磨到底有没有销售呢,提成能拿到吗?这是这一模式最大的问题,信任!

我们知道,在网络广告界很早就有了第三方的交易平台,比如Google广告交易平台AdSense和AdWord。个人网站是基于对Google的信任,做广告交易。

那么电子商务的B2C有没有类似的第三方的交易平台呢?目前好像没有,起码国内没有发现。

其实这个模式的实现是很简单的。A是B2C的网站,B是个人网站,C是第三方的交易平台。B在C上申请销售广告,A在C上发布产品。B广告点击去C,在C上完成交易,C和B抽取佣金。这样大家都放心。

Google现在做了购物搜索引擎,也可以做第三方购物平台,大家都信任Google。百度硬着头皮上了有啊,结果搞的不上不下,还不如搞第三方购物平台,但是百度大家会信任吗?

把巨额的广告费转化为利润分成才是B2C企业走出难以盈利的方法!

Google的OpenID

上次写了Windows Live ID当作OpenID使用的方法,这次写Google的OpenID的实现方法。


if(empty($_REQUEST['openid_mode'])){
$openid_server = getXrdsUri('https://www.google.com/accounts/o8/id');
$data['openid.ns'] = 'http://specs.openid.net/auth/2.0';
$data['openid.mode'] = 'associate';
$data['openid.assoc_type'] = 'HMAC-SHA1';
$data['openid.session_type'] = 'no-encryption';
$AssocHandle = getAssociationHandle($openid_server.'?'.http_build_query($data));
setcookie('cookieAssocHandle', $AssocHandle);
unset($data);

$data['openid.ns'] = 'http://specs.openid.net/auth/2.0';
$data['openid.claimed_id'] = 'http://specs.openid.net/auth/2.0/identifier_select';
$data['openid.identity'] = 'http://specs.openid.net/auth/2.0/identifier_select';
$data['openid.return_to'] = $AuthUrl;
$data['openid.realm'] = $RealmUrl;
$data['openid.assoc_handle'] = $AssocHandle;
$data['openid.mode'] = 'checkid_setup';
$data['openid.ns.ext1'] = 'http://openid.net/srv/ax/1.0';
$data['openid.ext1.mode'] = 'fetch_request';
$data['openid.ext1.type.email'] = 'http://axschema.org/contact/email';
$data['openid.ext1.required'] = 'email';

$LocationUrl = $openid_server.'?'.http_build_query($data);
}else{
if('id_res' == $_REQUEST['openid_mode']
&& $AssocHandle == $_REQUEST['openid_assoc_handle']){
$openid = !empty($_REQUEST['openid_ext1_value_email']) ? $_REQUEST['openid_ext1_value_email'] : formUrl($_REQUEST['openid_claimed_id']);
$email = $_REQUEST['openid_ext1_value_email'];
}
echo('<pre>');
echo("<a href=$LoginUrl>BACK</a>\n\n");
print_r($_REQUEST);
echo('</pre>');
}

function getAssociationHandle($url){
$c = curl_init($url);

curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);

$contents = curl_exec($c);
//print_r($contents);
//exit;

curl_close($c);

$assoc_handle = time();

$lines = explode("\n", $contents);

foreach($lines as $line){
if(substr($line, 0, 13) == "assoc_handle:"){
$assoc_handle = substr($line, 13);
break;
}
}

return $assoc_handle;
}

function getXrdsUri($url){
$c = curl_init($url);

curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);

$request_contents = curl_exec($c);

curl_close($c);

$domdoc = new DOMDocument();
$domdoc->loadXML($request_contents);

$uri = $domdoc->getElementsByTagName("URI");
$uri = $uri->item(0)->nodeValue;

return $uri;
}

if(empty($openid))
LocationHtml($LocationUrl);

LocationHtml函数见Windows Live ID当作OpenID使用的方法

注意:Google的OpenID的openid.claimed_id(即OpenID)的值,随不同网站变化,网站不同值也不同,所以不是真正的OpenID,Google真正的OpenID是他的Email。但是Email也不是每次都可以取得到的,如果你在Google的授权页面上点选了”允许 XXX 记住我”,再次登录时将略过授权页面,同时也将得不到Email的值。只有Google帐号的所有者在个人设置里更改获授权网站,将你的网站撤销访问权,才能再次得到Email的值。

Google的OpenID是个被阉割的OpenID,除了提供Email的值之外,其他一概不提供!

参考:http://code.google.com/intl/zh-CN/apis/accounts/docs/OpenID.html