forked from facebookarchive/Facebook-Server-Side-API-Swagger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
server-side-api.yaml
313 lines (301 loc) · 13.8 KB
/
server-side-api.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
swagger: "2.0"
info:
description: "The Conversions API (for web) allows advertisers to send web events from their servers directly to Facebook. Conversions API events are linked to a pixel and are processed like browser pixel events. This means that these conversion events are used in measurement, reporting, and optimization in the same way as browser pixel events."
version: "1.0.0"
title: "Facebook Conversions API (for Web)"
termsOfService: "https://www.facebook.com/legal/technology_terms"
contact:
email: "[email protected]"
host: "graph.facebook.com"
basePath: "/v8.0"
tags:
- name: "Conversions API (for Web)"
description: "The Conversions API (for web) allows advertisers to send web events from their servers directly to Facebook. Conversions API events are linked to a pixel and are processed like browser pixel events. This means that these conversion events are used in measurement, reporting, and optimization in the same way as browser pixel events."
externalDocs:
description: "Find out more"
url: "https://developers.facebook.com/docs/marketing-api/conversions-api"
schemes:
- "https"
paths:
/{pixelId}/events:
post:
consumes:
- "application/json"
produces:
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Facebook Conversions API (for Web) post request"
required: true
schema:
$ref: '#/definitions/event_request'
- in: "path"
name: "pixelId"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: '#/definitions/response_success'
default:
description: "unsuccessful operation"
schema:
$ref: '#/definitions/response_error'
securityDefinitions:
facebook_api_key:
type: "apiKey"
name: "access_token"
in: "query"
security:
- facebook_api_key: []
definitions:
event_request:
type: "object"
required:
- data
- partner_agent
properties:
data:
description: "An array of Server Event objects."
type: array
items:
$ref: '#/definitions/event'
test_event_code:
description: "Code used to verify that your server events are received correctly by Facebook. Use this code to test your server events in the Test Events feature in Events Manager. See Test Events Tool (https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api#testEvents) for an example."
type: "string"
partner_agent:
description: "Partner agent string."
type: "string"
enum: ["swagger"]
default: "swagger"
event:
type: "object"
required:
- event_name
- event_time
- user_data
- action_source
properties:
event_name:
type: "string"
description: "A Facebook pixel Standard Event or Custom Event name. This field is used to deduplicate events sent by both Facebook Pixel and Conversions API. event_id is also used in deduplication. For the same customer action, event from the browser event match event_name from the server event. If we find a match between events sent within 48 hours of each other, we only consider the first one. If a server and browser event arrive at approximately the same time (within 5 minutes of each other), we favor the browser event."
event_time:
type: "integer"
format: "int64"
description: "A Unix timestamp in seconds indicating when the actual event occurred. The specified time may be earlier than the time you send the event to Facebook. This is to enable batch processing and server performance optimization. event_time can be up to 7 days before you send an event to Facebook. If any event_time in data is greater than 7 days in the past, we return an error for the entire request and process no events."
event_source_url:
type: "string"
description: "The browser URL where the event happened."
opt_out:
type: boolean
description: "A flag that indicates we should not use this event for ads delivery optimization. If set to true, we only use the event for attribution."
event_id:
type: "string"
description: "This ID can be any unique string chosen by the advertiser. event_id is used to deduplicate events sent by both Facebook Pixel and Conversions API. event_name is also used in deduplication. For deduplication, the eventID from a browser event must match the event_id in the corresponding server event."
action_source:
type: "string"
description: "This field allows you to specify where your conversions occurred. Knowing where your events took place helps ensure your ads go to the right people. See docs for the allowable values. https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/server-event#action-source"
user_data:
$ref: '#/definitions/user_data'
custom_data:
$ref: '#/definitions/custom_data'
data_processing_options:
type: "array"
items:
type: "string"
description: "Processing options you would like to enable for a specific event. For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options."
example: ['LDU']
data_processing_options_country:
type: "integer"
description: "The country that you want to associate to this data processing option. If you set a country, you must also set a state. For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options"
data_processing_options_state:
type: "integer"
description: "The state that you want to associate with this data processing option. For more details see: https://developers.facebook.com/docs/marketing-apis/data-processing-options."
custom_data:
type: "object"
description: "An object that includes additional business data about the event which can be used for ads delivery optimization. If our predefined object properties don't suit your needs, you can include your own, custom properties. Custom properties can be used with both standard and custom events, and can help you further define custom audiences."
properties:
value:
type: "number"
multipleOf: 0.01 # 2 decimal points
description: "A numeric value associated with this event. This could be a monetary value or a value in some other metric."
example: 142.54
currency:
type: "string"
description: "The currency for the value specified, if applicable. Currency must be a valid ISO 4217 (https://en.wikipedia.org/wiki/ISO_4217) three digit currency code."
example: "USD"
content_name:
type: "string"
description: "The name of the page or product associated with the event."
example: "lettuce"
content_category:
type: "string"
description: "The category of the content associated with the event."
example: "grocery"
content_ids:
type: "array"
items:
type: "string"
description: "The content IDs associated with the event, such as product SKUs for items in an AddToCart event: ['ABC123', 'XYZ789']. If content_type is a product, then your content IDs must be an array with a single string value. Otherwise, this array can contain any number of string values."
example: ['ABC123', 'XYZ789']
contents:
type: "array"
items:
$ref: '#/definitions/content'
description: "A list of Content objects that contain the product IDs associated with the event plus information about the products. id, quantity, and item_price are available fields."
example:
- id: "ABC123"
quantity: 2
item_price: 5.99
- id: "XYZ789"
quantity: 2
item_price: 9.99
content_type:
type: "string"
description: "It should be set to 'product' or 'product_group'. Use 'product', if the keys you send represent products. Sent keys could be content_ids or contents. Use product_group, if the keys you send in content_ids represent product groups. Product groups are used to distinguish products that are identical but have variations such as color, material, size or pattern."
order_id:
type: "string"
description: "The order ID for this transaction as a String."
example: 'order1234'
predicted_ltv:
type: "number"
description: "The predicted lifetime value of a conversion event, as a String."
example: 432.12
num_items:
type: "integer"
description: "Use only with InitiateCheckout events. The number of items that a user tries to buy during checkout."
example: '4'
search_string:
type: "string"
description: "Use only with Search events. A search query made by a user."
example: "lettuce"
status:
type: "string"
description: "Use only with CompleteRegistration events. The status of the registration event"
example: "registered"
content:
type: "object"
description: "An object that contain the product IDs associated with the event plus information about the products."
properties:
id:
type: "string"
description: "Product Id"
quantity:
type: "integer"
description: "number of product"
item_price:
type: "number"
format: "float"
description: "Item Price."
user_data:
type: "object"
description: "user_data is a set of identifiers Facebook can use for targeted attribution. You must provide at least one of the following user_data keys in your request"
properties:
em:
type: "string"
format: "SHA-256"
description: "A hashed email address in lower case using SHA-256 algorithm."
example: "[email protected]"
ph:
type: "string"
format: "SHA-256"
description: "A hashed phone number using SHA-256 algorithm. Include only digits with country code, area code, and number."
example: "16505551212"
ge:
type: "string"
format: "SHA-256"
description: "A hashed gender (f or m) using SHA-256 algorithm."
example: "f"
db:
type: "string"
format: "SHA-256"
description: "A hashed date of birth given as year, month, and day using SHA-256 algorithm"
example: "19971226 for December 26, 1997"
ln:
type: "string"
format: "SHA-256"
description: "A hashed last name in lowercase using SHA-256 algorithm."
example: "smith"
fn:
type: "string"
format: "SHA-256"
description: "A hashed first name in lowercase using SHA-256 algorithm."
example:
ct:
type: "string"
format: "SHA-256"
description: "A hashed city in lower-case without spaces or punctuation using SHA-256 algorithm."
example: "menlopark"
country:
type: "string"
format: "SHA256"
description: "A hashed two-letter country code in lowercase using SHA-256 algorithm."
example: "us"
st:
type: "string"
format: "SHA256"
description: "A hashed two-letter state code in lowercase using SHA-256 algorithm."
example: "ca"
zp:
type: "string"
format: "SHA256"
description: "A hashed zip code using SHA-256 algorithm. If you are in the United States, this is a five-digit zip code. For other locations, follow each country's standards."
example: "94035"
external_id:
type: "string"
format: "SHA256"
description: "Any unique ID from the advertiser, such as loyalty membership IDs, user IDs, and external cookie IDs. If External ID is being sent via other channels, it should be sent in the same format via Conversions API. Hashing external_id using SHA-256 algorithm is optional."
client_ip_address:
type: "string"
description: "The IP address of the browser corresponding to the event."
client_user_agent:
type: "string"
description: "The user agent for the browser corresponding to the event."
fbc:
type: "string"
description: "The Facebook click ID value stored in the _fbc browser cookie under your domain. See Managing fbc and fbp Parameters for how to get this value (https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc), or generate this value from a fbclid query parameter."
fbp:
type: "string"
description: "The Facebook browser ID value stored in the _fbp browser cookie under your domain. See Managing fbc and fbp Parameters for how to get this value (https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc)."
subscription_id:
type: "string"
description: "The subscription ID for the user in this transaction. This is similar to the order ID for an individual product."
example: "anid1234"
response_success:
type: "object"
properties:
events_received:
type: "integer"
messages:
type: "array"
items:
type: "string"
fbtrace_id:
type: "string"
response_error:
type: "object"
properties:
error:
type: "object"
properties:
code:
type: "string"
messages:
type: "string"
type:
type: "string"
fbtrace_id:
type: "string"
error_subcode:
type: "string"
is_transient:
type: "string"
error_user_title:
type: "string"
error_user_msg:
type: "string"
externalDocs:
description: "Find out more about Facebook Conversions API"
url: "https://developers.facebook.com/docs/marketing-api/conversions-api"