MerchantFlowMerchantFlow Docs
Profit & Loss

Ad Spend Tracking Across Platforms

Track advertising spend across Meta, Google, TikTok, and Snapchat in MerchantFlow. View ROAS, campaign performance, and cost-per-conversion automatically.

Ad Spend Tracking

Ad spend tracking in MerchantFlow automatically syncs advertising cost data from Meta, Google, TikTok, and Snapchat into a unified dashboard, giving you a complete picture of marketing costs and return on ad spend (ROAS) across all channels without manual data entry.

Supported Advertising Platforms

MerchantFlow tracks ad spend from the following platforms:

  • Meta (Facebook and Instagram Ads)
  • Google (Google Ads)
  • TikTok (TikTok Ads)
  • Snapchat (Snapchat Ads)
  • Pinterest and Klaviyo - where those integrations are enabled for your workspace

Each platform integration syncs the following data:

  • Spend - total amount spent in your currency
  • Currency - the currency of the ad account
  • Impressions - number of times ads were shown
  • Clicks - number of clicks on your ads
  • Conversions - number of completed purchases or actions
  • Cost per Conversion - average cost to generate one conversion

How to Access Ad Spend Data

Navigate to Marketing > Channels (/dashboard/ads) for the Ad Campaigns page.

What it shows:

  • KPI tiles - Total Ad Spend, Total Revenue, Blended ROAS, and Conversions
  • Platform breakdown cards - spend, revenue and ROAS per platform
  • Live Campaigns table - Campaign Strategy, Channel, Spend, Revenue, ROAS, Conv. and Status, with per-platform tabs, a status filter and search. Impressions, clicks and CTR are not columns here -- they ride along in the CSV export
  • Spending by Country and Revenue by Country
  • Channel Logs and Ad Platform Health - per-provider sync activity
  • Export - download the filtered campaign list as CSV

Ad spend also appears as its own line in the profit waterfall on Profit > Summary, and per-country on Profit > Markets.

Ad Spend as a Percentage of Revenue

The Ad Spend segment of the profit breakdown bar on your main dashboard carries both the absolute dollar value and the spend as a percentage of gross revenue for the selected timeframe, alongside COGS, fulfillment and payment fees on the same denominator. A healthy DTC store typically spends 15-30% of revenue on paid media; rising above 35-40% without margin to support it is an early warning sign. To see the underlying break-even floor that defines "support it", check the Unit Economics page.

How Ad Spend Syncing Works

Automatic Sync

Ad data syncs on the same recurring delta cycle as the rest of your integrations - roughly every 30 minutes per store. This keeps your P&L calculations current without manual intervention. Note that ad platforms themselves report yesterday's numbers with a lag and revise them for a day or two, so a same-day figure is provisional whatever MerchantFlow's cadence.

What gets synced:

  • Daily spend amounts
  • Campaign-level performance metrics
  • Impressions, clicks, and conversions
  • Cost per conversion

Sync Coverage Tracking

MerchantFlow tracks the status of every sync attempt per provider and per date:

  • Successful - data synced completely
  • Partial - some data synced, but gaps exist
  • Failed - sync did not complete (will retry)

You can check sync status in the Ad Platform Health and Channel Logs sections of Marketing > Channels to verify your ad data is up to date.

Deduplication

MerchantFlow includes built-in deduplication logic to prevent double-counting ad spend. If the same data is synced more than once (for example, due to a retry after a partial sync), duplicates are automatically detected and removed.

Excluding campaigns from profit

If a Meta ad account also runs campaigns for another store, you can leave those campaigns out of this store's numbers: open Settings > Integrations, click Campaigns on the Meta ad account and untick them. All campaigns count by default. An excluded campaign's spend is removed from every profit surface, including history, and comes straight back if you re-include it - nothing is deleted or re-imported. See Meta Ads.

What Is ROAS and How Is It Calculated?

Return on Ad Spend (ROAS) measures how much revenue you generate for every dollar spent on advertising:

ROAS = Online Gross Revenue / Ad Spend

The dashboard ROAS metric divides gross revenue (before refunds are netted out) by ad spend, which is the industry-standard convention. The campaign table's Blended ROAS uses the revenue the platforms themselves report against each campaign, so it will not match the dashboard figure exactly.

The numerator counts online (D2C) orders only. B2B and wholesale orders carry no acquisition ad spend, so including their revenue would report a paid-acquisition return you did not earn -- the same rule applies to blended MER, CPA and CAC.

Example:

  • Gross Revenue: $10,000
  • Ad Spend: $2,500
  • ROAS: 4x (every $1 spent generated $4 in revenue)

ROAS Benchmarks:

  • 3x: Minimum for most e-commerce businesses
  • 4-5x: Good performance
  • 6x+: Excellent performance

