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
Copy file name to clipboardExpand all lines: src/connections/spec/common.md
+54-52Lines changed: 54 additions & 52 deletions
Original file line number
Diff line number
Diff line change
@@ -122,11 +122,13 @@ Beyond this common structure, each API call adds a few specialized top-level fie
122
122
Context is a dictionary of extra information that provides useful context about a datapoint, for example the user's `ip` address or `locale`. You should **only use** Context fields for their intended meaning.
123
123
124
124
<table>
125
+
<thead>
125
126
<tr>
126
-
<td>**Field**</td>
127
-
<td>**Type**</td>
128
-
<td>**Description**</td>
127
+
<th>Field</th>
128
+
<th>Type</th>
129
+
<th>Description</th>
129
130
</tr>
131
+
</thead>
130
132
<tr>
131
133
<td>`active`</td>
132
134
<td>Boolean</td>
@@ -140,7 +142,7 @@ Context is a dictionary of extra information that provides useful context about
140
142
<td>Object</td>
141
143
<td>dictionary of information about the current application, containing `name`, `version` and `build`.
142
144
<br><br>
143
-
This is collected automatically from our mobile libraries when possible.
145
+
This is collected automatically from the mobile libraries when possible.
144
146
</td>
145
147
</tr>
146
148
<tr>
@@ -189,7 +191,7 @@ Context is a dictionary of extra information that provides useful context about
189
191
<tr>
190
192
<td>`page`</td>
191
193
<td>Object</td>
192
-
<td>Dictionary of information about the current page in the browser, containing `path`, `referrer`, `search`, `title` and `url`. This is automatically collected by [Analytics.js](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#context--traits).
194
+
<td>Dictionary of information about the current page in the browser, containing `path`, `referrer`, `search`, `title` and `url`. This is automatically collected by [Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/#context--traits).
193
195
</td>
194
196
</tr>
195
197
<tr>
@@ -231,58 +233,58 @@ Context is a dictionary of extra information that provides useful context about
231
233
232
234
## Context Fields Automatically Collected
233
235
234
-
Below is a chart that shows you which context variables are populated automatically by our iOS, Android and analytics.js libraries.
236
+
Below is a chart that shows you which context variables are populated automatically by the iOS, Android and analytics.js libraries.
235
237
236
238
Other libraries only collect `context.library`, any other context variables must be sent manually.
237
239
238
240
| Context Field | Analytics.js | Analytics-ios | Analytics-android |
- IP Address is not collected by our libraries, but instead filled in by our servers when it receives a message for **client side events only**.
281
-
-Our Android library collects `screen.density` with [this method](/docs/connections/spec/common/#context-fields-automatically-collected).
264
+
| network.bluetooth |||✅|
265
+
| network.carrier ||✅|✅|
266
+
| network.cellular ||✅|✅|
267
+
| network.wifi ||✅|✅|
268
+
| os.name ||✅|✅|
269
+
| os.version ||✅|✅|
270
+
| page.path |✅|||
271
+
| page.referrer |✅|||
272
+
| page.search |✅|||
273
+
| page.title |✅|||
274
+
| page.url |✅|||
275
+
| screen.density |||✅|
276
+
| screen.height ||✅|✅|
277
+
| screen.width ||✅|✅|
278
+
| traits ||✅|✅|
279
+
| userAgent |✅|✅| ✅|
280
+
| timezone ||✅|✅|
281
+
282
+
- IP Address is not collected by Segment's libraries, but instead filled in by Segmen'ts servers when it receives a message for **client side events only**.
283
+
-The Android library collects `screen.density` with [this method](/docs/connections/spec/common/#context-fields-automatically-collected).
282
284
283
285
## Integrations
284
286
285
-
A dictionary of destination names that the message should be sent to. `'All'` is a special key that applies when no key for a specific destinatio n is found.
287
+
A dictionary of destination names that the message should be sent to. `'All'` is a special key that applies when no key for a specific destination n is found.
286
288
287
289
Integrations defaults to the following:
288
290
@@ -293,9 +295,9 @@ Integrations defaults to the following:
293
295
}
294
296
```
295
297
296
-
This is because [Salesforce](/docs/connections/destinations/catalog/salesforce/) has strict limits on API calls, and we don't want to run over your limits by accident.
298
+
This is because [Salesforce](/docs/connections/destinations/catalog/salesforce/) has strict limits on API calls.
297
299
298
-
Sending data to the rest of our destinations is opt-out so if you don't specify the destination as false in this object, it will be sent to rest of the destinations that can accept it.
300
+
Sending data to the rest of Segment's destinations is opt-out so if you don't specify the destination as false in this object, it will be sent to rest of the destinations that can accept it.
299
301
300
302
301
303
## Timestamps
@@ -378,16 +380,16 @@ The `originalTimestamp` tells you when call was invoked on the client device or
378
380
379
381
### sentAt
380
382
381
-
The `sentAt` timestamp specifies the clock time for the client's device when the network request was made to the Segment API. For libraries and systems that send batched requests, there can be a long gap between a datapoint's `timestamp` and `sentAt`. Combined with `receivedAt`, we can use`sentAt` to correct the original `timestamp` in situations where a user's device clock cannot be trusted (mobile phones and browsers). The `sentAt` and `receivedAt` timestamps are assumed to occur at the same time (maximum a few hundred milliseconds), and therefore the difference is the user's device clock skew, which can be applied back to correct the `timestamp`.
383
+
The `sentAt` timestamp specifies the clock time for the client's device when the network request was made to the Segment API. For libraries and systems that send batched requests, there can be a long gap between a datapoint's `timestamp` and `sentAt`. Combined with `receivedAt`, Segment uses`sentAt` to correct the original `timestamp` in situations where a user's device clock cannot be trusted (mobile phones and browsers). The `sentAt` and `receivedAt` timestamps are assumed to occur at the same time (maximum a few hundred milliseconds), and therefore the difference is the user's device clock skew, which can be applied back to correct the `timestamp`.
382
384
383
385
**Note:** The `sentAt` timestamp is not useful for any analysis since it's tainted by user's clock skew.
384
386
385
387
386
388
### receivedAt
387
389
388
-
The `receivedAt` timestamp is added to incoming messages as soon as they hit our API. It's used in combination with `sentAt` to correct clock skew, and also to aid with debugging libraries and systems that deliver events in batches.
390
+
The `receivedAt` timestamp is added to incoming messages as soon as they hit the API. It's used in combination with `sentAt` to correct clock skew, and also to aid with debugging libraries and systems that deliver events in batches.
389
391
390
-
The `receivedAt` timestamp is most important as the sort key in our Warehouses product. Use this for max query speed when retrieving data from your Warehouse!
392
+
The `receivedAt` timestamp is most important as the sort key in Segment's Warehouses product. Use this for max query speed when retrieving data from your Warehouse!
391
393
392
394
**Note:** Chronological order of events is not ensured with `receivedAt`.
Copy file name to clipboardExpand all lines: src/protocols/tracking-plan/create.md
+6-6Lines changed: 6 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -32,12 +32,12 @@ To create a new Tracking Plan:
32
32
### Tracking Plan Columns
33
33
The Tracking Plan editor is organized as a spreadsheet to help you add new events and properties, and edit the relevant fields for each. Like a spreadsheet, you can navigate across cells in a single event with your arrow keys and press enter to edit a cell.
34
34
35
-
| Column Name | Details |
36
-
| ------------ | --------- |
37
-
| Name | Specify the name of your event or property. |
38
-
| Description | Enter a description for your event or property. These descriptions are helpful for both engineers instrumenting Segment and consumers of the data. |
39
-
| Status | Specify whether a property is required or optional. You can't require a `.track()` call because Segment is unable to verify when a `.track()` call should be fired. |
40
-
| Data Type | Specify the data type of the property. Data type options include `any, array, object, boolean, integer, number, string, Date time`. Note: Date time is required to be in ISO-8601 format |
| Name | Specify the name of your event or property.|
38
+
| Description | Enter a description for your event or property. These descriptions are helpful for both engineers instrumenting Segment and consumers of the data.|
39
+
| Status | Specify whether a property is required or optional. You can't require a `.track()` call because Segment is unable to verify when a `.track()` call should be fired.|
40
+
| Data Type | Specify the data type of the property. Data type options include `any, array, object, boolean, integer, number, string, Date time`. Note: Date time is required to be in ISO-8601 format|
41
41
| Permitted Values | Enter simple regular expressions to validate property values. This works when a property data type is set to `string`. For example, you can add pipe delimited strings to the regex column to generate violations when a property value does not match fall, winter or spring. |
0 commit comments