分享两个内置Google广告位的Typecho主题
前言
很多项目的开始都是因为情怀和热爱,“为爱发电”是一件很值得尊敬的事情,然而大量“为爱发电”的项目最后却不得不因”难以为继“而被迫停服。
园子就是很好的案例,它一直以来就是一个很纯粹的技术分享平台,但纯爱是最容易受伤的,不过哪怕是现在逐步探索商业化了,和”牛皮藓“满天飞,看个文章还要登录的某N(不点名,你知道我在说谁)相比,依然是一股清流。
说回本文主题,分享两个我个人开发的内置 Google 广告位的Typecho主题,我希望使用这两款主题搭建网站的同学能够永不停服,所以我一开始就想着把谷歌广告集成进去,虽未必能赚多少钱,但只要持续输出文章、作品,确保站点是活着的,一年下来挣个服务器和域名的费用总还是可以的吧!
1. 展示效果
篇幅有限,主题效果不截图展示,大家可以通过下面各小节中的项目地址详细查看,这里主要介绍 Google Ads 集成的问题,本以为集成 Google Ads 会是一件很简单的事情,最多调一下样式就好了,但结果为了能让广告正常显示,却很费了一些力气,主要就是PJAX这种页面无跳转的技术(也包括Vue,React等前端SPA框架)与 Google Ads 存在兼容性问题,本文不谈坎坷的道路,后面单独写一篇文章来记录踩坑过程,这里直接展示一下集成后的效果。
1.1 博客主题
项目地址
https://github.com/ZShijun/WaterDrop
为了兼顾收益和用户体验,我一共为博客主题设置了三个广告位:侧边栏底部,文章页头部和文章页尾部。由于窄屏没有侧边栏,因此,窄屏其实只有两个广告位。
文章页头部效果

文章页尾部效果

侧边栏效果

1.2 导航主题
项目地址
https://github.com/ZShijun/BeaconNav
文章页效果
而导航主题实在没什么好的位置,就只在详情页中设置了一个广告位。

怎么样?无论是博客主题,还是导航主题,广告嵌入的都还算和谐,不恶心吧?如果你用了我开发的主题,也赶紧试试吧,蚊子再小也是肉,给自己稍微增加一点创作的动力吧!
2. 如何使用
两个主题的设置方式大同小异,因此我以博客主题为例演示说明。配置方式很简单,我在主题配置页面增加了一个谷歌广告的配置项,如下图所示:

其中,publisher是发布商ID,后面三个可以理解为广告位的编号,都可以直接从 Google Ads 后台获取,如下图所示:


