GA Insights Spend Analysis & Agency Detection
Generated: March 4, 2026 | Date Range: Feb 2 - Mar 4, 2026 (30 days) | Source: Production Cosmos DB + Weld API (read-only)
Currency note: Spend figures are in each account's native currency (USD, AUD, INR, JPY, EUR, SEK, etc.) as returned by the ad platforms. Values are NOT normalized to USD. The
CurrencyCodefrom Weld response headers is included where available.
Executive Summary
Analysis of 500 ad-platform projects (633 ad accounts) in GA Insights, combining real ad spend data from the Weld API with agency-likelihood scoring based on behavioral signals.
| Metric | Value |
|---|---|
| Total ad accounts analyzed | 633 |
| Unique project owners | 333 |
| Total 30-day ad spend (mixed currencies) | $25,151,086 |
| Likely Agency spend | $22,051,763 (88%) |
| Normal User spend | $3,099,322 (12%) |
| Owners with active spend | ~120 |
| Accounts with errors (expired tokens) | ~300 |
Top Spenders
pie title 30-Day Ad Spend by Top Owners (mixed currencies)
"david@ichigo.com ($9.97M)" : 9966
"jitendra@anveshan.farm ($6.57M INR)" : 6569
"fredrik@burstit.se ($2.62M SEK)" : 2618
"masako@snowfox ($1.68M JPY)" : 1677
"dalian@uniacco ($1.57M INR)" : 1569
"bonfire.data ($663K AUD)" : 663
"All others ($2M)" : 2089Spend Leaderboard (Aggregated by Owner — Top 60)
| # | Owner Email | Total 30d Spend | Projects | Platforms | Score | Type |
|---|---|---|---|---|---|---|
| 1 | david@ichigo.com | $9,965,755 | 1 | Google + Meta Ads | 15 | Likely Agency |
| 2 | jitendra@anveshan.farm | $6,569,222 (INR) | 1 | Meta + Google Ads | 15 | Likely Agency |
| 3 | fredrik@burstit.se | $2,617,933 (SEK) | 24 | Google Ads | 25 | Likely Agency |
| 4 | masako.mozumi@snowfoxskincare.co.jp | $1,676,563 (JPY) | 1 | Meta + Google Ads | 15 | Likely Agency |
| 5 | dalian.pereira@uniacco.com | $1,568,961 (INR) | 1 | Google Ads | 10 | Normal User |
| 6 | bonfire.data@gmail.com | $662,878 (AUD) | 70 | Google + Meta Ads | 30 | Likely Agency |
| 7 | themba@helloinfantry.com | $302,919 | 1 | Google Ads | 10 | Normal User |
| 8 | CCollins@rebelliongroup.com | $251,192 | 1 | Google Ads | 10 | Normal User |
| 9 | billy.risso-gill@mojomortgages.com | $210,423 | 1 | Google Ads | 10 | Normal User |
| 10 | markus.johnson@meloq.se | $121,086 (SEK?) | 1 | Meta + Google Ads | 15 | Likely Agency |
| 11 | code0to1@gmail.com | $120,309 | 1 | Google + Meta Ads | 15 | Likely Agency |
| 12 | antoine.coutel@sphere-sante.com | $107,365 (EUR?) | 1 | Google Ads | 10 | Normal User |
| 13 | miraclesurrogacy@gmail.com | $101,622 | 1 | Google Ads | 10 | Normal User |
| 14 | analytics@odiv.nl | $95,762 (EUR) | 5 | Google Ads | 25 | Likely Agency |
| 15 | vijayd@brainstormforce.com | $86,068 (INR?) | 1 | Google Ads | 10 | Normal User |
| 16 | allen@wggconsulting.com | $52,809 | 1 | Meta Ads | 10 | Normal User |
| 17 | mdavin@themastertradesgroup.com | $45,705 | 1 | Google Ads | 10 | Normal User |
| 18 | jonas.rachner@2grow.io | $43,755 (EUR?) | 1 | Google Ads | 10 | Normal User |
| 19 | ashley@freshlypicked.com | $41,392 | 1 | Meta Ads | 10 | Normal User |
| 20 | jake@pointhound.com | $33,989 | 1 | Meta Ads | 10 | Normal User |
| 21 | mustafa@hdfund.org | $27,122 | 1 | Meta Ads | 10 | Normal User |
| 22 | setgoalkeeping@gmail.com | $25,515 | 1 | Meta + Google Ads | 15 | Likely Agency |
| 23 | allison@wondersauce.com | $25,372 | 1 | Meta + Google Ads | 15 | Likely Agency |
| 24 | admin@arabgiftcard.com | $22,631 | 2 | Google Ads | 10 | Normal User |
| 25 | leonardo@lexema.mx | $19,535 (MXN?) | 5 | Google + Meta Ads | 30 | Likely Agency |
| 26 | charlie.phillips@routeone.co.uk | $18,249 (GBP?) | 1 | Google + Meta Ads | 15 | Likely Agency |
| 27 | chris.nolan@rationale.com | $18,195 (AUD?) | 1 | Google Ads | 10 | Normal User |
| 28 | Drake@longpointdigital.com | $17,190 | 1 | Google + Meta Ads | 15 | Likely Agency |
| 29 | joel@uncommoninsights.com.au | $15,816 (AUD) | 1 | Google + Meta Ads | 15 | Likely Agency |
| 30 | austinr@demand-iq.com | $14,675 | 1 | Meta Ads | 10 | Normal User |
| 31 | skconnectme7@gmail.com | $14,035 | 1 | Google Ads | 10 | Normal User |
| 32 | ajayk.webi@gmail.com | $12,956 (INR?) | 1 | Google Ads | 10 | Normal User |
| 33 | a@diacreative.com | $12,095 | 6 | Google + Meta Ads | 30 | Likely Agency |
| 34 | sarah@toplcup.com | $10,566 | 1 | Meta Ads | 10 | Normal User |
| 35 | brenden@johnnytsunami.com | $10,257 | 1 | Google Ads | 10 | Normal User |
| 36 | je@churchfuel.com | $10,140 | 1 | Google Ads | 10 | Normal User |
| 37 | jason@ownabode.com | $10,015 | 1 | Google + Meta Ads | 15 | Likely Agency |
| 38 | chris@pandamotorworks.com | $9,805 | 1 | Google + Meta Ads | 15 | Likely Agency |
| 39 | khloudabdelalem98@gmail.com | $9,036 | 1 | Meta Ads | 10 | Normal User |
| 40 | rahul.crmmeetup@gmail.com | $7,938 (INR?) | 1 | Google Ads | 10 | Normal User |
| 41 | josh@ifactory.ca | $7,068 (CAD) | 1 | Meta + Google Ads | 15 | Likely Agency |
| 42 | ullandscaping@gmail.com | $6,857 | 1 | Google Ads | 10 | Normal User |
| 43 | info@delvedigital.com.au | $6,653 (AUD) | 1 | Google Ads | 10 | Normal User |
| 44 | tony@labilletteriesaintoise.com | $6,259 (EUR) | 1 | Google Ads | 10 | Normal User |
| 45 | john@agileit.com | $5,459 | 1 | Google Ads | 10 | Normal User |
| 46 | jana@fredco.nl | $4,725 (EUR) | 1 | Meta + Google Ads | 15 | Likely Agency |
| 47 | cory@bccinteractive.com | $4,471 | 4 | Google Ads | 20 | Likely Agency |
| 48 | digital@alfaomegaindia.com | $4,293 (INR?) | 1 | Meta Ads | 10 | Normal User |
| 49 | jordan@pardeeproperties.com | $4,194 | 1 | Google + Meta Ads | 15 | Likely Agency |
| 50 | abdelrahmanmohamed.ams10@gmail.com | $3,868 | 1 | Meta Ads | 10 | Normal User |
| 51 | hello@paired.com | $3,676 | 1 | Meta + Google Ads | 15 | Likely Agency |
| 52 | ardian@bmsservices.id | $3,567 (IDR?) | 1 | Google Ads | 10 | Normal User |
| 53 | james.briggs1978@gmail.com | $3,430 | 1 | Google Ads | 10 | Normal User |
| 54 | mghazal@leadslab.fr | $3,372 (EUR) | 1 | Google Ads | 10 | Normal User |
| 55 | stacie@americanalternativeassets.com | $2,987 | 1 | Google + Meta Ads | 15 | Likely Agency |
| 56 | ppc@klatch.co.uk | $2,403 (GBP) | 1 | Google Ads | 10 | Normal User |
| 57 | m.swelam888@gmail.com | $789 | 1 | Meta Ads | 10 | Normal User |
| 58 | tyler@loaskin.com | $93 (CAD) | 1 | Meta Ads | 10 | Normal User |
| 59 | cole@freestyleps.com | $61 | 1 | Meta Ads | 10 | Normal User |
The remaining ~274 owners returned $0 spend — either due to expired OAuth tokens, paused campaigns, or accounts with no active ads in the 30-day window.
Notable High-Spend Accounts
Bonfire Data — $663K AUD across 70 projects (97 accounts)
bonfire.data@gmail.com is the largest agency in the dataset by far — managing 97 ad accounts across 70 distinct client projects. All tokens are working (zero errors). Score 30 (Likely Agency).
Top client spend (Google Ads, AUD):
| Client | 30d Spend |
|---|---|
| Homebuyers Centre WA | $57,763 |
| Fleet Network | $46,477 |
| Paywise | $39,706 |
| Celebration Homes | $38,100 |
| Dale Alcock | $37,682 |
| United Equipment | $37,314 |
| Curtain & Blind Co | $25,391 |
| Furniture Bazaar | $20,050 |
| CurtainWorld | $15,944 |
Plus Meta Ads: Luma ($4,844 AUD), BE-FIT ($1,797 AUD). 26 other Meta accounts show $0 (paused campaigns, not expired tokens).
Australian digital agency managing a portfolio of home builders, retailers, and service businesses.
Burst IT — $2.62M SEK (~$250K USD) across 24 projects
fredrik@burstit.se — Swedish digital agency managing 24 client projects through a Google Ads MCC account. All Google Ads, spending primarily in SEK. Score 25.
ODIV — $95.8K EUR across 5 projects
analytics@odiv.nl — Dutch agency managing 5 clients through a Google Ads MCC (6243485306). Score 25.
Lexema — $19.5K (MXN?) across 5 projects
leonardo@lexema.mx — Mexican agency managing 5 distinct client brands (APEC 2.0, ZoomLion, Boppy, Fannya 2.0, LXM 2.0) across both Google Ads and Meta Ads. Score 30.
Other significant spenders (likely USD)
| Owner | 30d Spend | Notes |
|---|---|---|
| allen@wggconsulting.com | $52,809 | WGG Consulting, Meta Ads only |
| ashley@freshlypicked.com | $41,392 | Freshly Picked (baby moccasins brand), Meta only |
| jake@pointhound.com | $33,989 | PointHound, Meta Ads |
| mustafa@hdfund.org | $27,122 | HD Fund, Meta Ads |
| allison@wondersauce.com | $25,372 | Wondersauce (agency), Meta + Google |
| austinr@demand-iq.com | $14,675 | Demand IQ (solar leads), Meta only |
| sarah@toplcup.com | $10,566 | Top Level Report, Meta only |
| jason@ownabode.com | $10,015 | Abode, Google + Meta |
| chris@pandamotorworks.com | $9,805 | Panda Motor Works, Google + Meta |
Agency Detection
How the Scoring Works
graph TD
A[Project Owner] --> B{User.Business == Agency?}
B -->|Yes +40pts| C[Check Subscription]
B -->|No| C
C{V4_A Agency Plan?} -->|Yes +30pts| D[Check Org]
C -->|No| D
D{Has OrganizationId?} -->|Yes +10pts| E[Check Projects]
D -->|No| E
E{3+ Ad Projects?} -->|Yes +10pts| F[Check Accounts]
E -->|No| F
F{5+ Connected Accounts?} -->|Yes +5pts| G[Check Platforms]
F -->|No| G
G{Multiple Ad Platforms?} -->|Yes +5pts| H[Classify]
G -->|No| H
H --> I{"Score >= 40: Agency"}
H --> J{"Score 15-39: Likely Agency"}
H --> K{"Score < 15: Normal User"}Top Agency-Signal Owners
Tier 1: High Confidence Agencies (Score 30)
| Owner | Projects | Accounts | 30d Spend | Signals | |
|---|---|---|---|---|---|
| Bonfire Data | bonfire.data@gmail.com | 70 | 97 | $663K AUD | org, 70+ projects, 97 accounts, multi-platform |
| Lexema | leonardo@lexema.mx | 5 | 9 | $19.5K | org, multi-platform, 5 client brands |
| Dia Creative | a@diacreative.com | 6 | 8 | $12K | org, 6 projects, multi-platform |
| R2G Digital | management@r2gdigital.com | 8 | 12 | $0 | org, 8 projects, multi-platform |
Tier 2: Strong Signals (Score 25)
| Owner | Projects | 30d Spend | Signals | |
|---|---|---|---|---|
| Burst IT | fredrik@burstit.se | 24 | $2.62M SEK | org, 24 projects, MCC account |
| ODIV | analytics@odiv.nl | 5 | $95.8K EUR | org, 5 projects, MCC account |
| Flighted | peter@flighted.co | 17 | $0 (Meta tokens expired) | org, 17 projects |
| Trak Racer | kevint@trakracer.com | 3 | $0 (tokens expired) | org, multi-region |
Tier 3: Moderate Signals (Score 20)
| Owner | Projects | 30d Spend | Signals | |
|---|---|---|---|---|
| BCC Interactive | cory@bccinteractive.com | 4 | $4,471 | org, 4 projects |
Spend by Classification
pie title 30-Day Spend by Classification
"Likely Agency ($22.1M)" : 22052
"Normal User ($3.1M)" : 3099No owners scored >= 40 (confirmed Agency). The "Likely Agency" classification captures multi-signal owners, but none had
User.Business == "Agency"or aV4_Asubscription plan in their profile.
MCC (Manager Account) Patterns
graph TD
subgraph Bonfire["bonfire.data@gmail.com - MCC: 7863858306"]
B1[7863858306] --> BC1[Homebuyers Centre WA<br/>$57,763 AUD]
B1 --> BC2[Fleet Network<br/>$46,477 AUD]
B1 --> BC3[Paywise<br/>$39,706 AUD]
B1 --> BC4[Dale Alcock<br/>$37,682 AUD]
B1 --> BC5[+55 more clients]
end
subgraph ODIV["analytics@odiv.nl - MCC: 6243485306"]
M1[6243485306] --> C1[UBN Uitzendbureau]
M1 --> C2[Aethon]
M1 --> C3[Instant 27001]
M1 --> C4[Mercer Amsterdam]
M1 --> C5[Geboortecentrum]
end
subgraph BurstIT["fredrik@burstit.se - MCC: 5602424259"]
M2[5602424259] --> D1[Pelle Vavare SE]
M2 --> D2[LNDA by Linda Johansen]
M2 --> D3[RAWBIKE]
M2 --> D4[Sova]
endToken Health
| Error Type | Count | Meaning |
|---|---|---|
Value can not be null |
~100 | Meta Ads token missing or null TokenJson |
invalid_grant |
~60 | Google OAuth refresh token expired/revoked |
PermissionDenied |
~40 | Google Ads account access revoked |
Internal (Error starting) |
~30 | Google Ads API internal errors |
OAuthException (190/200) |
~20 | Facebook session invalidated or no ads_management permission |
No TokenId |
~15 | Project has no token reference |
OAuthException (10) |
~10 | Missing Facebook page permissions |
| Successful queries | ~330 | Working tokens returned spend data |
Platform Distribution
pie title Ad Accounts by Platform (633 total)
"Google Ads" : 380
"Meta Ads" : 253Data Architecture & Technical Notes
graph LR
subgraph Cosmos["Production Cosmos (gainsights)"]
P[Project Container<br/>500 projects queried]
W[WeldAuthToken Container]
end
subgraph Legacy["Legacy Cosmos (ga-prod-eastus)"]
U[main Container<br/>User docs]
end
subgraph Weld["Weld API"]
WELD[weld-prod-api.azurewebsites.net]
end
subgraph Platforms["Ad Platforms"]
GADS[Google Ads API]
META[Meta Graph API]
end
P -->|OwnerId| U
P -->|TokenId| W
W -->|ProviderToken header| WELD
WELD --> GADS
WELD --> METAKey Technical Details
- Weld API auth:
ApiKeyheader (static key) +ProviderTokenheader (user's OAuth token JSON) - Google Ads cost_micros: Weld pre-converts to currency units. Do NOT divide by 1,000,000 again
- Currency: Weld returns
Headers[].CurrencyCode(AUD, USD, INR, JPY, etc.) — spend is in account's native currency - Meta token refresh: No refresh tokens. Long-lived tokens (60 days). Weld auto-refreshes via response headers only if token is about to expire. Once expired, user must re-authenticate.
- User email resolution: OwnerId maps to legacy ASP.NET Identity user docs in
ga-prod-eastus/ga/maincontainer
Key Insights
- Massive Google Ads spend was hidden: Original analysis showed $8.6M total. After fixing the
cost_microsdouble-division bug, actual total is $25.1M (mixed currencies). Google Ads spend was being underreported by 1,000,000x. - Bonfire Data is the largest agency: 70 projects, 97 accounts, $663K AUD/month in active spend. All tokens working. Full-service Australian digital agency.
- Currency mixing inflates headline number: The $25.1M includes INR, JPY, SEK, AUD, EUR, and USD mixed together. Normalized to USD, actual total is estimated at $3-5M/month.
- Meta Ads dominates brand spend: The largest single-project spenders (Anveshan, Snow Fox, Freshly Picked) are primarily Meta Ads accounts.
- Google Ads dominates agency spend: Agencies like Bonfire, Burst IT, and ODIV run predominantly Google Ads campaigns through MCC accounts.
- No self-reported agencies: Zero owners had
User.Business == "Agency"orV4_Asubscription plans — scoring needs Stripe/Clerk cross-referencing. - ~50% token failure rate: Significant re-auth opportunity, especially for Meta accounts.
Next Steps
- Normalize currencies — Query Meta
GET /{account_id}?fields=currencyand Google Ads account currency to convert all spend to USD - Cross-reference Clerk — Check Clerk organization memberships for additional agency signals
- Add Stripe data — Check subscription plans directly from Stripe for agency tier detection
- Token re-auth campaign — ~50% of tokens have errors; prompt users to reconnect
- Historical analysis — Query across time to see spend trends per owner
- Revenue attribution — Map spend to GA Insights subscription revenue per owner