Skip to main content
Question

How custom events works in Meta integrations

  • October 7, 2026
  • 5 replies
  • 33 views

Forum|alt.badge.img

Hi,

I’ve set up an integration with Meta Ads a few days ago using the Conversions API.

I can see a few events coming from “Server” in Events Manager, but only for the events shown in the screenshot. I don’t see any fb_mobile_purchase events. Is that expected?

I’ve already had 10+ purchases with this event, and I can see that the event was sent to Meta in the customer profile. How does this work exactly?

Also, for the events that do appear in Events Manager, I see significantly fewer events in Meta than were actually sent. Is that normal? Is there anything I can do to improve event matching/delivery and provide Meta with more data?

Thanks in advance!
 

 

5 replies

Forum|alt.badge.img+5
  • Active Helper
  • October 7, 2026

Are these iOS, Android or web purchases? Check one missing event’s Request and Response in RevenueCat Customer History, including its event name and destination dataset. Could you attach the screenshot and a redacted example with tokens and customer identifiers removed?


Forum|alt.badge.img

Ooh, sorry, it’s actually both: Android and Ios
I had event fb_mobile_purchase on both those platforms 

But mostly I asking about Ios as it’s mine main platform


Here event which sent to meta
I got response 200 but still don’t see it in Events Manager 

{
"access_token": "***",
"data": [
{
"action_source": "app",
"app_data": {
"advertiser_tracking_enabled": 0,
"application_tracking_enabled": 0,
"extinfo": [
"i2",
"$APPIDHERE",
"",
"1.7.0",
"26.7.1",
"",
"en-US,en;q=0.9",
"",
"",
0,
0,
"",
0,
0,
0,
""
],
"vendor_id": "$VENDORIDHERE"
},
"custom_data": {
"content_ids": [
"rc_lifetime_$APPNAME_new"
],
"content_type": "product",
"contents": [
{
"id": "rc_lifetime_r$APPNAME_new",
"quantity": 1
}
],
"currency": "USD",
"order_id": "$ORDERID",
"value": 39.99
},
"event_id": "62ccd4d1dab693d75cb1d0987750f42128c8d457",
"event_name": "fb_mobile_purchase",
"event_time": 1791324371,
"user_data": {
"anon_id": "$ANONID",
"client_ip_address": "$IP",
"client_user_agent": "$APPNAME/123 CFNetwork/3860.700.2 Darwin/25.6.0",
"external_id": "$EXTERNALID"
}
}
],
"partner_agent": "revenuecat"
}

 


Forum|alt.badge.img+5
  • Active Helper
  • October 7, 2026

The event name looks right for a lifetime purchase. Accepted events can take up to 24 hours to appear. Check that Events Manager is showing the same production or sandbox dataset configured in RevenueCat. If it’s still missing, the full Response body and fbtrace_id would help Meta support trace it; HTTP 200 alone doesn’t explain the missing event.

 

https://www.revenuecat.com/docs/integrations/attribution/meta-ads#5-view-events-in-meta


Forum|alt.badge.img

Thanks for the answer! I didn't get it at first, but I think I understand now: in Events Manager, fb_mobile_purchase is shown as "Purchase", not by its raw name. I do see Purchase events there, so it looks like it works

But I still have one more question about attribution. Why does Meta show only some of the events, not all of them? RevenueCat shows that every event was sent and got a 200 response, but Meta shows much fewer


dmatthews-rc
RevenueCat Staff
Forum|alt.badge.img+1
  • RevenueCat Staff
  • October 9, 2026

Glad you found the Purchase / fb_mobile_purchase mapping.

On the volume gap: a RevenueCat 200 only means Meta accepted the payload. Meta still decides how events are matched, attributed, and shown in Events Manager vs Ads Manager, so it’s common to see fewer events matched in Meta than RevenueCat successfully delivered.

Your sample request also had advertiser_tracking_enabled / application_tracking_enabled set to 0 (no ATT authorization). Those events can still be accepted when “Send events when ATT consent is not authorized” is enabled, but Meta often has less to work with for matching and reporting.

To improve what Meta can use:

  • Call collectDeviceIdentifiers() after configure, and again if the user grants ATT (so $idfa can update).
  • Set $fbAnonId in RevenueCat from the Meta SDK.
  • When privacy rules allow, set $email and/or $phoneNumber before purchase; these often help Event Match Quality when advertising IDs aren’t available.
  • In Meta, check Event Match Quality and (for iOS app promotion) AEM / eligibility diagnostics.

As ​@Crudyg123 mentioned, Meta support can use fbtrace_id to follow a specific event and provide their own guidance on if or how it was matched. Ultimately with attribution providers, the matching they do on their servers is largely opaque to us, so our visibility ends at “they received it.”