
Cross-selling is one of the most powerful growth levers for eCommerce and retail businesses. By encouraging customers to purchase complementary products, companies can increase average order value (AOV), deepen customer relationships, and improve marketing ROI.
But tracking how well cross-selling works – especially when you want to analyze performance by product categories and compare it against a campaign’s original targeting strategy – requires a structured approach.
Jump ahead to:
Why Tracking Cross-Selling Matters
Cross-selling is more than just “suggesting related items.” Done right, it can:
- Boost AOV without increasing acquisition cost
- Reveal buying patterns between categories
- Identify mismatches between marketing campaigns and actual customer behavior
- Optimize future campaigns with data-backed insights
Example: If your campaign is targeting fitness equipment, but most conversions come from supplements, that’s a clear signal to adjust your messaging or expand targeting.
Pro tips
Why Category-Level Tracking Matters
Let’s say your Meta campaign is promoting Laptops. A customer clicks but buys Accessories (like a mouse).
- Great for revenue, but…
- From a targeting perspective, the campaign didn’t deliver the intended category.
Without tracking this, you can’t:
- Measure cross-selling impact
- Understand mismatches between targeting and actual behavior
- Optimize campaigns for the right outcomes
Structure Campaigns for Clarity
To compare targeted vs. actual categories, your campaigns need clear naming conventions.
- Campaign name: Category Laptops Prospecting
- Ad set name: Audience_18-34_Mobile
- Ad name: Creative_Variant1
This way, you’ll always know which category was intended.
Categorize Products in Your Backend
Every SKU should have a category attribute. This ensures every purchase event carries category data.
Send Category Conversions via CAPI
When a purchase happens, send it to Meta (or other platforms) via CAPI. Pass the purchased category in the payload.
Google Ads Enhanced Conversions and TikTok Events API allow similar custom fields.
Compare Target vs. Purchased Categories
Now, in your BI layer, join:
- Campaign Structure Data (what the campaign targeted)
- Conversion Events (what was purchased via CAPI)
This outputs a breakdown of intended vs. actual conversions.
Event-Based Approach in Meta (Key to Category Tracking)
Instead of sending just a single generic Purchase event, you can send category-specific purchase events via CAPI, such as:
- Category_A_Purchase
- Category_B_Purchase
- Category_C_Purchase
How it works:
- A purchase occurs → backend identifies the category.
- Send the corresponding event via CAPI (e.g., Category_A_Purchase).
- Meta automatically attributes that event back to the correct campaign, adset, and ad based on user journey.
Additional read: Marketing Attribution for B2B – All You Need to Know
Creating Conversions in Meta
Once you are sending category-specific events via CAPI:
- Go to Events Manager in Meta.
- Create custom conversions for each event (e.g., Category_A_Purchase Conversion).
- Map event → category-specific conversion.
- Add these conversions into your Meta reporting columns.
Now you’ll start seeing purchase data broken down category-wise against all campaigns, ad sets, and ads.
Comparing with Campaign Targeting
This is where insights emerge:
- Campaigns targeting Category A can be compared directly against Category A Purchase conversions.
- If conversions show strong activity in Category B or C, that indicates cross-selling behavior.
Example summary table:
Campaign | Target Category | Total Purchases | Category A Purchases | Category B Purchases | Category C Purchases |
Laptops_Prospecting | Laptops | 240 | 120 | 80 | 15 |
Skincare_Retargeting | Skincare | 170 | 95 | 40 | 35 |
Furniture_Prospecting | Furniture | 150 | 110 | 25 | 15 |
Sportswear_Lookalike | Sportswear | 180 | 100 | 60 | 20 |
Coffee_Retargeting | Beverages | 90 | 70 | 15 | 5 |
Electronics_Broad_Aware | Electronics | 220 | 140 | 60 | 20 |
This layout makes it easy to:
- See whether a campaign delivered purchases in the intended category.
- Identify cross-sell conversions where other categories were purchased.
- Prioritize optimization: campaigns with high activity might need creative/targeting adjustments or entirely new campaigns for cross-sell categories.
Reporting & Optimization
In Meta Ads Manager, once category conversions are added:
- Filter by custom conversions → See how many Category A, B, C purchases each campaign delivered.
- Compare category-level purchases vs. campaign’s intended category.
- Optimize future campaigns accordingly.
Example actions you might take:
- High match rate → campaign is performing as intended.
- High cross-sell → launch dedicated campaigns for the secondary categories.
- Low alignment → adjust targeting, creatives, or offers.
Pro tip: Advanced Setup with GA4 + BigQuery
If you also use GA4, you can replicate the same logic:
- Export purchase events into BigQuery.
- Include both campaign IDs and purchased categories.
- Run SQL to compare intended vs. actual purchases across campaigns.
End-to-End Flow
Here’s the process visually:
And here’s how it works step by step:
- Campaign Setup
- Define product category targets (e.g., Laptops, Skincare, Furniture).
- Ensure ad sets/ads are structured in a way that makes it clear which category is being promoted.
- Define product category targets (e.g., Laptops, Skincare, Furniture).
- Event Creation & Tracking
- When a purchase happens, classify it by category (A, B, or C).
- Fire category-specific events via CAPI (Category_A_Purchase, Category_B_Purchase, etc.).
- When a purchase happens, classify it by category (A, B, or C).
- Meta Attribution
- Meta automatically attributes each event to the campaign, ad set, and ad that influenced it.
- No manual mapping needed – attribution happens within Meta’s system.
- Meta automatically attributes each event to the campaign, ad set, and ad that influenced it.
- Conversion Setup
- Create custom conversions in Events Manager for each category-specific event.
- Example: Category_A_Purchase Conversion, Category_B_Purchase Conversion.
- Create custom conversions in Events Manager for each category-specific event.
- Reporting
- Add these conversions into your Ads Manager reporting columns.
- Compare Target Category vs. Actual Purchased Categories across campaigns.
- Use tables (like the one above) to identify matches vs. cross-sells.
- Add these conversions into your Ads Manager reporting columns.
- Optimization
- Validate campaign performance (did people buy the intended category?).
- Spot cross-sell patterns (unexpected purchases).
- Create new campaigns or adjust targeting/creative to capture cross-sell demand.
- Validate campaign performance (did people buy the intended category?).

Final Thoughts
Tracking cross-selling by category isn’t just about counting sales – it’s about:
- Sending category-specific purchase events via CAPI
- Creating custom conversions for each category
- Adding them into Meta reporting to see campaign → category alignment
This gives you a clear view of whether campaigns are driving the intended product category or whether customers are shifting into cross-sell categories.
With this closed-loop setup, you can:
- Prove ROI more accurately
- Find new cross-sell opportunities
- Continuously refine targeting and budget allocation
The ultimate outcome: smarter campaigns, better attribution, and higher customer lifetime value.
To know more Book a demo now
Additional reading: Why Meta Loves First Party Data