diff --git a/src/_includes/content/syntax-note.md b/src/_includes/content/syntax-note.md index c75b1033d6..069f53f795 100644 --- a/src/_includes/content/syntax-note.md +++ b/src/_includes/content/syntax-note.md @@ -1 +1 @@ -

Based on the library you use, the syntax in the examples might be different. You can find library-specific documentation on the [Sources Overview](/docs/connections/sources/) page.

+

Based on the library you use, the syntax in the examples might be different. You can find library-specific documentation on the [Sources Overview](/docs/connections/sources/) page.

diff --git a/src/connections/delivery-overview.md b/src/connections/delivery-overview.md index 411103b61c..52db4bcc67 100644 --- a/src/connections/delivery-overview.md +++ b/src/connections/delivery-overview.md @@ -6,8 +6,6 @@ Delivery Overview is a visual observability tool designed to help Segment users > info "Delivery Overview is currently in beta" > This means that the Delivery Overview feature is in active development, and some functionality may change before it becomes generally available. Beta users of Delivery Overview will still have access to the Event Delivery tab. During the public beta, Delivery Overview will only support event-streaming, cloud-mode destinations. -> -> The Delivery Overview public beta will be released to all Segment users on May 23, 2023 in a phased rollout. Users can expect to see the Delivery Overview tab in their destination details page by 5 PM PDT on May 26, 2023. ## Key features diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index fba0f78900..8bc45c2fc6 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -35,6 +35,8 @@ By using Segment's TikTok Audiences destination, you can increase traffic and dr 7. Navigate to the **Mappings** tab, click **New Mapping**, and select **Add Users**. 8. Under Select mappings, select the TikTok "Advertiser ID" of the audience segment you want to add users to. Input the `audience_id` of that audience segment under "Audience ID." **Note: A separate mapping must be created for each audience segment you plan to send Engage audiences to.** +> info "" +> Once you've created the audience using the name of Segment's audience key, you can get the Audience ID from TikTok's Assets>Audiences page. You'll also find the Advertised ID, noted by `aadvid`, over the TikTok URL. 9. Repeat Steps 7 and 8 to also set up a **Remove Users** mapping. diff --git a/src/connections/destinations/catalog/castle/index.md b/src/connections/destinations/catalog/castle/index.md index f9e10de956..68d967a29a 100644 --- a/src/connections/destinations/catalog/castle/index.md +++ b/src/connections/destinations/catalog/castle/index.md @@ -4,6 +4,12 @@ id: 56a8f566e954a874ca44d3b0 --- [Castle](https://castle.io/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} monitors every step of the customer journey to help visualize and proactively block fraud that would otherwise fly under the radar. Types of fraud or abuse that can be managed include bots, fake accounts, multi-accounting, and account sharing. +The Castle destination source code is available on GitHub. Source code for the following integrations are available: + +- [iOS](https://github.com/castle/analytics-ios-integration-castle){:target="_blank"} +- [Android](https://github.com/castle/analytics-kotlin-integration-castle){:target="_blank"} +- [Web](https://github.com/segmentio/analytics.js-integrations/tree/master/integrations/castle){:target="_blank"} + Castle maintains this destination. For any issues with the destination, contact the [Castle support team](mailto:support@castle.io). ## Getting Started @@ -16,11 +22,61 @@ Calls are now visible in Castle dashboards in real-time. > info "" > Castle ingests Segment Client-side events. Server-side events are dropped and not processed. -> Castle only supports web integrations through Segment, but is in the process of working on mobile support. +> Castle supports web, Android and iOS integrations through Segment. + +### iOS + +1. Add the Castle Segment dependency + + - With Xcode: + + In the Xcode **File** menu, click **Add Packages**. In the resulting dialog dialog where you can search for Swift packages. In the search field, enter the URL to this repository: `https://github.com/castle/analytics-ios-integration-castle` + + You can optionally pin the package to a specific branch or version, and select the project in your workspace to which you'll add the package. When you're done, click **Add Package**. + + - With Package.swift: + ``` + .package( + name: "SegmentCastle", + url: "https://github.com/castle/analytics-ios-integration-castle", + from: "1.0.0" + ), + ``` + +2. Next, add the Castle destination to your analytics instance: + ```swift + let analytics = Analytics(configuration: Configuration(writeKey: "")) + + let castleDestination = CastleDestination(userJwt: "") + analytics.add(plugin: castleDestination) + ``` + +### Android +1. You can add the Castle Segment dependency two ways: + + - Add this line to your gradle file: + + ``` + implementation 'com.segment.analytics.kotlin.destinations:castle:' + ``` + + - Add the following for Kotlin DSL: + + ``` + implementation("com.segment.analytics.kotlin.destinations:castle:") + ``` + +2. Next, add the Castle destination to your analytics instance: + + ```kotlin + analytics = Analytics("", applicationContext) + analytics.add(plugin = CastleDestination(userJwt = "")) + ``` + ## Page @@ -30,8 +86,6 @@ If you're not familiar with the Segment Specs, take a look to understand what th analytics.page() ``` - - Segment sends Page calls to Castle as `$page` events. diff --git a/src/connections/destinations/catalog/customfit-ai/index.md b/src/connections/destinations/catalog/customfit-ai/index.md index 754edd5ad9..89cba99444 100644 --- a/src/connections/destinations/catalog/customfit-ai/index.md +++ b/src/connections/destinations/catalog/customfit-ai/index.md @@ -2,6 +2,8 @@ title: CustomFit Destination rewrite: true id: 5cee939ff784ec0001f1cf91 +hidden: true +published: false --- [CustomFit.ai](https://customfit.ai/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners) is an intelligent `App Experience Engine` for B2C apps(Mobile/Web/IoT), with which one can effortlessly craft hyper-personalized app experiences & alternative user journeys to each of their user or segment of users with zero code. Every user is unique, so should be your app. diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/index.md b/src/connections/sources/catalog/libraries/mobile/react-native/index.md index 01b488f473..639c507c46 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/index.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/index.md @@ -36,8 +36,8 @@ To get started with the Analytics for React Native library: # or npm install --save @react-native-async-storage/async-storage ``` - > info "" - >If you wish to use your own persistence layer you can use the storePersistor option when initializing the client. Make sure you always have a persistor (either by having AsyncStorage package installed or by explicitly passing a value), else you might get unexpected side effects like multiple 'Application Installed' events + + To use your own persistence layer you can use the storePersistor option when initializing the client. Make sure you always have a persistor (either by having AsyncStorage package installed or by explicitly passing a value), else you might get unexpected side effects like multiple 'Application Installed' events 4. If you're using iOS, install native modules with: diff --git a/src/connections/spec/common.md b/src/connections/spec/common.md index 675c516309..8620baa57b 100644 --- a/src/connections/spec/common.md +++ b/src/connections/spec/common.md @@ -116,25 +116,25 @@ Beyond this common structure, each API call adds a few specialized top-level fie Context is a dictionary of extra information that provides useful context about a datapoint, for example the user's `ip` address or `locale`. You should **only use** Context fields for their intended meaning. -| Field | Type | Description | -| -------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `active` | Boolean | Whether a user is active.

