目錄
替換Google Ad Manager 廣告
替換Adsense 廣告
Chrome 擴展程序示例
首頁 web前端 js教程 使用 Chrome 擴展替換 Google Ads

使用 Chrome 擴展替換 Google Ads

Aug 21, 2025 am 11:57 AM

使用 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 <p>這段代碼遍歷所有通過googletag.pubads().getSlots() 獲取到的廣告位,然後使用getSlotElementId() 獲取廣告位的DOM ID,最後通過document.getElementById() 找到對應的DOM 元素,並替換其innerHTML。</p><p><strong>注意事項:</strong></p>
  • 此方法僅適用於使用Google Publisher Tag (GPT) 的網站。
  • 確保在googletag 對象可用後執行此代碼,通常需要在DOM 加載完成後執行。

替換Adsense 廣告

如果網站使用Adsense 投放廣告,可以使用不同的方法來定位廣告位。通常,Adsense 廣告會被包裹在一個ins.adsbygoogle 元素中。

 var adsenseBlocks = document.querySelectorAll('ins.adsbygoogle');
for (i = 0; i <p>這段代碼首先使用document.querySelectorAll('ins.adsbygoogle') 找到所有Adsense 廣告的ins 元素,然後獲取其父元素的ID,最後通過document.querySelector() 找到對應的DOM 元素,並替換其innerHTML。</p><p><strong>注意事項:</strong></p>
  • 此方法假設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>"]
  }]
}</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 yourcustomInnerHTML';
      }
    }

 //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 擴展程序,您可以將這些方法集成到瀏覽器中,實現自動化的廣告替換功能。請務必注意,修改他人網站的內容可能涉及法律和道德問題,請謹慎使用。

以上是使用 Chrome 擴展替換 Google Ads的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1592
276
在打字稿中的高級條件類型 在打字稿中的高級條件類型 Aug 04, 2025 am 06:32 AM

TypeScript的高級條件類型通過TextendsU?X:Y語法實現類型間的邏輯判斷,其核心能力體現在分佈式條件類型、infer類型推斷和復雜類型工具的構建。 1.條件類型在裸類型參數上具有分佈性,能自動對聯合類型拆分處理,如ToArray得到string[]|number[]。 2.利用分佈性可構建過濾與提取工具:Exclude通過TextendsU?never:T排除類型,Extract通過TextendsU?T:never提取共性,NonNullable過濾null/undefined。 3

微觀前端體系結構:實施指南 微觀前端體系結構:實施指南 Aug 02, 2025 am 08:01 AM

Microfrontendssolvescalingchallengesinlargeteamsbyenablingindependentdevelopmentanddeployment.1)Chooseanintegrationstrategy:useModuleFederationinWebpack5forruntimeloadingandtrueindependence,build-timeintegrationforsimplesetups,oriframes/webcomponents

Jul 26, 2025 am 07:52 AM

要獲取JavaScript數組的長度,可以使用內置的length屬性。 1.使用.length屬性可返回數組中元素的數量,例如constfruits=['apple','banana','orange'];console.log(fruits.length);//輸出:3;2.該屬性適用於包含字符串、數字、對像或數組等任何類型數據的數組;3.length屬性會自動更新,當添加或刪除元素時其值隨之變化;4.它返回基於零的計數,空數組的length為0;5.可手動修改length屬性來截斷或擴展數組,

JavaScript中的VAR,LET和CONST之間有什麼區別? JavaScript中的VAR,LET和CONST之間有什麼區別? Aug 02, 2025 pm 01:30 PM

varisfunction-scoped,canbereassigned,hoistedwithundefined,andattachedtotheglobalwindowobject;2.letandconstareblock-scoped,withletallowingreassignmentandconstnotallowingit,thoughconstobjectscanhavemutableproperties;3.letandconstarehoistedbutnotinitial

了解JavaScript的代理並反映API 了解JavaScript的代理並反映API Jul 26, 2025 am 07:55 AM

Proxy和ReflectAPI是JavaScript中用於攔截和自定義對像操作的強大工具;1.Proxy通過包裝目標對象並定義“陷阱”來攔截如get、set等操作,實現如日誌、驗證、只讀控制等功能;2.Reflect提供與Proxy陷阱對應的方法,確保默認行為的一致性和正確性,提升代碼可維護性;3.實際應用包括Vue3響應式系統、數據驗證、調試日誌、不可變對象和API模擬;4.使用時需注意性能開銷、內置對象的複雜行為、this綁定問題及嵌套對象需遞歸代理;5.合理使用可構建高效、可調試、反應式

生成可解的雙巧克力謎題:數據結構與算法指南 生成可解的雙巧克力謎題:數據結構與算法指南 Aug 05, 2025 am 08:30 AM

本文深入探討瞭如何為“雙巧克力”(Double-Choco)謎題遊戲自動生成可解謎題。我們將介紹一種高效的數據結構——基於2D網格的單元格對象,該對象包含邊界信息、顏色和狀態。在此基礎上,我們將詳細闡述一種遞歸的塊識別算法(類似於深度優先搜索),以及如何將其整合到迭代式謎題生成流程中,以確保生成的謎題滿足遊戲規則,並具備可解性。文章將提供示例代碼,並討論生成過程中的關鍵考量與優化策略。

什麼是JS中的可選鏈接(?)? 什麼是JS中的可選鏈接(?)? Aug 01, 2025 am 06:18 AM

可選的(?。)InjavascriptsafelyAcccessesnestedPropertiesByRoturningUndUndEfendEfinefinefinefineFanifThainisNullOrundEffined,deskingruntimeErrors.1.itallowssafealowssafeccesstodeeplynestedobjectedobjectproperties

如何使用JavaScript從DOM元素中刪除CSS類? 如何使用JavaScript從DOM元素中刪除CSS類? Aug 05, 2025 pm 12:51 PM

使用JavaScript從DOM元素中刪除CSS類最常用且推薦的方法是通過classList屬性的remove()方法。 1.使用element.classList.remove('className')可安全刪除單個或多個類,即使類不存在也不會報錯;2.替代方法是直接操作className屬性並通過字符串替換移除類,但易因正則匹配不准確或空格處理不當引發問題,因此不推薦;3.可通過element.classList.contains()先判斷類是否存在再刪除,但通常非必需;4.classList

See all articles