Every merchant tracks ROAS. The problem is that ROAS doesn't account for costs. A campaign with 4x ROAS looks amazing until you realize your product has 60% COGS, 10% shipping, and 5% fees. After costs, that 4x ROAS is actually a 0.8x POAS — you're losing money on every sale. NetNet shows you both numbers so you can tell the difference.
ROAS (Return on Ad Spend) divides revenue by ad spend. If you spend $1,000 and get $4,000 in revenue, your ROAS is 4x. That looks great in your ad platform. But it doesn't tell you if you made money — because it ignores every cost between revenue and profit.
POAS (Profit on Ad Spend) divides gross profit by ad spend. Using the same example: if your COGS is 55%, that $4,000 in revenue is only $1,800 in gross profit. Your POAS is 1.8x — much less impressive than 4x, but much more honest. And if your margins are thinner than that, POAS can drop below 1.0x, meaning you're spending money to lose money.
NetNet calculates POAS alongside ROAS for every campaign. You can see exactly which campaigns are driving profitable sales and which ones are just driving revenue that costs more to fulfill than it earns. No other Shopify profit app does this.
Summer Sale looks great at 4.2x ROAS — but after COGS, it's losing money at 0.8x POAS.
Connect your Meta and Google Ads accounts via OAuth — one click, no API keys, no credentials to manage. NetNet pulls your daily ad spend automatically every 24 hours. If a sync fails, it retries with exponential backoff. If a token expires, you get a warning on your dashboard so you can reconnect before the data goes stale.
Multi-account support means agencies and merchants with multiple ad accounts can see aggregate and per-account performance. Each account shows its own sync status, last sync time, and connection health. You can disconnect individual accounts without affecting others.
The daily ad spend is prorated across orders in the period and used to calculate POAS. You see spend per platform, spend over time, and the relationship between spend and profit — not just spend and revenue.
The platform split shows how your total ad spend is distributed across Meta and Google, with ROAS and POAS per platform. This helps you make allocation decisions based on profitability, not just revenue return. If Google has a lower ROAS but higher POAS than Meta, it means Google is driving more profitable sales — even though it looks worse in the ad platform.
The daily spend chart shows trends over time so you can spot when spend spikes aren't matched by profit increases. If you ran a promo last Tuesday and doubled your Meta spend but POAS dropped, the chart makes that immediately visible.
UTM parameters are extracted from the landing page URL on every order. NetNet aggregates revenue and profit by source (google, facebook, email, direct), medium (cpc, organic, social, referral), and campaign name. You can see not just where traffic comes from, but where profitable traffic comes from — which is often a very different answer.
An attribution rate metric shows what percentage of your orders have UTM data. If it's low, it means a lot of your marketing spend can't be attributed to specific campaigns. This is common with organic social, direct traffic, and email campaigns that don't use UTM tags. Improving your UTM tagging practice is one of the highest-leverage things you can do for marketing measurement.
If any connected ad account hasn't synced in 24+ hours, a yellow warning banner appears on the dashboard: "Ad spend data may be outdated." This ensures you never unknowingly make decisions based on incomplete data.
Free plan. No credit card. Install in 60 seconds.
Install Free on Shopify