Skip to content

ads: auto-install drops every size above </body> - #96

Merged
ralyodio merged 1 commit into
masterfrom
ads/install-all-sizes
Jul 17, 2026
Merged

ralyodio merged 1 commit into
masterfrom
ads/install-all-sizes

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

What

Follow-up to #94. The Monetize page's "Submit PR to install" installed a single size and tried to place a leaderboard at the top of the page. As discussed, we can't reliably tell where each size belongs without actually understanding the target page — so the auto-installer now just drops a unit for every available size stacked before </body>, sharing one /ad.js loader. Publishers keep or move whichever they want; empty units simply don't render.

Changes

  • lib/github/install-ad.ts — embedBlock() stacks a <div data-cp-ad> for every PUBLISHER_FORMAT_IDS size before </body> with a single shared loader (indent-aware for multi-line JSX). Removes the top-placement / single-format code paths.
  • app/api/ads/slots/[id]/install-embed/route.ts — drops the per-format param; the installer always installs all sizes.
  • components/ads/slot-manager.tsx — the install button now reads "Submit PR to install all sizes" and sits below the per-size copy area, with a note that it adds every size above </body>.
  • tests — auto-install emits every size + exactly one loader, all above </body>.

Notes

🤖 Generated with Claude Code

The Monetize page's "Submit PR to install" installed a single size and
tried to place a leaderboard at the top of the page. We can't reliably
tell where each size belongs without understanding the target page, so
instead inject a unit for EVERY available size (PUBLISHER_FORMAT_IDS)
stacked before </body>, sharing one /ad.js loader. Publishers keep or
move whichever they want; empty units simply don't render.

- lib/github/install-ad.ts: embedBlock stacks all sizes before </body>
  with a single loader; drop the top-placement / single-format paths
- app/api/ads/slots/[id]/install-embed: no per-format param (installs all)
- components/ads/slot-manager.tsx: install button says "install all
  sizes" and sits below the per-size copy area
- tests: auto-install emits every size + one loader, all above </body>

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

vu1nz Security Review

0 finding(s) in PR #?

No security issues found.

@ralyodio
ralyodio merged commit 15ca6a2 into master Jul 17, 2026
8 checks passed
@ralyodio
ralyodio deleted the ads/install-all-sizes branch July 17, 2026 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant