Our scenario: customer initiates conversation with our business page within Facebook Messenger and then he possibly makes a purchase. We are interested to send this event to Facebook Conversions API from our backend. According to Facebook documentation and recommendations high-quality user_data parameters to help Facebook understand what was the actual user are:

  • email address (em)
  • IP address (client_ip_address)
  • name (fn and ln)
  • phone number (ph)

Sounds nice, we should just pass email and that's it, but the problem is following: in incoming webhook from Facebook (when message from user arrives) we can fetch only user's PSID (see this doc section), using this PSID we can query some more user data (see this doc section). By default we can fetch only following fields:

  • first_name
  • last_name
  • middle_name
  • name
  • name_format
  • picture
  • short_name

Yes, we can pass first_name and last_name to Conversions API, but there are a lot of namesakes on the Earth, so this data is totally not unique and Facebook will hardly understand the actual user, who we want to mention in event. To fetch user's email or other data we have to ask him for a permission, but we don't have an app for that permission, we use just a Facebook Messenger, so this is not a case (correct me, please, if I'm wrong).

What is the best way to fill user_data for such a scenario? As for me, it looks strange that they can not accept user's PSID.

We even tried to play around with external_id (passed PSID as the value of this field), but Facebook has no chance to guess the actual user.

0

There are 0 answers