CASE STUDY · LPI · 2024–2025

Ad System
Re-Architecture

Our Google Ad Manager setup hadn’t changed since 2011, and it hit a hard limit that stopped new ads from launching. I rebuilt how we traffic ads and protected $7.5M in ad revenue growth.

$7.5M

revenue growth protected, 2025 to 2028

33,164

line items today, under the 61,000 cap

$32K

in outside costs avoided

15 hrs

of designer time saved each week


MY ROLE

Product Design Manager, acting as product owner and subject-matter expert for Google Ad Manager

TIMEFRAME

Cap first hit in late Q3 2024; the rebuild ran mostly late Q2 through Q3 2025

TEAM

Me, with ad ops, the ad design team, sales and development

PLATFORM

Google Ad Manager, Parishes Online (POL), My Community Online (MCO), Salesforce, Miro


THE PROBLEM

Every ad sold became another line item

LPi sells digital ads on church listing pages across Parishes Online (POL) and its community version, My Community Online (MCO). Since 2011, every ad sold had been its own targeted line item in Google Ad Manager, and two years of fast growth broke that model.

In late Q3 2024, new campaigns stopped going live. We had hit Google Ad Manager’s hard cap of 61,000 line items, and nobody at LPi knew the platform well enough to say why. So I learned it.

Every ad turned out to be targeted twice. Removing the duplicate level dropped line items to about 44,000 and campaigns launched again. That bought time, not a fix. The audit found more:

  • One line item per ad, one creative per line item, and no naming conventions.

  • Tangled placements and ad units, some overlapping through targeting.

  • Guesswork: years of changes by teams who couldn’t see how it worked.

  • Under-delivery: hundreds of ads never fully delivered, often from setup errors.

MY ROLE

Learning the platform, then leading the fix

As Product Design Manager, I acted as product owner and Google Ad Manager subject-matter expert.

  • Learned Google Ad Manager from scratch and led the audit that got campaigns launching again.

  • Designed the new trafficking model, placement cleanup and naming conventions.

  • Built a phased roadmap with engineering, sales and support, and won leadership buy-in.

  • Set best practices with ad ops and sales, and wrote scripting requirements with development.

Google Ad Manager line item list from the legacy setup, one targeted line item per sold ad, with status, start dates and delivery progress. Line item names and delivery stats are blurred.

The legacy setup in Google Ad Manager: every ad sold got its own targeted line item and a single creative. Advertiser names and stats are blurred.

THE FORECAST

44 weeks to a dead stop

After the first fix, I tracked how fast line items came back: 43,400 on April 2, 2025, growing by about 400 a week. At that pace the cap would stop new ads in about 44 weeks, around January 2026. The rebuild ran mostly from late Q2 through Q3 2025.

Bar from 0 to the 61,000 line item cap. 43,400 used on April 2, 2025, about 71 percent. The remaining 17,600 are split into 44 weekly stripes of about 400 each.

Line items in use on April 2, 2025, against the 61,000 cap. Each stripe in the remaining space is one week at about 400 new line items.

61,000

line item hard cap in Google Ad Manager

43,400

line items with targeting on Apr 2, 2025

488

added in one week, Mar 25 to Apr 2

44

weeks left at that pace

$6M

a year in ad revenue at risk when the cap hit

2011

the last time the setup changed

Miro board: one church listing where every live ad has its own line item, 23 in all, with the math: 43,400 line items on 4/2/25, 488 added in a week, about 400 a week, 17,600 left before the 61,000 limit, 44 weeks until dead stop.

My Miro board. One church listing with its premium spots sold out and 20 rotating ads needed 23 line items. The math underneath set the deadline.

STRATEGY

Fix the structure, not just the count


Restructure trafficking

One line item per placement instead of one per ad, built from templates.

Plan for regional search ads

A second system for regional search placements, so the next product starts on the new structure.

Match how ads are sold

Separate logic for listing ads, search- and location-based ads, and national ads.

Organize by placement

Reporting and inventory organized by placement within each account’s order.

New inventory for local sales

A new digital inventory system for the local ads our sales team sells.

Two rebuilds, one roadmap

The ad platform was rebuilt at the same time, so one phased roadmap kept the two compatible.

THE NEW MODEL

One order per account, one line item per placement

Premium spots are exclusive, so each keeps its own line item. Rotating spots share one line item per size, with every ad sold into that spot as a creative, so Google Ad Manager rotates them evenly. One listing went from 23 line items to 5.

Before: 23 line item and ad pairs for one church listing, one line item per ad. After: one order for the church account with 5 line items, three premium with one ad each and two rotating with ten ads each.

One church listing with three premium ads and 20 rotating ads: 23 line items before, 5 after.

Miro concept for the future structure: one order per account, one line item per available placement with targeting on the account, and multiple ad creatives on one line item, which allows true rotation.

The concept from my Miro board, with the same listing worked through: three premium line items and two rotating line items holding ten ads each.

A rotating 300 by 100 line item in Google Ad Manager with ten creatives assigned. Order name, advertiser names, creatives and URLs are blurred.

