2011-05-21 99 views
0

我不想顯示AdSense登錄成員,使用JavaScript和基於cookie。這兩種類型的成員都會看到相同的html,因爲它是從服務器緩存的。我知道我可以隱藏包含div的內容,但我認爲這是對TOS的反對,也會被視爲錯誤的印象。實際的谷歌腳本不能改變。我想我只需要以某種方式阻止它在google代碼之前或之後使用一些javascript加載show_ads.js。隱藏基於cookie的Adsense

<script type="text/javascript"><!-- 
google_ad_client = "ca-pub-555"; 
google_ad_slot = "555"; 
google_ad_width = 468; 
google_ad_height = 15; 
//--> 
</script> 
<script type="text/javascript" 
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script> 
+0

@porum - 根據[專業網站管理員常見問題](http://webmasters.stackexchange.com/faq)轉到StackExchange。如果您對此問題的遷移有任何疑問,請諮詢[Pro Web Masters Meta](http://meta.webmasters.stackexchange.com/)。 – danlefree 2011-05-21 03:50:46

+0

它必須是JavaScript嗎?在JS中操作曲奇是件痛苦的事情。你用什麼服務器端腳本來生成你的頁面? – GordonM 2011-05-21 04:15:22

+0

忽略餅乾。重要的部分是能夠根據客戶端上的某些標準來選擇性地顯示廣告。服務器代碼是.Net MVC。我試圖通過使用jQuery Ajax Get的部分視圖加載腳本,但頁面掛載在加載谷歌腳本上,儘管它可以在單獨的腳本中使用簡單的警報。 – peterorum 2011-05-21 04:54:40

回答

0

最好的辦法是使用服務器端腳本(PHP,ASP等)刪除AdSense代碼。這裏有一些PHP的僞代碼:

<?php 
if (!$loggedin) { 
?> 

<script type="text/javascript"><!-- 
google_ad_client = "ca-pub-555"; 
google_ad_slot = "555"; 
google_ad_width = 468; 
google_ad_height = 15; 
//--> 
</script> 
<script type="text/javascript" 
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script> 

<?php 
} 
?> 
+0

謝謝,但我正在尋找客戶端解決方案,以便服務器可以爲每個人生成和緩存相同的html - 匿名成員,登錄成員,付費成員。我寧願不要有3個服務器端緩存的所有內容。我可以改變基於cookie的客戶端處理,但我不認爲只是在javascript中放置諸如「if(loggedin){...}」之類的東西會阻止它加載google show_ads.js,並且谷歌腳本不允許修改。 可能需要谷歌的Ajax Adsense產品,但他們已經停產。 – peterorum 2011-05-22 00:08:29

+0

此時,我正在使用服務器解決方案來處理非緩存頁面,並且未在我想展示給他們的某些緩存頁面上展示廣告。 – peterorum 2011-05-22 00:16:25