Stape
Search
Try for free

[Meta x Stape webinar] Report offline sales to Meta Ads: a step-by-step configuration workshop

Updated
May 6, 2025
Published
Apr 10, 2025

Your Meta Ads may drive leads — but are they driving real sales?

Especially when those sales happen offline — over the phone, in the CRM, or at the point of sale.

If Meta can’t track those events, it can’t optimize campaigns for revenue. That means missed conversions, underreported ROAS, and wasted ad spend.

The solution? Send your offline events — like qualified leads, purchases, or won deals — back to Meta using Conversions API.

Join Meta & Stape webinar to learn how to track offline conversions and close the loop between your ads and actual sales.

When: April 30th, 2025, at 5:00 PM CET.

Webinar agenda:

00:00 - Intro

02:37 - How offline 1st-party data can boost your Meta Ads performance

05:13 - Track offline conversions in Meta with Conversions API for CRM

15:56 - How businesses increased campaigns performance by syncing CRM pipeline stages

18:45 - Which setup to choose: Gateway vs server-side GTM

20:15 - How Stape speeds up the process and minimizes errors

23:00 - Live demo: send offline conversion events to Meta using Stape apps

36:11 - Live demo: send offline conversion events to Meta using server-side GTM

Speakers:

  • Heriberto Salcedo, Product Marketing Manager @ Meta
  • Dan Murov, Data Tracking Lead @ Stape

✨ By the end of this webinar, you will learn:

  • How offline 1st-party data can boost your Meta Ads performance.
  • How to track offline conversions with Meta CAPI.
  • Which setup to choose: Meta CAPI Gateway vs server-side GTM vs Meta Signals.
  • Live demo: step-by-step implementation workshop on how to send offline conversions. events to Meta using server-side GTM.
  • How businesses increased campaigns performance by syncing CRM pipeline stages.
  • How Stape speeds up the process and minimizes errors.
  • Q&A session – get expert answers to your tracking and implementation questions.

✨ Who should watch:

  • Offline businesses advertising on Meta — if your sales happen over the phone, in-store, or through a CRM, and you want Meta to see what’s working.
  • Agencies managing CRM pipelines — and looking to prove ROI by syncing client sales back to Meta Ads.
  • Business owners and Marketers exploring Meta CAPI use cases — especially for tracking offline conversions beyond the standard pixel or lead form events.

Reserve your spot today! Turn Meta leads into revenue!

Common questions and answers

1. I'm sending Facebook events from both the browser (via GTM) and server-side (via Stape + GTM), using the same event ID for both. The event ID shows up, but Facebook is not deduplicating the events in Events Manager. What could be causing this?

If you're sending events from both the browser and server-side using the same event ID, Facebook should normally deduplicate them - as long as the event IDs match exactly.

The first thing to check is whether the IDs are indeed identical. You’ve already done that in preview mode, so that’s great. Since the deduplication still isn’t happening, here are a few things to consider:

  • Check for other sources: even if you’re confident that you’re only using GTM (browser and server-side), it’s worth double-checking that no third-party plugin or integration sends duplicate events. In a healthy setup, you typically see slightly more server-side events than browser ones. If the difference is significant, that could be a clue that another source is involved.
  • Check how you confirmed deduplication isn't happening: if both browser and server events appear separately in Events Manager without the “deduplicated” label, that’s usually a sign that deduplication isn't working. But sometimes Facebook doesn’t consistently show that label, so it’s not always definitive.
  • Try testing with a new pixel: if you’re confident everything is set up correctly and still don't see deduplication, try creating a new Facebook Pixel and sending events to both the existing and new pixel in parallel. It’s rare, but sometimes there are bugs or issues tied to a specific pixel that affect deduplication.

2. What are the key differences between Shopify’s built-in Conversions API integration and a setup using Stape and CAPI Gateway?

The key difference lies in control and flexibility.

With Stape or CAPI Gateway, you’re in full control of how tracking is configured. You can decide which events to send, how and when they fire, and what data is included in the payload. It’s entirely customizable to fit your tracking strategy.

On the other hand, Shopify’s native CAPI integration is a standardized, one-size-fits-all solution applied across all Shopify stores. It doesn’t allow you to customize event triggers or modify the data being sent. So while it’s easy to use, you lose visibility and control over your tracking behavior.

If you want transparency and flexibility, especially for advanced setups or marketing optimization, solutions like Stape or Gateway offer a much more powerful alternative.

3. Is sending CRM data different from using CAPI events?

CRM data is actually sent via the Conversions API (CAPI), so technically there’s no difference. Whether the data comes from a CRM, website, or another backend system, it’s all transmitted through CAPI - just different sources feeding into the same pipeline.

4. How does a longer sales cycle - say, 60 to 90 days after first contact - affect tracking and attribution?

In cases where the sale happens well after the initial touchpoint, it’s true that the conversion may not be directly attributed to the original campaign, especially if it falls outside the attribution window set in your ad platform (e.g., 7 or 28 days).

