这几天又鼓捣上了google广告,弄了个“搜索联盟”放在博客的右侧。当时心想,傻子才会在这搜索呢,不用说别人,即使我自己都是习惯性地跑去firefox的右上角去输入搜索内容。所以,放在那好看罢了(也不怎么好看哈)。

后来灵机一动,为什么不把firefox右上角的google搜索改成我自己的“搜索联盟”呢。那样每次搜歌什么东西都给自己增加广告收入了,哈。说干就干。

首先,找到firefox的安装路径,看到有这么一个文件夹:\searchplugins\,应该是这了,打开一看果然有个google.xml,这应该就是firefox右上角的google搜索的配置文件了,打开后看到内容并不多,这里就不全贴出来了。

前面几行不重要,<image>标签里的内容应该是搜索框前显示的图标了,是base64编码后的内容。再往后就是两个<Url>标签,这就是我们要改的内容了。

先说一下从google搜索联盟里搜索时实际的Url,比如搜索的关键字是“soli”,如下:

 

http://www.google.cn/search?q=soli&sa=Google+%E6%90%9C%E7%B4%A2&prog=aff&client=pub-3437261252070022&channel=5277995732&domains=soli.cnblogs.com&hl=zh-CN&source=sdo_sb&sdo_rt=ChBJjCDpAAKx8Ap7CRNic05lEg5fX1JMX0RFRkFVTFRfXxoIdh1q8cwwlT0oAQ&sitesearch=

 

 

当然,“http://www.google.cn/search?”后面的是一系列的参数,每个等号的左边是参数名,右边是参数的值,比如“q=soli”的意思就是参数q的值是“soli”,也就是我们要搜索的内容。各个参数之间用“&”隔开。其他参数的意义可以在网上搜一下,google提供了很丰富的参数。比如:

client:就是你的客户ID,对每一个adsense的注册用户,google都提供了一个唯一标示,就是这东西,比如我的是pub-3437261252070022,也就是google通过这个号来确定该把这次搜索算在谁的账户下。

channel:就是渠道,在获取google广告代码的时候有选择的,为每个广告设置一个渠道,以后就能清楚地知道自己在哪投放的广告为自己挣钱了。

 

再回到firefox的google.xml,先看第一个<Url>标签,内容如下:

 

<Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;client=firefox&amp;hl={moz:locale}&amp;q={searchTerms}"/>

 

其中,template变量的值很像我们上面提到的Url,也有个“q=……”,这就是要搜索的关键字的变量了,后面的“{searchTerms}”是什么意思呢?这是个firefox的内部变量,代表你在firefox右上角的搜索框里输入的内容,也就是你想要搜索的关键字。开始搜索的时候这个东东就替换成了你要搜索的内容,比如“soli”。

这里我们应该注意,把各个参数隔开的不是“&”了,而变成了“&amp;”好了,我们把这个template换成我们自己的URL,如下:

 

<Url type="application/x-suggestions+json" method="GET" template="http://www.google.cn/search?q={searchTerms}&amp;sa=Google+%E6%90%9C%E7%B4%A2&amp;prog=aff&amp;client=pub-3437261252070022&amp;channel=5277995732&amp;domains=soli.cnblogs.com&amp;hl=zh-CN&amp;source=sdo_sb&amp;sdo_rt=ChBJjCDpAAKx8Ap7CRNic05lEg5fX1JMX0RFRkFVTFRfXxoIdh1q8cwwlT0oAQ&amp;sitesearch="/>

 

标绿的部分要注意一下。

再看第二个Url标签的内容:

 

<Url type="text/html" method="GET" template="http://www.google.com/search">
  
<Param name="q" value="{searchTerms}"/>
  
<Param name="ie" value="utf-8"/>
  
<Param name="oe" value="utf-8"/>
  
<Param name="aq" value="t"/>
  
<!-- Dynamic parameters -->
  
<Param name="rls" value="{moz:distributionID}:{moz:locale}:{moz:official}"/>
  
<MozParam name="client" condition="defaultEngine" trueValue="firefox-a" falseValue="firefox"/>
</Url>

 

一看到有个“q”和“{searchTerms}”我们立马明白了,这个Url其实就是把第一个Url拆开来写罢了。经过分析,倒数第二和三行似乎没用,直接删除,把我们的Url各个参数拆开来,填到<Param>标签里,如下:

 

<Url type="text/html" method="GET" template="http://www.google.cn/search">
<Param name="q" value="{searchTerms}"/>
<Param name="sa" value="Google+%E6%90%9C%E7%B4%A2"/>
<Param name="prog" value="aff"/>
<Param name="client" value="pub-3437261252070022"/>
<Param name="channel" value="5277995732"/>
<Param name="domains" value="soli.cnblogs.com"/>
<Param name="hl" value="zh-CN"/>
<Param name="ie" value="UTF-8"/>
<Param name="source" value="sdo_sb"/>
<Param name="sdo_rt" value="ChBJjCDpAAKx8Ap7CRNic05lEg5fX1JMX0RFRkFVTFRfXxoIdh1q8cwwlT0oAQ"/>
<Param name="sitesearch" value=""/>
</Url>

 

其中,绿色标示的哪一行必须有,要不会出现乱码。“ie”是InputEncoding,就是输入的字符编码,为什么是“UTF-8”呢?因为google.xml的第四行是“<InputEncoding>UTF-8</InputEncoding>”。

 

好了,大功告成。把我们修改过后的google.xml覆盖原来的文件(如果不放心可先备份一下),然后重启firefox,随便输入点什么搜索一下吧。

这里是我修改后的google.xml(https://files.cnblogs.com/soli/google.xml),和上面讲的有点出入,因为我在设置我的“google搜索联盟的时候”,搜索类型我选的是第一个“Google WebSearch 允许用户直接从您的网站搜索网络”,所以没用“domains=soli.cnblogs.com”这个参数。

 

 

 

Posted on 2009-02-06 20:26  Soli  阅读(1565)  评论(5编辑  收藏  举报