From 4d9abfdd53c93f81e0788fb3d5765e396f1cfbcb Mon Sep 17 00:00:00 2001 From: Panandhan22 <115441424+Panandhan22@users.noreply.github.com> Date: Tue, 16 May 2023 15:01:04 +0800 Subject: [PATCH 1/7] TikTok Audience and Advertiser ID clarification. > info "" > You can get the "Audience ID" from "Assets->Audiences" page of TikTok once you have created the audience with the name of Segment's audience key. And the "Advertiser ID" can be visible over the TikTok URL as "aadvid". --- .../destinations/catalog/actions-tiktok-audiences/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index fba0f78900..9c2caa6a1b 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 "" +> You can get the "Audience ID" from "Assets->Audiences" page of TikTok once you have created the audience with the name of Segment's audience key. And the "Advertiser ID" can be visible over the TikTok URL as "aadvid". 9. Repeat Steps 7 and 8 to also set up a **Remove Users** mapping. From 91c62cc39017072e7cee3aa82b65495be2f8d37a Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Tue, 23 May 2023 15:31:07 -0700 Subject: [PATCH 2/7] Fix formatting issues --- src/_includes/content/syntax-note.md | 2 +- .../sources/catalog/libraries/mobile/react-native/index.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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/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: From a6b45abe32fd8e24116fa21eaaf47d89578d149f Mon Sep 17 00:00:00 2001 From: Sebastian Simson Date: Wed, 24 May 2023 23:17:03 +0200 Subject: [PATCH 3/7] Update castle docs include mobile destinations (#4782) * Update Castle destination documentation, include instructions for mobile * Add castle kotlin instructions * Update supported platforms * Update formatting and syntax --------- Co-authored-by: Alexander Simson Co-authored-by: markzegarelli --- .../destinations/catalog/castle/index.md | 60 ++++++++++++++++++- 1 file changed, 57 insertions(+), 3 deletions(-) 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. From 2f5d5a748d3f096da50ad568a68709d7a6dfe662 Mon Sep 17 00:00:00 2001 From: Thomas Gilbert <64277654+tcgilbert@users.noreply.github.com> Date: Wed, 24 May 2023 17:18:08 -0400 Subject: [PATCH 4/7] hide integration docs (#4767) * hide integration docs * Update src/connections/destinations/catalog/customfit-ai/index.md --------- Co-authored-by: markzegarelli --- src/connections/destinations/catalog/customfit-ai/index.md | 2 ++ 1 file changed, 2 insertions(+) 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. From 4eaaf4e2f341b60a89068c27368892461a425649 Mon Sep 17 00:00:00 2001 From: Jazma Foskin <82051355+jfoskin@users.noreply.github.com> Date: Wed, 24 May 2023 17:44:00 -0400 Subject: [PATCH 5/7] IPv6 not supported (#4757) * IPv6 not supported * Update to add note --------- Co-authored-by: markzegarelli --- src/connections/spec/common.md | 41 ++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 19 deletions(-) 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: From 78a047a09037b104808243b57a76ece76ba0a277 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Wed, 24 May 2023 17:04:48 -0500 Subject: [PATCH 6/7] Update index.md --- .../destinations/catalog/actions-tiktok-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index 9c2caa6a1b..8bc45c2fc6 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -36,7 +36,7 @@ By using Segment's TikTok Audiences destination, you can increase traffic and dr 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 "" -> You can get the "Audience ID" from "Assets->Audiences" page of TikTok once you have created the audience with the name of Segment's audience key. And the "Advertiser ID" can be visible over the TikTok URL as "aadvid". +> 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. From 8f0a945ea0eae51cdd6aa90ae2e530f04c5be2cc Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 24 May 2023 19:40:25 -0400 Subject: [PATCH 7/7] remove phased rollout note --- src/connections/delivery-overview.md | 2 -- 1 file changed, 2 deletions(-) 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