A rotating line item today, with ten advertisers’ creatives on it. Shared, non-exclusive spots are what keep the system sustainable. Advertiser details are blurred.

MAPPING AND CLEANUP

Untangling placements and ad units

Before moving a single ad, I mapped every placement and ad unit on both platforms, current and future. Once each placement pointed to exactly one ad unit, we could migrate one placement at a time.

POL listing placements and ad units before the cleanup. SAF2_OrgListing_300x250, with 13,930 line items, and SAF2_OrgListing_300x100, with 17,276, each connect to several ad units with crossing lines.

BEFORE

POL listing placements (blue) feeding several ad units (pink) at once. Line item counts are from the last 30 days of impressions at the time. The ad design team had been manually configuring each ad, and the naming conventions and tangled placements were causing confusion and more errors.

The same two POL placements after the cleanup, each mapped to one new ad unit: POL_LargeRotating_300x250 and POL_SmallRotating_300x100.

AFTER

The same placements, each mapped to one new ad unit (green) under the new naming convention. After testing, we were able to retire the old placement names in favor of a naming convention the ad operations team could nderstand.

Wireframe map of ad placements on Parishes Online desktop pages (listing, publication, email, supporters and search) and mobile pages, with a numbered list of placement names.

Every POL placement, on desktop and mobile, mapped by page.

Wireframe map of ad placements on My Community Online (MCO) desktop and mobile pages: listing, publication, supporters and search.

The same map for MCO. The plans changed as both platforms were rebuilt.

EXECUTION

Migrating live ads without stopping them

I wrote the migration’s scripting requirements with development, and new setup practices with ad ops and sales. Regular demos and documentation kept everyone aligned.

  1. Export historical impression and click data.

  2. Rename each creative after its current line item.

  3. Create one order per account from church IDs.

  4. Create line items per church and placement, with the new naming scheme.

  5. Move creatives to the new line items by placement, then archive the old ones.

Migration plan: an eight-step checklist beside a diagram of an order for contract 01-0001, its line items by placement, and the creatives under each line item, keyed by church ID and ad ID.

The migration plan: one order per contract, a line item per placement, and the creatives under each. IDs are examples.

POL/GAM product roadmap from Q4 2024 into 2026, color-coded by research, platform UX, partnerships, Google Ad Manager and business needs. The Google Ad Manager overhaul sits in 2025 Q3. One internal note is blurred.

The POL/GAM roadmap, Q4 2024 into 2026. The Google Ad Manager overhaul ran alongside the platform rebuild. One internal note is blurred.

BUMPS ALONG THE WAY

What made it hard, and what we did

RESULTS

Room to grow, and a system people understand

Line items

Before: One per ad sold

Now: One per placement per account

Example listing

Before: 23 line items for 3 premium and 20 rotating ads

Now: 5 line items for the same ads

Organization

Before: No naming conventions, and placements tangled across ad units

Now: One order per account, one ad unit per placement, clear names

Room under the cap

Before: About 44 weeks left, with a halt projected for early 2026

Now: 33,164 line items with targeting, stable as sales grow

Ad delivery

Before: Hundreds of ads never fully delivered

Now: Scripts flag ads that fit no pattern, and recurring errors are fixed in bulk through the API

Weekly setup

Before: Hundreds of ads set up and switched by hand each week

Now: About 56 ads a day sync from Salesforce

$7.5M

revenue growth protected, on the path from $6.5M in 2025 to $14M projected for 2028

33,164

line items with targeting today, down from the 61,000 cap and stable

$32K

in outside costs avoided by doing the work in-house

~56

ads a day synced automatically from Salesforce

15

hours of designer time saved per week

  • The ad business kept running: the halt projected for early 2026 never happened.

  • Data we can trust: a structure built for scale and reliable reporting.

  • A new tool for local sales: better coordination between sales and operations.

  • Set up for what’s next: a framework for the coming regional inventory launch.

Google Ad Manager orders list after the restructure, one order per church account, each with a few delivering line items. Order names and impression counts are blurred.

Orders today: each customer account has its own order, 6,504 in the list. Order names and stats are blurred.

A single church order in Google Ad Manager with eight delivering line items, one per placement. Order and line item names and stats are blurred.

Inside one order: eight line items, one for each placement with ads running on that listing.

LESSONS

A system failure became a foundation for growth

A technical limit exposed a decade of one-off decisions across sales, ad ops and platform design. Treating it as a systems problem, not a tooling problem, let me align the teams and rebuild the core trafficking logic.

The cap was the symptom. The structure was the problem.

  • Do the math early: a weekly count turned an emergency into a deadline the business could plan around.

  • Fix the structure, not the number: the first fix bought time; the model change removed the cliff.

  • Make the system readable: naming conventions and one ad unit per placement let ad ops reason about what they see.

  • Move in small, safe steps: one placement at a time kept paid ads running throughout.

LPi’s ROI review credits the project with protecting $7.5M: the path from $6.5M in 2025 to a projected $14M in 2028. The new structure also made the Salesforce automation possible.

Previous
Previous

Winning ownership of a 9M-visitor directory, then redesigning it

Next
Next

Replacing a failing website product with one that signed 1,000+ contracts