Filtering High Return SKUs With Google Ads Custom Labels

Thirty percent of eCommerce returns originate from just 12% of SKUs. I see this pattern constantly when auditing new accounts. You log into Google Ads and see a campaign printing a 5x gross ROAS. The client thinks they are scaling profitably. Then you look at their Shopify backend and realise the net-kept revenue tells a completely different story.

High-return items secretly burn cash behind the scenes. The platform takes credit for the initial sale. It ignores the return shipping cost, the warehouse restocking fee, and the eventual full refund. That 5x ROAS campaign might actually be operating at a net loss once the dust settles thirty days post-purchase.

Standard bid strategies optimise for the initial checkout. They do not care if the customer sends the product back a week later. You have to force the algorithm to care.

The most effective way to fix this profit leak is by tagging your product feed with return rate data. You can then structure your campaigns to bid aggressively on items customers keep and pull back on items they return.

Return rate reality behind inflated shopping ROAS

The disconnect between platform-reported gross revenue and reconciled net-kept revenue is the biggest blind spot in eCommerce scaling. I have seen founders make massive inventory purchasing decisions based on Google Ads data. They double down on bestsellers that are actually toxic to their bottom line.

Consider a common scenario in the apparel space. You launch a new dress that converts beautifully. The click-through rate is high. The conversion rate is double your store average. Google Ads Smart Bidding notices this positive signal and funnels 40% of your daily budget toward this single SKU. The dashboard shows an impressive 4x ROAS.

Then the returns start arriving. The dress runs two sizes too small. The post-purchase return rate hits 40%. You are paying for outbound shipping, return shipping, and the customer service time to process the refund. That apparent 4x ROAS campaign has turned into an operational loss. You paid premium click prices for revenue you did not get to keep.

Standard conversion tracking fails to account for this refund volatility. Google Ads records the conversion value at the moment of checkout. It assumes that revenue is locked in. While you can upload offline conversion adjustments to reverse these values, the algorithm has already used those initial positive signals to find more of the same buyers. This creates a feedback loop where you spend more money acquiring customers who ultimately refund their orders.

This tracking gap is why we focus heavily on conversion accuracy at Elite Brands. You need to bridge the gap between frontend ad metrics and backend financial reality.

The distribution of these returns is rarely even across your catalog. The 80/20 rule applies heavily here. When we pull 12 months of Shopify data for a new client, we typically find that 12% of their SKUs drive 30% of total product returns. These are usually items with sizing inconsistencies, misleading product photos, or fragile components. If you do not isolate these specific SKUs, they will drag down the profitability of your entire account.

Google ads custom labels as margin defense mechanisms

You need a way to communicate backend financial risk to frontend bidding algorithms. This is where Google Merchant centre custom labels become highly valuable. They act as margin defense mechanisms.

Custom labels 0 through 4 are optional attributes in your product feed. You can populate them with any text value you want. Most brands use them for basic categorisation like seasonal tags or clearance markers. I prefer to use them for profit and return velocity tagging.

By defining return thresholds, you can separate low-return evergreen items from toxic refund-heavy SKUs. This feed-level segmentation prevents automated bidding from over-allocating budget to problematic products. It forces the algorithm to respect your actual profit margins rather than just chasing top-line revenue.

When you apply these tags, you move beyond static product categories. You create dynamic risk-based feed groupings. This is a core part of our Google Shopping feed optimisation process. You are telling Google exactly which products are safe to scale and which ones need strict budget constraints.

Standard taxonomy limits versus custom feed attributes

Standard product types fail to communicate financial risk to Smart Bidding algorithms. Google knows a product is a men’s t-shirt because of the Google Product Category attribute. It knows the brand, the colour, and the size.

What Google does not know is that the black version of this t-shirt has a 5% return rate, while the white version has a 35% return rate due to sheer fabric. The standard taxonomy treats both items as equal opportunities for a conversion.

Custom feed attributes bridge this knowledge gap. When you inject return data into custom label 0, you give the algorithm a new lens. You can group products by their actual business impact rather than their physical characteristics. This prevents the system from blindly pushing a high-converting but high-returning variant just because it gets cheap clicks.