就这么简单,搞定了,至于怎么操作以及原因,我打算后面再写一篇文章来单独解释。
不出意外的话,广告很快就能在你的网站中展现出来了,所以,首要问题还是得先注册一个 Google Ads 账号,心动就赶紧行动起来吧!
3. 鱼和熊掌
如果你不希望你的网站显示广告,主题中的谷歌广告的配置直接空着就行了,不显示广告起码有以下两个优点:
- 没有了广告,网站会更纯净一些,用户体验也会好一些,当然,每个广告位都可以单独选择是否投放;
- 由于
PJAX和 Google Ads 兼容性的问题,接入广告后,向文章内容页的跳转会退化成页面跳转模式,而关闭广告后,又可以恢复原来的PJAX路由模式,文章页加载也会快一些。
事实上,上述优点只是理论上的,实际感受未必有那么明显,因为广告并不是每次都显示,也并不是所有广告位都会同时显示。至于性能的变化,访问者也未必会有明显的感受。
总之,不管怎么样,收益和体验,就如同鱼和熊掌,二者不可兼得,总还是需要权衡一下的。
结语
到此并没有结束,后续还要继续观察观察,例如,屏蔽一些在咱们这边比较敏感的广告,并且,事实上,广告展示可能还有BUG,路也没有完全走通,套句名言:这才刚刚开始!
说到这里,为了调试,我这几天几乎每天都会刷新上百次广告,现在都不太敢自己访问自己的网站了,生怕一不小心就被判定违规了,所以测试的可能不太充分,如果你在使用过程中发现新的问题,欢迎留言反馈,我会尽快验证修复。
感兴趣的赶紧去 GitHub 上下载源码安装试试吧!
分享两个内置Google广告位的Typecho主题的更多相关文章
- mybatis动态sql中的两个内置参数(_parameter和_databaseId)
mybatis动态sql中的两个内置参数(_parameter和_databaseId) <!-- mybatis动态sql的两个内置参数 不只是方法传递过来的参数可以被 ...
- Mybatis学习笔记15 - 两个内置参数_parameter和_databaseId
两个内置参数:除了方法传递过来的参数可以被用来判断,取值外,mybatis默认还有两个内置参数: _parameter:代表整个参数 单个参数:_parameter就代表这个单个参数 多个参数:参数会 ...
- Python两个内置函数——locals 和globals (学习笔记)
这两个函数主要提供,基于字典的访问局部和全局变量的方式.在理解这两个函数时,首先来理解一下python中的名字空间概念.Python使用叫做名字空间的东西来记录变量的轨迹.名字空间只是一个字典,它的键 ...
- Python两个内置函数locals 和globals
这两个函数主要提供,基于字典的访问局部和全局变量的方式.在理解这两个函数时,首先来理解一下python中的名字空间概念.Python使用叫做名字空间的东西来记录变量的轨迹.名字空间只是一个字典,它的键 ...
- SQLServer中DataLength()和Len()两内置函数的区别(转载)
最近工作中遇到了个问题:在数据库中声明字段类型时char(4),但实际只存储了‘DCE’三个字母,程序中拼装以该字段作为key的Map中,会把‘DCE’+空格作为其Key,这样造成用没加空格的‘DCE ...
- SQLServer中DataLength()和Len()两内置函数的区别
最近工作中遇到了个问题:在数据库中声明字段类型时char(4),但实际只存储了‘DCE’三个字母,程序中拼装以该字段作为key的Map中,会把‘DCE’+空格作为其Key,这样造成用没加空格的‘DCE ...
- JavaScript中本地对象、内置对象和宿主对象
链接:http://www.cnblogs.com/luckyXcc/p/5892896.html(Milk.╮的博客园提供) 其中内置对象只有两种:ECMA-262 只定义了两个内置对象,即 Glo ...
- JS 内置对象
内置对象的定义:有ECMAScript实现提供的.不依赖与宿主环境的对象,在ECMAScript运行之前就已经创建好的对象就叫做内置对象. 就是说,是不需要我们开发人员先是的实例化对象就能够调用和运行 ...
- JavaScript本地对象 内置对象 宿主对象
在ECMAScript中,所有对象并非同等创建的. 一般来说,可以创建并使用的对象有3种:本地对象.内置对象和宿主对象. 1. 本地对象 ECMA-262把本地对象(native obje ...
- JavaScript 本地对象、内置对象、宿主对象
首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. ...
随机推荐
- 【GUI软件】抖音搜索结果批量采集,支持多个关键词、排序方式、发布时间筛选等!
目录 一.背景介绍 1.1 爬取目标 1.2 演示视频 1.3 软件说明 二.代码讲解 2.1 爬虫采集模块 2.2 软件界面模块 2.3 日志模块 三.获取源码及软件 一.背景介绍 1.1 爬取目标 ...
- 【web安全】隐藏nginx头文件信息
摘要 Nginx作为开源web中间件,被广泛应用.因此源编译或者yum安装,都会带有其原有的nginx版本.很容易被针对,因此,通过修改nginx的源码.隐藏nginx版本和头部信息,保障nginx的 ...
- Canvas简历编辑器-我的剪贴板里究竟有什么数据
Canvas图形编辑器-我的剪贴板里究竟有什么数据 在这里我们先来聊聊我们究竟应该如何操作剪贴板,也就是我们在浏览器的复制粘贴事件,并且在此基础上聊聊我们在Canvas图形编辑器中应该如何控制焦点以及 ...
- 教你在windows10系统中安装python3(下载安装+配置教程)
官网地址: https://www.python.org/ 参考文档: https://www.chhui.cn/post-1039.html
- Linux部署Apache 网站服务器(httpd服务)
一.项目导入: 某学院组建了校园网,建设了学院网站.现需要架设Web服务器来为学院网站安家,同时在网站上传和更新时,需要用到文件上传和下载,因此还要架设FTP服务器,为学院内部和互联网用户提供WWW. ...
- Django性能之道:缓存应用与优化实战
title: Django性能之道:缓存应用与优化实战 date: 2024/5/11 18:34:22 updated: 2024/5/11 18:34:22 categories: 后端开发 ta ...
- 数据库—安全性控制DCL
文章目录 授予数据库权限 授予用户能够授予其他用户的权限 收回权限 数据库的权限(特殊) 授予数据库权限 这里的用户是指数据库DBMS中创建的用户,而不是程序中的账户用户. 授予某个/多个表的某一个/ ...
- pageoffice6 实现提取数据区域为子文件(Word拆分)
在实际的开发过程中,有时会遇到希望提取Word文档中部分内容保存为子文件的需求,PageOffice支持提取Word文档数据区域中的内容为一个Word文件流,在服务器端创建PageOffice的Wor ...
- Java中枚举类的深入理解
概述 在此之前由于个人在学习和开发中对枚举类的应用较少,所以对枚举类的知识点并没进行深入的了解,但最近写代码中突然想到了枚举类,抱着完善自身的知识的目的,就较为深入的了解了Java中的枚举类. 我在学 ...
- RTMP推流FLV插入自定义SEI数据总结
一.需求 在RTMP推送的流中添加一个接口,可以添加自定义的数据(一段字节数组). 经过分析,在H264的流中可以通过SEI添加自定义数据,下面是实施的总结 二.实施 1)准备工具 RTMP推流客户端 ...