ROAS is displayed per platform, per campaign, per country, and across your entire ad portfolio.

POAS - the profit-side counterpart

Revenue-based ROAS says nothing about whether a sale was worth making. MerchantFlow also reports POAS (Profit on Ad Spend):

POAS = Net Profit / Ad Spend

A POAS above 1.00x means each ad dollar returned more than a dollar of profit. See Margin by Region for POAS broken down per country.

How Ad Spend Feeds Into P&L Calculations

Ad spend feeds directly into your Profit & Loss calculations as part of total expenses. It is deducted at the contribution margin line, after gross profit:

Gross Profit = Net Revenue - COGS
Contribution Margin = Gross Profit - Shipping - Fulfillment - Payment Fees - Ad Spend
EBITDA     = Contribution Margin - OpEx - Amortised CapEx - Variable Costs
Net Profit = EBITDA - Financing Cost

Why this matters: Even if a product has high revenue and low COGS, heavy ad spend can erode profitability. Tracking ad spend alongside other costs gives you the true picture.

How to Set Up Ad Spend Tracking

Step 1: Connect Ad Platforms

  1. Go to Settings > Integrations on merchantflow.ai
  2. Find the ad platform you want to connect (Meta, Google, TikTok, Snapchat, and where available Pinterest or Klaviyo)
  3. Click "Connect" and authorize access
  4. Grant read permissions for ad account data

Step 2: Wait for Initial Sync

After connecting, MerchantFlow performs an initial sync of your ad data. This may take a few minutes depending on your account history.

Step 3: Verify Data

  1. Navigate to Marketing > Channels
  2. Check that ad spend totals match your platform dashboards
  3. Verify that all campaigns are listed

Best Practices for Ad Spend Tracking

1. Connect All Platforms

Connect every ad platform you use. Missing platforms mean incomplete P&L data and inaccurate profit calculations.

2. Monitor ROAS Weekly

Check ROAS at least weekly to catch underperforming campaigns early before they consume budget without adequate return.

3. Verify Sync Status

Periodically check that syncs are completing successfully. Failed syncs can lead to inaccurate P&L data. See Sync Status for monitoring guidance.

4. Pair with COGS Data

Ad spend analysis is most valuable when paired with accurate COGS. Together, they reveal true product profitability. See COGS Management.

Troubleshooting Ad Spend Issues

Ad spend shows $0

Possible causes:

  • Ad platform not connected
  • Initial sync still in progress
  • No active campaigns during the selected date range

Solutions:

  1. Check integration status at Settings > Integrations
  2. Wait for the initial backfill to complete - it covers more history than a routine delta sync and can take longer than the usual 30-minute cycle
  3. Adjust the date range to include active campaign periods

Data does not match platform dashboard

Possible causes:

  • Sync timing difference, or the platform still revising recent days
  • Currency conversion differences - spend reported in a non-store currency is converted at the daily rate
  • Date range mismatch, including timezone differences between MerchantFlow and the ad account
  • Campaigns you excluded from profit (Meta): their spend is left out on purpose

Solutions:

  1. Wait for the next sync cycle
  2. Verify currency settings match your ad accounts
  3. Ensure you are comparing the same date range
  4. Check Campaigns on the Meta account under Settings > Integrations for excluded campaigns

Missing campaigns

Possible causes:

  • Campaigns created after last sync
  • Insufficient permissions on ad platform
  • The campaign was excluded from profit under Settings > Integrations > Meta Ads > Campaigns

Solutions:

  1. Wait for the next automatic sync
  2. Re-authorize the integration with full ad account read permissions
  3. Re-tick the campaign in the Meta campaign picker to include it again

Frequently Asked Questions

How often does MerchantFlow sync ad spend data?

Ad data rides the same recurring delta sync as your orders and products - roughly every 30 minutes per store, covering every connected platform in one pass. You can also trigger a manual sync to pull the latest data immediately.

Does MerchantFlow track ad spend from email and SMS platforms?

Klaviyo is supported as a spend source where the integration is enabled for your workspace. For anything else - Mailchimp, affiliates, influencer fees - record the cost as a marketing operating expense in Profit > Expenses so it still reduces net profit.

Why does my MerchantFlow ROAS differ from my ad platform ROAS?

Ad platforms often use their own attribution models (such as view-through conversions or longer attribution windows), while MerchantFlow uses whichever model you select in Settings > Attribution (Last Touch by default). Small differences are normal and expected.

Can I see ad spend at the product level?

Ad spend is displayed at the platform and campaign level. Product-level ad spend attribution depends on your campaign structure and UTM tracking setup.


Last updated: September 16, 2026

Last updated on

On this page