However, this doesn’t mean the value is lost. First-party data still plays a critical role. By sending consistent, high-quality data (like CRM events or backend conversions) via the Conversions API, you're feeding your pixel with better signals. This helps platforms like Meta and Google optimize smarter, improve audience targeting, and ultimately raise the quality of future campaign performance, even if the original conversion isn’t credited to a specific ad.

For physical store conversion you can also enable ‘extended attribution upload’ setting in your Events Manager, enabling physical store conversions to be attributed within a 90 day window. Make sure to report these with action source = physical store.

Yes, you can technically use events like “add to cart” from anonymous users as optimization goals. However, it's generally more efficient to optimize around events that include user identifiers, as this allows for stronger attribution and better signal quality for the ad platforms.

For anonymous users, matching relies on parameters like fbclid (Facebook Click ID), gclid (Google Click ID), or browser/session identifiers if you're working within a short attribution window. These are less persistent than user-based IDs but still useful for near-term optimization.

If no user identifiers are available, click IDs become your best option for joining events back to campaigns. To improve performance further, you can also consider implementing first-party identifiers like session IDs or hashed IP + user-agent combinations as a fallback, keeping privacy compliance in mind.

So while it’s possible to optimize on anonymous actions, it’s always more reliable when you can enrich those events with even minimal user-level data.

For events that happen in the user’s browser, it's highly recommended to use a hybrid setup - send them both via the client-side pixel and server-side (CAPI), and enable deduplication. This ensures better tracking accuracy, improves attribution, and helps ad platforms optimize more effectively.

For offline events (like CRM-based conversions or actions that can’t be tracked in the browser), you should send them only via server - as there’s no browser-side equivalent.

So ideally:

- Browser events → Send via both web + server, with deduplication

- Offline events → Send via server only

This gives you full coverage and maximizes signal quality for your campaigns.

7. Is SHA256 hashing done automatically, or does it need to be handled separately in the CRM before sending?

SHA256 hashing is done automatically, so you don’t need to hash the data manually in your CRM before sending. Just pass the raw values (like email or phone), and the system will handle hashing as required by Meta or other platforms.

8. If I send user data like email and phone number, is it okay if I don’t send the click ID?

Yes, that’s totally fine. You don’t need to send the click ID if you're already passing strong user identifiers like email, phone number, or other personally identifiable information (PII). Platforms like Meta use these hashed identifiers for matching and attribution.

However, including click IDs (like fbclid or gclid) is still recommended when available, as they can improve event matching accuracy, especially in cases where user data is missing, incomplete, or anonymized. So while not required, it’s a helpful extra signal if you can include it.

9. What’s the best way to send offline conversion data back to Meta? Is using Meta’s Conversions API via Stape the best option?

You can use any method that’s convenient and fits your workflow, whether it’s via Stape, direct API integration, or another tool. From Meta’s perspective, what matters most is the quality and completeness of the data you send, not the specific method or technology you use.

Using CAPI setup with Stape can simplify the process and reduce development effort, but ultimately, as long as the required parameters are included and accurate, the results will be the same regardless of how the data is delivered.

10. I just started using the Conversions API via Meta CAPI Gateway by Stape. Should I start sending offline data to Meta right away, or wait until I collect more data?

You can start sending offline data right away; there’s no need to wait. The sooner Meta receives offline events (like purchases, qualified leads, or CRM updates), the sooner it can use that data to improve attribution, audience matching, and campaign optimization.

Even if the volume is low at first, it helps Meta’s systems begin learning and connecting signals. Just make sure the data you're sending includes the required parameters (e.g. event name, timestamp, identifiers) for proper matching.

So yes, go ahead and start now. It’ll only strengthen your campaign performance over time.

11. If I set this up and send lead stages in my events, will I be able to create a custom conversion to optimize for?

Yes, you can create a custom conversion based on lead stages included in your events, as long as the stage is passed as a parameter (e.g., lead_stage or similar) in your event payload.

To do this:

1. Go to your Meta Events Manager.

2. Create a custom conversion and use rules based on event name and the parameter value (e.g., lead_stage equals qualified).

3. Once the custom conversion is created and starts receiving data, you can use it as an optimization goal in your ad campaigns.

Just make sure the parameter is consistently named and sent with each relevant event. This gives Meta a clear signal to optimize toward that specific stage.

12. You mentioned a minimum of 200 leads per month for Meta optimization. Would it still work if I only have around 100 leads?

Yes, it can still work, but with some limitations. Meta recommends a minimum of 50 events per week (around 200 per month) to effectively optimize toward a conversion event. With only 100 leads per month, the system might struggle to exit the learning phase, and performance could be less stable or slower to optimize.

That said, if those 100 leads are high-quality and consistently tracked, you can still see positive results; it just may take longer for Meta's algorithm to learn and optimize fully.

If volume is low, consider:

- Optimizing for an earlier funnel event (like “Lead” instead of “Qualified Lead”).

- Aggregating data from multiple sources if possible.

- Using value-based lookalikes built on CRM data to improve targeting.

In short, yes, it can work, but 200+ events/month gives Meta the best chance to optimize effectively.

Subscribe for updates:

we don’t spam!

Comments

Try Stape for all things server-sideright now!