Defining return risk tiers in custom labels

You need to set actionable thresholds for your custom labels. I recommend splitting your catalog into three distinct tiers based on historical net return data.

Tier 1 is your low-risk bucket. These are products with a return rate under 10%. These items are safe to scale. They represent your true profit drivers. You want the algorithm to push these as hard as possible.

Tier 2 is your moderate-risk bucket. These items see a 10% to 25% return rate. This is typical for standard footwear or apparel. They are profitable, but they require a higher target ROAS to absorb the cost of returns.

Tier 3 is your toxic bucket. These are SKUs with a return rate above 25%. You do not want Smart Bidding throwing budget at these items. They need strict isolation and highly controlled bids to ensure you do not lose money on every sale. If you’re unsure where your catalog risks lie, our free Google Ads audit reviews how your campaigns handle risk-based product segmentation.

Data extraction workflows for Google ads custom labels across Shopify and Klaviyo

You cannot manually update return labels for thousands of SKUs. You need a technical workflow to pull this data from your eCommerce platforms and sync it to your feed rules automatically.

The first step is pulling gross units versus refunded units from your Shopify analytics. You cannot just look at the total dollar amount refunded. You need SKU-level precision. You have to export your order data and filter for line items that were marked as returned or refunded within your specified date range.

Next, you should cross-reference this quantitative data with qualitative customer feedback. We use Klaviyo flows to trigger automated post-purchase surveys when a return is initiated. This captures the exact reason for the return. If an item is being returned for a sizing issue, that requires a different business response than an item returning because it arrived broken. Having a strong Klaviyo expert team helps you map these return tags directly to customer profiles.

Once you have the raw return rate per SKU, you need to automate your feed updates. You can use Google Merchant centre supplemental feeds via Google Sheets for a low-cost solution. For larger catalogs, I recommend using a dedicated feed management tool like Channable or Feedonomics.

You must set automated sync cadences. Return rates are not static. A new production run might fix a sizing issue, dropping a Tier 3 product down to Tier 1. You should calculate return rate labels based on rolling 30-day and 60-day windows. This ensures your ad spend automatically adapts as your product quality or customer behaviour changes.

Calculating net SKU return rates

Your formula for net return rate needs to account for exchanges, store credit, and full cash refunds. A direct exchange for a different size is less financially damaging than a full cash refund.

I calculate the net SKU return rate by taking the total number of units fully refunded to the original payment method and dividing it by the total gross units sold. I exclude units that were exchanged for a different variant.

For example, if you sold 100 units of a specific jacket, had 10 size exchanges, and 15 full cash refunds, your net return rate for this calculation is 15%. This 15% figure is what determines the product’s custom label tier. It gives you a clean metric that reflects actual lost revenue.

Injecting return attributes into supplemental feeds

Injecting these attributes into your supplemental feeds requires strict formatting. The easiest method for most brands is to use a Google Sheet connected directly to Google Merchant centre.

Your sheet needs two columns. The first column is the exact Item ID that matches your primary feed. The second column is your custom_label_0 attribute. You use a simple VLOOKUP function to map your Tier 1, Tier 2, or Tier 3 labels to the corresponding Item IDs based on your Shopify export data.

You then set Google Merchant centre to fetch this supplemental feed daily. The platform will overwrite the blank custom label fields in your primary feed with your new return risk tiers. This process takes about two hours to build initially but runs completely hands-free once automated. Check the Google Merchant centre Help documentation for the exact formatting requirements for supplemental feeds.

Campaign architecture using custom labels shopping segmentation

Tagging your feed is only the first half of the process. The real profit gains come from detailing the practical implementation of your campaign structure. You must build your architecture around these new custom labels.

Segmenting Performance Max asset groups or Standard Shopping campaigns by return risk tiers gives you ultimate control over your budget. You stop treating your entire catalog as a single blended entity. Instead, you dictate exactly how the algorithm treats each tier of products.

The primary goal is applying aggressive negative bidding or suppressing tier-3 high-return SKUs from your main ad spend. If a product has a 35% return rate, it has no business sitting in a Performance Max campaign with a 300% target ROAS. The algorithm will blow through your budget selling a product that customers will just send back.

