Chapter 1: Vision & Goals
The Problem: Retailers Waste Ad Spend on the Wrong Products
Every day, thousands of Shopify merchants pour money into Google Ads without a strategy for which products deserve the most budget. The result is predictable and costly: winter jackets get the same ad spend as shorts in January, dead stock competes with bestsellers for clicks, and new arrivals languish in obscurity while clearance items drain the budget.
The root cause is straightforward. Google Ads Performance Max (PMAX) campaigns treat all products equally unless the merchant manually segments them using custom labels in Google Merchant Center. But managing those labels is a manual, error-prone process that most merchants either skip entirely or configure once and never update.
The Scale of the Problem
Consider a retailer like Nexus Clothing with 5,582 products across 90 product types and 175 vendors. In winter, puffer jackets and hoodies should receive maximum ad spend while shorts and sandals should be excluded entirely. When spring arrives, the priorities must reverse. Multiply this by seasonal transitions four times per year, new product arrivals weekly, and clearance cycles monthly, and the manual management burden becomes untenable.
THE WASTED AD SPEND CYCLE
=========================
Merchant sets up PMAX campaign
|
v
All products treated equally
|
v
Budget spread across entire catalog
|
+---> Shorts get clicks in January (wasted)
|
+---> Dead stock gets impressions (wasted)
|
+---> New arrivals buried under old products (missed opportunity)
|
+---> Seasonal items out of sync (wrong timing)
|
v
Poor ROAS --> Merchant blames Google Ads --> Reduces budget
|
v
Fewer sales --> Competitor with better segmentation wins
Why Manual Management Fails
| Challenge | Impact |
|---|---|
| Time-consuming | Updating labels for thousands of products takes hours per season change |
| Error-prone | Manual CSV uploads introduce typos, wrong IDs, stale data |
| Often forgotten | Season changes happen gradually; merchants miss the transition window |
| Doesn’t scale | Works for 50 products, breaks at 500, impossible at 5,000+ |
| No automation | New products sit unlabeled for days or weeks |
| Siloed knowledge | Only the person who set it up understands the logic |
The Solution: AdPriority
AdPriority automates product priority scoring with a simple, opinionated 0-5 scale. Instead of forcing merchants to build complex feed rules from scratch, AdPriority provides a purpose-built scoring system that maps directly to Google Ads budget allocation through Google Merchant Center custom labels.
The 0-5 Priority Scale
The scoring system is deliberately simple. Every product gets a single number from 0 to 5 that directly controls how aggressively it is advertised.
PRIORITY SCALE
==============
5 | PUSH HARD Maximum budget, aggressive bidding
| Seasonal bestsellers, hot new arrivals, peak demand
|
4 | STRONG High budget, balanced approach
| Strong performers, seasonal relevance, name brands
|
3 | NORMAL Standard budget, conservative bidding
| Average products, year-round staples
|
2 | LOW Minimal budget, strict ROAS targets
| Declining season, overstocked, low margin
|
1 | MINIMAL Very low budget, highest ROAS threshold only
| End of season, slow movers, clearance
|
0 | EXCLUDE No advertising spend
| Dead stock, archived, out of stock, non-ad products
Priority Score Definitions
| Score | Name | Budget Behavior | Typical Use Cases |
|---|---|---|---|
| 5 | Push Hard | Maximum spend, aggressive bidding | Seasonal peaks (shorts in summer, jackets in winter), hot new arrivals, proven bestsellers with strong margins |
| 4 | Strong | High spend, balanced approach | Core performers, seasonal relevance, name brand products, rising demand categories |
| 3 | Normal | Standard spend, conservative bidding | Year-round staples (jeans, fitted caps), average performers, baseline catalog |
| 2 | Low | Minimal spend, strict ROAS targets | Off-season items still in stock, low-margin products, overstocked items, underwear and basics |
| 1 | Minimal | Very low spend, only highest ROAS | End-of-season clearance, slow movers, items approaching dead stock |
| 0 | Exclude | Zero ad spend | Archived products, dead stock (DEAD50 tagged), out-of-stock variants, gift cards, non-shoppable items |
How Priority Scores Are Assigned
AdPriority calculates scores automatically using a layered rules engine. The merchant configures high-level rules (category mappings, seasonal calendars, tag modifiers), and the engine handles the per-product calculations.
Rule Hierarchy (highest priority wins):
- Manual override – Merchant locks a specific score
- Exclusion tags –
archived,DEAD50force score to 0 - Inventory warnings –
warning_inv_1reduces score by 1 - New arrival boost – Products created within 14 days get score 5
- Tag modifiers –
in-stockadds +1,NAME BRANDadds +1,Salesubtracts -1 - Seasonal calendar – Category-specific seasonal adjustments
- Category default – Base score from product type mapping
Real-World Example: Nexus Clothing in Winter
Product: "Rebel Minds Puffer Jacket" (active, Winter)
Category group: Outerwear - Heavy --> seasonal Winter score: 5
Tags: none relevant
Final priority: 5 (PUSH HARD)
Product: "Jordan Craig Stacked Jeans" (active, Winter)
Category group: Jeans & Pants --> seasonal Winter score: 4
Tags: NAME BRAND --> +1
Final priority: 5 (PUSH HARD)
Product: "New Era Yankees 59FIFTY" (active, Winter)
Category group: Headwear - Caps --> seasonal Winter score: 3
Tags: NAME BRAND --> +1
Final priority: 4 (STRONG)
Product: "Generic Mesh Shorts" (active, Winter)
Category group: Shorts --> seasonal Winter score: 0
Tags: none relevant
Final priority: 0 (EXCLUDE)
Product: "Old Season Hoodie" (archived, DEAD50)
Exclusion tag override: archived --> 0
Final priority: 0 (EXCLUDE)
How It Works: End-to-End Data Flow
AdPriority connects three systems: Shopify (product catalog), Google Merchant Center (product feed), and Google Ads (campaign bidding). The data flows in one direction, from product data to ad spend allocation.
END-TO-END DATA FLOW
=====================
+-------------------+ +------------------------+ +-------------------+
| | | | | |
| SHOPIFY STORE | | AdPriority ENGINE | | GOOGLE MERCHANT |
| | | | | CENTER |
| - 5,582 products |---->| 1. Fetch products |---->| |
| - 90 types | | 2. Apply category | | Supplemental |
| - 175 vendors | | rules | | Feed (Google |
| - 2,522 tags | | 3. Apply seasonal | | Sheets) |
| - Webhooks for | | calendar | | |
| product changes| | 4. Apply tag | | custom_label_0: |
| | | modifiers | | priority-5 |
+-------------------+ | 5. Calculate final | | custom_label_1: |
| priority (0-5) | | winter |
| 6. Generate custom | | custom_label_2: |
| labels | | outerwear |
| 7. Write to Google | | custom_label_3: |
| Sheet | | in-stock |
| | | custom_label_4: |
+------------------------+ | name-brand |
| |
+--------+----------+
|
| GMC fetches
| daily (auto)
v
+-------------------+
| |
| GOOGLE ADS |
| PERFORMANCE MAX |
| |
| Campaign 1: |
| Priority 5 |
| (max budget) |
| |
| Campaign 2: |
| Priority 3-4 |
| (normal budget) |
| |
| Campaign 3: |
| Priority 1-2 |
| (min budget) |
| |
| [Priority 0: |
| excluded] |
| |
+-------------------+
Custom Label Schema
AdPriority uses all five available GMC custom label slots to provide rich segmentation data to Google Ads campaigns.
| Label | Purpose | Example Values | Unique Values |
|---|---|---|---|
custom_label_0 | Priority Score | priority-0 through priority-5 | 6 |
custom_label_1 | Season | winter, spring, summer, fall | 4 |
custom_label_2 | Category Group | t-shirts, jeans-pants, outerwear-heavy, headwear-caps | ~20 |
custom_label_3 | Product Status | new-arrival, in-stock, low-inventory, clearance, dead-stock | 5 |
custom_label_4 | Brand Tier | name-brand, store-brand, off-brand | 3 |
This schema stays well within GMC’s limit of 1,000 unique values per label.
The Sync Pipeline
For the MVP and Starter tier, AdPriority uses a Google Sheets supplemental feed as the transport mechanism. This approach requires zero GMC API authentication from the merchant and auto-syncs daily.
SYNC PIPELINE (Google Sheets MVP)
==================================
AdPriority App
|
| Google Sheets API
v
+---------------------------+
| Google Sheet |
| |
| id | custom_label_0 | custom_label_1 | ...
| shopify_US_8779..._4605.. | priority-5 | winter | ...
| shopify_US_9128..._4726.. | priority-4 | winter | ...
| shopify_US_9057..._4700.. | priority-0 | winter | ...
| |
| (one row per variant) |
| (~15,000-20,000 rows) |
+---------------------------+
|
| GMC auto-fetches daily
v
Google Merchant Center
|
| Labels applied to matching products
v
Google Ads PMAX Campaigns
|
| Product groups segmented by custom labels
v
SMART BUDGET ALLOCATION
For the Pro and Enterprise tiers, AdPriority uses the Content API for Shopping directly, enabling near-real-time updates (within GMC’s 2x/day per-product update limit).
Target Market
Primary Audience
AdPriority is built for Shopify merchants who are already running Google Ads but not getting the most out of their budget. The ideal customer has enough products that manual management is painful but not so many that they need an enterprise feed management platform.
| Segment | Description | Estimated Size | Priority |
|---|---|---|---|
| Shopify + Google Ads PMAX | Merchants actively running Performance Max campaigns | ~200,000 stores | P0 |
| Seasonal catalog retailers | Fashion, sporting goods, outdoor – products with seasonal demand curves | ~50,000 stores | P0 |
| 100+ SKU stores | Large enough catalogs that manual management breaks down | ~100,000 stores | P1 |
| Agencies managing multiple stores | Digital marketing agencies running Google Ads for Shopify clients | ~5,000 agencies | P2 |
Ideal Customer Profile
IDEAL CUSTOMER
==============
Store Revenue: $100K - $5M annually
Product Count: 100 - 50,000 SKUs
Google Ads Spend: $1,000 - $50,000/month
Team Size: 1-10 people
Pain Point: "We know we should segment our products in
Google Ads but we don't have time to manage it"
Current Solution: Manual CSV uploads (quarterly at best) or
no custom labels at all
Decision Maker: Store owner or marketing manager
Platform: Shopify (required)
Why These Customers
| Reason | Explanation |
|---|---|
| Already spending on ads | They have budget allocated; AdPriority helps them spend it better |
| Seasonal products | The value proposition is most compelling when priorities change with seasons |
| Manual pain is real | At 100+ SKUs, updating custom labels manually becomes a significant time investment |
| PMAX adoption | Google is pushing all Shopping advertisers toward Performance Max, expanding the market |
| Measurable ROI | ROAS improvement is directly measurable, making the $29-199/mo price easy to justify |
Revenue Model
AdPriority follows a SaaS subscription model with four tiers designed to capture merchants at every stage of growth.
Pricing Tiers
PRICING STRUCTURE
=================
STARTER GROWTH PRO ENTERPRISE
$29/mo $79/mo $199/mo Custom
----------- ----------- ----------- -----------
500 products Unlimited Unlimited Unlimited
Manual scores Seasonal auto Google Ads API Multi-store
GMC sync Rules engine AI suggestions White-label
Basic labels Tag modifiers ROAS tracking API access
New arrival Performance Dedicated
boost dashboard support
----------- ----------- ----------- -----------
Entry point Sweet spot Power users Agencies
Detailed Tier Comparison
| Feature | Starter ($29/mo) | Growth ($79/mo) | Pro ($199/mo) | Enterprise (Custom) |
|---|---|---|---|---|
| Product limit | 500 | Unlimited | Unlimited | Unlimited |
| Manual priority scoring | Yes | Yes | Yes | Yes |
| GMC sync (Google Sheets) | Yes | Yes | Yes | Yes |
| GMC sync (Content API) | – | – | Yes | Yes |
| Category rules | Basic | Advanced | Advanced | Advanced |
| Seasonal automation | – | Yes | Yes | Yes |
| New arrival boost | – | Yes | Yes | Yes |
| Tag-based modifiers | – | Yes | Yes | Yes |
| Google Ads integration | – | – | Yes | Yes |
| AI recommendations | – | – | Yes | Yes |
| ROAS tracking | – | – | Yes | Yes |
| Performance dashboard | – | – | Yes | Yes |
| Multi-store management | – | – | – | Yes |
| White-label | – | – | – | Yes |
| API access | – | – | – | Yes |
| Dedicated support | Email + Chat | Priority | Dedicated CSM | |
| Free trial | 14 days | 14 days | 14 days | Demo |
Revenue Projections
| Milestone | Timeline | Customers | MRR | ARR |
|---|---|---|---|---|
| Beta launch | Month 1-2 | 5 (free) | $0 | $0 |
| Paid launch | Month 3 | 10 | $500 | $6,000 |
| Traction | Month 6 | 50 | $3,000 | $36,000 |
| Growth | Month 12 | 150 | $10,000 | $120,000 |
| Scale | Month 18 | 500 | $30,000 | $360,000 |
Assumptions: Average revenue per customer of $60/mo (mix of Starter and Growth tiers), 5% monthly churn, 15% month-over-month growth after launch.
Project Goals
AdPriority development follows a phased approach, starting with a real-world validation using Nexus Clothing (the developer’s own store) before building the SaaS platform.
Goal 1: Validate with Nexus Clothing (Phase 0)
Objective: Prove the concept works with a real store, real products, and real Google Ads campaigns.
- Use Nexus Clothing as the test case (5,582 products, 90 product types, 175 vendors)
- Build the supplemental feed pipeline (Google Sheets to GMC)
- Restructure PMAX campaigns around priority-based product groups
- Measure ROAS improvement over 30 days
- Document the process for replication
Why this matters: Building a SaaS product without first validating the approach on a real store risks building something that sounds good in theory but fails in practice. Nexus Clothing provides a complex, representative test case.
Goal 2: Build the SaaS Platform (Phase 1)
Objective: Transform the validated approach into an installable Shopify app.
- Shopify app with OAuth authentication
- Database storing priority rules and product mappings per merchant
- Automated Google Sheets generation via Sheets API
- Basic Polaris UI for managing priorities
- Onboard 5 beta testers
Goal 3: Launch on Shopify App Store (Phase 2-3)
Objective: Make AdPriority available to the 200,000+ Shopify merchants running Google Ads.
- Complete the seasonal automation engine
- Build the configurable rules engine UI
- Pass Shopify App Store review
- Achieve 100+ installs in the first 90 days
- Maintain less than 5% monthly churn
- Accumulate positive reviews
Goal 4: Scale to 100+ Merchants (Phase 3+)
Objective: Reach product-market fit and sustainable growth.
- 100+ paying customers
- $10,000+ MRR
- Proven ROAS improvement metrics from customer data
- Google Ads API integration (Pro tier)
- AI-powered recommendations based on aggregate performance data
Phase Timeline
DEVELOPMENT TIMELINE
====================
Phase 0: Nexus MVP Phase 1: SaaS Foundation
Week 1-2 Week 3-4
+-----------------------------+ +-----------------------------+
| - Supplemental feed setup | | - Shopify app scaffold |
| - Category mapping applied | | - OAuth authentication |
| - PMAX restructured | | - Database schema |
| - Monitoring & measurement | | - Core API endpoints |
| - Process documented | | - Basic priority UI |
+-----------------------------+ +-----------------------------+
| |
v v
Phase 2: Full Product Phase 3: App Store Launch
Week 5-8 Week 9-12
+-----------------------------+ +-----------------------------+
| - Seasonal automation | | - App Store submission |
| - Rules engine UI | | - Marketing materials |
| - Tag modifiers | | - Onboarding flow |
| - New arrival boost | | - Billing integration |
| - Beta testing (5 stores) | | - Scale to 100+ merchants |
+-----------------------------+ +-----------------------------+
Summary
AdPriority solves a specific, measurable problem: retailers waste ad spend because they cannot efficiently manage which products deserve the most advertising budget. The solution is a purpose-built priority scoring system that automates the assignment of 0-5 scores based on category, season, product status, and brand, then syncs those scores to Google Merchant Center custom labels where Google Ads campaigns can use them for intelligent budget allocation.
The approach is validated first with a real store (Nexus Clothing, 5,582 products), then productized as a Shopify app, and finally scaled through the Shopify App Store. The revenue model targets $29-199/month per merchant, positioning AdPriority below enterprise feed management tools but above basic feed generators, in a market gap where no competitor offers dedicated priority scoring with seasonal automation.