You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Facebook Conversions API](https://developers.facebook.com/docs/marketing-api/conversions-api) allows advertisers to send events from their servers directly to Facebook. Server-Side events are linked to a pixel and are processed like browser pixel events. This means that Server-Side events are used in measurement, reporting, and optimization in the same way as browser pixel events.
10
10
11
+
> warning "Server Event Parameter Requirements"
12
+
> Beginning February 15th, 2021, Facebook will enforce new requirements for server event parameters. After February 15th, 2021, Facebook will drop events sent to the Conversions API that do not meet the new requirements. For details on how implement these requirements see [Server Event Parameter Requirements](/docs/connections/destinations/catalog/facebook-pixel-server-side/#server-event-parameter-requirements)
13
+
11
14
> info "Destination name change"
12
15
> Facebook Conversions API was renamed from Facebook Pixel Server-Side.
13
16
@@ -39,12 +42,12 @@ This page is about the **Facebook Conversions**. For documentation on other Face
39
42
40
43
## Use Cases
41
44
42
-
Facebook Conversions API satisfies multiple use cases. It can be used a complement to [Facebook Pixel](/docs/connections/destinations/catalog/facebook-pixel/), or it can be used as a stand-alone alternative.
45
+
Facebook Conversions API satisfies multiple use cases. You can use it as a compliment to [Facebook Pixel](/docs/connections/destinations/catalog/facebook-pixel/), or as a stand-alone alternative.
43
46
44
47
Implementation Options:
45
-
1.[Send the same events from both the browser and the server](/docs/connections/destinations/catalog/facebook-conversions-api/#send-the-same-events-from-both-the-browser-and-the-server).
46
-
2.[Send different events; some from the browser others from the server](/docs/connections/destinations/catalog/facebook-conversions-api/#send-different-events-some-from-the-browser-others-from-the-server).
47
-
3.[Only send events from the server](/docs/connections/destinations/catalog/facebook-conversions-api/#only-send-events-from-the-server).
48
+
1.[Send the same events from both the browser and the server](#send-the-same-events-from-both-the-browser-and-the-server).
49
+
2.[Send different events; some from the browser others from the server](#send-different-events-some-from-the-browser-others-from-the-server).
50
+
3.[Only send events from the server](#only-send-events-from-the-server).
48
51
49
52
### Send the same events from both the browser and the server
50
53
@@ -54,7 +57,7 @@ This approach provides a redundancy that ensures maximum signal reliability. Eve
54
57
#### Match rate considerations
55
58
For this option to work best, the same `external_id` needs to be passed from the browser and from the server. To easily achieve this go to your Segment destination settings for Facebook Pixel and toggle on the setting called **Use UserId or Anonymous Id as External Id**. The Facebook Conversions API destination uses the userId (or anonymousId if not present) to set the External Id by default. Therefore enabling this on Facebook Pixel will allow Facebook to match the users. There are some additional steps you can take to increase the match rate for server-side events. [User traits can be passed into the context object of the track events](/docs/connections/destinations/catalog/facebook-conversions-api/#default-mappings-to-facebook-properties). Other fields such as `userAgent`, `ip` address, and [Facebook's parameters (fbp, fbc)](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc) can all be collected from the browser and passed to the server and then manually entered into the events.
56
59
57
-
#### Dedupliation considerations
60
+
#### Deduplication considerations
58
61
Events will only be deduplicated if the same event is sent first from the browser and then from the server. When this sequence occurs the server event will be discarded. If you send two consecutive browser events with the same information, neither will be discarded. If you send two consecutive server events with the same information, neither will be discarded.
59
62
60
63
### Send different events; some from the browser others from the server
@@ -86,19 +89,84 @@ If you choose this option, you do not need to worry about event deduplication.
86
89
87
90
Currently, Facebook Conversions only supports Track calls.
88
91
89
-
If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/)does. An example call would look like:
92
+
For more information about Track calls, see the [Track method](/docs/connections/spec/track/)in the Segment Spec.
90
93
91
-
```javascript
92
-
analytics.track('Products Searched', {
93
-
query:'blue roses'
94
+
## Server Event Parameter Requirements
95
+
96
+
Beginning February 15th, 2021, Facebook will require the `action_source` server event parameter for all events sent to the Conversions API. This parameter is used to specify where the conversions occurred. If `action_source` is set to 'website' then the `client_user_agent` and the `event_source_url` parameters are also required. Events sent to the Conversions API after February 15th that do not meet the requirements will be dropped by Facebook.
97
+
98
+
| Server Event Parameter | Requirement | Implementation |
|`action_source`| Always required | It is set automatically but it can be set manually. |
101
+
|`client_user_agent`| Only required if `action_source` = “website" | It must be set manually if using a server library. It is set automatically if using the Segment web library. |
102
+
|`event_source_url`| Only required if `action_source` = “website" | It must be set manually if using a server library. It is set automatically if using the Segment web library. |
103
+
104
+
105
+
### Action Source
106
+
107
+
`action_source` is set to "website" as a default value. If a mobile library is used then `action_source` defaults to “app”.
108
+
109
+
You can set `action_source` manually by passing it as a property of a Track event. You can use either snake case or camel case to include `action_source` as a property in Track events.
|`chat`| Conversion was made via a messaging app, SMS, or online messaging feature. |
115
+
|`email`| Conversion happened over email. |
116
+
|`other`| Conversion happened in a way that is not listed. |
117
+
|`phone_call`| Conversion was made over the phone. |
118
+
|`physical_store`| Conversion was made in person at your physical store. |
119
+
|`system_generated`| Conversion happened automatically, for example, a subscription renewal that’s set on auto-pay each month. |
120
+
|`website`| Conversion was made on your website. |
121
+
122
+
123
+
### Client User Agent
124
+
125
+
`client_user_agent` is set by including `context.userAgent` in the track event. The value used should be the user agent of the browser where the conversion event occurred. If you're using a server library, set `client_user_agent` manually. If you're using the Segment web library, `client_user_agent` is set automatically.
126
+
127
+
### Event Source URL
128
+
129
+
`event_source_url` is set by including `context.page.url` in the track event. The value used should be the browser URL where the conversion event occurred. If you're using a server library, set `event_source_url` manually. If you're using the Segment web library, `event_source_url` is set automatically.
130
+
131
+
### Implementing Server Event Parameter Requirements
132
+
133
+
If `action_source` is set to 'website', the `context.userAgent` and the `context.page.url` fields are required. Segment server-side libraries do not collect `context.userAgent` or `context.page.url` by default. This data must be retrieved manually from the client and passed to the server.
134
+
135
+
The snippet below provides an example of a [`Product Added`](/docs/connections/spec/ecommerce/v2/#product-added) event using Node.js. Notice in this example that the `action_source` parameter has not been set manually by passing this field into the event. The `action_source` parameter will default to "website". Since `action_source` = "website" the `client_user_agent` and the `event_source_url` parameters are required. Therefore the `context.userAgent` and the `context.page.url` fields have been manually passed into the event.
136
+
137
+
```javascript
138
+
analytics.track({
139
+
context: {
140
+
userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36",
The following mappings are automatic and require no additional set up. Any of the Segment Ecommerce Events in the table below will be sent as the corresponding Facebook Standard Event. You learn more about these in the Facebook pixel [standard events documentation](https://developers.facebook.com/docs/facebook-pixel/implementation/conversion-tracking#standard-events).
100
168
101
-
| Segment Ecommerce Event | Facebook Standard Event |
169
+
| Segment E-commerce Event | Facebook Standard Event |
0 commit comments