By removing these toxic SKUs from your main campaigns, you instantly redirect ad budget towards high net-margin, low-return core products. Your Tier 1 items get the oxygen they need to scale.

You do not necessarily have to pause Tier 3 items entirely. You still need to clear that stock. You simply pull those toxic SKUs into separate Standard Shopping catch-all campaigns. You apply conservative manual bids to these items. This ensures you only acquire sales for high-return items when the click is incredibly cheap, protecting your margin.

Isolating high-return items in Performance Max

Excluding return-heavy products from flagship asset groups is mandatory to protect your algorithm training data. Performance Max learns from conversions. If you feed it conversions that eventually turn into refunds, you are training the machine to find the wrong type of customer.

You must filter your primary PMax campaigns to only include products tagged as Tier 1 or Tier 2 in custom label 0. This creates a clean data environment. The algorithm learns what a highly profitable, low-return customer looks like. It then goes out across Search, Shopping, YouTube, and Display to find more of them.

When you isolate the data this way, you often see the gross ROAS drop slightly in the platform. This happens because you removed the cheap, high-converting clicks that were driving up top-line revenue. However, your backend net profit will increase significantly.

Standard shopping allocation for controlled exposure

You need granular control for products that bleed margin. This is why you must understand when to use Performance Max over Standard Shopping. High-risk SKUs require the strict guardrails that only Standard Shopping can provide.

Create a dedicated Standard Shopping campaign filtered exclusively for your Tier 3 custom label. Set the bidding strategy to Manual CPC. Do not use target ROAS here. You want manual control over the maximum amount you are willing to pay for a click.

Set your bids aggressively low. I usually start these at $0.15 to $0.25 per click. You are using this campaign purely for controlled exposure and stock clearance. You will not get massive volume, but the sales you do get will have an acquisition cost low enough to absorb the high return rate.

Target ROAS calibration using Google ads custom labels for net-kept revenue growth

You have to guide your bidding models using real financial targets. Once your campaigns are segmented by return risk, you must recalculate your target ROAS models to account for those returns.

Rebuilding target ROAS formulas using real net-kept revenue rather than checkout gross figures changes how you view performance. A 400% ROAS target on a Tier 1 product means something entirely different than a 400% target on a Tier 2 product.

You must adjust target efficiency metrics by custom label bucket to maintain a healthy EBITDA. Let us break down the math. If your Tier 1 products have a 5% return rate and a 60% gross margin, a 300% tROAS might be perfectly profitable. The minimal returns do not eat into the margin enough to cause a loss.

If your Tier 2 products have a 20% return rate and the same 60% gross margin, a 300% tROAS will likely lose money. You have to factor in the 20% revenue loss, plus the reverse logistics costs. To break even on net-kept revenue for Tier 2, you might need to push your tROAS target up to 450% or 500%.

Monitoring long-term net contribution margin across product categories is how you scale sustainably. You cannot set these targets once and forget them. Supply chain costs change. Shipping rates increase. Customer behaviour shifts during macroeconomic crunches.

You need to set up systematic quarterly reviews to audit product feed performance against backend financial statements. Every 90 days, we pull the net profit reports from Shopify and compare them against the ad spend reports from Google. If a specific product category is showing a strong platform ROAS but dragging down backend profitability, we adjust the custom label thresholds and push the tROAS targets higher.

This level of financial integration is the core of professional Google Ads management. You have to stop managing campaigns based on dashboard vanity metrics. You must manage them based on money in the bank.


Not sure if your Google Ads structure is costing you?

We audit Google Ads accounts weekly — PMax, Shopping, Search. The free Google Audit shows you where budget leaks and what to fix first.

Get the audit →


If your current agency is reporting record-breaking ROAS while your bank account is draining from return processing fees, your feed architecture is broken. You need to map your actual return rates to your bidding strategy before you spend another dollar on scaling toxic SKUs. If you want a hand getting this infrastructure set up and properly calibrated, we should take a look under the hood.

Next
Next

Why High Retention vs Acquisition Spend Kills Growth