This is usually used to flag an `.identify()` call to just update the traits but not "last seen." | -| `app` | Object | dictionary of information about the current application, containing `name`, `version`, and `build`.

This is collected automatically from the mobile libraries when possible. | -| `campaign` | Object | Dictionary of information about the campaign that resulted in the API call, containing `name`, `source`, `medium`, `term`, `content`, and any other custom UTM parameter.

This maps directly to the common UTM campaign parameters. | -| `device` | Object | Dictionary of information about the device, containing `id`, `advertisingId`, `manufacturer`, `model`, `name`, `type`, and `version`. | -| `ip` | String | Current user's IP address. | -| `library` | Object | Dictionary of information about the library making the requests to the API, containing `name` and `version`. | -| `locale` | String | Locale string for the current user, for example `en-US`. | -| `network` | Object | Dictionary of information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline. | -| `os` | Object | Dictionary of information about the operating system, containing `name` and `version`. | -| `page` | Object | Dictionary of information about the current page in the browser, containing `path`, `referrer`, `search`, `title` and `url`. This is automatically collected by [Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/#context--traits). | -| `referrer` | Object | Dictionary of information about the way the user was referred to the website or app, containing `type`, `name`, `url`, and `link`. | -| `screen` | Object | Dictionary of information about the device's screen, containing `density`, `height`, and `width`. | -| `timezone` | String | Timezones are sent as tzdata strings to add user timezone information which might be stripped from the timestamp, for example `America/New_York`. | -| `groupId` | String | Group / Account ID.

