The percentage revenue spent to acquire a sale. This is a more business centric metric than ROAS, and is simpler to understand at a glance if a particular campaign is profitable or not.
Here are some incredibly useful custom columns that every account should have:
Column Name
Formula
Type
ROAS
Conv. Value ÷ Cost
%
Cost of Sales (COS)
Cost ÷ Conv. Value
%
% COS CPC
Conv. Value ÷ Clicks x %
$
Optimistic % COS CPC
(Conv. Value + (Conv. Value ÷ Conversions)) ÷ Clicks x %
$
ROAS
Return On Ad Spend — It is surprising that this column doesn’t exist by default, since Google provides target ROAS based bidding strategies.
Name
ROAS
Description
Return on Ad Spend
Formula
Conv. Value ÷ Cost
Data Format
Percent (%) or Money ($)
This metric tells you how much sales are generated for each dollar in ad spend.
100% ROAS: For every $1 spent, you generated $1 in revenue.
200% ROAS: For every $1 spent, you generated $2 in revenue.
Many of the automated bidding strategies in Google Ads let you specify a target ROAS goal, so this custom column allows you to see at a glance if your campaigns, ad groups, and keywords are hitting your ROAS targets.
COS (Cost of Sales)
COS stands for Cost Of Sales
Name
COS
Description
Cost of Sales
Formula
Cost ÷ Conv. Value
Data Format
Percent (%)
This metric is the inverse of ROAS and it displays ad spend as a percentage of revenue. Cost of sales is a very intuitive metric when comparing against your profit margins. If you know your profit margins, then it’s easy to see when your Cost of Sales exceeds those margins, and when you start to lose money on every sale.
20% Cost of Sales: For every $1 in revenue, we spent $0.20 on ads.
To convert between ROAS and COS use these formulas:
Cost of Sales (COS) = 1 / ROAS
Return on Ad Spend (ROAS) = 1 / COS
% COS CPC
“What is the max Cost per Click bid that will keep me below the specified % Cost of Sales target.“
Name
5% COS CPC
Description
Maximum CPC to stay below 5% Cost of Sales
Formula
Conv. Value ÷ Clicks x 0.05
Data Format
Money ($)
If you use Manual CPC bidding for a campaign, creating a few of these columns for various profit margins will give you access to quick calculation for your max CPC bids.
Eg:
5% COS
Max CPC bid to hit 5% cost of sales
35% COS
Max CPC bid to hit 35% cost of sales
55% COS
Max CPC bid to hit 55% cost of sales
The number of columns you create and the values you use will depends on your business and profit margins. Create one column for some typical cost targets.
Optimistic % COS CPC
“What is the max Cost per Click bid that will keep me below the specified % Cost of Sales target, under the assumption that the next click will result in a sale“
Name
Optimistic 5% COS CPC
Description
Maximum CPC to stay below 5% Cost of Sales, assuming the next click will result in a sale
Formula
(Conv. Value + (Conv. Value ÷ Conversions)) ÷ Clicks x 0.05
or use a harde-coded order value: (Conv. Value + avg_order_value) ÷ Clicks x 0.05
Data Format
Money ($)
This custom column is similar to the % COS CPC column above, except that it is optimistic in assuming that the “next click” will result in a sale, and includes the next sale’s revenue in the Max cost per click calculations.
You can either hard-code your average conversion value, or you can calculate it based on past conversion data.
This column is useful when you are starting a new campaign where you don’t have much conversion data yet, and you want to be optimistic with your bidding.
Connect your Google Account (must be an account that has access to both Google Merchant Center and Google Ads)
Connect your Google Ads Account in the “Smart Shopping campaign” section
STEP 1 Remove Old Conversion Tracking Code
By connecting Shopify to Google Ads via the Google Shopping Channel, Shopify will begin sending conversion data to your Google Ads account. If you were already tracking conversions in Google Ads, then you need to make sure you are not duplicating your conversion data:
If you previously had a Google Ads conversion tracking script installed in your checkout, then remove that code.
If you were importing conversions from Google Analytics, stop importing those conversions.
STEP 2 Fix Conversion Categories
Log into Google Ads and then Go to Tools & Settings > Measurement > Conversions
You should see a bunch of new conversion actions created by Shopify. You will also see a warning that your conversion categories are out of date, and that you should update 4 of your conversions actions.
Click Update Now and update the settings to the following:
STEP 3 Conversion Windows and Attribution Models
Although Shopify created multiple conversion actions, you only need to worry about the Google Shopping App Purchase conversion event.
Click on the Google Shopping App Purchase conversion action and update the following settings:
Old Value
New Value
Count
Every Conversion
One
View-through Conversion Window
30 days
1 day
Attribution Model
Last click
Linear
One Conversion per click
If you count “Every Conversion” you increases the risk of double attribution across your various channels.
For example: A user clicks on your Google ad and makes a purchase. It makes sense to count and attribute this conversion to Google Ads. If this same user later receives your newsletter, and purchases again, then you probably want to attribute that sale to the Newsletter and NOT to Google. Setting conversion count to “One” instead of “Every” ensures that only the first sale gets attributed to google, and not the second.
Counting “Every” conversion increases the risk of double attribution
Click-Through Conversions
Arguably, you should set your Click-Through Conversion window to 30 days. 90 days seems extremely long, and could increases your chances of double attribution across multiple sales channels.
However, if you are using Smart Campaigns or Smart Bidding, the bidding algorithm can only take into account conversions that have occurred within the specified conversion window. So theoretically, the longer your conversion window, the more data for Smart Bidding to optimize with. So the 90 day click-conversion window can probably stay.
View-Through Conversions
Set the View-Through Conversion window to only 1 day. A longer View-Through conversion window is dangerous, and will lead to over attributing sales to Display Remarketing, YouTube, and Smart Shopping. This will invariably cause you to overspend on those campaigns.
A View-Through conversion window greater than 1 day is dangerous, and will lead to over attributing sales to undeserving channels.
Which Attribution Model to use?
Linear, Time Decay, Position Based, or Data Driven are all better than First or Last click, as they allow you to attribute sales across a wider range of ad interactions, which allows you to spend more evenly across your entire funnel.
I personally usually choose Linear or Position Based, as I like pushing more attribution (and therefore spend) into the top part of the funnel.
STEP 4 Enhanced Conversion Tracking
This option is still in beta, and so you may or may not have access to this in your account. At the bottom of your Purchase conversion action, you should see a section called “Enhanced Conversions”
Expand this section and enter the following settings:
Turn on Enhanced Conversions
Enter your site URL (ideally your order receipt / thank you page)
Choose the Global Site Tag
Select “Enter Javascript or CSS Selectors” (note that all of the below are case sensitive. So the first “S” of Shopify needs to be capitalized, and the remaining characters need to be lower case)
If you installed the Google sales channel on Shopify, you may have noticed a rise in strange referrals in your Google Analytics reports: Medium = product_sync and Campaign = sag_organic
Where do sag_organic and product_sync come from?
When the Google sales channel uploades your product feed to Google Merchant Center / Google Shopping, it appends the following UTM tags to the product url:
UTM Tag
Value
utm_source
google
utm_medium
product_sync
utm_campaign
sag_organic
utm_content
sag_organic
The following querystring is appended to your product’s link url:
Today, these UTM tags are no longer needed and should be stripped out from your product’s links.
They are a leftover from when Shopify first implemented the Google sales channel. They were Shopify’s way of helping you track the organic free traffic coming from Google Shopping. The intention was to help you separate Organic Google Shopping traffic from Organic Google Search Traffic.
The ability to get this granular is good, but the above implementation changed Google Analytic’s default behaviour, which is usually unwelcome (in particular when the change is unexpected).
A major problem with the Shopify implementation, is that they didn’t include a canonical_link as part of the feed. The canonical link ensures that only the “clean” version (without UTM tags) of the product link gets include into Google’s search index. Without this, you risk having your organic search traffic comign in with these UTM tags as well.
What does sag_organic mean?
The “SAG” in sag_organic stands for Surfaces Across Google.
This will remove all UTM parameters from your Product Links
Go to Merchant Center > Products > Feeds
Click on the Content API feed
Click on the Feed Rules tab
Click the big blue PLUS + button, type link in the field, and select link from the drop down.
For Data Source, select Set to, type link and select link from the Primary Feed: Content API list.
Click OK
Set the default behaviour if the link is blank to “Leave Blank”
Now go to Modifications > Add Modification
Choose Optimize URL > Set Parameter
Function
Parameter Name
Remove Parameter
utm_source
Remove Parameter
utm_medium
Remove Parameter
utm_campaign
Remove Parameter
utm_content
Click OK and look in the right side column preview to see if the link has been properly updated.
Click Save as Draft and Apply
Step 2 Set your Canonical Link
This will ensure that only the “clean” version (without UTM tags) of the product link gets include into Google’s search index.
“If you use tracking parameters in your link attributes, it is recommend that you use the canonical_link attribute to provide a canonical URL. Use the canonical_link attribute to ensure that products are associated with the correct URL in the Google Search index.”
Click the big blue PLUS + button to add a new Rule and type canonical and choose canonical link from the drop down.
For Data Source, select Set to, type link and select link from the Processed Attributes list.
Click OK
Change the default behaviour if canonical_link has no value to “leave blank”
Add Modification > Find and Replace Now we need to add two Find & Replace operations. One to remove the UTM tags and another to remove the Currency parameter that Shopify also appends.
#
Find
Replace
Advanced
1
&?utm_.+?(&|$)$
(leave blank)
Search as regular expression
2
¤cy=(…)
(leave blank)
Search as regular expression
Click OK and look in the right side column preview to see if the new link looks nice and clean. It should only have the variant id in there.
Click Save as Draft and Apply
Your canonical feed rules should look something like the above
Step 3 Configure Auto-Tagging
This will configure Google Ads and Google Merchant Center to properly tag your product urls, and Google Analytics not to override that tagging:
Google Ads (in the left hand menu) Settings > Account Settings > Auto Tagging: ON
Google Merchant Center: Gear Icon > Conversion Settings > Auto Tagging: ON
Google Analytics: Property Settings > Advanced Settings > Allow Manual Tagging to Override: OFF
Done!
You may need to wait a few hours for your feed to be update with the new values, but this *should* give you the default vanilla base setup that Google expects in Analytics.
Paid Shopping traffic will show up as google/cpc while Free Shopping traffic will show up as google/organic (or as “Shopping free listings” in GA4)
Remember that we are working with a Remarketing campaign. We are targeting customers that are aware of your brand. Customers who have already visited your site. In many cases, customers that have added a product to their cart and are very close to purchase.
Consider this scenario: A long time customer visits your site, quickly finds the product he is looking for and starts the checkout process. In the middle of checkout, he receives an e-mail from a friend. He opens the e-mail and clicks on a link. That link takes him to a news site to read an article. Since he is in your remarketing audience, that news site shows him an ad and records a “View”. The customer finishes reading the article and returns to your site to complete his purchase. Your remarketing campaign has now taken credit for that sale because an ad was displayed to this customer.
If your customer visits any webpage during the purchase process, or if they have another browser tab open, they will likely be exposed to an ad view. That ad view will get View-Through credit for that conversion.
The number of View Through Conversions recorded in a remarketing campaign can be more than ten times that of Click Through Conversions. It is no wonder that remarketing platforms and ad agencies are eager to include View Through Conversions in ROI calculations. If you include View Through Conversions you will see fantastic performance results. This will cause you to double or triple your budget. It’s easy money for them.
Here is what a fictional remarketing campaign with a typical distribution of view vs click conversions might look like:
Ad Spend
Click Conversions
Click Sales
View Conversions
View Sales
$12,000
50
$10,000
400
$80,000
If we use Click Conversions to calculate performance, we lose $0.17 for every $1.00 in ad spend. We have a negative ROI. The campaign is not profitable. We need to DECREASE our bids and budget.
Ad Spend
Conversions
Sales
CPA
ROAS
ROI
$12,000
50
$10,000
$240
0.83
-16%
If we add View-Through Conversions to our calculation, we come to a totally different conclusion: The campaign is now performing fantastically well. We profit $6.50 for every $1.00 in ad spend. That’s a 650% ROI! The campaign is super profitable. We should INCREASE our bids and budgets. This is exactly what your remarketing platform wants you to do, but is exactly the OPPOSITE of what you should do.
Ad Spend
Conversions
Sales
CPA
ROAS
ROI
$12,000
450
$90,000
$26.60
7.5
650%
The (unfortunate) reality is that the 400 view-through sales above were not a result of your remarketing campaign. The ad display is simply poaching attribution from your other channels.
Note: View Conversion metrics are valuable and useful in many scenarios. However, in the context of a sales driven remarketing campaign they should be excluded.
Cookie Bombing and Fake Impressions
Compounding the problem of View Through Conversions are fraudulent ad impressions and cookie bombing.
Over 50% of Display Ads never actually appear on the user’s screen. They are fraudulently served in a hidden iframe, or are stacked underneath other ads, or are compressed into a 1×1 pixel image, etc… These hidden fraudulent ad impressions still record a “View” in the user’s remarketing cookie. When that user eventually purchases on your site, that invisible fraudulent ad gets credit for the purchase.
If a particular ad network’s website can generate many conversions for advertisers, then those advertisers will want to spend more with that website. Fraudulent sites engage in “cookie bombing” to maximize the number of conversions they can “capture”. They serve as many ads to as many unique users as possible, so that as many users as possible have their cookie. The more users have their cookies, the more conversions will be credited to their sites, and the more ad budget money they will be paid.
To be clear, these sites are not actually serving any visible ads to any users. They are generating fraudulent ad impressions to set cookies on as many users as possible in order to “poach” conversion attribution (and budget) from your other channels. If a user with their cookie ever makes a purchase in the future, that site will get a view-attribution for that purchase, causing more ad budget money to flow to them.
All these hidden impressions distributed to as many users as possible cause View Through Conversion metrics to skyrocket. As mentioned before, View Through Conversions reported by an ad platform can easily be more than 10 times the number of Click Through Conversion reported. It is no surprise that ad platforms want you to believe in and count View Through Conversions.
New Attribution Models: View Throughs Disguised as Click Throughs
The simple way for an ad platform to fool you into counting View Through Conversions is to simply have a single “Conversions” column and lump all conversions in there. The platforms are however getting more sophisticated at transforming view conversions into click conversions, using new attribution models as a guise:
YouTube TrueView Conversion is any conversion that occurs after the user has watched 30 seconds of a video. Even if no click happened. TrueView conversions get counted in the Conversion column in AdWords along with the regular Click Through conversions. This makes it seem like an actual click happened, when none did. What makes this even more confusing and misleading, is that YouTube will still report View Conversions in a separate column. Since there are two separate columns, one tracking View Throughs explicitly, you will assume that the Conversions column must only contain clicks. This is not the case, and if not careful, you will significantly overspend on your YouTube remarketing campaign.
Steelhouse’s “Verified Visit” model counts any View-Through visit to your site within 1 hour of seeing an ad as a “Verified Visit”. Any conversion that happens within 30 days of this “Verified Visit” is counted as a Click Conversion (even though, no click ever occurred). Steelhouse will skirt the View Through question by saying that they only count conversions from “Verified Visits”. This will mislead you to think that they only count Click Through Conversions. But that is incorrect. The stats they report definitely include View conversions, which inflate your ROI, and cause you to overspend.
I spent months believing that SteelHouse’s numbers were based solely on clicks and post-click conversions. SteelHouse’s conduct made it appear to perform better than it actually was performing. Toms made spending allocation decisions and marketing vendor choices based on SteelHouse’s inflated performance.
How to protect yourself from View Through Conversion “fraud”?
Insist that your platform report on Click Through and View Through Conversions in two separate columns. It is OK to include View Conversions in a report if they are in a separate column. It is NOT OK to combine View Conversions with Click Conversions in the same column.
Validate all data with your site analytics. Your analytics platform should report the actual accurate click through conversion data. Always compare the reports your remarketing platform generates with your own analytics data.
Don’t run Conversion focused YouTube remarketing campaigns. There is currently no way to opt-out of the TrueView model, therefor your conversion column will be overstated. Read more about TrueView…
Don’t use Steelhouse. Their Verified Visit model is designed to fool you. They also use their tracking pixel to inject data into your analytics. Scary stuff. Avoid.
Don’t use Criteo. They won’t tell you where your ads are displayed and their network has much more fraudulent sites participating in cookie bombing than anyone else. Avoid.
Fraudulent Automated Clicks
Fake clicks are an evolution of Cookie Bombing, except in this case clicks are auto generated onto the invisible ads, sending invisible visits to your site, and claiming Click credit for your purchases.
How Fake Clicks Work
A legitimate customer visits your site but does not purchase. He is now placed into your remarketing list.
This customer now visits another site on the internet. That site serves up an invisible ad and automatically “clicks” on that ad.
That click causes an invisible visit to your website, by that customer. That customer’s remarketing cookie records a click and a site visit.
Your legitimate customer now has a remarketing cookie set that says he saw an ad, clicked on that ad, and visited your website from that ad.
When that customer comes back to your site to make a purchases, that ad will take credit for the conversion.
There are two issues here: The first is that you’ve paid for a fraudulent click. The second more important issue is that a conversion has been attributed to that fraudulent click. As a result, your remarketing platform appears to be performing better, meaning you will likely increase your budget in order to buy more of those fraudulent clicks.
Obfuscation and Lack of transparency
Anytime the remarketing network is hiding data from you, that’s an opportunity for them to fool you. For example, Criteo refuses to be transparent with the list of publisher sites where you ad appears and where your clicks and conversions come from.
3.6% of Criteo’s ‘users’ generate 25% of its clicks. Such behavior by real human users is highly unlikely. This behavior is indicative of adware, bots, click farms, or other code created by Criteo or its affiliates to generate clicks and drive up Criteo’s click-count numbers.
Insist on detailed and transparent reports on where your ads were served, and where the clicks came from. If certain sites seem to have unusually high click and conversion rates, dig deeper into those sites to see if they are legitimate or not.
Avoid using platforms that lack transparency. Don’t use Criteo for this reason, as they refuse to provide transparent reports of where your ads are served, preventing you from doing a proper audit.
Hijacking Visits and Overwriting Analytics
When you install 3rd party javascript pixels on your site, you give the owner of that script a lot of power. In particular that script can overwrite referral data, popup hidden pages, and generate clicks to your site. It can even directly write to your analytics platform!
You may think that your analytics data is safe, but think again. When you install any 3rd party javascript on your site, you also expose your analytics account for injection.
This is super alarming and you should be very concerned about this capability. Any Advertising Platform that has any javascript installed on your site can be overwriting and modifying your analytics data. They can override referral data for direct and organic visits to make it look like they are coming from their network. They can highjack e-commerce transactions and attribute them to themselves. They can make it seem like they are out-performing all your other marketing channels.
SteelHouse used “malicious code to make it appear as though an internet user clicked on a SteelHouse-placed advertisement, even though no such click occurred.”
Steelhouse, under their Verified Visit model, uses their javascript pixel to generate clicks on ads, visits to your site, and to attribute conversions to themselves directly in your analytics.
How this works:
A legitimate customer visits your site but does not purchase. He is now placed into your remarketing list.
This customer now visits another site and is shown an ad. The customer DOES NOT click on the ad, but the remarketing cookie records a View.
An hour later, the customer revisits your site from an organic source. The pixel script on your site detects that the customer has a recent ad view recorded.
The pixel script loads an invisible iFrame, in the iFrame it loads the original ad and generates an automatic click and visit to your site.
Your legitimate customer now has a remarketing cookie set that says he saw an ad, clicked on that ad, and visited your website from that ad. Your analytics data also says that this customer came from an ad click, and not from the original organic source.
When that customer comes back to your site to make a purchases, that ad will take credit for the conversion.
Worst still, when you look in your analytics, it will appear that your Remarketing Platform is sending you lots of visitors and conversions, which will cause you to spend more with them. The reality is that these visitors are organic visits that were hijacked by the remarketing pixel.
“SteelHouse’s practice of inserting a code into an internet user’s browser to make a view of an advertisement appear indistinguishable from a click on Decker’s Adobe Analytics system is not, in any way, common or acceptable industry practice. Nor should it be because it is deceptive.”
Insist on an image only tracking pixel. Although this is rarely a viable option, try to avoid 3rd party javascript when possible.
Keep your analytics private and hidden. The less they know about your analytics platform and setup, the more difficult it will be for them to inject data. Avoid giving them any access, and ideally don’t even tell them what platform you use.
Get a written declaration from the Remarketing Platform that they will not inject data into your analytics, that they will not modify referral data, that they will not generate clicks, nor do anything that will simulate visits to your site or in your analytics.
Don’t use Steelhouse
More steps to protect yourself
Be very skeptical
Be very skeptical of all data provided by the 3rd party platform. By default assume they are lying to you and are trying to take your money. Always rely on your in-house analytics data first (although even this can be messed with via 3rd party pixels) and always try to deeply understand how their platform and algorithms work. Explicitly ask what they are doing about ad fraud.
Beware of secret sauces, black boxes, and magical artificial intelligence powered predictive self optimizing algorithms. If something looks too good to be true, then it probably is.
Never ask the barber if you need a Haircut…
The ultimate selfish goal of any Advertising Platform is to MAXIMIZE your ad spend. You are THEIR customer and they want YOUR money. They want you to allocate as much of your budget to them as possible. They are incentivized to fool you.
Therefore be very skeptical with the data they give you and the stories they tell you. I would explicitly AVOID using either Steelhouse or Criteo due to first hand bad experiences with both.
YouTube Video Campaigns count Conversions very differently from other Campaign types
YouTube Video Campaigns count view-conversions as click-conversions, and include them in the “Conversions” columns of Google Ads.
If you are running a ROI focused YouTube Campaign that is targeting a lower funnel Remarketing Audience, the revenue and conversions reported by Google Ads can be over-inflated by 1000% or more vs what Google Analytics will report.
When running a YouTube Campaigns, always:
Be suspicious and skeptical of the conversion data
Adjust your performance targets. Conversions will be overinflated by a factor of up to 1000%, so adjust your performance accordingly.
Use Google Analytics as your measure of YouTube Campaign performance
Avoid Targeting lower funnel Remarketing Lists with YouTube. Save these lists for campaigns that offer true click-based conversion tracking.
Explicitly exclude low funnel Remarketing Lists from your targeting. This will ensure the attribution poaching is limited.
YouTube Conversion Tracking Explained
Standard Campaign Behaviour
For most campaign types, a conversion is only recorded in the “Conversions” column when someone clicks on your ad and then proceeds to make a purchase. This is called a Click-Through Conversion. If there are no clicks on your ad, no conversion is recorded in the Conversions column.
This is the normal expected behaviour.
YouTube Campaign Behaviour
For YouTube campaigns, clicks behave normally: If someone clicks on your ad and then makes a purchase, that purchase is recorded as a conversion as expected. So far so good.
However, if someone DOES NOT CLICK on your ad, but watches your entire ad, and then later purchases, that purchase will be recorded as a conversion and attributed to YouTube.
As per Google:
A ‘view’ is counted when someone watches 30 seconds (or the whole ad if it’s shorter than 30 seconds) or clicks on a part of the ad. A ‘view’ that leads to a conversion is counted in the ‘Conversions’ column.
Essentially, these are View-Through Conversions masquerading as Click-Through Conversions. The ad was never clicked, yet a conversion was recorded anyway. Considering that many ads are only 5 seconds long, most ad views are likely being treated as clicks.
This is NOT EXPECTED behaviour!
Attribution Poaching
Attribution Poaching is when one Channel tries to take credit for a sale that was either going to happen anyway, or for a sale that was actually caused by another Channel.
Consider this scenario…
You create a YouTube campaign targeting your Shopping Cart Abandoners with a 5 second video ad.
One of your potential customers visits your site, and ads a product to their Shopping Cart. By adding to the Shopping Cart, they are now in your Shopping Cart Abandoners audience, and will be actively targeted by your YouTube Campaign.
They continue to browse your site, but they are interrupted by an e-mail or text from a friend with a link to a funny YouTube video. They click on the link and watch the video. While watching the video, they are forced to watch your 5s video ad (which they ignore). Since they watched y0ur entire ad, Google considers that a “click”.
They then eventually return to your site, to complete the purchase. Or maybe they complete the purchase 3 days later after receiving your Cart Abandonment e-mail.
In either case, your YouTube Campaign will claim credit for the Purchase, and will count it as a Conversion even thought that customer never clicked on your ad.
Why is Google Doing This?
A video view is much more like an impression than like a click, so why are these conversions being lumped in with click-through conversions?
The simple cynical answer is that Goolge makes more more money this way. By counting view-through conversions, the YouTube campaigns will appear to perform much better than they actually do with just click-through conversions (as much as 1000% better). If advertisers think that YouTube is performing 10X better, then they will allocated 10X more budget. The end result is Google makes 10X more money from YouTube.
A “Video View” is more like an Impressions than a Click
Video-View-Conversions should clearly be lumped into the View-Through Conversion column. If Google wants to explicitly report on Video-View-Conversions separately, then they should create another column type. Don’t lump them in with click-through conversions.
Unexpected Behaviour
The problem with all this is that suddenly the “Conversions” column behaves differently in one campaign type vs another. Suddenly the clean click-through conversion data is being polluted with View-Through conversion data. This makes YouTube campaigns appear to perform much better than they should. Which will lead you to incorrectly increase spend.
To make the matter worse…
Many people have long click-through conversion windows. Often 30 days or even longer. This essentially allows a YouTube to claim credit for a conversion that happens 30 days after a video view.
Many video ads are short – only 5s long. Most of these short ads are probably viewed in their entirety, meaning that they are all being counted as clicks. Often the user is forced to watch the entire 5s ad – again a click. This leads to more incorrectly attributed click-conversions.
Often people target video ads using remarketing lists. Often the lowest hanging fruits for video campaigns are Remarketing Audiences. This shows ads to people who know your brand, who have recently visited your site, who may be subscribed to your newsletter, and who may in fact be currently actively shopping on your site. They are all likely to buy from you regardless of the the video ad, but the video ad will take credit for all their purchases.
This could also affect your Display and Discovery Campaigns
This issue could also affect your regular display campaigns and possibly your Discovery campaigns if they are serving ads on the YouTube network.
My recommendation for Display Campaigns is to try and exclude all YouTube placements: Go to: Campaign Settings > Additional Settings > Content Exclusions and select all of the following for exclusion:
Live streaming YouTube video
Embedded video
In-video
Notes:
This should only be an issue if you use Google Ads Native Conversion tracking. If you import your conversions directly from Google Analytics, then this should not be an issue (as Analytics only attributes conversions to the last click)
If you are running a pure brand awareness campaign, this is probably less of a concern for you.
If you are an Ad Agency getting paid as a % of ad spend, then YouTube campaigns can make you a lot of money.
You spend $1,000 on a new Ad Campaign that generates $10,000 in revenue. “That’s a great ROI” you tell yourself, “Let’s double the spend!“.
When you double the budget to $2,000, your Campaign only generates $12,500 in total sales and not the $20,000 you were expecting. Why?
Spend
Sales
Cost of Sales
ROAS
Ad Campaign #1
$1,000
$10,000
10%
1000%
Ad Campaign #2
$2,000
$12,500
16%
625%
Increasing spend by $1,000 only resulted in $2,500 in additional revenue: An incremental cost of sales of 40% and an incremental ROAS of 250%
Why doesn’t it scale?
By scale I mean that your ROI should be linear: If the first $1,000 generates $10,000 in sales, then the next $1,000 should also generate $10,000 in sales.
The issue is that rarely is your campaign performance evenly distributed. If your drill down deeper into your initial $1000 Campaign, you might see the spend broken down into something like this:
Spend
Sales
%COS
ROAS
Branded
$200
$8,000
2.5%
4000%
Unbranded
$800
$2,000
40%
250%
$1000 Campaign
$1,000
$10,000
10%
1000%
Majority of the sales are being generated by a small subset of the overall campaign. A classic 80/20 scenario. The performance of the Branded ad set is subsidizing the cost of the unbranded ad set.
The performance of the Branded subset is subsidizing the cost of the Unbranded subset. 80% of your sales are coming from only 20% of the spend, while 80% of your spend is going towards an underperforming segment.
When we try to double the budget to $2,000, here is how the budget gets allocated:
Spend
Sales
COS
ROAS
Branded
$200
$8,000
2.5%
4000%
Unbranded
$1,800
$4,500
40%
250%
$2,000 Campaign
$2,000
$12,500
16%
625%
When budget is doubled, most of the spend goes towards the underperforming segment, resulting in disappointing incremental sales.
With this new data in mind, we should probably:
Decrease budget on the Unbranded segment
Increase budget on the Branded segment
However, it is probably the case that your performing segment is already receiving 100% reach/impressions. So spending more is usually not possible. (In particular for Google Search Ads targeting your branded term: How much you can spend is a function of how many people are searching for your brand. Once you reach everyone, spending more can’t get you more people).
If you want to increase your spend, the only place to do so is in the underperforming unbranded campaign. But at least you’ll have a better expectation of the results.
Summary
Avoid making budget decisions on aggregate data. Always try to segment and dig a little deeper.
Don’t let underperforming segments ride the coat tails of your top performers. Look for 80/20 campaign and ad group performance and analyze those individually.
For Google Search Ads, always separate your Branded search terms and Unbranded search terms into separate campaigns.
By default, Shopify sends transactions to Google Analytics with a unique product title for each product variant. This causes the Product Performance Report to be split on the variant level instead of at the product level as it was intended.
This is how Shopify data shows up by default in the Product Performance Report. Notice that the various “Trillium Parka” variants are ungrouped because of the different size and color information in the product name. This makes it difficult to see “Revenue by Product” for all “Trillium Parkas”.
If, for example. you are selling winter boots, and someone buys a size 10 in Black, Shopify will send the product name as “Winter Boots – 10 / Black” instead of just “Winter Boots“. This is a bug as as the variant details are already included in the Google Analytics “Product Variant” column.
The Solution: GA Custom Data Import
The solution to this problem is to overwrite the Shopify data using the Google Analytics Custom Data Import tool.
1: Export your Product Data
First we need to export all our product data – we can accomplish this by creating a custom Collection Template that generates a CSV report instead of the standard HTML.
a. Create a new Collection Template
Call the new collection template csv-ga-product-feed and paste the following code:
b. Create a new Collection based on your csv-ga-product-feed Template
Select the products you want to include in this feed (probably all your products). These will be the products whose values will be overwritten in Google Analytics. Call your collection “Google Analytics Product Data Import” or something similar and save it.
c. Download your Product Feed
View your new collection in your store (eg: store.myshopify.com/collections/google-analytics-product-data-import)
View source in your browser and save as HTML
Rename the file with a CSV extension (eg: google-analytics-product-data-import.csv)
2: Setup and Import the data into Google Analytics
WARNING! You can really mess up your Google Analytics data if things go wrong. I highly recommend that you duplicate or backup your Google Analytics view and do a trial run before working with your live data. Once you upload this new data and overwrite there is no UNDO!
a. Setup the Data Feed
Go to Google Analytics > Admin > Account > Property > Data Import
Click the red “+ NEW DATA SET” button
Select “Product Data”
Give your Data Import a name: “Product Name Override”
Select the Google Analytics Views you want this import to affect
Setup your Data Set Schema: Product SKU is the mandatory key, but select Product and Product Variant as the additional fields.
Overwrite Hit Data: Choose Yes (but read my warning above)
Click Save and Done
b. Upload your data feed
Click on “manage uploads” beside your new Data Feed definition
Click the blue UPLOAD button
Choose your CSV file and click UPLOAD again
And now wait for the upload an update to be complete
3: Verify your new data
The data upload will only affect data from this date forward. So your old data will not be fixed. But your future data will be nice and clean… Until you add new products to your store, in which case you will have to repeat this process.
You will need to wait at least a day before you start seeing the new data coming in. If you add new product SKUs to your store, you will also need to regenerate and reupload a new file in order for the new product data to be fixed.
My personal experience with View Through Conversions (VTCs) is that they provide very little real-world lift in sales, and are more likely just poaching attribution from other channels. So I almost always give VTCs a value of zero and ignore them.
The truth probably lies somewhere in-between. For lower funnel remarketing campaigns VTCs probably provide close to zero value, while for truly brand-unaware audiences, the value is somewhere between 0 and 100%.
If you are one of those who wants to believe in the value of VTCs, you should calculate the true value of VTCs by running a placebo A/B test. Below is just such a test that we ran on the AdRoll network back in 2013:
Placebo A/B Tests to Measure View Through Conversions
How to Setup a Placebo A/B Test
You will likely need assistance from your ad platform or ad agency to properly run this sort of test. It is usually difficult to have a blank or psa ad approved.
Create 2 separate (but equal) non-overlapping campaigns
Campaign A will serve your “normal” ad Campaign B will serve a Public Service Announcement ad
Run both campaigns for a few weeks
Calculate VTC “lift” as follows:
Real Life Example
Campaign A (Real Ad)
Campaign B (PSA Ad)
Impressions
99,467
97,412
VTCs
329
261
Data from a real world A/B test performed in 2013 on the AdRoll network
VTC “Lift” = (329 – 261) / 329 = 20%
In this real life example, the irrelevant PSA Ads still managed to generate 80% of the View Through Conversion volume that the real ad generated. To be more clear, 261 people saw an ad to adopt a cat, and later went to BOATERexam.com to purchase a boating license.
So 80% of VTCs can be given a value of zero. Of the remaining 20%, more analysis is needed to figure out exactly how they influenced sales. The Real Ad did seem to generate more VTCs than the PSA ad, but the real question is if those VTCs resulted in extra incremental sales or were they simply tracking sales generated by another channel such as e-mail?
Real Life Example #2: Facebook
A few years later we ran a similar Placebo A/B test on Facebook with the help of SocialCode. Unfortunately I no longer have the data for this test, but the end results was that there was ZERO lift from VTCs, and the PSA ad actually outperformed the real ads from a VTC standpoint! (People seeing cats were buying more boating licenses than the people seeing ads for a boating license)
So how should you value View Through Conversions?
Here are my recommendations:
Give View Through Conversions a value of ZERO. Unless you can prove otherwise via an A/B test. This is especially true for re-marketing campaigns where the visitors have previously visited your site, and may be actively engaged in checkout when the ad is shown.
Run your own Placebo A/B test. If someone insists on using VTCs in performance metrics, then you should insist on running an A/B test to calculate the true value. You should run at least two tests: One for remarketing audiences and another for brand-unaware audiences.
Be cautious and skeptical of anyone pushing the value of VTCs especially if they are an ad agency or ad platform that will benefit from including the extra VTCs in their performance metrics.
When can View Through Conversions be valuable?
Brand Unaware Audiences on Trusted Networks: If you are marketing to a 100% brand-unaware audience, and a trustworthy network, then there might be a valid argument to give VTCs some credit.
To measure which sites your customers frequently visit: Looking at VTCs on a per-placement level, *should* theoretically be a good indication of which sites your customers spend time on. You can then consider having targeted prospecting campaigns focused explicitly on those sites.