Click Add and select Connect an app ID. Enter the app ID you previously copied and click Add app.
Next, you need to grant the app system user access. This lets your app send data to Facebook via the API. To create it:
In Business Settings, open the System Users tab under Users and click Add.
Enter a System user name and select Admin as the system user role. Click Create system user.
From the newly created user, click Generate New Token.
Select the app you previously connected and set the token expiration. We strongly recommend indefinite access so you don't need to regenerate the token every 60 days. For Available permissions, select ads_management. Click Generate token.
Copy and store the access token in a secure location as it won't be stored by Facebook.
Go to the Destinations overview page and click the Add destination button. Select Facebook Offline Conversions and click Continue. You can then authenticate Hightouch to Facebook Offline Conversions by entering the Access Token you previously generated into Hightouch.
Once you've set up your Facebook Offline Conversions destination and have a model to pull data from, you can set up your sync configuration to begin syncing data. Go to the Syncs overview page and click the Add sync button to begin. Then, select the relevant model and the Facebook Offline Conversions destination you want to sync to.
To ensure syncs send each event, your event model must use a truly unique primary key. See the events syncs documentation for more information.
Enter an upload tag, for example, "monthly_uploads" to identify the events. Optionally, you can also enter a namespace identifier. The namespace identifier is the scope used to resolve extern_id or tpid. It can be another data set or data partner ID.
You can optionally select a column that contains timestamps of when events occurred. If this field is empty, Hightouch uses the time the event arrives at the server. Hightouch syncs the timestamp as the event_time parameter the Conversions API requires.
If you select a column, it should be in ISO 8601 format. Hightouch automatically converts the data to the format Facebook expects.
Field mapping is where you can select which event parameters you want to send to the Offline Conversions API. The API expects the following parameters:
event_name: Type of event. For example, ViewContent, Search, AddToCart, AddToWishlist, InitiateCheckout, etc.
currency: Three-letter ISO currency code for this conversion event. Required for Purchase events. For example, USD
value: Value of conversion event. Required for Purchase events. For example, 16.00.
match_keys: a set of identifiers to match people for attribution. Examples include email, phone, db, etc. Note that these must be hashed.
The Facebook Offline API accepts strings and arrays of strings for match_keys. For example, you can use values like "jane@example.com" or ["jane@example.com", "john@example.com"] for match_keys.email. The API rejects comma-separated strings, for example, "jane@example.com, john@example.com". Ensure the mapped field is in the correct format.
If you receive this error for an event that isn't as old as the error message suggests, it may be because of an incorrect format for the event_timestamp field.
Make sure that timestamps are in ISO 8601 format, as described in the event timestamp section above.
Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.