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
<divclass="premonition warning"><divclass="fa fa-exclamation-circle"></div><divclass="content"><pclass="header">HTTP Tracking API limits</p><p>Segment's HTTP Tracking API accepts batch requests up to <strong>500kb</strong>. To avoid errors in event creation, ensure that individual event payload sizes remain below <strong>32kb</strong>.</p>
1
+
<divclass="premonition warning"><divclass="fa fa-exclamation-circle"></div><divclass="content"><pclass="header">HTTP Tracking API limits</p><p>Segment's HTTP Tracking API accepts batch requests up to <strong>500KB</strong>. To avoid errors in event creation, ensure that individual event payload sizes remain below <strong>32KB</strong>.</p>
Copy file name to clipboardExpand all lines: src/connections/sources/catalog/libraries/mobile/ios/ios-faqs.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,22 +5,22 @@ strat: ios
5
5
6
6
## How big is the Segment SDK?
7
7
8
-
The core Segment SDK is extremely lightweight. It weighs in at about 212kb.
8
+
The core Segment SDK is extremely lightweight. It weighs in at about 212KB.
9
9
10
10
11
11
## Can I install the SDK manually using a dynamic framework?
12
12
13
-
Segment **highly recommends** using Swift Package Manager or Cocoapods. We cannot guarantee support if you do not use a dependency manager.
13
+
Segment **highly recommends** using Swift Package Manager or Cocoapods. Segment can't guarantee support if you do not use a dependency manager.
14
14
15
-
However, if you cannot use Swift Package Manager or Cocoapods, you can manually install our dynamic framework allowing you to send data to Segment and on to enabled cloud-mode destinations. We do not support sending data to bundled, device-mode integrations outside of Cocoapods.
15
+
However, if you cannot use Swift Package Manager or Cocoapods, you can manually install Segment's dynamic framework allowing you to send data to Segment and on to enabled cloud-mode destinations. Segment doesn't support sending data to bundled, device-mode integrations outside of Cocoapods.
16
16
17
17
To install manually:
18
18
19
-
1. Download the [latest built SDK](https://github.com/segmentio/analytics-ios/releases/), and unzip the zip file
19
+
1. Download the [latest built SDK](https://github.com/segmentio/analytics-ios/releases/){:target="blank"}, and unzip the zip file
20
20
2. Drag the unzipped `Segment.framework` folder into your XCode project
21
21
3. In the **General Tab** for your project, search for `Embedded Binaries` and add the `Segment.framework`
Once you install the framework, import the header file and install as described in [Install the SDK](https://segment.com/docs/connections/sources/catalog/libraries/mobile/ios#install-the-sdk).
For services that send push notifications, you must first [create a Push SSL certificate](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html). Then configure your application delegate similarly to the example code below, replacing `YOUR_WRITE_KEY` with your own Segment source write key. Detailed examples of how to complete the process can be found in [Apple's documentation on the subject](https://developer.apple.com/documentation/usernotifications/handling_notifications_and_notification-related_actions).
61
+
For services that send push notifications, you must first [create a Push SSL certificate](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html){:target="blank"}. Then configure your application delegate similarly to the example code below, replacing `YOUR_WRITE_KEY` with your own Segment source write key. Detailed examples of how to complete the process can be found in [Apple's documentation on the subject](https://developer.apple.com/documentation/usernotifications/handling_notifications_and_notification-related_actions){:target="blank"}.
62
62
63
63
64
64
{% codeexample %}
@@ -71,7 +71,7 @@ func application(_ application: UIApplication, didFinishLaunchingWithOptions lau
71
71
configuration.launchOptions = launchOptions
72
72
Analytics.setup(with: configuration)
73
73
74
-
// See the Apple linked above for detailed setup information, as it will vary
74
+
// See the Apple linked above for detailed setup information, as it will vary
75
75
// based on which versions of iOS are supported and what language is being used.
76
76
...
77
77
@@ -90,7 +90,7 @@ func application(_ application: UIApplication, didFinishLaunchingWithOptions lau
Analytics-iOS supports iOS 11.0+. If you need support for older operating systems you can fork [the Segment iOS repo on GitHub](https://github.com/segmentio/analytics-ios/) and [build the framework](https://github.com/segmentio/analytics-ios/wiki/Building-the-framework) with support for your version of iOS.
164
+
Analytics-iOS supports iOS 11.0+. If you need support for older operating systems you can fork [the Segment iOS repo on GitHub](https://github.com/segmentio/analytics-ios/){:target="blank"} and [build the framework](https://github.com/segmentio/analytics-ios/wiki/Building-the-framework){:target="blank"} with support for your version of iOS.
165
165
166
166
167
167
## Is the Segment SDK compatible with Swift?
168
168
169
-
Yes, Swift's compatibility with Objective-C lets you create a source that contains files written in either language. To use the Segment Analytics-iOS SDK from a Swift source, [follow these instructions from Apple](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html).
169
+
Yes, Swift's compatibility with Objective-C lets you create a source that contains files written in either language. To use the Segment Analytics-iOS SDK from a Swift source, [follow these instructions from Apple](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html){:target="blank"}.
170
170
171
171
172
172
## Can I help develop a destination?
173
173
174
-
Yes, the Segment [Analytics-iOS SDK is open-source](https://github.com/segmentio/analytics-ios). If you'd like to contribute, fix a bug, or add a destination please [see the contributing guide](https://github.com/segmentio/analytics-ios/blob/master/CONTRIBUTING.md).
174
+
Yes, the Segment [Analytics-iOS SDK is open-source](https://github.com/segmentio/analytics-ios){:target="blank"}. If you'd like to contribute, fix a bug, or add a destination please [see the contributing guide](https://github.com/segmentio/analytics-ios/blob/master/CONTRIBUTING.md){:target="blank"}.
175
175
176
176
177
177
## How do I know when a destination is initialized?
@@ -249,4 +249,4 @@ Some destinations, especially mobile attribution tools (for example, [Kochava](h
249
249
250
250
## tvOS / macOS / Catalyst Support
251
251
252
-
As of [Version 4.1.0](https://github.com/segmentio/analytics-ios/releases/tag/4.1.0), Analytics-iOS now supports tvOS, macOS and Catalyst as well. You can follow the [quickstart documentation](/docs/connections/sources/catalog/libraries/mobile/ios/quickstart/) to set it up!
252
+
As of [Version 4.1.0](https://github.com/segmentio/analytics-ios/releases/tag/4.1.0){:target="blank"}, Analytics-iOS now supports tvOS, macOS, and Catalyst as well. You can follow the [quickstart documentation](/docs/connections/sources/catalog/libraries/mobile/ios/quickstart/) to set it up.
Copy file name to clipboardExpand all lines: src/connections/sources/catalog/libraries/mobile/react-native/react-faqs.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,13 @@ strat: react-native
7
7
8
8
### Can I help develop a destination?
9
9
10
-
Yep! Our SDK is [open-source](https://github.com/segmentio/analytics-react-native). If you'd like to contribute, fix a bug, or add a destination - here's [documentation on how to do so](https://github.com/segmentio/analytics-react-native/blob/master/CONTRIBUTING.md). to add a destination, make sure you contact our[partners team](https://github.com/segmentio/analytics-react-native/blob/master/CONTRIBUTING.md) first.
10
+
Yes, Segment's SDK is [open-source](https://github.com/segmentio/analytics-react-native){:target="blank"}. If you'd like to contribute, fix a bug, or add a destination - here's [documentation on how to do so](https://github.com/segmentio/analytics-react-native/blob/master/CONTRIBUTING.md){:target="blank"}. To add a destination, make sure you contact Segment's[partners team](https://github.com/segmentio/analytics-react-native/blob/master/CONTRIBUTING.md){:target="blank"} first.
11
11
12
12
13
13
14
14
### How big is the Segment SDK?
15
15
16
-
The core Segment SDK is extremely lightweight! On iOS it weighs in at about 212kb. On Android it contains just under 1k methods, the JAR weighs in at 123kb and the dex size is 113kb.
16
+
The core Segment SDK is extremely lightweight. On iOS it weighs in at about 212KB. On Android it contains just under 1k methods, the JAR weighs in at 123KB and the dex size is 113KB.
17
17
18
18
### Can I also use the native Analytics API?
19
19
@@ -41,4 +41,3 @@ These flags are used both to in code to [prevent data from being sent to specifi
41
41
### Why upgrade to React Native 2.0?
42
42
43
43
React Native 2.0 is a major version upgrade to the existing React Native library that includes several performance upgrades. The older version of the Analytics React Native library was built as a JavaScript wrapper for Segment's native analytics-android and analytics-ios libraries, which made feature development and bug fixes unsustainable, as they often required changes to the underlying libraries. The new Analytics React Native library executes less lines of code in a quicker manner with smaller algorithms. In addition, it no longer relies on analytics-ios or analytics-android. It has been rebuilt to be a standalone JavaScript library which drastically reduces the amount of dependencies required for React Native customers. Overall, it improves Analytics performance, provides a better developer experience, and uses less CPU, battery and memory.
Copy file name to clipboardExpand all lines: src/connections/sources/catalog/libraries/server/object-api/index.md
+26-59Lines changed: 26 additions & 59 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,11 +2,13 @@
2
2
title: Objects API
3
3
---
4
4
5
-
NOTE: The Objects API is in beta, and so features and names may change without notice as we continue to build.
5
+
> info ""
6
+
> The Objects API is in beta, and so features and names may change without notice as Segment continues to build.
6
7
7
-
The Segment Objects API allows you to send business objects relevant to your business right to Redshift and other Segment supported data warehouses.
8
+
Use the Segment Objects API to send business objects relevant to your business right to Redshift and other Segment supported data warehouses.
8
9
9
-
NOTE: We haven't yet added support for set to our core `analytics-<language>` libraries so you'll need to use our HTTP API directly or our independent Go(lang) client for now.
10
+
> warning ""
11
+
> Segment hasn't added support for the core `analytics-<language>` libraries so you'll need to use the Segment HTTP API directly or the independent Go(lang) client for now.
10
12
11
13
### Authentication
12
14
@@ -15,13 +17,13 @@ Authentication uses HTTP Basic Auth, which involves a 'username:password' that i
15
17
16
18
In practice that means taking a Segment source **Write Key**,`'abc123'`, as the username, adding a colon, and then the password field is left empty. After base64 encoding `'abc123:'` becomes `'YWJjMTIzOg=='`; and this is passed in the authorization header like so: `'Authorization: Basic YWJjMTIzOg=='`.
17
19
18
-
### Source Type
20
+
### Source type
19
21
20
-
set up an `HTTP API` source type in Segment. You will use this source write key for authenticating with the Objects API.
22
+
Set up an `HTTP API` source type in Segment. You will use this source write key for authenticating with the Objects API.
21
23
22
-
### Content-Type
24
+
### Content-type
23
25
24
-
In order to send data to our HTTP API, the content-type header must be set to `'application/json'`.
26
+
In order to send data to Segment's HTTP API, the content-type header must be set to `'application/json'`.
25
27
26
28
## Errors
27
29
@@ -31,13 +33,15 @@ The Objects API returns a 200 response in most cases, similar to the Tracking AP
31
33
32
34
It's highly recommended that you batch your objects where you can. This will allow you to make significantly fewer requests to Segment. To batch your requests, simply pass in more than one object into the objects array.
33
35
34
-
Note: the max batch size is 10 objects per request.
36
+
> info ""
37
+
> The max batch size is 10 objects per request.
35
38
36
-
## Synchronous Mode
39
+
## Synchronous mode
37
40
38
41
The Objects API is asynchronous by default. This means that if object updates are processed close together, they can be processed out of order. To change this default behavior, you can set the header `Synchronous: true` to ensure synchronous delivery of objects downstream.
39
42
40
-
Note: The average response time increases with the synchronous objects API header set, which can impact performance speed.
43
+
> info ""
44
+
> The average response time increases with the synchronous objects API header set, which can impact performance speed.
41
45
42
46
## Regional configuration
43
47
@@ -49,7 +53,7 @@ For Business plans with access to [Regional Segment](/docs/guides/regional-segme
49
53
50
54
### snake_case properties
51
55
52
-
It is recommended that you use snake case when naming any object properties.
56
+
Segment recommends that you use snake case when naming any object properties.
53
57
54
58
```json
55
59
{
@@ -61,7 +65,7 @@ It is recommended that you use snake case when naming any object properties.
61
65
}
62
66
```
63
67
64
-
### Plural Collection Names
68
+
### Plural collection names
65
69
66
70
You should use plural collection names wherever possible. The collection name should describe the group of one or many objects within the collection.
67
71
@@ -71,9 +75,9 @@ You should use plural collection names wherever possible. The collection name sh
71
75
"collection": "reviews"
72
76
```
73
77
74
-
## De-dupe & merge
78
+
## De-dupe and merge
75
79
76
-
Objects with the same object ID will get de-duped and properties will get merged. By sending in partial objects with the same object ID, we will merge the properties and you can query the latest data in your data warehouse.
80
+
Segment de-dupes objects with the same ID and merges properties. By sending in partial objects with the same object ID, Segment merges the properties and you can query the latest data in your data warehouse.
77
81
78
82
For example, if you make the following requests with the following payloads:
79
83
@@ -152,52 +156,15 @@ POST https://objects.segment.com/v1/set
152
156
153
157
This call sends a collection of "rooms". "rooms" becomes the table name in your data warehouse, and each individual object in the array becomes a row in that table.
154
158
155
-
<table>
156
-
<tr>
157
-
<td>`collection` - Required</td>
158
-
<td>String</td>
159
-
<td>
160
-
A string that represents the name of the collection. The collection name will become the table name in your data warehouse.
161
-
162
-
Collection must consist of lowercase letters and underscores and maximum of 100 characters. Can not begin or end with an underscore.
163
-
164
-
</td>
165
-
</tr>
166
-
<tr>
167
-
<td>`objects`</td>
168
-
<td>Array</td>
169
-
<td>
170
-
A required array of objects describing the objects and properties being set.
171
-
172
-
Must consist of at least one JSON object and a maximum of 10.
|`collection`*Required*| String | A string that represents the name of the collection. The collection name will become the table name in your data warehouse. Collection must consist of lowercase letters and underscores and maximum of 100 characters. Can not begin or end with an underscore. |
161
+
|`objects`| Array | A required array of objects describing the objects and properties being set. Must consist of at least one JSON object and a maximum of 10. |
177
162
178
163
Each object inside of the objects array must consist of the following parameters:
179
164
180
-
<table>
181
-
<tr>
182
-
<td>`id` - Required</td>
183
-
<td>String</td>
184
-
<td>
185
-
The unique ID representing the object in the third party system.
186
-
Maximum of 100 characters.
187
-
</td>
188
-
</tr>
189
-
<tr>
190
-
<td>`Properties` - Required</td>
191
-
<td>Object</td>
192
-
<td>
193
-
The object properties that represent the object. Example:
194
-
195
-
Each value could be a string (ISO dates are parsed and recognised as `isodate` type), an integer, or a float (JSON types).
196
-
197
-
Values cannot be lists or objects. Each value must be less 32kb in size.
|`id`*Required*| String | The unique ID representing the object in the third party system. Maximum of 100 characters. |
167
+
|`Properties`*Required*| Object | The object properties that represent the object. Example: Each value could be a string (ISO dates are parsed and recognized as `isodate` type), an integer, or a float (JSON types). Values cannot be lists or objects. Each value must be less than 32KB in size. |
201
168
202
169
## Objects-go library
203
170
@@ -228,7 +195,7 @@ Client.Set(*objects.Object{
228
195
Client.Close()
229
196
```
230
197
231
-
View the Objects-go library on GitHub [here](https://github.com/segmentio/objects-go).
198
+
View the Objects-go library on GitHub [here](https://github.com/segmentio/objects-go){:target="_blank"}.
232
199
233
200
Here is a `curl` example of how to get started:
234
201
@@ -247,7 +214,7 @@ No; you should continue use `analytics.identify` to identify your customers. We'
247
214
248
215
### Can you just pull data automatically from my database?
249
216
250
-
If you would like this feature, [contact us](https://segment.com/help/contact/) and let us know.
217
+
[Contact Segment](https://segment.com/help/contact/){:target="_blank"} if you would like this feature.
251
218
252
219
### How do you recommend we load object data into Segment?
0 commit comments