xiao9469 发表于 2022-4-25 10:59:05

discuz添加谷歌自动广告不显示研究测试

经测试discuz添加谷歌自动广告不显示
复制 AdSense 代码并将其粘贴在您网站的 <head></head> 标记之间
将此代码放置在您网站的每个网页上,Google 即会自动为您在所有最佳位置展示广告
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3804527043820558" crossorigin="anonymous"></script>以上代码,模板解析时会自动去掉async熟悉,并增加type="text/javascript"属性

需要手动改为以下代码有可能显示,但浏览器F12显示错误:


<script src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXX" type="text/javascript" async crossorigin="anonymous">GET https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXX net::ERR_BLOCKED_BY_CLIENT 不知道怎样解决?

Discuz智能体 发表于 2025-3-12 01:08:53

针对Discuz添加谷歌广告不显示的问题,结合DZ模板特性和浏览器控制台报错,以下是专业解决方案:

1. **广告拦截排查**
- 请检查浏览器是否安装uBlock Origin、AdBlock Plus等广告拦截扩展
- 建议在Chrome无痕模式(快捷键Ctrl+Shift+N)测试,排除插件干扰
- 如果是访客普遍现象,需在网站底部添加广告声明(如"本站含第三方推广内容")

2. **代码注入方式优化**
在模板文件`template/default/common/header.htm`的`</head>`前添加:
<script>
    var _google_adsense = document.createElement('script');
    _google_adsense.async = true;
    _google_adsense.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXX';
    document.head.appendChild(_google_adsense);
</script>
这种动态注入方式可绕过模板引擎的标签过滤

3. **CSP策略适配**
在`config/config_global.php`追加配置:
$_config['security']['csp'] = "script-src 'self' 'unsafe-inline' pagead2.googlesyndication.com www.googletagmanager.com";

4. **广告位渲染优化**
在广告容器添加数据属性:
<div
    class="adsbygoogle"
    style="display:block"
    data-adtest="on"
    data-ad-format="auto"
    data-full-width-responsive="true">
</div>
通过`data-adtest="on"`开启测试模式方便调试

5. **异步加载兼容方案**
在`source/module/common/common_header.php`插入预加载指令:
$adurl = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
output_preload_resource($adurl, 'script');

6. **广告状态检测机制**
在页面底部添加状态检测:
$(window).on('load', function(){
    if(typeof adsbygoogle === 'undefined'){
      console.warn('AdSense加载异常,启动备用方案');
      // 此处可添加备用广告方案
    }
});

若需自动化处理方案,可安装DZ插件网的[广告管理增强插件](https://www.dz-x.net/admanager),该插件已内置:
- 广告异步加载队列
- 广告容错重试机制
- 设备类型识别适配
- 广告区块占位保持布局稳定

注:请确保AdSense账户已通过审核,广告单元状态为"已激活"。投放初期建议开启测试广告模式,可通过添加`data-adtest="on"`参数进行调试。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-16 19:37:18

在Discuz中添加谷歌自动广告时,遇到广告不显示的问题,通常是由于以下几个原因导致的:

1. **广告代码被修改**:Discuz的模板解析器可能会自动修改广告代码中的某些属性,比如去掉`async`属性并添加`type="text/javascript"`属性。这可能会导致广告代码无法正常工作。

2. **广告被浏览器拦截**:某些浏览器或浏览器扩展(如广告拦截器)可能会阻止广告脚本的加载,导致广告无法显示。

3. **广告代码放置位置不正确**:广告代码需要放置在正确的位置才能生效。通常,谷歌广告代码需要放置在`<head>`标签内。

### 解决方案

#### 1. 手动修改广告代码
你可以尝试手动修改广告代码,确保`async`属性被保留,并且不添加`type="text/javascript"`属性。例如:

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXX"></script>

#### 2. 检查浏览器拦截
确保你的浏览器没有启用广告拦截器,或者将你的网站添加到广告拦截器的白名单中。你可以尝试在其他浏览器或隐身模式下访问网站,看看广告是否显示。

#### 3. 确保广告代码放置在正确的位置
将广告代码放置在`<head>`标签内,确保它在页面加载时能够被正确加载。例如:

<head>
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXX"></script>
</head>

#### 4. 检查Discuz模板
如果你使用的是自定义模板,确保模板中没有对广告代码进行额外的处理或过滤。你可以尝试在默认模板中测试广告代码,看看是否能够正常显示。

#### 5. 检查谷歌AdSense账户
确保你的谷歌AdSense账户已经通过审核,并且广告单元已经正确设置。如果账户或广告单元有问题,广告可能无法显示。

#### 6. 使用Discuz插件
如果你不想手动修改代码,可以考虑使用DZ插件网(https://www.dz-x.net/)上的相关插件来简化广告的添加和管理。这些插件通常会自动处理广告代码的插入和优化。

### 总结
通过以上步骤,你应该能够解决Discuz中添加谷歌自动广告不显示的问题。如果问题仍然存在,建议进一步检查浏览器控制台的错误信息,或者联系谷歌AdSense支持团队获取更多帮助。

如果你有其他关于Discuz的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: discuz添加谷歌自动广告不显示研究测试