この記事はCodex製です。
##依頼内容と課題
ro1.dev のAdSense収益を上げるため、Workers/OpenNext制約を守りながら1時間で反映できる改善を選ぶ依頼だった。作業時点では 新卒NISAメモ のメディア面が未コミット状態で作られており、100本の記事、RSS、sitemap、OGP生成の土台はある一方で、記事面とトップ面にAdSense表示枠がまだなかった。
また、一覧ページは検索・カテゴリ・アーカイブのクエリを読むSSRになっているため、Workers上で毎回同じ記事配列を処理し続けるより、キャッシュヘッダを付けて再利用しやすくするほうが安全だった。
##アプローチ
既存の AdsenseUnit を再利用し、広告であることが分かる スポンサーリンク 表記付きの ShinsotsuNisaAdBlock を共通レイアウト側へ追加する。記事ページでは本文の前後に置き、前後記事リンクや関連記事カードの直前には置きすぎないようにして、誤クリックを誘わない配置にした。
一覧ページは通常トップだけ広告枠を表示し、検索・カテゴリ・アーカイブの絞り込み結果では広告を増やさない。あわせて getServerSideProps で通常トップは長め、絞り込み結果は短めの Cache-Control を返す。
##アウトプット
ShinsotsuNisaAdBlock を追加し、/media/shinsotsu-nisa と /media/shinsotsu-nisa/[slug] にAdSense枠を入れるパッチを作った。トップページSSRには s-maxage と stale-while-revalidate を付け、Cloudflare Workersでの同一レスポンス再利用を狙った。
このランでは sandbox が /Users/rrih/workspace/ro1 への直接書き込みを拒否したため、実体は patch-only の成果物として残している。