This is useful in B2B use cases where you need to attribute your non-group calls to a company or account. It is relied on by several Customer Success and CRM tools. | -| `traits` | Object | Dictionary of `traits` of the current user.

This is useful in cases where you need to `track` an event, but also associate information from a previous `identify` call. You should fill this object the same way you would fill traits in an [identify call](/docs/connections/spec/identify/#traits). | -| `userAgent` | String | User agent of the device making the request. | -| `channel` | String | where the request originated from: server, browser or mobile | +| Field | Type | Description | +| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `active` | Boolean | Whether a user is active.

This is usually used to flag an `.identify()` call to just update the traits but not "last seen." | +| `app` | Object | dictionary of information about the current application, containing `name`, `version`, and `build`.

This is collected automatically from the mobile libraries when possible. | +| `campaign` | Object | Dictionary of information about the campaign that resulted in the API call, containing `name`, `source`, `medium`, `term`, `content`, and any other custom UTM parameter.

This maps directly to the common UTM campaign parameters. | +| `device` | Object | Dictionary of information about the device, containing `id`, `advertisingId`, `manufacturer`, `model`, `name`, `type`, and `version`. | +| `ip` | String | Current user's IP address. | +| `library` | Object | Dictionary of information about the library making the requests to the API, containing `name` and `version`. | +| `locale` | String | Locale string for the current user, for example `en-US`. | +| `network` | Object | Dictionary of information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline. | +| `os` | Object | Dictionary of information about the operating system, containing `name` and `version`. | +| `page` | Object | Dictionary of information about the current page in the browser, containing `path`, `referrer`, `search`, `title` and `url`. This is automatically collected by [Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/#context--traits). | +| `referrer` | Object | Dictionary of information about the way the user was referred to the website or app, containing `type`, `name`, `url`, and `link`. | +| `screen` | Object | Dictionary of information about the device's screen, containing `density`, `height`, and `width`. | +| `timezone` | String | Timezones are sent as tzdata strings to add user timezone information which might be stripped from the timestamp, for example `America/New_York`. | +| `groupId` | String | Group / Account ID.

This is useful in B2B use cases where you need to attribute your non-group calls to a company or account. It is relied on by several Customer Success and CRM tools. | +| `traits` | Object | Dictionary of `traits` of the current user.

This is useful in cases where you need to `track` an event, but also associate information from a previous `identify` call. You should fill this object the same way you would fill traits in an [identify call](/docs/connections/spec/identify/#traits). | +| `userAgent` | String | User agent of the device making the request. | +| `channel` | String | where the request originated from: server, browser or mobile | ## Context fields automatically collected @@ -183,6 +183,9 @@ Other libraries only collect `context.library`, any other context variables must | timezone | | ✅ | ✅ | - IP Address isn't collected by Segment's libraries, but is instead filled in by Segment's servers when it receives a message for **client side events only**. +> info "IPv6 Addresses are not Supported" +> Segment does not support collection of IP addresses that are in the IPv6 format. + - The Android library collects `screen.density` with [this method](/docs/connections/spec/common/#context-fields-automatically-collected). To pass the context variables which are not automatically collected by Segment's libraries, you must manually include them in the event payload. The following code shows how to pass `groupId` as the context field of Analytics.js's `.track()` event: