Google Ads or Meta ads for a Shopify store: comparing them on profit

By the AdZoom team · Published

Neither Google Ads nor Meta ads wins in general. The one that wins for your Shopify store is the one that leaves more profit for each dollar you spend on it.

You can't read that from either platform's ROAS. Each platform grades its own work, by rules the other does not share. The comparison has to be built from your store's orders, with your costs taken out. Below is the method, then one store worked through line by line, where the platform that looks better on reported ROAS is the one losing money.

Why reported ROAS can't settle Google Ads vs Facebook ads

Facebook and Instagram ads are bought through Meta, so "Facebook ads vs Google ads" and "Meta ads vs Google ads" are one question. The usual way to answer it is to put the ROAS from Ads Manager beside the ROAS from Google Ads and pick the larger. That fails for two reasons.

The first is that the two figures are counted differently. Each platform decides for itself which purchases its ads earned, how long after the ad a purchase still counts, and which day it lands on. Both can claim the same order. The article on why Ads Manager, Google Ads, and Shopify report different sales goes through the causes.

The second is that ROAS is revenue, and revenue is not what you keep. Neither platform's ROAS takes out what the product cost you, what you paid to ship it, or what went to tax. ROAS, ROI, and profit can point three different ways for the same campaign.

How the two platforms differ in kind

This table holds only what each platform's own documentation states. It has no row for which audience is better or which click is cheaper. Those are averages across other people's stores, and they say nothing about yours.

QuestionMetaGoogle Ads
What a campaign is made ofAd sets, each holding adsAd groups holding ads in Search, Shopping, Demand Gen, Video, and Display campaigns. Asset groups, with no ad groups or ads, in Performance Max
Where the rule for credit is setOn each ad set, as its attribution settingOn each conversion action, as its attribution model
How long a click can earn credit1 day or 7 days after a link click30 days by default, up to 90
An ad seen and not clickedCan earn credit for 1 day, where the ad set's setting includes viewsA view-through conversion, kept out of the "Conversions" column
The day a sale lands onThe day of the purchase or the day the ad was shown, as you chooseThe day of the click
Where UTM parameters goOn each ad, in its URL parametersOnce for the account, in the final URL suffix

The sources, row by row. Meta's developer documentation describes a campaign as a grouping of ad sets, and an ad set as a group of ads that share a budget, a schedule, bidding, and targeting. Google's documentation says a Performance Max campaign organizes its assets in asset groups and returns no data for ad groups or ads. Meta's help page lists its attribution settings, and Google's lists its attribution models, data-driven by default for most conversion actions and last click as the other. The click periods are Meta's same page and Google's page on conversion windows. Google's page on conversion tracking data covers view-through conversions and the day of the click, and Meta's troubleshooting page covers its choice of day.

No row says one platform is better. Together they say the two ROAS figures answer different questions, so setting one beside the other compares nothing.

The method: one profit calculation for both

The fix is to stop asking the platforms what they sold. Ask your store, and hold both platforms to the same rule.

Profit = revenue from the platform's orders − cost of goods − shipping − tax − ad spend

Profit per $1 of ad spend = profit ÷ ad spend

  1. Tag every ad on both platforms. UTM parameters on the ad's link are what make an order say where it came from. The free UTM builder writes them. The Meta tracking guide and the Google Ads tracking guide show where they go.
  2. Pick one period for both. Use a full month that ended a few weeks ago, so its refunds are already in it.
  3. Take each platform's ad spend for the period. Spend is the one figure you take from the platform as it stands.
  4. Sort the store's orders by their UTM parameters. Shopify shows them on each order, in its conversion summary, and its analytics has UTM source and UTM campaign as report fields. When an order has clicks from both platforms, give it to the last ad clicked. An order whose UTM parameters name no ad goes to neither platform.
  5. Add up four figures for each platform's orders. Revenue is what the customers paid. Cost of goods is the cost per item you recorded in Shopify, for every item sold. Shipping is what you paid to send the orders. Tax is what you collected and owe.
  6. Subtract, then divide. Revenue minus cost of goods, shipping, tax, and ad spend is the platform's profit. Profit divided by ad spend is what each dollar brought back.

The rule in step 4 matters less than using one rule for both platforms. That is what neither platform's report can give you.

A worked example: one store, one month, both platforms

A Shopify store sells handmade soap and runs Meta and Google Ads at the same time. This is its October. The figures are invented for the example.

What the platforms report

October, as reportedMetaGoogle Ads
Ad spend$4,000$3,000
Purchases reported15096
Revenue reported$13,000$8,700
Reported ROAS3.252.90

Meta: $13,000 ÷ $4,000 = 3.25. Google Ads: $8,700 ÷ $3,000 = 2.90. On these figures Meta is the better buy, and the obvious move is to shift budget toward it.

One thing already does not add up. The platforms report 150 + 96 = 246 purchases between them. The store had 230 orders in October, from every source.

The same month from the store's orders

Of the 230 orders, 100 carry UTM parameters from a Meta ad and 80 from a Google ad. The other 50 came from email, from search results, or from nowhere the store can name. They go to neither platform.

October, from the store's ordersMetaGoogle Ads
Orders matched by UTM parameters10080
Revenue from those orders$9,000$8,000
Cost of goods−⁠$3,800−⁠$2,900
Shipping−⁠$1,100−⁠$880
Tax−⁠$700−⁠$620
Left before ad spend$3,400$3,600
Ad spend−⁠$4,000−⁠$3,000
Profit−⁠$600$600
Profit per $1 of ad spend−⁠$0.15$0.20

The working for Meta:

  • $9,000 − $3,800 − $1,100 − $700 = $3,400 left before ad spend
  • $3,400 − $4,000 = −⁠$600 profit
  • −⁠$600 ÷ $4,000 = −⁠$0.15 for each dollar spent

The working for Google Ads:

  • $8,000 − $2,900 − $880 − $620 = $3,600 left before ad spend
  • $3,600 − $3,000 = $600 profit
  • $600 ÷ $3,000 = $0.20 for each dollar spent

Two things moved. Fewer orders trace back to each platform than it reported: 100 against 150 for Meta, 80 against 96 for Google Ads. And the orders are not alike. In this store the orders from Meta leaned toward gift sets, which cost more to make: $3,800 of cost on $9,000 of revenue, against $2,900 on $8,000 for the orders from Google Ads. Shipping came to $11 an order on both sides, 100 × $11 = $1,100 and 80 × $11 = $880.

The ranking, three ways

MeasureMetaGoogle AdsAhead
Reported ROAS3.252.90Meta
ROAS from the store's orders2.252.67Google Ads
Profit−⁠$600$600Google Ads
Profit per $1 of ad spend−⁠$0.15$0.20Google Ads

ROAS from the store's orders is $9,000 ÷ $4,000 = 2.25 for Meta and $8,000 ÷ $3,000 = 2.67 for Google Ads. The platform with the 3.25 lost $600. The one with the 2.90 made $600.

What the example shows, and what it does not

It does not show that Google Ads beats Meta. This is one invented store. With other products, other costs, or other tagging, the same steps can come out the other way. What carries to your store is the method, not the winner.

It does show how far reported ROAS can sit from profit. Moving budget toward the 3.25 would have put more money into the platform that lost 15 cents on every dollar.

It also shows why one ROAS target can't serve both platforms. Each platform's orders have their own break-even ROAS: revenue divided by what is left after cost of goods, shipping, and tax.

  • Meta: $9,000 ÷ $3,400 = 2.65. Its orders reached 2.25, below break-even.
  • Google Ads: $8,000 ÷ $3,600 = 2.22. Its orders reached 2.67, above break-even.

Before you move budget on a result like this, look at the orders that matched neither platform. If many of them have no UTM parameters at all, fix the tagging first and run the month again. A comparison is only as good as the share of orders it can place.

AdZoom runs this calculation for you. It puts Meta and Google Ads campaigns on the same profit calculation, from the same Shopify orders, so both platforms are graded by one rule.

Grade both platforms by one rule.

AdZoom shows the profit of every Meta and Google Ads campaign from the orders in your Shopify store, after cost of goods, shipping, tax, and the ad spend itself.

Coming soon to the Shopify App Store