From a3ea094fa7f7eff4af58e7fbf69267dbe58cb12b Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 29 May 2024 15:02:12 -0400
Subject: [PATCH 1/5] Create server-side-troubleshooting.md
---
src/_includes/content/server-side-troubleshooting.md | 11 +++++++++++
1 file changed, 11 insertions(+)
create mode 100644 src/_includes/content/server-side-troubleshooting.md
diff --git a/src/_includes/content/server-side-troubleshooting.md b/src/_includes/content/server-side-troubleshooting.md
new file mode 100644
index 0000000000..1e4c5fc3c8
--- /dev/null
+++ b/src/_includes/content/server-side-troubleshooting.md
@@ -0,0 +1,11 @@
+Several key factors can prevent events from being successfully ingested into the Segment platform through server-side libraries as sources. Understanding these reasons is crucial for troubleshooting and ensuring data integrity. Here are some suggestions to address these challenges:
+
+If you are experiencing loss of events ingested from your {% page.title %},
+
+- **Payload is too large**: If you attempt to send events larger 32KB per normal API request or batches of events larger than 500KB per request, Segment’s tracking API responds with 400 Bad Request. Try sending smaller events (or smaller batches) to mitigate this error.
+
+- **Identifier is not present**: Segment's tracking API requires that each payload has a `userId` and/or `anonymousId`. If you send events without either the `userId` or `anonymousId`, Segment's tracking API responds with ERROR CODE ERROR NAME.
+
+- **Track event is missing name**: All Track events to Segment must have an event field.
+
+- **Event dropped during deduplication**: Segment automatically adds a `messageId` field to all payloads and uses this value to deduplicate events. If you're manually setting a `messageId` value, ensure that each event has a unique value to avoid data loss.
\ No newline at end of file
From bb7f37bdcd39f03380a8357d4bea27f999e3c681 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Wed, 29 May 2024 19:14:09 -0400
Subject: [PATCH 2/5] update include, replace old include
---
.../content/server-side-troubleshooting.md | 21 +++++++++++++------
.../catalog/libraries/server/clojure/index.md | 6 ++----
.../catalog/libraries/server/go/index.md | 2 +-
.../catalog/libraries/server/go/v2/index.md | 2 +-
.../libraries/server/http-api/index.md | 2 +-
.../catalog/libraries/server/java/index.md | 2 +-
.../catalog/libraries/server/net/index.md | 2 +-
.../catalog/libraries/server/node/classic.md | 2 +-
.../catalog/libraries/server/node/index.md | 2 +-
.../catalog/libraries/server/php/index.md | 2 +-
.../catalog/libraries/server/python/index.md | 2 +-
.../catalog/libraries/server/ruby/index.md | 2 +-
.../catalog/libraries/server/rust/index.md | 2 +-
13 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/src/_includes/content/server-side-troubleshooting.md b/src/_includes/content/server-side-troubleshooting.md
index 1e4c5fc3c8..3a74fc3f6c 100644
--- a/src/_includes/content/server-side-troubleshooting.md
+++ b/src/_includes/content/server-side-troubleshooting.md
@@ -1,11 +1,20 @@
-Several key factors can prevent events from being successfully ingested into the Segment platform through server-side libraries as sources. Understanding these reasons is crucial for troubleshooting and ensuring data integrity. Here are some suggestions to address these challenges:
+{% assign currentSlug = page.url | split: "/" | last %}
+{% assign currentIntegration = site.data.catalog.sources.items | where: "slug", currentSlug | first %}
-If you are experiencing loss of events ingested from your {% page.title %},
+### Other common errors
-- **Payload is too large**: If you attempt to send events larger 32KB per normal API request or batches of events larger than 500KB per request, Segment’s tracking API responds with 400 Bad Request. Try sending smaller events (or smaller batches) to mitigate this error.
+If you are experiencing data loss from your {{ currentIntegration.display_name }} source, you may be experiencing one or more of the following common errors:
-- **Identifier is not present**: Segment's tracking API requires that each payload has a `userId` and/or `anonymousId`. If you send events without either the `userId` or `anonymousId`, Segment's tracking API responds with ERROR CODE ERROR NAME.
+- **Payload is too large**: If you attempt to send events larger 32KB per normal API request or batches of events larger than 500KB per request, Segment’s tracking API responds with `400 Bad Request`. Try sending smaller events (or smaller batches) to correct this error.
-- **Track event is missing name**: All Track events to Segment must have an event field.
+- **Identifier is not present**: Segment's tracking API requires that each payload has a `userId` and/or `anonymousId`. If you send events without either the `userId` or `anonymousId`, Segment's tracking API responds with an `no_user_anon_id` error. Check the event payload and client instrumentation for more details.
-- **Event dropped during deduplication**: Segment automatically adds a `messageId` field to all payloads and uses this value to deduplicate events. If you're manually setting a `messageId` value, ensure that each event has a unique value to avoid data loss.
\ No newline at end of file
+- **Track event is missing name**: All Track events to Segment must have a name in string format.
+
+- **Event dropped during deduplication**: Segment automatically adds a `messageId` field to all payloads and uses this value to deduplicate events. If you're manually setting a `messageId` value, ensure that each event has a unique value.
+
+- **Incorrect credentials**: Double check your credentials for your downstream destination(s).
+
+- **Destination incompatibility**: Make sure that the destination you are troubleshooting can accept server-side API calls. You can see compatibility information on the [Destination comparison by category](/docs/connections/destinations/category-compare/) page and in the documentation for your specific destination.
+
+- **Destination-specific requirements**: Check out the [destination's documentation](/docs/connections/destinations/) to see if there are other requirements for using the method and destination that you're trying to get working.
\ No newline at end of file
diff --git a/src/connections/sources/catalog/libraries/server/clojure/index.md b/src/connections/sources/catalog/libraries/server/clojure/index.md
index 84b83d6f11..3e8e5f675f 100644
--- a/src/connections/sources/catalog/libraries/server/clojure/index.md
+++ b/src/connections/sources/catalog/libraries/server/clojure/index.md
@@ -234,8 +234,6 @@ You can set a custom logger on the client using:
1. Double check that you've set up the library correctly.
-2. Make sure that you're calling one of our API methods once the library is successfully installed—[`identify`](#identify), [`track`](#track), etc.
+2. Make sure that you're calling one of Segment's API methods once the library is successfully installed, like [Identify](#identify) or [Track](#track).
-
-
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/go/index.md b/src/connections/sources/catalog/libraries/server/go/index.md
index 01d6089bfb..39a446da0f 100644
--- a/src/connections/sources/catalog/libraries/server/go/index.md
+++ b/src/connections/sources/catalog/libraries/server/go/index.md
@@ -525,4 +525,4 @@ client, _ := analytics.NewWithConfig("h97jamjwbh", analytics.Config{
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/go/v2/index.md b/src/connections/sources/catalog/libraries/server/go/v2/index.md
index c06289be76..5527663dbd 100644
--- a/src/connections/sources/catalog/libraries/server/go/v2/index.md
+++ b/src/connections/sources/catalog/libraries/server/go/v2/index.md
@@ -350,4 +350,4 @@ If you hate defaults you can configure analytics-go with the following fields:
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/http-api/index.md b/src/connections/sources/catalog/libraries/server/http-api/index.md
index 0b827001d0..c81320d453 100644
--- a/src/connections/sources/catalog/libraries/server/http-api/index.md
+++ b/src/connections/sources/catalog/libraries/server/http-api/index.md
@@ -482,4 +482,4 @@ When sending a HTTP call from a user's device, you can collect the IP address by
2. Make sure that you're calling a Segment API method after the library is successfully installed—[Identify](#identify), [Track](#track), and so on.
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/java/index.md b/src/connections/sources/catalog/libraries/server/java/index.md
index c47be79da6..03277f188d 100644
--- a/src/connections/sources/catalog/libraries/server/java/index.md
+++ b/src/connections/sources/catalog/libraries/server/java/index.md
@@ -450,4 +450,4 @@ repositories {
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/net/index.md b/src/connections/sources/catalog/libraries/server/net/index.md
index 513de81b4f..f33b41dcfb 100644
--- a/src/connections/sources/catalog/libraries/server/net/index.md
+++ b/src/connections/sources/catalog/libraries/server/net/index.md
@@ -501,7 +501,7 @@ client.Track(...);
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
### Logging
diff --git a/src/connections/sources/catalog/libraries/server/node/classic.md b/src/connections/sources/catalog/libraries/server/node/classic.md
index e9f2ad14a4..c00ca3d4e0 100644
--- a/src/connections/sources/catalog/libraries/server/node/classic.md
+++ b/src/connections/sources/catalog/libraries/server/node/classic.md
@@ -480,5 +480,5 @@ var appAnalytics = new Analytics('APP_WRITE_KEY');
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/node/index.md b/src/connections/sources/catalog/libraries/server/node/index.md
index bedffd0657..2e4f96f655 100644
--- a/src/connections/sources/catalog/libraries/server/node/index.md
+++ b/src/connections/sources/catalog/libraries/server/node/index.md
@@ -697,4 +697,4 @@ analytics.track({ userId: 'foo', event: 'bar' })
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/php/index.md b/src/connections/sources/catalog/libraries/server/php/index.md
index 6aebb66a4e..d34aa32f08 100644
--- a/src/connections/sources/catalog/libraries/server/php/index.md
+++ b/src/connections/sources/catalog/libraries/server/php/index.md
@@ -523,7 +523,7 @@ $ sudo service cron reload # reload the cron daemon
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
## 3rd-Party Libraries
diff --git a/src/connections/sources/catalog/libraries/server/python/index.md b/src/connections/sources/catalog/libraries/server/python/index.md
index 4e930f514b..042a5e77e2 100644
--- a/src/connections/sources/catalog/libraries/server/python/index.md
+++ b/src/connections/sources/catalog/libraries/server/python/index.md
@@ -583,7 +583,7 @@ analytics.flush()
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
### Override context value
diff --git a/src/connections/sources/catalog/libraries/server/ruby/index.md b/src/connections/sources/catalog/libraries/server/ruby/index.md
index a2c1462afe..1af8d659e6 100644
--- a/src/connections/sources/catalog/libraries/server/ruby/index.md
+++ b/src/connections/sources/catalog/libraries/server/ruby/index.md
@@ -500,4 +500,4 @@ MarketingAnalytics = Segment::Analytics.new({
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
diff --git a/src/connections/sources/catalog/libraries/server/rust/index.md b/src/connections/sources/catalog/libraries/server/rust/index.md
index 28a6e61e28..27cad06317 100644
--- a/src/connections/sources/catalog/libraries/server/rust/index.md
+++ b/src/connections/sources/catalog/libraries/server/rust/index.md
@@ -385,4 +385,4 @@ There is a maximum of `500KB` per batch request and `32KB` per call.
{% include content/troubleshooting-intro.md %}
{% include content/troubleshooting-server-debugger.md %}
-{% include content/troubleshooting-server-integration.md %}
+{% include content/server-side-troubleshooting.md %}
From 4281aa878e131e7bf5b29b3de438089ef309c7d0 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Thu, 30 May 2024 13:39:54 -0400
Subject: [PATCH 3/5] Vale pass
---
.../catalog/libraries/server/clojure/index.md | 46 ++++----
.../catalog/libraries/server/go/index.md | 100 +++++++++---------
.../catalog/libraries/server/go/v2/index.md | 2 +-
.../catalog/libraries/server/java/index.md | 93 ++++++++--------
.../catalog/libraries/server/net/index.md | 74 ++++++-------
.../catalog/libraries/server/node/index.md | 86 +++++++--------
.../catalog/libraries/server/php/index.md | 94 ++++++++--------
.../catalog/libraries/server/python/index.md | 88 +++++++--------
.../catalog/libraries/server/ruby/index.md | 78 +++++++-------
.../catalog/libraries/server/rust/index.md | 78 +++++++-------
10 files changed, 369 insertions(+), 370 deletions(-)
diff --git a/src/connections/sources/catalog/libraries/server/clojure/index.md b/src/connections/sources/catalog/libraries/server/clojure/index.md
index 3e8e5f675f..84bcff5978 100644
--- a/src/connections/sources/catalog/libraries/server/clojure/index.md
+++ b/src/connections/sources/catalog/libraries/server/clojure/index.md
@@ -10,7 +10,7 @@ The clojure library lets you record analytics data from your clojure code. The r
The library is open-source and was contributed by [CircleCI](https://circleci.com/){:target="_blank"}. You can [check it out on GitHub](https://github.com/circleci/analytics-clj){:target="_blank"}. The clojure library is a wrapper around Segment's [Java library](https://github.com/segmentio/analytics-java){:target="_blank"}.
-The clojure library (like our other server side libraries) is built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make calls non-blocking and fast. It also batches messages and flushes asynchronously to our servers.
+The clojure library (like Segment's other server side libraries) is built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
## Getting Started
@@ -54,11 +54,11 @@ The default initialization settings are production-ready.
## Identify
-`identify` lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
+Identify calls let you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
-Segment recommends calling `identify` a single time when the user's account is first created, and only identifying again later when their traits are change.
+Segment recommends calling Identify a single time when the user's account is first created, and only identifying again later when their traits are change.
-Example `identify` call:
+Example Identify call:
```
(identify analytics "user-id" {:email "bob@acme.com"})
@@ -66,7 +66,7 @@ Example `identify` call:
This call is identifying the user by his unique User ID (the one you know him by in your database) and labeling him with an `email` trait.
-The `identify` call has the following fields:
+The Identify call has the following fields:
@@ -79,17 +79,17 @@ The `identify` call has the following fields:
-Find details on the **identify method payload** in our [Spec](/docs/connections/spec/identify/).
+Find details on the **identify method payload** in the [Segment Spec](/docs/connections/spec/identify/).
## Track
-`track` lets you record the actions your users perform. Every action triggers what we call an "event", which can also have associated properties.
+Track calls let you record the actions your users perform. Every action triggers what Segment calls an "event", which can also have associated properties.
You'll want to track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, we recommend tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example `track` call:
+Example Track call:
```
(track analytics "user-id" "Signed Up" {:plan "trial"})
@@ -101,11 +101,11 @@ Example `track` call:
:integration-options {"Amplitude" {:session-id (:id session)}}})
```
-This example `track` call tells us that your user just triggered the **Signed Up** event on a "trial" plan.
+This example Track call tells you that your user just triggered the **Signed Up** event on a "trial" plan.
-`track` event properties can be anything you want to record. In this case, plan type.
+Track event properties can be anything you want to record. In this case, plan type.
-The `track` call has the following fields:
+The Track call has the following fields:
@@ -114,7 +114,7 @@ The `track` call has the following fields:
`event` _String_ |
- The name of the event you're tracking. We recommend human-readable names like Song Played or Status Updated. |
+ The name of the event you're tracking. Segment recommends human-readable names like Song Played or Status Updated. |
`properties` _Map, optional_ |
@@ -122,11 +122,11 @@ The `track` call has the following fields:
-Find details on **best practices in event naming** as well as the **`track` method payload** in our [Spec](/docs/connections/spec/track/).
+Find details on **best practices in event naming** as well as the **Track method payload** in the [Segment Spec](/docs/connections/spec/track/).
## Group
-`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/java/#identify) user with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees.
+Group lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/java/#identify) user with a group. A group could be a company, organization, account, project or team. It also lets you record custom traits about the group, like industry or number of employees.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
@@ -135,7 +135,7 @@ This is useful for tools like [Intercom](/docs/connections/destinations/catalog/
(group analytics "1234" "group-5678" {:name "Segment"})
```
-The `group` call has the following fields:
+The Group call has the following fields:
@@ -152,11 +152,11 @@ The `group` call has the following fields:
-Find more details about `group`, including the **`group` payload**, in our [Spec](/docs/connections/spec/group/).
+Find more details about Group, including the **Group payload**, in the [Segment Spec](/docs/connections/spec/group/).
## Screen
-The [`screen`](/docs/connections/spec/screen/) method lets you record whenever a user sees a screen of your mobile app, along with optional extra information about the page being viewed.
+The [Screen](/docs/connections/spec/screen/) method lets you record whenever a user sees a screen of your mobile app, along with optional extra information about the page being viewed.
You'll want to record a screen event an event whenever the user opens a screen in your app.
@@ -166,7 +166,7 @@ Not all services support screen, so when it's not supported explicitly, the scre
(screen analytics "1234" "Login" {:path "/users/login"})
```
-The `screen` call has the following fields:
+A Screen call has the following fields:
@@ -175,7 +175,7 @@ The `screen` call has the following fields:
`name` _String_ |
- The webpage name you're tracking. We recommend human-readable names like **Login** or **Register**. |
+ The webpage name you're tracking. Segment recommends human-readable names like **Login** or **Register**. |
`properties` _Properties, optional_ |
@@ -185,17 +185,17 @@ The `screen` call has the following fields:
## Alias
-`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations.
+Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* destinations.
In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'.
-Example `alias` call:
+Example Alias call:
```
(alias analytics "user-id" "real-id")
```
-For more details about `alias`, including the **`alias` call payload**, check out our [Spec](/docs/connections/spec/alias/).
+For more details about Alias, including the **Alias call payload**, check out the [Segment Spec](/docs/connections/spec/alias/).
---
diff --git a/src/connections/sources/catalog/libraries/server/go/index.md b/src/connections/sources/catalog/libraries/server/go/index.md
index 39a446da0f..bd8c279e48 100644
--- a/src/connections/sources/catalog/libraries/server/go/index.md
+++ b/src/connections/sources/catalog/libraries/server/go/index.md
@@ -51,11 +51,11 @@ Dublin — events.eu1.segmentapis.com
> note ""
> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected.
-`identify` lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
+Identify lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
-We recommend calling `identify` a single time when the user's account is first created, and only identifying again later when their traits change.
+Segment recommends calling Identify a single time when the user's account is first created, and only identifying again later when their traits change.
-Example `identify` call:
+Example Identify call:
```go
client.Enqueue(analytics.Identify{
@@ -68,9 +68,9 @@ client.Enqueue(analytics.Identify{
})
```
-This call is identifying Michael by his unique User ID (the one you know him by in your database) and label him with `name`, `email`, `plan` and `friends` traits.
+This call is identifying Michael by his unique User ID (the one you know him by in your database) and labeling him with `name`, `email`, `plan` and `friends` traits.
-The `identify` call has the following fields:
+The Identify call has the following fields:
@@ -83,17 +83,17 @@ The `identify` call has the following fields:
-Find details on the **identify method payload** in our [Spec](/docs/connections/spec/identify/).
+Find details on the **identify method payload** in the [Segment Spec](/docs/connections/spec/identify/).
## Track
-`track` lets you record the actions your users perform.Every action triggers what we call an "event", which can also have associated properties.
+Track lets you record the actions your users perform.Every action triggers what Segment calls an "event", which can also have associated properties.
You'll want to track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, we recommend tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example `track` call:
+Example Track call:
```go
client.Enqueue(analytics.Track{
@@ -104,16 +104,16 @@ client.Enqueue(analytics.Track{
})
```
-This example `track` call tells us that your user just triggered the **Signed Up** event choosing the "Enterprise" plan.
+This example Track call tells you that your user just triggered the **Signed Up** event choosing the "Enterprise" plan.
-`track` event properties can be anything you want to record. In this case, plan type.
+Track event properties can be anything you want to record. In this case, plan type.
-The `track` call has the following fields:
+The Track call has the following fields:
`event` _String_ |
- The name of the event you're tracking. We recommend human-readable names like **Song Played** or **Status Updated**. |
+ The name of the event you're tracking. Segment recommends human-readable names like **Song Played** or **Status Updated**. |
`properties` _Properties, optional_ |
@@ -121,15 +121,15 @@ The `track` call has the following fields:
-Find details on **best practices in event naming** as well as the **`track` method payload** in our [Spec](/docs/connections/spec/track/).
+Find details on **best practices in event naming** as well as the **Track method payload** in the [Segment Spec](/docs/connections/spec/track/).
## Page
-The [`page`](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
+The [Page](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
-If you're using our client-side set up in combination with the Go library, **page calls are already tracked for you** by default. However, if you want to record your own page views manually and aren't using our client-side library, read on!
+If you're using Segment's client-side set up in combination with the Go library, **page calls are already tracked for you** by default. However, if you want to record your own page views manually and aren't using the client-side library, read on.
-Example `page` call:
+Example Page call:
```go
client.Enqueue(analytics.Page{
@@ -140,12 +140,12 @@ client.Enqueue(analytics.Page{
})
```
-The `page` call has the following fields:
+The Page call has the following fields:
`name` _String_ |
- The webpage name you're tracking. We recommend human-readable names like **Login** or **Register**. |
+ The webpage name you're tracking. Segment recommends human-readable names like **Login** or **Register**. |
`properties` _Properties, optional_ |
@@ -153,15 +153,15 @@ The `page` call has the following fields:
-Find details on the **`page` payload** in our [Spec](/docs/connections/spec/page/).
+Find details on the **Page payload** in the [Segment Spec](/docs/connections/spec/page/).
## Group
-`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/node/#identify) with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees.
+Group lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/node/#identify) with a group. A group could be a company, organization, account, project or team. It also lets you record custom traits about the group, like industry or number of employees.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
-Example `group` call:
+Example Group call:
```go
client.Enqueue(analytics.Group{
@@ -174,7 +174,7 @@ client.Enqueue(analytics.Group{
})
```
-The `group` call has the following fields:
+The Group call has the following fields:
@@ -187,15 +187,15 @@ The `group` call has the following fields:
-Find more details about `group` including the **`group` payload** in our [Spec](/docs/connections/spec/group/).
+Find more details about Group, including the **Group payload**, in the [Segment Spec](/docs/connections/spec/group/).
## Alias
-`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations.
+Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* destinations.
In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'.
-Example `alias` call:
+Example Alias call:
```go
client.Enqueue(analytics.Alias{
@@ -204,7 +204,7 @@ client.Enqueue(analytics.Alias{
})
```
-The `alias` call has the following fields:
+The Alias call has the following fields:
@@ -217,7 +217,7 @@ The `alias` call has the following fields:
-Here's a full example of how we might use the `alias` call:
+Here's a full example of how you might use the Alias call:
```go
// the anonymous user does actions ...
@@ -253,7 +253,7 @@ client.Enqueue(analytics.Track{
})
```
-For more details about `alias`, including the **`alias` call payload**, check out our [Spec](/docs/connections/spec/alias/).
+For more details about Alias, including the **Alias call payload**, check out the Segment [Spec](/docs/connections/spec/alias/).
---
@@ -285,9 +285,9 @@ func main() {
## Selecting Destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `context.integrations` that lets you turn certain integrations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an object of `context.integrations` that lets you turn certain integrations on or off. By default all destinations are enabled.
-Here's an example `track` call with the `context.integrations` object shown.
+Here's an example Track call with the `context.integrations` object shown.
```go
client.Enqueue(analytics.Track{
@@ -300,15 +300,15 @@ client.Enqueue(analytics.Track{
})
```
-In this case, we're specifying that we want this `Track` to only go to Vero. `All: false` says that no destination should be enabled unless otherwise specified. `Vero: true` turns on Vero, etc.
+In this case, you're specifying that you want this `Track` to only go to Mixpanel. `All: false` says that no destination should be enabled unless otherwise specified, and `Mixpanel: true` turns on Mixpanel.
-Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.).
+Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", or "MailChimp").
**Note:**
-- Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
+- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
-- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard will still count towards your API usage.
+- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage.
## Historical Import
@@ -316,7 +316,7 @@ You can import historical data by adding the `timestamp` argument to any of your
Historical imports can only be done into destinations that can accept historical timestamped data. Most analytics tools like Mixpanel, Amplitude, Kissmetrics, etc. can handle that type of data just fine. One common destination that does not accept historical data is Google Analytics since their API cannot accept historical data.
-**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and our servers will timestamp the requests for you.
+**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and Segment's servers will timestamp the requests for you.
## Context
@@ -351,7 +351,7 @@ client.Enqueue(analytics.Identify{
})
```
-Note that any custom fields must be set under the `Extra` field. They will automatically be inlined into the serialized `context` structure. For instance, the identify call above would be serialized to:
+Note that any custom fields must be set under the `Extra` field. They will automatically be inlined into the serialized `context` structure. For instance, the Identify call above would be serialized to:
```json
{
@@ -372,11 +372,11 @@ Note that any custom fields must be set under the `Extra` field. They will autom
## Batching
-Our libraries are built to support high performance environments. That means it is safe to use analytics-go on a web server that's serving hundreds of requests per second.
+Segment's libraries are built to support high performance environments. That means it is safe to use analytics-go on a web server that's serving hundreds of requests per second.
-Every method you call **does not** result in an HTTP request, but is queued in memory instead. Messages are flushed in batch in the background, which allows for much faster operation. If batch messages are not arriving in your debugger and no error is being thrown you may want to slow the speed of your scipt down. This is because we run a message batching loop in a go-routine so if the script runs too fast it won't execute on the network calls before it exits the loop.
+Every method you call **does not** result in an HTTP request, but is queued in memory instead. Messages are flushed in batch in the background, which allows for much faster operation. If batch messages are not arriving in your debugger and no error is being thrown you may want to slow the speed of your script down. This is because Segment runs a message batching loop in a go-routine so if the script runs too fast it won't execute on the network calls before it exits the loop.
-By default, our library will flush:
+By default, Segment's library will flush:
+ every 20 messages (control with `FlushAt`)
+ if 5 seconds has passed since the last flush (control with `FlushAfter`)
@@ -390,27 +390,27 @@ Sometimes you might not want batching (eg. when debugging, or in short-lived pro
## Options
-If you hate defaults you can configure analytics-go has a lot of configuration options. You can read more in the [Godocs](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#Config).
+If you hate defaults you can configure analytics-go has a lot of configuration options. You can read more in the [Godocs](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#Config){:target="_blank”}.
## Version 2 (Deprecated)
-If you're looking for documentation for the v2 version of the library, [click here](/docs/connections/sources/catalog/libraries/server/go/v2/).
+If you're looking for documentation for the v2 version of the library, [see Segment's Go v2 documentation](/docs/connections/sources/catalog/libraries/server/go/v2/).
## Migrating from v2
-v3 is a rewrite of our v2 version of the Go Library. We recommend using v3 as it supports many new features, has significant design improvements and is better tested.
+v3 is a rewrite of the v2 version of the Go Library. Segment recommends using v3 as it supports many new features, has significant design improvements and is better tested.
v3 is currently in the `v3.0` branch to minimize breaking changes for customers not using a package manager. You can refer to the documentation for your package manager to see how to use the `v3.0` branch.
-e.g. with [govendor](https://github.com/kardianos/govendor), you would run the command:
+for example, with [govendor](https://github.com/kardianos/govendor){:target="_blank”}, you would run the command:
```bash
govendor fetch github.com/segmentio/analytics-go@v3.0
```
-Alternatively, you can also use [`gopkg.in`](http://labix.org/gopkg.in). First run `go get gopkg.in/segmentio/analytics-go.v3` and replace your imports with `import "gopkg.in/segmentio/analytics-go.v3"`.
+Alternatively, you can also use [`gopkg.in`](http://labix.org/gopkg.in){:target="_blank”}. First run `go get gopkg.in/segmentio/analytics-go.v3` and replace your imports with `import "gopkg.in/segmentio/analytics-go.v3"`.
-To help with migrating your code, we recommend checking out a simple example that we've written in [v2](https://github.com/segmentio/analytics-go/blob/v2.0/examples/track.go) and [v3](https://github.com/segmentio/analytics-go/blob/v3.0/examples/track.go) so you can easily see the differences.
+To help with migrating your code, Segment recommends checking out a simple example that is written in [v2](https://github.com/segmentio/analytics-go/blob/v2.0/examples/track.go) and [v3](https://github.com/segmentio/analytics-go/blob/v3.0/examples/track.go) so you can easily see the differences.
The first difference you'll notice is that `Client` is now an interface. It has a single method - `Enqueue` that can accept messages of all types.
@@ -458,7 +458,7 @@ client.Enqueue(analytics.Track{
})
```
-Lastly, you'll notice that configuration is provided during initialization and cannot be changed after initialization. The various configuration options are documented in the [GoDocs](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#Config).
+Lastly, you'll notice that configuration is provided during initialization and cannot be changed after initialization. The various configuration options are documented in the [GoDocs](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#Config){:target="_blank”}.
These are examples of applying same configuration options in v2 and v3.
@@ -479,7 +479,7 @@ client, _ := analytics.NewWithConfig("h97jamjwbh", analytics.Config{
## What's new in v3
-v3 is a rewrite of our v2 version of the Go Library with many new features!
+v3 is a rewrite of Segment's v2 version of the Go Library with many new features.
* New type safe API to set properties, traits and context fields. This is less error prone than using the `map[string]interface{}` type (though you can still do so).
@@ -494,9 +494,9 @@ client.Enqueue(analytics.Track{
})
```
-* Dynamically split batches into appropriately sized chunks to meet our [API size limits](https://segment.com/docs/connections/sources/catalog/libraries/server/http/#max-request-size). Previously you would have to calculate the batch size depending on this size of your data to figure out the appropriate size.
+* Dynamically split batches into appropriately sized chunks to meet Segment's [API size limits](/docs/connections/sources/catalog/libraries/server/http/#max-request-size). Previously you would have to calculate the batch size depending on this size of your data to figure out the appropriate size.
-* Improved logging abstraction. Previously we relied solely on the standard library `log.Logger` type which cannot distinguish between error and non-error logs. v3 has it's own [`Logger`](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#Logger) interface that can be used to capture errors for your own reporting purposes. An adapter for the [standard library logger](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#StdLogger) is also included.
+* Improved logging abstraction. Previously Segment relied solely on the standard library `log.Logger` type which cannot distinguish between error and non-error logs. v3 has it's own [`Logger`](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#Logger){:target="_blank”} interface that can be used to capture errors for your own reporting purposes. An adapter for the [standard library logger](https://godoc.org/gopkg.in/segmentio/analytics-go.v3#StdLogger){:target="_blank”} is also included.
* Ability to configure the retry policy based on the number of attempts.
diff --git a/src/connections/sources/catalog/libraries/server/go/v2/index.md b/src/connections/sources/catalog/libraries/server/go/v2/index.md
index 5527663dbd..9830aafb0c 100644
--- a/src/connections/sources/catalog/libraries/server/go/v2/index.md
+++ b/src/connections/sources/catalog/libraries/server/go/v2/index.md
@@ -4,7 +4,7 @@ hidden: true
---
-Our Go library lets you record analytics data from your Go code. The requests hit our servers, and then we route your data to any analytics service you enable on your destinations page.
+Segment's Go library lets you record analytics data from your Go code. The requests hit Segment's servers, and then are routed your data to any analytics service you enable on your destinations page.
This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/analytics-go).
diff --git a/src/connections/sources/catalog/libraries/server/java/index.md b/src/connections/sources/catalog/libraries/server/java/index.md
index 03277f188d..bb5ab58b3c 100644
--- a/src/connections/sources/catalog/libraries/server/java/index.md
+++ b/src/connections/sources/catalog/libraries/server/java/index.md
@@ -10,7 +10,7 @@ Segment's Java library lets you record analytics data from your Java code. The r
This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/analytics-java).
-All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make all calls non-blocking and fast. It also batches messages and flushes asynchronously to our servers.
+All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make all calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
Want to stay updated on releases? Subscribe to the [release feed](https://github.com/segmentio/analytics-java/releases.atom).
@@ -49,7 +49,7 @@ Analytics analytics = Analytics.builder(writeKey).build();
Of course, you'll want to replace writeKey with your actual **Write Key** which you can find in Segment under your source settings.
-The Builder can also be used to customize behaviour of the Analytics instance.
+The Builder can also be used to customize behavior of the Analytics instance.
**Note:** There is an internal `AnalyticsClient` class. Do not confuse this class with the public `Analytics` class and do not use this class directly.
@@ -73,11 +73,11 @@ The basic tracking methods below serve as the building blocks of your Segment tr
### Identify
-`identify` lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
+Identify lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
-We recommend calling `identify` a single time when the user's account is first created, and only identifying again later when their traits change.
+Segment recommends calling Identify a single time when the user's account is first created, and only identifying again later when their traits change.
-Example `identify` call:
+Example Identify call:
```java
Map map = new HashMap();
@@ -89,9 +89,9 @@ analytics.enqueue(IdentifyMessage.builder()
.traits(map));
```
-This call is identifying Michael by his unique User ID (the one you know him by in your database) and labeling him with `name` and `email` traits.
+This call identifies Michael by his unique User ID (the one you know him by in your database) and labeling him with `name` and `email` traits.
-The `identify` call has the following fields:
+The Identify call has the following fields:
@@ -104,20 +104,19 @@ The `identify` call has the following fields:
-**Note:** The enqueue method takes a `MessageBuilder` instance and not a `Message` instance directly. This is to allow you to use a `MessageTransformer` that applies to all incoming messages and transform or add data.
+**Note:** The enqueue method takes a `MessageBuilder` instance and not a `Message` instance directly. This is to allow you to use a `MessageTransformer` that applies to all incoming messages and transform or add data.
-Find details on the **identify method payload** in our [Spec](/docs/connections/spec/identify/).
+Find details on the **identify method payload** in the [Segment Spec](/docs/connections/spec/identify/).
### Track
-`track` lets you record the actions your users perform. Every action triggers what we call an "event", which can also have associated properties.
+Track lets you record the actions your users perform. Every action triggers what Segment calls an "event", which can also have associated properties.
You'll want to track events that you're interested in, such as **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, we recommend tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example `track` call:
+Example Track call:
```java
analytics.enqueue(TrackMessage.builder("Item Purchased")
@@ -129,11 +128,11 @@ analytics.enqueue(TrackMessage.builder("Item Purchased")
)
);
```
-This example `track` call tells us that your user just triggered the **Item Purchased** event with a revenue of $39.95 and chose your hypothetical '2-day' shipping.
+This example Track call tells you that your user just triggered the **Item Purchased** event with a revenue of $39.95 and chose your hypothetical '2-day' shipping.
-`track` event properties can be anything you want to record. In this case, revenue and shipping.
+Track event properties can be anything you want to record. In this case, revenue and shipping.
-The `track` call has the following fields:
+The Track call has the following fields:
@@ -142,7 +141,7 @@ The `track` call has the following fields:
`event` _String_ |
- The name of the event you're tracking. We recommend human-readable names like **Song Played** or **Status Updated**. |
+ The name of the event you're tracking. Segment recommends human-readable names like **Song Played** or **Status Updated**. |
`properties` _Properties, optional_ |
@@ -150,17 +149,17 @@ The `track` call has the following fields:
-Find details on **best practices in event naming** as well as the **`track` method payload** in our [Spec](/docs/connections/spec/track/).
+Find details on **best practices in event naming** as well as the **Track method payload** in the [Segment Spec](/docs/connections/spec/track/).
### Screen
-The [`screen`](/docs/connections/spec/screen/) method lets you record whenever a user sees a screen of your mobile app, along with optional extra information about the screen being viewed.
+The [Screen](/docs/connections/spec/screen/) method lets you record whenever a user sees a screen of your mobile app, along with optional extra information about the screen being viewed.
You'll want to record a screen event an event whenever the user opens a screen in your app. This could be a view, fragment, dialog or activity depending on your app.
Not all services support screen, so when it's not supported explicitly, the screen method tracks as an event with the same parameters.
-Example `screen` call:
+Example Screen call:
```java
analytics.enqueue(ScreenMessage.builder("Schedule")
@@ -173,7 +172,7 @@ analytics.enqueue(ScreenMessage.builder("Schedule")
);
```
-The `screen` call has the following fields:
+The Screen call has the following fields:
@@ -182,7 +181,7 @@ The `screen` call has the following fields:
`name` _String_ |
- The webpage name you're tracking. We recommend human-readable names like **Login** or **Register**. |
+ The webpage name you're tracking. Segment recommends human-readable names like **Login** or **Register**. |
`properties` _Properties, optional_ |
@@ -190,15 +189,15 @@ The `screen` call has the following fields:
-Find details on the **`screen` payload** in our [Spec](/docs/connections/spec/screen/).
+Find details on the **Screen payload** in the [Segment Spec](/docs/connections/spec/screen/).
### Page
-The [`page`](/docs/connections/spec/page/) method lets you record whenever a user sees a page of your website, along with optional extra information about the page being viewed.
+The [Page](/docs/connections/spec/page/) method lets you record whenever a user sees a page of your website, along with optional extra information about the page being viewed.
-Not all services support page, so when it's not supported explicitly, the page method typically tracks as an event with the same parameters.
+Not all services support page, so when it's not supported explicitly, the Page method typically tracks as an event with the same parameters.
-Example `page` call:
+Example Page call:
```java
analytics.enqueue(PageMessage.builder("Schedule")
@@ -211,7 +210,7 @@ analytics.enqueue(PageMessage.builder("Schedule")
);
```
-The `page` call has the following fields:
+The Page call has the following fields:
@@ -220,7 +219,7 @@ The `page` call has the following fields:
`name` _String_ |
- The webpage name you're tracking. We recommend human-readable names like **Login** or **Register**. |
+ The webpage name you're tracking. Segment recommends human-readable names like **Login** or **Register**. |
`properties` _Properties, optional_ |
@@ -228,15 +227,15 @@ The `page` call has the following fields:
-Find details on the **`page` payload** in our [Spec](/docs/connections/spec/page/).
+Find details on the **Page payload** in the [Segment Spec](/docs/connections/spec/page/).
### Group
-`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/java/#identify) user with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees.
+Group lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/java/#identify) user with a group. A group could be a company, organization, account, project or team. It also lets you record custom traits about the group, like industry or number of employees.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
-Example `group` call:
+Example Group call:
```java
analytics.enqueue(GroupMessage.builder("some-group-id")
@@ -249,7 +248,7 @@ analytics.enqueue(GroupMessage.builder("some-group-id")
);
```
-The `group` call has the following fields:
+The Group call has the following fields:
@@ -266,15 +265,15 @@ The `group` call has the following fields:
-Find more details about `group`, including the **`group` payload**, in our [Spec](/docs/connections/spec/group/).
+Find more details about Group, including the **Group payload**, in the [Segment Spec](/docs/connections/spec/group/).
### Alias
-`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations.
+Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations.
In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'.
-Example `alias` call:
+Example Alias call:
```java
analytics.enqueue(AliasMessage.builder("previousId")
@@ -282,7 +281,7 @@ analytics.enqueue(AliasMessage.builder("previousId")
);
```
-Here's a full example of how we might use the `alias` call:
+Here's a full example of how you might use the Alias call:
```java
// the anonymous user does actions ...
@@ -295,7 +294,7 @@ identify("identified@example.com", new Traits("plan", "Free"));
track("identified@example.com", "Identified Action");
```
-For more details about `alias`, including the **`alias` call payload**, check out our [Spec](/docs/connections/spec/alias/).
+For more details about Alias, including the **Alias call payload**, check out the [Segment Spec](/docs/connections/spec/alias/).
---
@@ -305,7 +304,7 @@ You can import historical data by adding the `timestamp` argument to any of your
Historical imports can only be done into destinations that can accept historical timestamped data. Most analytics tools like Mixpanel, Amplitude, Kissmetrics, etc. can handle that type of data just fine. One common destination that does not accept historical data is Google Analytics since their API cannot accept historical data.
-**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and our servers will timestamp the requests for you.
+**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and Segment's servers will timestamp the requests for you.
```java
Date historicalDate = ...;
@@ -317,7 +316,7 @@ analytics.enqueue(TrackMessage.builder("Button Clicked")
## Selecting Destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
Similar to timestamp, the builders take a map of destinations that control which analytics destinations you want each message to go to.
@@ -329,15 +328,15 @@ analytics.enqueue(TrackMessage.builder("Button Clicked")
);
```
-In this case, we're specifying that we want this identify to only go to Amplitude. `"all", false` says that no destination should be enabled unless otherwise specified. `{ "Amplitude", true }` turns on Amplitude.
+In this case, you're specifying that you want this identify to only go to Amplitude. `"All", false` says that no destination should be enabled unless otherwise specified, and `{ "Amplitude", true }` turns on Amplitude.
-destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.).
+Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", or "MailChimp").
**Note:**
-- Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
+- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
-- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard will still count towards your API usage.
+- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage.
## Context
@@ -356,7 +355,7 @@ analytics.enqueue(TrackMessage.builder("Button Clicked")
## Batching
-Our libraries are built to support high performance environments. That means it is safe to use analytics-java on a web server that's serving hundreds of requests per second. For more information, check out the [java benchmark](https://github.com/segmentio/analytics-java-benchmark).
+Segment's libraries are built to support high performance environments. That means it is safe to use analytics-java on a web server that's serving hundreds of requests per second. For more information, check out the [java benchmark](https://github.com/segmentio/analytics-java-benchmark).
Every method you call **does not** result in an HTTP request, but is queued in memory instead. Messages are flushed in batch in the background, which allows for much faster operation.
@@ -377,7 +376,7 @@ Calling this method will notify the client to upload any events in the queue.
## How do I gzip requests?
-The Java library does not automatically gzip requests, but allows you to do so if you desire using interceptors in [OkHttp](https://github.com/square/okhttp/wiki/Interceptors#rewriting-requests). See the [sample app](https://github.com/segmentio/analytics-java/blob/master/analytics-sample/src/main/java/sample/Main.java) in our repo for a working example.
+The Java library does not automatically gzip requests, but allows you to do so if you desire using interceptors in [OkHttp](https://github.com/square/okhttp/wiki/Interceptors#rewriting-requests). See the [sample app](https://github.com/segmentio/analytics-java/blob/master/analytics-sample/src/main/java/sample/Main.java) in Segment's `analytics-java` repository for a working example.
## Multiple Clients
@@ -413,11 +412,11 @@ Analytics analytics = Analytics.builder("")
.build();
```
-For more advance logging, you can check out the [sample code](https://github.com/segmentio/analytics-java/tree/master/analytics-sample/src/main/java/sample) in our open-source library.
+For more advance logging, you can check out the [sample code](https://github.com/segmentio/analytics-java/tree/master/analytics-sample/src/main/java/sample) in Segment's open-source library.
## Java Support
-Segment supports Java 8, 9, 10, and 11. The library may work on other versions of Java as well, however we don't test for compatibility on unsupported versions.
+Segment supports Java 8, 9, 10, and 11. The library may work on other versions of Java as well, however Segment doesn't test for compatibility on unsupported versions.
## Snapshots
diff --git a/src/connections/sources/catalog/libraries/server/net/index.md b/src/connections/sources/catalog/libraries/server/net/index.md
index f33b41dcfb..2e166c0889 100644
--- a/src/connections/sources/catalog/libraries/server/net/index.md
+++ b/src/connections/sources/catalog/libraries/server/net/index.md
@@ -7,9 +7,9 @@ tags:
- C#
- C-sharp
---
-Segment's .NET library is the best way to integrate analytics into your .NET application or website. It lets you record analytics data from your ASP.NET, C#, F#, and Visual Basic code. The library issues requests that hit our servers, and then Segment routes your data to any analytics service you enable on our destinations page. This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/Analytics.NET).
+Segment's .NET library is the best way to integrate analytics into your .NET application or website. It lets you record analytics data from your ASP.NET, C#, F#, and Visual Basic code. The library issues requests that hit Segment's servers, and then Segment routes your data to any analytics service you enable on our destinations page. This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/Analytics.NET).
-All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make `identify` and `track` calls non-blocking and fast. It also batches messages and flushes asynchronously to our servers.
+All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make Identify and Track calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
> info "Analytics-CSharp (C#)"
> With [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/), you can add Segment analytics to your C# based app which includes .NET. If you'd like to migrate to use Analytics-CSharp, see the [Analytics-CSharp migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/).
@@ -18,7 +18,7 @@ All of Segment's server-side libraries are built for high-performance, so you ca
### Client-side vs Server-side
-The best analytics installation combines both client-side and server-side tracking. A client-side analytics.js installation allows you to install A/B testing, heat mapping, session recording, and ad optimization tools. A server-side .NET installation allows you to accurately track events that aren't available client-side, such as payments. For best practices, [check out our guide client-side vs. server-side](/docs/guides/how-to-guides/collect-on-client-or-server/).
+The best analytics installation combines both client-side and server-side tracking. A client-side analytics.js installation allows you to install A/B testing, heat mapping, session recording, and ad optimization tools. A server-side .NET installation allows you to accurately track events that aren't available client-side, such as payments. For best practices, [check out Segment's guide to client-side vs. server-side](/docs/guides/how-to-guides/collect-on-client-or-server/).
### Step 1: Add Analytics.js to your ASP.NET Master Page
@@ -33,15 +33,15 @@ Copy the snippet directly into your ASP.NET [Site.master](https://github.com/seg
That snippet will load `analytics.js` onto the page _asynchronously_, so it won't affect your page load speed.
-As soon as that snippet is running on your site, you can start turning on any destinations on your Segment destinations page. In fact, if you reload, you can start seeing `page` calls in our debugger.
+As soon as that snippet is running on your site, you can start turning on any destinations on your Segment destinations page. In fact, if you reload, you can start seeing Page calls in the [source debugger](/docs/connections/sources/debugger/).
-For more in depth `analytics.js` information, check out our [analytics.js docs](/docs/connections/sources/catalog/libraries/website/javascript/).
+For more in depth `analytics.js` information, check out Segment's [analytics.js docs](/docs/connections/sources/catalog/libraries/website/javascript/).
-Lots of analytics and marketing tools want to know more information about your users, and what they're doing on your app. In the next section, we'll install the .NET library and start sending an event every time a new user registers on your site.
+Lots of analytics and marketing tools want to know more information about your users, and what they're doing on your app. In the next section, Segment installs the .NET library and start sending an event every time a new user registers on your site.
-### Step 2: Install our .NET Library
+### Step 2: Install Segment's .NET Library
-Your website will use our .NET library to `identify` and `track` users. You can use [NuGet](http://docs.nuget.org/docs/start-here/using-the-package-manager-console) to install the library.
+Your website will use Segment's .NET library to Identify and Track users. You can use [NuGet](http://docs.nuget.org/docs/start-here/using-the-package-manager-console) to install the library.
```bash
Install-Package Analytics -Version
@@ -51,7 +51,7 @@ Install-Package Analytics -Version
You can also accomplish the same thing in the Visual Studio `Tools` menu, select `Library Package Manager` and then click `Package Manager Console`.
-Now the .NET library needs to know which Segment project you want to send data to. You can initialize the library with your Segment source's `writeKey` in the [Global.asax file](https://github.com/segmentio/asp.net-example/blob/master/Global.asax#L14). Then you can use the `Analytics` singleton in any controller you want.:
+Now the .NET library needs to know which Segment project you want to send data to. You can initialize the library with your Segment source's `writeKey` in the [Global.asax file](https://github.com/segmentio/asp.net-example/blob/master/Global.asax#L14). Then you can use the `Analytics` singleton in any controller you want:
```csharp
<%@ Application Language="C#" %>
@@ -92,9 +92,9 @@ The default initialization settings are production-ready and queue messages on a
> note ""
> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected.
-If you're not familiar with the Segment Specs, take a look to understand what the [identify](/docs/connections/spec/identify/) method does.
+If you're not familiar with the Segment Specs, take a look to understand what the [Identify](/docs/connections/spec/identify/) method does.
-The `identify` call has the following fields:
+The Identify call has the following fields:
@@ -123,9 +123,9 @@ Analytics.Client.Identify("019mr8mf4r", new Traits() {
## Track
-If you're not familiar with the Segment Specs, take a look to understand what the [track](/docs/connections/spec/track/) method does.
+If you're not familiar with the Segment Spec, take a look to understand what the [Track](/docs/connections/spec/track/) method does.
-The `track` call has the following fields:
+The Track call has the following fields:
@@ -134,7 +134,7 @@ The `track` call has the following fields:
`event` _String_ |
- The name of the event you're tracking. We recommend human-readable names like Song Played or Status Updated. |
+ The name of the event you're tracking. Segment recommends human-readable names like Song Played or Status Updated. |
`properties` _Properties, optional_ |
@@ -157,9 +157,9 @@ Analytics.Client.Track("019mr8mf4r", "Item Purchased", new Properties() {
## Page
-If you're not familiar with the Segment Specs, take a look to understand what the [page](/docs/connections/spec/page/) method does.
+If you're not familiar with the Segment Specs, take a look to understand what the [Page](/docs/connections/spec/page/) method does.
-The `page` call has the following fields:
+The Page call has the following fields:
@@ -168,7 +168,7 @@ The `page` call has the following fields:
`name` _String_ |
- The webpage name you're tracking. We recommend human-readable names like Login or Register. |
+ The webpage name you're tracking. Segment recommends human-readable names like Login or Register. |
`category` _String_ |
@@ -184,7 +184,7 @@ The `page` call has the following fields:
-Example `page` call:
+Example Page call:
```csharp
Analytics.Client.Page("019mr8mf4r", "Login", new Properties() {
@@ -195,9 +195,9 @@ Analytics.Client.Page("019mr8mf4r", "Login", new Properties() {
## Screen
-If you're not familiar with the Segment Specs, take a look to understand what the [screen](/docs/connections/spec/screen/) method does.
+If you're not familiar with the Segment Specs, take a look to understand what the [Screen](/docs/connections/spec/screen/) method does.
-The `screen` call has the following fields:
+The Screen call has the following fields:
@@ -206,7 +206,7 @@ The `screen` call has the following fields:
`name` _String_ |
- The screen name you're tracking. We recommend human-readable names like Login or Register. |
+ The screen name you're tracking. Segment recommends human-readable names like Login or Register. |
`category` _String_ |
@@ -222,7 +222,7 @@ The `screen` call has the following fields:
-Example `screen` call:
+Example Screen call:
```csharp
Analytics.Client.Screen("019mr8mf4r", "Register", new Properties() {
@@ -232,9 +232,9 @@ Analytics.Client.Screen("019mr8mf4r", "Register", new Properties() {
## Group
-If you're not familiar with the Segment Specs, take a look to understand what the [group](/docs/connections/spec/group/) method does.
+If you're not familiar with the Segment Specs, take a look to understand what the [Group](/docs/connections/spec/group/) method does.
-The `group` call has the following fields:
+The Group call has the following fields:
@@ -255,7 +255,7 @@ The `group` call has the following fields:
-Example `group` call:
+Example Group call:
```csharp
Analytics.Client.Group("userId", "groupId", new Traits() {
@@ -266,9 +266,9 @@ Analytics.Client.Group("userId", "groupId", new Traits() {
## Alias
-If you're not familiar with the Segment Specs, take a look to understand what the [alias](/docs/connections/spec/alias/) method does.
+If you're not familiar with the Segment Specs, take a look to understand what the [Alias](/docs/connections/spec/alias/) method does.
-The `alias` call has the following fields:
+The Alias call has the following fields:
@@ -281,13 +281,13 @@ The `alias` call has the following fields:
-Example `alias` call:
+Example Alias call:
```csharp
Analytics.Client.Alias("previousId", "userId")
```
-Here's a full example of how we might use the `alias` call:
+Here's a full example of how you might use the Alias call:
```csharp
// the anonymous user does actions ...
@@ -304,7 +304,7 @@ Analytics.Client.Track("identified@example.com", "Identified Action");
## Development Settings
-You can use this initialization during development while testing the library. `SetAsync(false)` will make sure the library makes a request to our servers every time it's called.
+You can use this initialization during development while testing the library. `SetAsync(false)` will make sure the library makes a request to Segment's servers every time it's called.
```csharp
Analytics.Initialize("YOUR_WRITE_KEY", new Config().SetAsync(false));
@@ -319,7 +319,7 @@ You can import historical data by adding the `timestamp` argument to any of your
Historical imports can only be done into destinations that can accept historical timestamped data. Most analytics tools like Mixpanel, Amplitude, Kissmetrics, etc. can handle that type of data just fine. One common destination that does not accept historical data is Google Analytics since their API cannot accept historical data.
-**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and our servers will timestamp the requests for you.
+**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and Segment's servers will timestamp the requests for you.
```csharp
Analytics.Client.Track("sadi89e2jd", "Workout Logged", new Properties() {
@@ -332,7 +332,7 @@ Analytics.Client.Track("sadi89e2jd", "Workout Logged", new Properties() {
## Selecting Destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `options` that lets you turn certain destinations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an object of `options` that lets you turn certain destinations on or off. By default all destinations are enabled.
You can specify which analytics destinations you want each action to go to.
@@ -346,15 +346,15 @@ Analytics.Client.Identify("hj2kf92ds212", new Traits() {
);
```
-In this case, we're specifying that we want this identify to only go to Kissmetrics. `"all", false` says that no destination should be enabled unless otherwise specified. `{ "Kissmetrics", true }` turns on Kissmetrics, etc.
+In this case, you're specifying that you want this identify to only go to Kissmetrics. `"all", false` says that no destination should be enabled unless otherwise specified, and `{ "Kissmetrics", true }` turns on Kissmetrics.
-Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.).
+Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", or "MailChimp").
**Note:**
-- Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
+- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
-- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard will still count towards your API usage.
+- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage.
## Context
@@ -403,7 +403,7 @@ Analytics.Client.Identify("hj2kf92ds212", new Traits() {
## Batching
-Our libraries are built to support high performance environments. That means it is safe to use Analytics.NET on a web server that's serving hundreds of requests per second.
+Segment's libraries are built to support high performance environments. That means it is safe to use Analytics.NET on a web server that's serving hundreds of requests per second.
By default (in async mode), this library starts a single separate thread on initialization, and flushes all messages on that thread. That means every method you call **does not** result in an HTTP request, but is queued in memory instead. Messages are flushed in batch in the background, which allows for much faster operation.
diff --git a/src/connections/sources/catalog/libraries/server/node/index.md b/src/connections/sources/catalog/libraries/server/node/index.md
index 2e4f96f655..3093c7462b 100644
--- a/src/connections/sources/catalog/libraries/server/node/index.md
+++ b/src/connections/sources/catalog/libraries/server/node/index.md
@@ -10,7 +10,7 @@ Segment's Analytics Node.js library lets you record analytics data from your nod
The [Segment Analytics Node.js Next library is open-source](https://github.com/segmentio/analytics-next/tree/master/packages/node){:target="_blank"} on GitHub.
-All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make `identify` and `track` calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
+All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make Identify and Track calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
## Getting Started
@@ -55,11 +55,11 @@ These methods correspond with those used in the [Segment Spec](/docs/connections
> info "Good to know"
> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected.
-`identify` lets you tie a user to their actions and record traits about them. It includes a unique User ID and/or anonymous ID, and any optional traits you know about them.
+Identify lets you tie a user to their actions and record traits about them. It includes a unique User ID and/or anonymous ID, and any optional traits you know about them.
-You should call `identify` once when the user's account is first created, and then again any time their traits change.
+You should call Identify once when the user's account is first created, and then again any time their traits change.
-Example of an anonymous `identify` call:
+Example of an anonymous Identify call:
```javascript
analytics.identify({
@@ -72,7 +72,7 @@ analytics.identify({
This call identifies the user and records their unique anonymous ID, and labels them with the `friends` trait.
-Example of an `identify` call for an identified user:
+Example of an Identify call for an identified user:
```javascript
analytics.identify({
@@ -87,7 +87,7 @@ analytics.identify({
```
The call above identifies Michael by his unique User ID (the one you know him by in your database), and labels him with the `name`, `email`, `plan` and `friends` traits.
-The `identify` call has the following fields:
+An Identify call has the following fields:
Field | Details
----- | -------
@@ -95,19 +95,19 @@ Field | Details
`anonymousId` _String, optional_ | An ID associated with the user when you don't know who they are (for example, [the anonymousId generated by `analytics.js`](/docs/connections/sources/catalog/libraries/website/javascript/#anonymous-id)). _Note: You must include at least one of `userId` or `anonymousId` in all identify calls._
`traits` _Object, optional_ | A dictionary of [traits](/docs/connections/spec/identify#traits) you know about the user. Things like: `email`, `name` or `friends`.
`timestamp` _Date, optional_ | A JavaScript date object representing when the identify took place. If the identify just happened, leave it out as Segment uses the server's time. If you're importing data from the past make sure to send a `timestamp`.
-`context` _Object, optional_ | A dictionary of extra [context](https://segment.com/docs/connections/spec/common/#context) to attach to the call. _Note: `context` differs from `traits` because it is not attributes of the user itself._
+`context` _Object, optional_ | A dictionary of extra [context](/docs/connections/spec/common/#context) to attach to the call. _Note: `context` differs from `traits` because it is not attributes of the user itself._
Find details on the **identify method payload** in Segment's [Spec](/docs/connections/spec/identify/).
### Track
-`track` lets you record the actions your users perform. Every action triggers what we call an "event", which can also have associated properties.
+Track lets you record the actions your users perform. Every action triggers what Segment calls an "event", which can also have associated properties.
You'll want to track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, we recommend tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example anonymous `track` call:
+Example anonymous Track call:
```javascript
analytics.track({
@@ -120,7 +120,7 @@ analytics.track({
});
```
-Example identified `track` call:
+Example identified Track call:
```javascript
analytics.track({
@@ -133,11 +133,11 @@ analytics.track({
});
```
-This example `track` call tells us that your user just triggered the **Item Purchased** event with a revenue of $39.95 and chose your hypothetical '2-day' shipping.
+This example Track call tells you that your user just triggered the **Item Purchased** event with a revenue of $39.95 and chose your hypothetical '2-day' shipping.
-`track` event properties can be anything you want to record. In this case, revenue and shipping method.
+Track event properties can be anything you want to record. In this case, revenue and shipping method.
-The `track` call has the following fields:
+The Track call has the following fields:
Field | Details
----- | --------
@@ -148,15 +148,15 @@ Field | Details
`timestamp` _Date, optional_ | A JavaScript date object representing when the track took place. If the track just happened, leave it out and we'll use the server's time. If you're importing data from the past make sure you to send a `timestamp`.
`context` _Object, optional_ | A dictionary of extra [context](https://segment.com/docs/connections/spec/common/#context) to attach to the call. _Note: `context` differs from `traits` because it is not attributes of the user itself._
-Find details on **best practices in event naming** as well as the **`track` method payload** in the Segment [Spec](/docs/connections/spec/track/).
+Find details on **best practices in event naming** as well as the **Track method payload** in the [Segment Spec](/docs/connections/spec/track/).
### Page
-The [`page`](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
+The [Page](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
-If you're using our client-side set up in combination with the Node.js library, page calls are **already tracked for you** by default. However, if you want to record your own page views manually and aren't using our client-side library, read on!
+If you're using Segment's client-side set up in combination with the Node.js library, page calls are **already tracked for you** by default. However, if you want to record your own page views manually and aren't using the client-side library, read on.
-Example `page` call:
+Example Page call:
```js
analytics.page({
@@ -172,27 +172,27 @@ analytics.page({
});
```
-The `page` call has the following fields:
+A Page call has the following fields:
Field | Details
----- | --------
`userId` _String, optional_ | The ID for this user in your database. _Note: at least one of `userId` or `anonymousId` must be included in any page call.
-`anonymousId` _String, optional_ | An ID associated with the user when you don't know who they are (eg., [the anonymousId generated by `analytics.js`](/docs/connections/sources/catalog/libraries/website/javascript/#anonymous-id)). _Note: at least one of `userId` or `anonymousId` must be included in any page call._
-`category` _String, optional_ | The category of the page. Useful for things like ecommerce where many pages often live under a larger category.
+`anonymousId` _String, optional_ | An ID associated with the user when you don't know who they are (for example, [the anonymousId generated by `analytics.js`](/docs/connections/sources/catalog/libraries/website/javascript/#anonymous-id)). _Note: at least one of `userId` or `anonymousId` must be included in any page call._
+`category` _String, optional_ | The category of the page. Useful for industries, like ecommerce, where many pages often live under a larger category.
`name` _String, optional_ | The name of the page, for example **Signup** or **Home**.
`properties` _Object, optional_ | A dictionary of properties of the page. A few properties specially recognized and automatically translated: `url`, `title`, `referrer` and `path`, but you can add your own too.
-`timestamp` _Date, optional_ | A JavaScript date object representing when the track took place. If the track just happened, leave it out and we'll use the server's time. If you're importing data from the past make sure you to send a `timestamp`.
-`context` _Object, optional_ | A dictionary of extra [context](https://segment.com/docs/connections/spec/common/#context) to attach to the call. _Note: `context` differs from `traits` because it is not attributes of the user itself._
+`timestamp` _Date, optional_ | A JavaScript date object representing when the Page took place. If the Page just happened, leave it out and Segment will use the server's time. If you're importing data from the past make sure you to send a `timestamp`.
+`context` _Object, optional_ | A dictionary of extra [context](docs/connections/spec/common/#context) to attach to the call. _Note: `context` differs from `traits` because it is not attributes of the user itself._
-Find details on the **`page` payload** in the Segment [Spec](/docs/connections/spec/page/).
+Find details on the **Page payload** in the [Segment Spec](/docs/connections/spec/page/).
### Group
-`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/node/#identify) with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees.
+Group lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/node/#identify) with a group. A group could be a company, organization, account, project or team. It also lets you record custom traits about the group, like industry or number of employees.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
-Example `group` call:
+Example Group call:
```javascript
analytics.group({
@@ -205,27 +205,27 @@ analytics.group({
});
```
-The `group` call has the following fields:
+The Group call has the following fields:
Field | Details
----- | --------
`userId` _String, optional_ | The ID for this user in your database. _Note: at least one of `userId` or `anonymousId` must be included in any group call.
-`anonymousId` _String, optional_ | An ID associated with the user when you don't know who they are (eg., [the anonymousId generated by `analytics.js`](/docs/connections/sources/catalog/libraries/website/javascript/#anonymous-id)). _Note: at least one of `userId` or `anonymousId` must be included in any group call._
+`anonymousId` _String, optional_ | An ID associated with the user when you don't know who they are (for example), [the anonymousId generated by `analytics.js`](/docs/connections/sources/catalog/libraries/website/javascript/#anonymous-id)). _Note: at least one of `userId` or `anonymousId` must be included in any group call._
`groupId` _string | The ID of the group.
`traits` _dict, optional_ | A dict of traits you know about the group. For a company, they might be things like `name`, `address`, or `phone`. [Learn more about traits](/docs/connections/spec/group/#traits).
`context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context)
-`timestamp` _datetime, optional_ | A `datetime` object representing when the group took place. If the group just happened, leave it out and we'll use the server's time. If you're importing data from the past make sure you send `timestamp`.
+`timestamp` _datetime, optional_ | A `datetime` object representing when the Group took place. If the Group just happened, leave it out and Segment will use the server's time. If you're importing data from the past make sure you send `timestamp`.
`integrations` _dict, optional_ | A dictionary of destinations to enable or disable.
-Find more details about `group`, including the **`group` payload**, in the Segment [Spec](/docs/connections/spec/group/).
+Find more details about Group, including the **Group payload**, in the [Segment Spec](/docs/connections/spec/group/).
### Alias
-The `alias` call allows you to associate one identity with another. This is an advanced method and should not be widely used, but is required to manage user identities in _some_ destinations. Other destinations do not support the alias call.
+The Alias call allows you to associate one identity with another. This is an advanced method and should not be widely used, but is required to manage user identities in _some_ destinations. Other destinations do not support the alias call.
In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'.
-Example `alias` call:
+Example Alias call:
```javascript
analytics.alias({
@@ -234,14 +234,14 @@ analytics.alias({
});
```
-The `alias` call has the following fields:
+The Alias call has the following fields:
Field | Details
----- | --------
`userId` _String_ | The ID for this user in your database.
`previousId` _String_ | The previous ID to alias from.
-Here's a full example of how Segment might use the `alias` call:
+Here's a full example of how Segment might use the Alias call:
```javascript
// the anonymous user does actions ...
@@ -254,7 +254,7 @@ analytics.identify({ userId: 'identified@example.com', traits: { plan: 'Free' }
analytics.track({ userId: 'identified@example.com', event: 'Identified Action' })
```
-For more details about `alias`, including the **`alias` call payload**, check out the Segment [Spec](/docs/connections/spec/alias/).
+For more details about Alias, including the **Alias call payload**, check out the [Segment Spec](/docs/connections/spec/alias/).
---
@@ -287,11 +287,11 @@ Setting | Details
`disable` _boolean_ | Disable the analytics library for testing. The default is: `false`
`httpClient` _HTTPClient or HTTPClientFn_ | A custom HTTP Client implementation to support alternate libraries or proxies. Defaults to global fetch or node-fetch for older versions of node. See the [Overriding the default HTTP Client](#override-the-default-http-client) section for more details.
-See the complete `AnalyticsSettings` interface [here](https://github.com/segmentio/analytics-next/blob/master/packages/node/src/app/settings.ts){:target="_blank"}.
+See the complete `AnalyticsSettings` interface [in the analytics-next repository](https://github.com/segmentio/analytics-next/blob/master/packages/node/src/app/settings.ts){:target="_blank"}.
## Usage in serverless environments
-When calling `.track` within functions in serverless runtime environments, wrap the call in a `Promise` and `await` it to avoid having the runtime exit or freeze:
+When calling Track within functions in serverless runtime environments, wrap the call in a `Promise` and `await` it to avoid having the runtime exit or freeze:
```js
await new Promise((resolve) =>
@@ -362,7 +362,7 @@ analytics.on('error', (err) => console.error(err))
### Event emitter interface
-The event emitter interface allows you to track events, such as `track` and `identify` calls, and it calls the function you provided with some arguments upon successful delivery. `error` emits on delivery error.
+The event emitter interface allows you to track events, like Track and Identify calls, and it calls the function you provided with some arguments upon successful delivery. `error` emits on delivery error.
```javascript
analytics.on('error', (err) => console.error(err))
@@ -491,7 +491,7 @@ await analytics.deregister("pluginNameA", "pluginNameB") // takes strings
## Selecting Destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
Here's an example with the `integrations` object shown:
@@ -507,15 +507,15 @@ analytics.track({
})
```
-In this case, Segment specifies that they want this `track` to only go to Vero. `All: false` says that no destination should be enabled unless otherwise specified. `Vero: true` turns on Vero.
+In this case, Segment specifies that they want this Track event to only go to Vero. `All: false` says that no destination should be enabled unless otherwise specified. `Vero: true` turns on Vero.
-Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", "MailChimp"). In some cases, there may be several names for a destination; if that happens you'll see a "Adding (destination name) to the Integrations Object" section in the destination's doc page with a list of valid names.
+Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", or "MailChimp"). In some cases, there may be several names for a destination; if that happens you'll see a "Adding (destination name) to the Integrations Object" section in the destination's doc page with a list of valid names.
**Note:**
-- Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
+- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
-- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard will still count towards your API usage.
+- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage.
## Historical Import
diff --git a/src/connections/sources/catalog/libraries/server/php/index.md b/src/connections/sources/catalog/libraries/server/php/index.md
index d34aa32f08..81a8741646 100644
--- a/src/connections/sources/catalog/libraries/server/php/index.md
+++ b/src/connections/sources/catalog/libraries/server/php/index.md
@@ -8,15 +8,15 @@ Segment's PHP library lets you record analytics data from your PHP code. The req
This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/analytics-php).
-PHP is a little different than our other server-side libraries because it is a single-threaded language. We've done everything we can to make our library as performant as possible, while still leaving you room to tune the settings for your application. If you want to learn more about tuning your settings for high performance, be sure to read through our section on [configuration](#configuration) at the end of this guide.
+PHP is a little different than Segment's other server-side libraries because it is a single-threaded language. Segment worked to make the PHP library as performant as possible, while still leaving you room to tune the settings for your application. If you want to learn more about tuning your settings for high performance, be sure to read through the section on [configuration](#configuration) at the end of this guide.
Want to stay updated on releases? Subscribe to the [release feed](https://github.com/segmentio/analytics-php/releases.atom).
## Getting Started
-Clone the repository from Github into your desired application directory.
+Clone the repository from GitHub into your desired application directory.
-For composer users: we've [got you covered too](https://packagist.org/packages/segmentio/analytics-php).
+For composer users: Segment's [got you covered too](https://packagist.org/packages/segmentio/analytics-php).
```bash
git clone https://github.com/segmentio/analytics-php /my/app/folders/
@@ -29,7 +29,7 @@ require_once("/path/to/analytics-php/lib/Segment.php");
use Segment\Segment;
```
-Now, you're ready to actually initialize the module. In our examples, we first rename this module to be `Analytics` for convenience. In your initialization script, go ahead and make the following call:
+Now, you're ready to actually initialize the module. In the following examples, rename this module to be `Analytics` for convenience. In your initialization script, go ahead and make the following call:
```php
# set up our Segment tracking and
@@ -55,9 +55,9 @@ The default PHP consumer is the [lib-curl consumer](#lib-curl-consumer). If this
Identify calls let you tie a user to their actions, and record traits about them. It includes a unique User ID and any optional traits you know about them.
-We recommend calling `identify` a single time when the user's account is first created, and only identifying again later when their traits change.
+Segment recommends calling Identify a single time when the user's account is first created, and only identifying again later when their traits change.
-Here's what a basic call to `identify` might look like:
+Here's what a basic call to Identify might look like:
```php
Segment::identify(array(
@@ -70,9 +70,9 @@ Segment::identify(array(
));
```
-This will identify the user by his unique User ID (the one you know him by in your database) and label him with `email`, `name` and `friends` traits.
+This identifies the user by his unique User ID (the one you know him by in your database) and label him with `email`, `name` and `friends` traits.
-The `identify` call has the following fields:
+The Identify call has the following fields:
@@ -97,17 +97,17 @@ The `identify` call has the following fields:
-Find details on the **identify method payload** in our [Spec](/docs/connections/spec/identify/).
+Find details on the **identify method payload** in the [Segment Spec](/docs/connections/spec/identify/).
## Track
-`track` lets you record the actions your users perform.Every action triggers what we call an "event", which can also have associated properties.
+Track lets you record the actions your users perform.Every action triggers what Segment calls an "event", which can also have associated properties.
You'll want to track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, we recommend tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example `track` call:
+Example Track call:
```php
Segment::track(array(
@@ -119,9 +119,9 @@ Segment::track(array(
));
```
-That's just telling us that your user just triggered the **Signed Up** event and chose your hypothetical **Enterprise** plan.
+That's just telling you that your user just triggered the **Signed Up** event and chose your hypothetical **Enterprise** plan.
-`track` event properties can be anything you want to record, for example:
+Track event properties can be anything you want to record, for example:
```php
Segment::track(array(
@@ -134,7 +134,7 @@ Segment::track(array(
)
));
```
-The `track` call has the following fields:
+The Track call has the following fields:
@@ -143,7 +143,7 @@ The `track` call has the following fields:
`event` _String_ |
- The name of the event you're tracking. We recommend human-readable names like Song Played or Status Updated. |
+ The name of the event you're tracking. Segment recommends human-readable names like Song Played or Status Updated. |
`properties` _Array, optional_ |
@@ -163,15 +163,15 @@ The `track` call has the following fields:
-Find details on **best practices in event naming as well as the `track` method payload** in our [Spec](/docs/connections/spec/track/).
+Find details on **best practices in event naming as well as the Track method payload** in the [Segment Spec](/docs/connections/spec/track/).
## Page
-The [`page`](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
+The [Page](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
-If you're using our client-side set up in combination with the PHP library, page calls are **already tracked for you** by default. However, if you want to record your own page views manually and aren't using our client-side library, read on!
+If you're using Segment's client-side set up in combination with the PHP library, page calls are **already tracked for you** by default. However, if you want to record your own page views manually and aren't using the client-side library, read on.
-Example `page` call:
+Example Page call:
```php
Segment::page(array(
@@ -183,7 +183,7 @@ Segment::page(array(
)
));
```
-The `page` call has the following fields:
+The Page call has the following fields:
@@ -192,7 +192,7 @@ The `page` call has the following fields:
`category` _String, optional_ |
- The category of the page. Useful for things like ecommerce where many pages might live under a larger category. _Note: if you only pass one string to `page` we assume it's a `name`, not a `category`. You **must** include a `name` if you want to send a `category`._ |
+ The category of the page. Useful for industries, like ecommerce, where many pages might live under a larger category. _Note: if you only pass one string to `page` Segment assumes it's a `name`, not a `category`. You **must** include a `name` if you want to send a `category`._ |
`name` _String, optional_ |
@@ -200,7 +200,7 @@ The `page` call has the following fields:
`properties` _Object, optional_ |
- A dictionary of properties of the page. Segment automatically sends the `url`, `title`, `referrer` and `path`, but you can add your own too! |
+ A dictionary of properties of the page. Segment automatically sends the `url`, `title`, `referrer` and `path`, but you can add your own too. |
`anonymousId` _String, optional_ |
@@ -212,15 +212,15 @@ The `page` call has the following fields:
-Find details on the **`page` payload** in our [Spec](/docs/connections/spec/page/).
+Find details on the **Page payload** in the [Segment Spec](/docs/connections/spec/page/).
## Group
-`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/php/#identify) with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees.
+Group lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/php/#identify) with a group. A group could be a company, organization, account, project or team. It also lets you record custom traits about the group, like industry or number of employees.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
-Example `group` call:
+Example Group call:
```php
Segment::group(array(
@@ -232,7 +232,7 @@ Segment::group(array(
);
));
```
-The `group` call has the following fields:
+The Group call has the following fields:
@@ -257,15 +257,15 @@ The `group` call has the following fields:
-Find more details about `group` including the **`group` payload** in our [Spec](/docs/connections/spec/group/).
+Find more details about Group including the **Group payload** in the [Segment Spec](/docs/connections/spec/group/).
## Alias
-`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations.
+Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* destinations.
-In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias) if your user switches IDs, you can use `alias` to rename the `userId`.
+In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias) if your user switches IDs, you can use Alias to rename the `userId`.
-Example `alias` call:
+Example Alias call:
```php
Segment::alias(array(
@@ -273,7 +273,7 @@ Segment::alias(array(
"userId" => $userId
))
```
-The `alias` call has the following fields:
+The Alias call has the following fields:
@@ -286,7 +286,7 @@ The `alias` call has the following fields:
-Here's a full example of how we might use the [`alias`](/docs/connections/spec/alias/) call:
+Here's a full example of how you might use the [Alias](docs/connections/spec/alias/) call:
```php
# the anonymous user does actions ...
@@ -316,7 +316,7 @@ Segment::track(array(
));
```
-For more details about `alias` including the **`alias` call payload**, check out our [Spec](/docs/connections/spec/alias/).
+For more details about Alias including the **Alias call payload**, check out the [Segment Spec](/docs/connections/spec/alias/).
## Historical Import
@@ -324,15 +324,15 @@ You can import historical data by adding the `timestamp` argument to any of your
Historical imports can only be done into destinations that can accept historical timestamped data. Most analytics tools like Mixpanel, Amplitude, Kissmetrics, etc. can handle that type of data just fine. One common destination that does not accept historical data is Google Analytics since their API cannot accept historical data.
-**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and our servers will timestamp the requests for you.
+**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and Segment's servers will timestamp the requests for you.
## Selecting Destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an array of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an array of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
Using the `integrations` array, you can specify which analytics providers you want each call to go to.
-Here's a `track` call with the `integrations` array shown:
+Here's a Track call with the `integrations` array shown:
```php
Segment::track(array(
@@ -346,15 +346,15 @@ Segment::track(array(
))
```
-In this case, we're specifying that we want this track to only go to Mixpanel and Customer.io. `"all" => false` says that no destination should be enabled unless otherwise specified. `"Mixpanel" => true` turns on Mixpanel, etc.
+In this case, you're specifying that this Track call should to only go to Mixpanel and Customer.io. `"All" => false` says that no destination should be enabled unless otherwise specified and `"Mixpanel" => true` turns on Mixpanel.
-Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.).
+Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", "MailChimp", etc.).
**Note:**
-- Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
+- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
-- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard will still count towards your API usage.
+- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage.
## Flush
@@ -366,7 +366,7 @@ Segment::flush();
## Configuration
-Because PHP is a single threaded and shared-nothing environment, we can't use a queue in a separate thread or a connection pool to flush messages. Instead, you have the option to specify different consumers to make requests to our servers.
+Because PHP is a single threaded and shared-nothing environment, Segment can't use a queue in a separate thread or a connection pool to flush messages. Instead, you have the option to specify different consumers to make requests to Segment's servers.
There are few options which you can use to configure your client to aid with debugging. These can be enabled with any of the consumers you use.
@@ -404,7 +404,7 @@ Segment::init("YOUR_WRITE_KEY", array(
### Lib-Curl Consumer
-The [lib-curl consumer](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/LibCurl.php) is a reliable option for low-volume sources or if you want fast response times under light loads. The library runs synchronously, queuing calls and sending them in batches to Segment's servers. By default, this happens every 100 calls, or at the end of serving the page. By default, we ignore http responses to optimize the library's speed, but you can choose to wait for these responses by enabling debug mode.
+The [lib-curl consumer](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/LibCurl.php) is a reliable option for low-volume sources or if you want fast response times under light loads. The library runs synchronously, queuing calls and sending them in batches to Segment's servers. By default, this happens every 100 calls, or at the end of serving the page. By default, Segment ignores http responses to optimize the library's speed, but you can choose to wait for these responses by enabling debug mode.
If your servers are handling more than 20 requests per second, you may want to look at the [file consumer](#file-consumer) to optimize performance.
@@ -454,7 +454,7 @@ Segment::init("YOUR_WRITE_KEY", array(
### Socket Consumer
-If you can't spawn other processes from your PHP scripts, you can use the [socket consumer](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/Socket.php), which will allow you to make requests to Segment. Each time a track or identify call is made, it will initiate a socket request to our servers. The socket request is about as async as you can get with PHP, where the request will write the event data and close the connection before waiting for a response. However, if your servers are dealing with more than 100s of requests per second or cannot use a persistent connection, you may want to use one of the other consumers instead.
+If you can't spawn other processes from your PHP scripts, you can use the [socket consumer](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/Socket.php), which will allow you to make requests to Segment. Each time a track or identify call is made, it will initiate a socket request to Segment's servers. The socket request is about as async as you can get with PHP, where the request will write the event data and close the connection before waiting for a response. However, if your servers are dealing with more than 100s of requests per second or cannot use a persistent connection, you may want to use one of the other consumers instead.
To initialize the consumer explicitly, use `"consumer" => "socket"` as an entry in your `options` array.
@@ -485,7 +485,7 @@ Segment::init("YOUR_WRITE_KEY", array(
### File Consumer
-The [file consumer](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/File.php) is a more performant method for making requests to Segment. Each time a track or identify call is made, it will record that call to a log file. The log file is then uploaded "out of band" by running the `file.php` file found in [our github repository](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/File.php).
+The [file consumer](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/File.php) is a more performant method for making requests to Segment. Each time a track or identify call is made, it will record that call to a log file. The log file is then uploaded "out of band" by running the `file.php` file found in [the analytics-php repository](https://github.com/segmentio/analytics-php/blob/master/lib/Segment/Consumer/File.php).
To initialize this consumer explicitly, use `"consumer" => "file"` as an entry in your `options` array.
@@ -503,13 +503,13 @@ Segment::init("YOUR_WRITE_KEY", array(
-To upload your log file to segment.com, simply run the `send.php` file included as part of our repository.
+To upload your log file to segment.com, simply run the `send.php` file included as part of Segment's repository.
```bash
php send.php --secret YOUR_WRITE_KEY --file /tmp/analytics.log
```
-We recommend running this as part of a cron job every few minutes so that your log files stay manageable in size. Every time the `send.php` runs it will remove the old log file for you once it has finished processing.
+Segment recommends running this as part of a cron job every few minutes so that your log files stay manageable in size. Every time the `send.php` runs it will remove the old log file for you once it has finished processing.
The easiest way to do this is to create a new cron job to upload your log files. Using the defaults, this cron job must run as the www-user. You should run the following commands in your terminal, but change the location of the PHP script to point at your `analytics-php/send.php`
diff --git a/src/connections/sources/catalog/libraries/server/python/index.md b/src/connections/sources/catalog/libraries/server/python/index.md
index 042a5e77e2..6865963e44 100644
--- a/src/connections/sources/catalog/libraries/server/python/index.md
+++ b/src/connections/sources/catalog/libraries/server/python/index.md
@@ -7,7 +7,7 @@ Segment's Python library lets you record analytics data from your Python code. T
This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/analytics-python).
-All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make `identify` and `track` calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers using a separate thread.
+All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make Identify and Track calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers using a separate thread.
Want to stay updated on releases? Subscribe to the [release feed](https://github.com/segmentio/analytics-python/releases.atom).
@@ -64,11 +64,11 @@ analytics.send = False
> note ""
> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected.
-The `identify` lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
+The Identify method lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
-Segment recommends that you call `identify` once when the user's account is created, and later when their traits change.
+Segment recommends that you call Identify once when the user's account is created, and later when their traits change.
-Example `identify` call:
+Example Identify call:
```python
analytics.identify('019mr8mf4r', {
@@ -78,31 +78,31 @@ analytics.identify('019mr8mf4r', {
})
```
-The example `identify` call is identifying John by his unique User ID (the one you know him by in your database) and labeling him with `email`, `name` and `friends` traits.
+The example Identify call is identifying John by his unique User ID (the one you know him by in your database) and labeling him with `email`, `name` and `friends` traits.
-The `identify` call has the following fields:
+The Identify call has the following fields:
| Field | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `user_id` _string or int_ | The ID for this user in your database. |
| `traits` _dict, optional_ | A dict of traits you know about the user. Things like: `email`, `name` or `friends`. |
| `context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context) |
-| `timestamp` _datetime, optional_ | A `datetime` object representing when the `identify` took place. This is most useful if you import historical data. If the `identify` call just happened, leave it blank and Segment uses the server's time. |
+| `timestamp` _datetime, optional_ | A `datetime` object representing when the Identify call took place. This is most useful if you import historical data. If the Identify call just happened, leave it blank and Segment uses the server's time. |
| `anonymous_id` _string or int, optional_ | An anonymous session ID for this user. |
| `integrations` _dict, optional_ | A dictionary of destinations to enable or disable |
-Find details on the **identify method payload** in the [Spec](/docs/connections/spec/identify/).
+Find details on the **Identify method payload** in the [Segment Spec](/docs/connections/spec/identify/).
## Track
-`track` lets you record the actions your users perform. Every action triggers what Segment calls an "event", which can also have associated properties.
+Track lets you record the actions your users perform. Every action triggers what Segment calls an "event", which can also have associated properties.
You'll want to track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, Segment recommends tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example `track` call:
+Example Track call:
```python
analytics.track('f4ca124298', 'Signed Up', {
@@ -111,7 +111,7 @@ analytics.track('f4ca124298', 'Signed Up', {
```
This call informs Segment that your user just triggered the **Signed Up** event and chose your hypothetical `'Enterprise'` plan.
-`track` event properties can be anything you want to record, for example:
+Track event properties can be anything you want to record, for example:
```python
analytics.track('f4ca124298', 'Article Bookmarked', {
@@ -121,7 +121,7 @@ analytics.track('f4ca124298', 'Article Bookmarked', {
})
```
-The `track` method has the following fields:
+The Track method has the following fields:
| Field | Description |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -129,49 +129,49 @@ The `track` method has the following fields:
| `event` _string_ | The name of the event you're tracking. Use human-readable names like **Song Played** or **Status Updated**. |
| `properties` _dict, optional_ | A dictionary of properties for the event. If the event was **Product Added**, it might have properties like `price` or `product`. |
| `context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context) |
-| `timestamp` _datetime, optional_ | A `datetime` object representing when the `track` took place. This is most useful if you're importing historical data. If the `track` just happened, leave it blank to use the server's time. |
+| `timestamp` _datetime, optional_ | A `datetime` object representing when the Track took place. This is most useful if you're importing historical data. If the Track just happened, leave it blank to use the server's time. |
| `anonymous_id` _string or int, optional_ | An anonymous session ID for this user. |
| `integrations` _dict, optional_ | A dictionary of destinations to enable or disable |
-Find details on **best practices in event naming** as well as the **`track` method payload** in the [Spec](/docs/connections/spec/track/).
+Find details on **best practices in event naming** as well as the **Track method payload** in the [Segment Spec](/docs/connections/spec/track/).
## Page
-The [`page`](/docs/connections/spec/page) method lets you record page views on your website, along with optional extra information about the page being viewed.
+The [Page](/docs/connections/spec/page) method lets you record page views on your website, along with optional extra information about the page being viewed.
-If you use a client-side set up in combination with the Python library, page calls are **already tracked for you** by default. If you want to record your own page views manually and aren't using a client-side library, read on!
+If you use a client-side set up in combination with the Python library, page calls are **already tracked for you** by default. If you want to record your own page views manually and aren't using a client-side library, read on.
-Example `page` call:
+Example Page call:
```python
analytics.page('user_id', 'Docs', 'Python', {
'url': 'http://segment.com'
})
```
-The `page` call has the following fields:
+The Page call has the following fields:
| Field | Description |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `user_id` _string | The ID for the user that is a part of the group. |
-| `category` _string, optional_ | The category of the page. Useful for things like ecommerce where many pages often live under a larger category. |
+| `category` _string, optional_ | The category of the page. Useful for industries, like ecommerce, where many pages often live under a larger category. |
| `name` _string, optional_ | The name of the page, for example **Signup** or **Home**. |
| `properties` _dict, optional_ | The page properties. To see a reference of reserved page properties, see the spec [here](/docs/connections/spec/page/#properties). |
| `context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context) |
-| `timestamp` _datetime, optional_ | A `datetime` object representing when the `page` took place. This is most useful if you're importing historical data. If the `page` just happened, leave it blank to use the server's time. |
+| `timestamp` _datetime, optional_ | A `datetime` object representing when the Page took place. This is most useful if you're importing historical data. If the Page just happened, leave it blank to use the server's time. |
| `anonymous_id` _string or int, optional_ | An anonymous session ID for this user. |
| `integrations` _dict, optional_ | A dictionary of destinations to enable or disable |
-Find details on the **`page` method payload** in the [Spec](/docs/connections/spec/page/).
+Find details on the **Page method payload** in the [Segment Spec](/docs/connections/spec/page/).
## Screen
-The [`screen`](/docs/connections/spec/screen) method lets you record screen views on your mobile app, along with optional extra information about the screen being viewed.
+The [Screen](/docs/connections/spec/screen) method lets you record screen views on your mobile app, along with optional extra information about the screen being viewed.
If you use a Segment mobile SDK in combination with the library, screen calls are **already tracked for you** by default.If you want to record your own screen views manually and don't use a Segment SDK library, learn how below.
-Example `screen` call:
+Example Screen call:
```python
analytics.screen('user_id', 'Settings', 'Brightness', {
@@ -179,7 +179,7 @@ analytics.screen('user_id', 'Settings', 'Brightness', {
})
```
-The `screen` call has the following fields:
+The Screen call has the following fields:
| Field | Description |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -188,21 +188,21 @@ The `screen` call has the following fields:
| `name` _string, optional_ | The name of the page, for example **Signup** or **Home**. |
| `properties` _dict, optional_ | A dictionary of properties of the screen. |
| `context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context) |
-| `timestamp` _datetime, optional_ | A `datetime` object representing when the `screen` took place. This is most useful if you're importing historical data. If the `screen` just happened, leave it blank to use the server's time. |
+| `timestamp` _datetime, optional_ | A `datetime` object representing when the Screen took place. This is most useful if you're importing historical data. If the Screen just happened, leave it blank to use the server's time. |
| `anonymous_id` _string or int, optional_ | An anonymous session ID for this user. |
| `integrations` _dict, optional_ | A dictionary of destinations to enable or disable |
-Find details on the **`screen` method payload** in the [Spec](/docs/connections/spec/screen/).
+Find details on the **Screen method payload** in the [Segment Spec](/docs/connections/spec/screen/).
---
## Group
-`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/python/#identify) with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees.
+Group lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/python/#identify) with a group. A group could be a company, organization, account, project or team. It also lets you record custom traits about the group, like industry or number of employees.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
-Example `group` call:
+Example Group call:
```python
analytics.group('user_id', 'group_id', {
@@ -211,7 +211,7 @@ analytics.group('user_id', 'group_id', {
})
```
-The `group` call has the following fields:
+The Group call has the following fields:
| Field | Description |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -219,36 +219,36 @@ The `group` call has the following fields:
| `group_id` _string or number_ | The ID of the group. |
| `traits` _dict, optional_ | A dict of traits you know about the group. For a company, they might be things like `name`, `address`, or `phone`. |
| `context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context) |
-| `timestamp` _datetime, optional_ | A `datetime` object representing when the `group` took place. This is most useful if you're importing historical data. If the `group` just happened, leave it blank to use the server's time. |
+| `timestamp` _datetime, optional_ | A `datetime` object representing when the Group call took place. This is most useful if you're importing historical data. If the Group call just happened, leave it blank to use the server's time. |
| `anonymous_id` _string or int, optional_ | An anonymous session ID for this user. |
| `integrations` _dict, optional_ | A dictionary of destinations to enable or disable |
-Find more details about `group` including the **`group` method payload** in the [Spec](/docs/connections/spec/group/).
+Find more details about Group, including the **Group method payload**, in the [Segment Spec](/docs/connections/spec/group/).
## Alias
-`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of Segment's destinations.
+Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of Segment's destinations.
-In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias) if your user switches IDs, you can use 'alias' to rename the 'userId'.
+In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias) if your user switches IDs, you can use Alias to rename the 'userId'.
-Example `alias` call:
+Example Alias call:
```python
analytics.alias(previous_id, user_id)
```
-The `alias` call has the following fields:
+The Alias call has the following fields:
| Field | Description |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `previous_id` _string_ | The previous ID for this user to alias from. |
| `user_id` _string_ | The user ID to alias to. |
| `context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context) |
-| `timestamp` _datetime, optional_ | A `datetime` object representing when the `track` took place. This is most useful if you're importing historical data. If the `track` just happened, leave it blank to use the server's time. |
+| `timestamp` _datetime, optional_ | A `datetime` object representing when the Alias took place. This is most useful if you're importing historical data. If the Alias just happened, leave it blank to use the server's time. |
| `integrations` _dict, optional_ | A dictionary of destinations to enable or disable |
-Here's a full example of how Segment might use the `alias` call:
+Here's a full example of how Segment might use the Alias call:
```python
# the anonymous user does actions under an anonymous ID
@@ -264,7 +264,7 @@ analytics.identify('1234', { plan: 'Free' })
analytics.track('1234', 'Identified Action')
```
-For more details about `alias` including the **`alias` call payload**, see the [Spec](/docs/connections/spec/alias/).
+For more details about Alias, including the **Alias call payload**, see the [Segment Spec](/docs/connections/spec/alias/).
## Historical import
@@ -316,7 +316,7 @@ datetime.datetime(2016, 6, 6, 1, 46, 33, 939388, tzinfo=tzoffset(None, 25200))
datetime.datetime(2016, 6, 6, 1, 46, 33, 939388, tzinfo=tzoffset(None, -25200))
```
-If you find yourself with a naive object, and know what timezone it should be in, you can also use [pytz](http://pytz.sourceforge.net/) to create an aware `datetime` object from the naive one:
+If you find yourself with a naive object, and know what timezone it should be in, you can also use [pytz](http://pytz.sourceforge.net/){:target="_blank”} to create an aware `datetime` object from the naive one:
```python
>>> import datetime
@@ -329,7 +329,7 @@ If you find yourself with a naive object, and know what timezone it should be in
'2016-06-05T21:52:14.499635-07:00'
```
-The [pytz documentation](http://pytz.sourceforge.net/#example-usage) contains some good additional information on timezone usage, as well as how to handle some of the more interesting edge cases.
+The [pytz documentation](http://pytz.sourceforge.net/#example-usage){:target="_blank”} contains some good additional information on timezone usage, as well as how to handle some of the more interesting edge cases.
Whatever your method, make sure you use aware `datetime` objects when importing your data or it will be in the wrong timezone.
@@ -369,9 +369,9 @@ analytics.flush()
## Selecting destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
-Here's an example `track` call with the `integrations` object shown.
+Here's an example Track call with the `integrations` object shown.
```python
analytics.track('9742', 'Song Played', integrations={
@@ -458,7 +458,7 @@ Client('YOUR_WRITE_KEY', debug=True, on_error=on_error, send=True,
| `debug` _bool_ | `True` to log more verbosely, `False` by default. |
| `send` _bool_ | `False` to avoid sending data to Segment, `True` by default. |
| `on_error` _function_ | Set an error handler to be called whenever errors occur |
-| `max_queue_size` _int_ | Maximum number of elements allowed in the queue. If this condition is ever reached, that means you're identifying / tracking faster than you can flush. If this happens, [let us know](https://segment.com/help/contact/)! |
+| `max_queue_size` _int_ | Maximum number of elements allowed in the queue. If this condition is ever reached, that means you're identifying / tracking faster than you can flush. If this happens, [let Segment know](https://segment.com/help/contact/). |
| `upload_interval` _float_ | The frequency, in seconds, to send data to Segment. Default value is 0.5. |
| `upload_size` _int_ | Number of items in a batch to upload. Default value is 100. |
| `gzip` _bool_ | `True` to compress data with gzip before sending, `False` by default. |
diff --git a/src/connections/sources/catalog/libraries/server/ruby/index.md b/src/connections/sources/catalog/libraries/server/ruby/index.md
index 1af8d659e6..8e442fa0b2 100644
--- a/src/connections/sources/catalog/libraries/server/ruby/index.md
+++ b/src/connections/sources/catalog/libraries/server/ruby/index.md
@@ -9,7 +9,7 @@ Segment's Ruby library lets you record analytics data from your ruby code. The r
This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/analytics-ruby).
-All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make `identify` and `track` calls non-blocking and fast. It also batches messages and flushes asynchronously to our servers.
+All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make Identify and Track calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
Want to stay updated on releases? Subscribe to the [release feed](https://github.com/segmentio/analytics-ruby/releases.atom).
@@ -53,9 +53,9 @@ If you're using Rails, you can stick that initialization logic in `config/initia
> note ""
> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected.
-The `identify` method is how you associate your users and their actions to a recognizable `userId` and `traits`. You can [find details on the identify method payload in the Spec](/docs/connections/spec/identify/).
+The Identify method is how you associate your users and their actions to a recognizable `userId` and `traits`. You can [find details on the identify method payload in the Spec](/docs/connections/spec/identify/).
-The `identify` call has the following fields:
+The Identify call has the following fields:
@@ -100,7 +100,7 @@ The `identify` call has the following fields:
-Example `identify`:
+Example Identify:
```ruby
Analytics.identify(
@@ -108,13 +108,13 @@ Analytics.identify(
traits: { email: "#{ user.email }", friends: 872 },
context: {ip: '8.8.8.8'})
```
-This example call will identify your user by their unique User ID (the one you know him by in your database) and label them with `email` and `friends` traits.
+This example call identifies your user by their unique User ID (the one you know him by in your database) and labels them with `email` and `friends` traits.
## Track
-The `track` method lets you record any actions your users perform. You can find details on [the track method payload](/docs/connections/spec/track).
+The Track method lets you record any actions your users perform. You can find details on [the Track method payload](/docs/connections/spec/track).
-The `track` call has the following fields:
+The Track call has the following fields:
@@ -135,7 +135,7 @@ The `track` call has the following fields:
`event` |
String |
- The name of the event you're tracking. We recommend human-readable names like Song Played or Status Updated. |
+ The name of the event you're tracking. Segment recommends human-readable names like Song Played or Status Updated. |
`properties`, optional |
@@ -166,9 +166,9 @@ The `track` call has the following fields:
You should track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, we recommend tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example `track` call:
+Example Track call:
```ruby
Analytics.track(
@@ -177,9 +177,9 @@ Analytics.track(
properties: { revenue: 39.95, shipping: '2-day' })
```
-This example `track` call tells us that your user just triggered the **Item Purchased** event with a revenue of $39.95 and chose your hypothetical '2-day' shipping.
+This example Track call tells you that your user just triggered the **Item Purchased** event with a revenue of $39.95 and chose your hypothetical '2-day' shipping.
-`track` event properties can be anything you want to record, for example:
+Track event properties can be anything you want to record, for example:
```ruby
Analytics.track(
@@ -192,15 +192,15 @@ Analytics.track(
})
```
-For more information about choosing which events to track, event naming and more, check out [Analytics Academy](https://segment.com/academy/)
+For more information about choosing which events to track, event naming and more, check out [Analytics Academy](https://segment.com/academy/).
## Page
-The [`page`](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
+The [Page](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
-If you're using our client-side set up in combination with the Ruby library, page calls are **already tracked for you** by default. However, if you want to record your own page views manually and aren't using our client-side library, read on!
+If you're using Segment's client-side set up in combination with the Ruby library, page calls are **already tracked for you** by default. However, if you want to record your own page views manually and aren't using the client-side library, read on.
-The `page` call has the following fields:
+The Page call has the following fields:
@@ -226,7 +226,7 @@ The `page` call has the following fields:
`category` optional |
String |
- The category of the page. Useful for things like ecommerce where many pages might live under a larger category. _Note: if you only pass one string to `page` we assume it's a `name`, not a `category`. You **must** include a `name` if you want to send a `category`._ |
+ The category of the page. Useful for industries, like ecommerce, where many pages might live under a larger category. _Note: if you only pass one string to Page, Segment assumes it's a `name`, not a `category`. You **must** include a `name` if you want to send a `category`._ |
`properties`, optional |
@@ -255,7 +255,7 @@ The `page` call has the following fields:
-Example `page` call:
+Example Page call:
```ruby
Analytics.page(
@@ -265,15 +265,15 @@ Analytics.page(
properties: { url: 'https://segment.com/libraries/ruby/' })
```
-Find details on the **`page` payload** in our [Spec](/docs/connections/spec/page/).
+Find details on the **Page payload** in the [Segment Spec](/docs/connections/spec/page/).
## Group
-The `group` method associates an [identified user](/docs/connections/sources/catalog/libraries/website/javascript/#identify) with a company, organization, project, workspace, team, tribe, platoon, assemblage, cluster, troop, gang, party, society or any other name you came up with for the same concept.
+The Group method associates an [identified user](/docs/connections/sources/catalog/libraries/website/javascript/#identify) with a company, organization, project, workspace, team, tribe, platoon, assemblage, cluster, troop, gang, party, society or any other name you came up with for the same concept.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
-The `group` call has the following fields:
+The Group call has the following fields:
@@ -318,7 +318,7 @@ The `group` call has the following fields:
-Example `group` call:
+Example Group call:
```ruby
Analytics.group(
@@ -327,20 +327,20 @@ Analytics.group(
traits: { name: 'Initech', description: 'Accounting Software'})
```
-Find more details about `group` including the **`group` payload** in our [Spec](/docs/connections/spec/group/).
+Find more details about Group including the **Group payload** in the [Segment Spec](/docs/connections/spec/group/).
## Alias
-`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations.
+Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* destinations.
-In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'.
+In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use Alias to rename the 'userId'.
- `alias` method definition:
+ Alias method definition:
```ruby
Analytics.alias(previous_id: 'previous id', user_id: 'new id')
```
-The `alias` call has the following fields:
+The Alias call has the following fields:
@@ -355,7 +355,7 @@ The `alias` call has the following fields:
-Here's a full example of how we might use the `alias` call:
+Here's a full example of how you might use the Alias call:
```ruby
# the anonymous user does actions ...
@@ -368,7 +368,7 @@ Analytics.identify(user_id: 'user id', traits: { plan: 'Free' })
Analytics.track(user_id: 'user id', event: 'Identified Action')
```
-For more details about `alias`, including the **`alias` call payload**, check out our [Spec](/docs/connections/spec/alias/).
+For more details about Alias, including the **Alias call payload**, check out the [Segment Spec](/docs/connections/spec/alias/).
---
## Historical Import
@@ -377,13 +377,13 @@ You can import historical data by adding the `timestamp` argument to any of your
Historical imports can only be done into destinations that can accept historical timestamped data. Most analytics tools like Mixpanel, Amplitude, Kissmetrics, etc. can handle that type of data just fine. One common destination that does not accept historical data is Google Analytics since their API cannot accept historical data.
-**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and our servers will timestamp the requests for you.
+**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and Segment's servers will timestamp the requests for you.
## Selecting Destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an object of `integrations` that lets you turn certain destinations on or off. By default all destinations are enabled.
-Here's an example `track` call with the `integrations` object shown.
+Here's an example Track call with the `integrations` object shown.
```ruby
Analytics.track({
@@ -393,23 +393,23 @@ Analytics.track({
})
```
-In this case, we're specifying that we want this identify to only go to Kissmetrics. `all: false` says that no destination should be enabled unless otherwise specified. `Kissmetrics: true` turns on Kissmetrics, etc.
+In this case, you're specifying that you want this identify to only go to Kissmetrics. `All: false` says that no destination should be enabled unless otherwise specified, and `Kissmetrics: true` turns on Kissmetrics.
-Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.).
+Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", or "MailChimp").
**Note:**
-- Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
+- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
-- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard will still count towards your API usage.
+- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage.
## Performance
-Our libraries are built to support high performance environments. That means it is safe to use analytics-ruby on a web server that's serving hundreds of requests per second.
+Segment's libraries are built to support high performance environments. That means it is safe to use analytics-ruby on a web server that's serving hundreds of requests per second.
Every method you call **does not** result in an HTTP request, but is queued in memory instead. Messages are flushed in batch in the background, which allows for much faster operation.
-By default, our library will flush:
+By default, Segment's library will flush:
+ the very first time it gets a message
+ whenever messages are queued and there is no outstanding request
@@ -480,7 +480,7 @@ Instead of having the entire snippet in the `` of your site, you need to m
## Serialization
-The Ruby library will automatically handle serializating your data into JSON for our servers. It uses [`JSON.generate`](http://ruby-doc.org/stdlib-2.0.0/libdoc/json/rdoc/JSON.html#method-i-generate) under the hood. Note that `BigDecimal` values are intentionally sent as Strings rather than floats so that our Node servers don't lose precision. If you'd prefer to use a float, you can coerce values to a float before sending the data to Segment.
+The Ruby library will automatically handle serializating your data into JSON for Segment's servers. It uses [`JSON.generate`](http://ruby-doc.org/stdlib-2.0.0/libdoc/json/rdoc/JSON.html#method-i-generate) under the hood. Note that `BigDecimal` values are intentionally sent as Strings rather than floats so that our Node servers don't lose precision. If you'd prefer to use a float, you can coerce values to a float before sending the data to Segment.
## Multiple Clients
diff --git a/src/connections/sources/catalog/libraries/server/rust/index.md b/src/connections/sources/catalog/libraries/server/rust/index.md
index 27cad06317..50544137cc 100644
--- a/src/connections/sources/catalog/libraries/server/rust/index.md
+++ b/src/connections/sources/catalog/libraries/server/rust/index.md
@@ -7,7 +7,7 @@ hidden: true
support_type: community
---
-Our Rust library lets you record analytics data from your Rust code. The requests hit our servers, and then we route your data to any analytics service you enable on your destinations page.
+Segment's Rust library lets you record analytics data from your Rust code. The requests hit Segment's servers, and then Segment routes your data to any destinations you configured.
This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/analytics-rust).
@@ -75,14 +75,14 @@ The default initialization settings are production-ready.
## Identify
-> note ""
-> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected.
+> info ""
+> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected.
-`identify` lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
+Identify lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them.
-We recommend calling `identify` a single time when the user's account is first created, and only identifying again later when their traits change.
+Segment recommends calling Identify a single time when the user's account is first created, and only identifying again later when their traits change.
-Example `identify` call:
+Example Identify call:
```rust
Identify{
@@ -97,9 +97,9 @@ Identify{
}
```
-This call is identifying Michael by his unique User ID (the one you know him by in your database) and label him with `name`, `email`, `plan` and `friends` traits.
+This call is identifying Michael by his unique User ID (the one you know him by in your database) and labeling him with `name`, `email`, `plan` and `friends` traits.
-The `identify` call has the following fields:
+The Identify call has the following fields:
@@ -112,17 +112,17 @@ The `identify` call has the following fields:
-Find details on the **identify method payload** in our [Spec](/docs/connections/spec/identify/).
+Find details on the **identify method payload** in the [Segment Spec](/docs/connections/spec/identify/).
## Track
-`track` lets you record the actions your users perform.Every action triggers what we call an "event", which can also have associated properties.
+Track lets you record the actions your users perform.Every action triggers what Segment calls an "event", which can also have associated properties.
You'll want to track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**.
-To get started, we recommend tracking just a few important events. You can always add more later!
+To get started, Segment recommends tracking just a few important events. You can always add more later.
-Example `track` call:
+Example Track call:
```rust
Track {
@@ -135,7 +135,7 @@ Track {
}
```
-This example `track` call tells us that your user just triggered the **Signed Up** event choosing the "Enterprise" plan.
+This example `track` call tells you that your user just triggered the **Signed Up** event choosing the "Enterprise" plan.
`track` event properties can be anything you want to record. In this case, plan type.
@@ -144,7 +144,7 @@ The `track` call has the following fields:
`event` _String_ |
- The name of the event you're tracking. We recommend human-readable names like **Song Played** or **Status Updated**. |
+ The name of the event you're tracking. Segment recommends human-readable names like **Song Played** or **Status Updated**. |
`properties` _Properties, optional_ |
@@ -152,15 +152,15 @@ The `track` call has the following fields:
-Find details on **best practices in event naming** as well as the **`track` method payload** in our [Spec](/docs/connections/spec/track/).
+Find details on **best practices in event naming** as well as the **`track` method payload** in the [Segment Spec](/docs/connections/spec/track/).
## Page
-The [`page`](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
+The [Page](/docs/connections/spec/page/) method lets you record page views on your website, along with optional extra information about the page being viewed.
-If you're using our client-side set up in combination with the Rust library, **page calls are already tracked for you** by default. However, if you want to record your own page views manually and aren't using our client-side library, read on!
+If you're using Segment's client-side set up in combination with the Rust library, **page calls are already tracked for you** by default. However, if you want to record your own page views manually and aren't using the client-side library, read on.
-Example `page` call:
+Example Page call:
```rust
Page {
@@ -173,12 +173,12 @@ Page {
}
```
-The `page` call has the following fields:
+The Page call has the following fields:
`name` _String_ |
- The webpage name you're tracking. We recommend human-readable names like **Login** or **Register**. |
+ The webpage name you're tracking. Segment recommends human-readable names like **Login** or **Register**. |
`properties` _Properties, optional_ |
@@ -186,15 +186,15 @@ The `page` call has the following fields:
-Find details on the **`page` payload** in our [Spec](/docs/connections/spec/page/).
+Find details on the **`page` payload** in the [Segment Spec](/docs/connections/spec/page/).
## Group
-`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/node/#identify) with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees.
+Group lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/node/#identify) with a group. A group could be a company, organization, account, project or team. It also lets you record custom traits about the group, like industry or number of employees.
This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users.
-Example `group` call:
+Example Group call:
```Rust
Group {
@@ -208,7 +208,7 @@ Group {
}
```
-The `group` call has the following fields:
+The Group call has the following fields:
@@ -221,15 +221,15 @@ The `group` call has the following fields:
-Find more details about `group` including the **`group` payload** in our [Spec](/docs/connections/spec/group/).
+Find more details about Group including the **Group payload** in the [Segment Spec](/docs/connections/spec/group/).
## Alias
-`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations.
+Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* destinations.
In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'.
-Example `alias` call:
+Example Alias call:
```rust
Alias {
@@ -238,7 +238,7 @@ Alias {
}
```
-The `alias` call has the following fields:
+The Alias call has the following fields:
@@ -251,7 +251,7 @@ The `alias` call has the following fields:
-Here's a full example of how we might use the `alias` call:
+Here's a full example of how you might use the Alias call:
```rust
// the anonymous user does actions ...
@@ -290,15 +290,15 @@ Track {
}
```
-For more details about `alias`, including the **`alias` call payload**, check out our [Spec](/docs/connections/spec/alias/).
+For more details about Alias, including the **Alias call payload**, check out the [Segment Spec](/docs/connections/spec/alias/).
---
## Selecting Destinations
-The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `context.integrations` that lets you turn certain integrations on or off. By default all destinations are enabled.
+The Alias, Group, Identify, Page, and Track calls can all be passed an object of `context.integrations` that lets you turn certain integrations on or off. By default all destinations are enabled.
-Here's an example `track` call with the `context.integrations` object shown.
+Here's an example Track call with the `context.integrations` object shown.
```rust
Track {
@@ -312,15 +312,15 @@ Track {
}
```
-In this case, we're specifying that we want this `Track` to only go to Vero. `All: false` says that no destination should be enabled unless otherwise specified. `Vero: true` turns on Vero, etc.
+In this case, you're specifying that this Track event should to only go to Vero. `All: false` says that no destination should be enabled unless otherwise specified. `Vero: true` turns on Vero.
-Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.).
+Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", or "MailChimp").
**Note:**
-- Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
+- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side.
-- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard will still count towards your API usage.
+- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage.
## Historical Import
@@ -328,7 +328,7 @@ You can import historical data by adding the `timestamp` argument to any of your
Historical imports can only be done into destinations that can accept historical timestamped data. Most analytics tools like Mixpanel, Amplitude, Kissmetrics, etc. can handle that type of data just fine. One common destination that does not accept historical data is Google Analytics since their API cannot accept historical data.
-**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and our servers will timestamp the requests for you.
+**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and Segment's servers will timestamp the requests for you.
## Context
@@ -373,8 +373,8 @@ Identify{
## Batching
-Our libraries are built to support high performance environments using Batch Message. Until Rust's async IO story matures we're
-leaving the flushing of Messages up to you to implement.
+Segment's libraries are built to support high performance environments using Batch Message. Until Rust's async IO story matures, Segment will
+leave the flushing of Messages up to you to implement.
There is a maximum of `500KB` per batch request and `32KB` per call.
From 7fa39aeb0d087feb17cbb1f1b5ac415ce13d59bd Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Thu, 30 May 2024 13:59:18 -0400
Subject: [PATCH 4/5] Update
src/_includes/content/server-side-troubleshooting.md
Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com>
---
src/_includes/content/server-side-troubleshooting.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/_includes/content/server-side-troubleshooting.md b/src/_includes/content/server-side-troubleshooting.md
index 3a74fc3f6c..3e54a79c8a 100644
--- a/src/_includes/content/server-side-troubleshooting.md
+++ b/src/_includes/content/server-side-troubleshooting.md
@@ -5,7 +5,7 @@
If you are experiencing data loss from your {{ currentIntegration.display_name }} source, you may be experiencing one or more of the following common errors:
-- **Payload is too large**: If you attempt to send events larger 32KB per normal API request or batches of events larger than 500KB per request, Segment’s tracking API responds with `400 Bad Request`. Try sending smaller events (or smaller batches) to correct this error.
+- **Payload is too large**: If you attempt to send events larger than 32KB per normal API request or batches of events larger than 500KB per request, Segment’s tracking API responds with `400 Bad Request`. Try sending smaller events (or smaller batches) to correct this error.
- **Identifier is not present**: Segment's tracking API requires that each payload has a `userId` and/or `anonymousId`. If you send events without either the `userId` or `anonymousId`, Segment's tracking API responds with an `no_user_anon_id` error. Check the event payload and client instrumentation for more details.
From 36036306b37db864d045c29ad7a9ada00d3dda62 Mon Sep 17 00:00:00 2001
From: forstisabella <92472883+forstisabella@users.noreply.github.com>
Date: Thu, 30 May 2024 13:59:25 -0400
Subject: [PATCH 5/5] Update
src/connections/sources/catalog/libraries/server/clojure/index.md
Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com>
---
.../sources/catalog/libraries/server/clojure/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/connections/sources/catalog/libraries/server/clojure/index.md b/src/connections/sources/catalog/libraries/server/clojure/index.md
index 84bcff5978..2b736ab00b 100644
--- a/src/connections/sources/catalog/libraries/server/clojure/index.md
+++ b/src/connections/sources/catalog/libraries/server/clojure/index.md
@@ -10,7 +10,7 @@ The clojure library lets you record analytics data from your clojure code. The r
The library is open-source and was contributed by [CircleCI](https://circleci.com/){:target="_blank"}. You can [check it out on GitHub](https://github.com/circleci/analytics-clj){:target="_blank"}. The clojure library is a wrapper around Segment's [Java library](https://github.com/segmentio/analytics-java){:target="_blank"}.
-The clojure library (like Segment's other server side libraries) is built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
+The Clojure library (like Segment's other server side libraries) is built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers.
## Getting Started