值得一看
广告
彩虹云商城
广告

热门广告位

使用 Chrome 扩展替换 Google Ads

使用 chrome 扩展替换 google ads

本文介绍如何通过 Chrome 扩展程序,利用 Google Publisher Tag (GPT) 和 Adsense 的特性,定位并替换网页中的 Google 广告。教程详细讲解了如何通过 JavaScript 代码实现广告位的查找与替换,并提供了完整的 Chrome 扩展程序示例,包括 manifest.json、service-worker.js 和 pageScript.js 的代码,帮助开发者快速构建自定义广告替换功能。

替换 Google Ad Manager 广告

如果网站使用 Google Ad Manager (以前的 DoubleClick for Publishers) 来投放广告,那么可以使用 googletag API 来定位和替换广告位。

for (i = 0; i < googletag.pubads().getSlots().length; i++) {
var slotDomId = googletag.pubads().getSlots()[i].getSlotElementId();
document.getElementById(slotDomId).innerHTML = 'yourcustomInnerHTML';
}

这段代码遍历所有通过 googletag.pubads().getSlots() 获取到的广告位,然后使用 getSlotElementId() 获取广告位的 DOM ID,最后通过 document.getElementById() 找到对应的 DOM 元素,并替换其 innerHTML。

注意事项:

  • 此方法仅适用于使用 Google Publisher Tag (GPT) 的网站。
  • 确保在 googletag 对象可用后执行此代码,通常需要在 DOM 加载完成后执行。

替换 Adsense 广告

如果网站使用 Adsense 投放广告,可以使用不同的方法来定位广告位。通常,Adsense 广告会被包裹在一个 ins.adsbygoogle 元素中。

var adsenseBlocks = document.querySelectorAll('ins.adsbygoogle');
for (i = 0; i < adsenseBlocks.length; i++) {
var slotDomId = adsenseBlocks[i].parentNode.id;
document.querySelector('#' + slotDomId).innerHTML = 'yourcustomInnerHTML';
}

这段代码首先使用 document.querySelectorAll(‘ins.adsbygoogle’) 找到所有 Adsense 广告的 ins 元素,然后获取其父元素的 ID,最后通过 document.querySelector() 找到对应的 DOM 元素,并替换其 innerHTML。

注意事项:

  • 此方法假设 Adsense 广告位被包含在一个具有 ID 的父元素中。
  • 确保在 Adsense 广告加载完成后执行此代码,否则可能无法找到广告位。

Chrome 扩展程序示例

为了在 Chrome 扩展程序中执行上述代码,需要将脚本注入到目标网页的 DOM 中。以下是一个完整的 Chrome 扩展程序示例:

manifest.json

{
"name": "Your Extension Name",
"action": {},
"manifest_version": 3,
"version": "0.1",
"description": "blablabla",
"permissions": [
"activeTab",
"webNavigation",
"scripting"
],
"host_permissions": [
"https://*/"
],
"background": {
"service_worker": "service-worker.js"
},
"web_accessible_resources": [{
"resources": ["pageScript.js"],
"matches": ["<all_urls>"]
}]
}

service-worker.js

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
function insertScript() {
var s = document.createElement('script');
s.src = chrome.runtime.getURL('pageScript.js');
s.onload = function() { this.remove(); };
(document.head || document.documentElement).appendChild(s);
}
chrome.webNavigation.onCompleted.addListener((tab) => {
chrome.scripting.executeScript(
{
target: { tabId: tabId },
func : insertScript
});
});
});

pageScript.js

function customHTML() {
for (i = 0; i < googletag.pubads().getSlots().length; i++) {
var slotDomId = googletag.pubads().getSlots()[i].getSlotElementId();
document.getElementById(slotDomId).innerHTML = '<h1>yourcustomInnerHTML</h1>';
}
}
//add GPT eventlisteners to detect refresh & lazyloaded ads
googletag.pubads().addEventListener("slotOnload", (event) => {
const slot = event.slot;
customHTML();
});

代码解释:

  • manifest.json: 定义了扩展程序的元数据,包括名称、版本、权限等。permissions 字段声明了扩展程序需要的权限,例如 activeTab、webNavigation 和 scripting。host_permissions 字段指定了扩展程序可以访问的域名。web_accessible_resources 字段允许网页访问扩展程序中的资源,例如 pageScript.js。
  • service-worker.js: 是一个后台脚本,用于监听网页的加载事件。chrome.tabs.onUpdated.addListener 监听标签页的更新事件,并在网页加载完成后执行 insertScript 函数。insertScript 函数创建一个 <script> 元素,并将 pageScript.js 的 URL 设置为 src 属性,然后将该元素添加到网页的 <head> 或 <html> 元素中。</script>
  • pageScript.js: 包含了实际的广告替换代码。customHTML 函数实现了替换广告位的逻辑。googletag.pubads().addEventListener(“slotOnload”, (event) => { … }); 添加 GPT 事件监听器来检测刷新和懒加载的广告,确保在广告加载后执行 customHTML 函数。

使用方法:

  1. 将上述代码保存到不同的文件中,确保文件名与代码中的引用一致。
  2. 在 Chrome 浏览器中打开 chrome://extensions/。
  3. 启用 “开发者模式”。
  4. 点击 “加载已解压的扩展程序”,选择包含上述文件的文件夹。

现在,当您访问包含 Google 广告的网页时,扩展程序会自动将广告替换为您自定义的内容。

总结:

通过上述方法,您可以有效地定位并替换网页中的 Google 广告。根据网站使用的广告服务(Google Ad Manager 或 Adsense),选择合适的方法来定位广告位。通过 Chrome 扩展程序,您可以将这些方法集成到浏览器中,实现自动化的广告替换功能。请务必注意,修改他人网站的内容可能涉及法律和道德问题,请谨慎使用。

温馨提示: 本文最后更新于2025-08-20 22:45:28,某些文章具有时效性,若有错误或已失效,请在下方留言或联系在线客服
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容