侧边栏广告代码没那么玄,核心就是一块有尺寸的容器,加上异步加载的广告脚本。打开网页源码,看到右侧那列广告,多数是“一个div容器 + 一段广告联盟脚本 + 一点样式控制”。
先定位置和尺寸。侧边栏常见宽度300px,广告位常用300×250、300×600,也有160×600和728×90。容器最好写死宽高或最小高度,广告没回来时先占住位置,不然正文会被挤动。比如:
```html
```css
.ad-slot-right{
width:300px;
min-height:250px;
position:sticky;
top:20px;
overflow:hidden;
}
.ad-placeholder{
display:flex;
align-items:center;
justify-content:center;
height:250px;
color:#999;
font-size:12px;
}
```
这里用sticky是为了滚动时广告跟着停一下,但父级不能有overflow:hidden,否则粘不住。移动端宽度不够时,直接媒体查询隐藏侧边广告,别硬塞。

广告脚本一般分两种。直接贴联盟代码时,页面底部异步加载一次脚本,广告位只负责push。AdSense这类代码大致是:
```html
style="display:block"
data-ad-client="你的发布商编号"
data-ad-slot="广告位编号"
data-ad-format="auto"
data-full-width-responsive="true">
```
实际项目不会在每个广告位重复放加载脚本,否则重复请求。页面里引一次异步脚本,每个容器按顺序push。侧边栏广告位多的时候,push顺序要和容器对应,不然容易错位。
自建广告服务器写法更可控:前端请求接口拿JSON素材,再用iframe渲染,避免广告样式污染页面。iframe设置sandbox="allow-scripts allow-popups",宽高跟容器一致。曝光统计用IntersectionObserver,广告可见超过50%且停留1秒再上报;点击跳转走/click?id=记录。广告请求设1.5秒超时,超时显示占位或自家推广,别让侧边栏空着。
懒加载也常用,rootMargin给200px,广告进入视口前200px再请求,减少首屏压力。广告脚本本身可能同步写document,所以最好放iframe或async加载。隐私方面,欧盟和加州流量需要先过CMP,用户同意后再加载广告脚本。广告屏蔽检测也简单,容器高度为0或占位没被替换,就显示备用内容。最后盯一下CLS,目标小于0.1,侧边广告代码就算写得比较稳了。