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
+
> Starting February 15th Facebook will be enforcing new requirements for server event parameters. Events sent to the Conversions API after February 15th that do not meet the requirements will be dropped by Facebook. 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
@@ -42,9 +45,9 @@ This page is about the **Facebook Conversions**. For documentation on other Face
42
45
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.
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](/docs/connections/destinations/catalog/facebook-pixel-server-side/#send-the-same-events-from-both-the-browser-and-the-server).
49
+
2.[Send different events; some from the browser others from the server](/docs/connections/destinations/catalog/facebook-pixel-server-side/#send-different-events-some-from-the-browser-others-from-the-server).
50
+
3.[Only send events from the server](/docs/connections/destinations/catalog/facebook-pixel-server-side/#only-send-events-from-the-server).
48
51
49
52
### Send the same events from both the browser and the server
50
53
@@ -86,11 +89,75 @@ 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
+
If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/) does.
90
93
91
-
```javascript
92
-
analytics.track('Products Searched', {
93
-
query:'blue roses'
94
+
## Server Event Parameter Requirements
95
+
96
+
Starting February 15th 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
+
|`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 our web library. |
102
+
|`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 our web library. |
103
+
104
+
105
+
###Action Source
106
+
107
+
`action_source` will automatically be set to "website" as a default value. If a mobile library is used then `action_source` will default to “app”.
108
+
109
+
`action_source` can also be set manually by passing it in as a property of a Track event. Either snake case or camel case can be used to include `action_source` as a property in Track events.
|`website`| Conversion was made on your website. |
115
+
|`app`| Conversion was made using your app. |
116
+
|`phone_call`| Conversion was made over the phone. |
117
+
|`chat`| Conversion was made via a messaging app, SMS, or online messaging feature. |
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
+
|`other`| Conversion happened in a way that is not listed. |
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. It must be set manually if using a server library. It is set automatically if using our web library.
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. It must be set manually if using a server library. It is set automatically if using our web library.
130
+
131
+
###Implementating Server Event Parameter Requirements
132
+
133
+
If `action_source` = 'website' then the `context.userAgent` and the `context.page.url` fields are required. Segment server-side libraries do not automatically collect the `context.userAgent` or the `context.page.url`. This data will need to be manually grabbed from the client and passed to the server.
134
+
135
+
Example of a [`Product Added`](/docs/connections/spec/ecommerce/v2/#product-added) event using Node.js
136
+
```javascript
137
+
analytics.track({
138
+
context: {
139
+
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",
0 commit comments