Skip to content

Commit 9bf15a6

Browse files
authored
Merge pull request #3332 from segmentio/develop
Release 22.31.2
2 parents fbec884 + 73878f9 commit 9bf15a6

File tree

11 files changed

+173
-300
lines changed

11 files changed

+173
-300
lines changed

.github/styles/Vocab/Docs/accept.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ async
2525
background(?:ed|ing)
2626
Blitzllama
2727
blocklist
28+
Bluedot
29+
bool
2830
boolean
2931
Breyta
3032
Chargebee
@@ -34,6 +36,7 @@ Cocoapods
3436
Contentful
3537
Criteo
3638
csv
39+
datetime
3740
deeplink
3841
Dev
3942
Doubleclick
@@ -44,8 +47,10 @@ eu
4447
Freshsales
4548
Friendbuy
4649
ga
50+
geofenc(?:e|ing)
4751
gmail
4852
Gradle
53+
gzip
4954
Heatmapping
5055
href
5156
html
@@ -87,6 +92,7 @@ Preact
8792
Rokt
8893
Selligent
8994
Shopify
95+
signup
9096
Skalin
9197
Smartly
9298
Snapchat
@@ -106,6 +112,4 @@ waitlist
106112
WebKit
107113
Wootric
108114
Xcode
109-
Zendesk
110-
geofenc(?:e|ing)
111-
Bluedot
115+
Zendesk

src/_data/actions/amplitude.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,9 @@ config:
198198
- name: Track Referrer to Amplitude
199199
connection_mode:
200200
- device-web
201-
configurable: false
201+
configurable: true
202202
location:
203-
notes: Not supported with Actions
203+
notes: Update the User Properties mapping to send `context.page.referrer`.
204204
- name: Track Revenue per Product
205205
connection_mode:
206206
- cloud
@@ -219,9 +219,9 @@ config:
219219
connection_mode:
220220
- cloud
221221
- device-web
222-
configurable: false
222+
configurable: true
223223
location:
224-
notes: Not supported with Actions
224+
notes: Supported by default. See the UTM Properties section to view the mappings.
225225
- name: Unset Params Referrer on New Session
226226
connection_mode:
227227
- device-web

src/connections/destinations/catalog/webhooks/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,4 +226,4 @@ Under 'Connection Settings', you can provide up to 5 webhooks.
226226

227227
### Retries
228228

229-
Our webhooks destination will retry any request that returns 5xx errors, multiple times, for a maximum of 4 hours.
229+
Segment retries requests that fail due to temporary errors like timeouts and 5xx status codes for up to four hours.

src/connections/destinations/destination-filters.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ title: Destination Filters
33
rewrite: true
44
---
55

6-
Destination Filters let you prevent certain data from flowing into a destination.
6+
Use Destination Filters to prevent certain data from flowing into a destination.
77

8-
Using Destination Filters, you can conditionally filter out event properties, traits, and fields, or even filter out the event itself.
8+
With Destination Filters, you can conditionally filter out event properties, traits, and fields, or even filter out the event itself.
99

1010
Common use cases for Destination Filters include the following:
1111

@@ -17,10 +17,11 @@ Common use cases for Destination Filters include the following:
1717
> note ""
1818
> Destination Filters are available to Business Tier customers only.
1919
20-
### Destination Filtering Limitations
20+
### Destination filtering limitations
2121

2222
Keep the following limitations in mind when you use Destination Filters:
2323

24+
- Segment applies Destination Filters one at a time in the order that they appear in your workspace.
2425
- Destination Filters can only be applied to cloud-mode (server-side) streaming destinations. Device-mode destinations aren't supported.
2526
- You can't apply Destination Filters to Warehouses or S3 destinations.
2627
- Each filter can only apply to one source-destination pair.
@@ -59,7 +60,7 @@ To learn more, read Segment's [Destination Filters API docs](https://reference.s
5960

6061
The following examples illustrate common Destinations Filters use cases.
6162

62-
### PII Management
63+
### PII management
6364

6465
Example: Remove email addresses from `context` and `properties`:
6566

@@ -68,19 +69,19 @@ Property-level allowlisting is available with Segment's API. Using Destination F
6869

6970
![PII management example](images/destination-filters/pii_example.png)
7071

71-
### Control Event Volume
72+
### Control event volume
7273

7374
This example shows a filter that controls event volume by only sending `User Signed Up` and `Demo Requested` events.
7475

7576
![Example of a filter that controls event volume](images/destination-filters/drop_example.png)
7677

77-
### Cleaner Data
78+
### Cleaner data
7879

7980
This example shows a rule that only sends track calls to Google Analytics.
8081

8182
![Example of a filter that only sends track calls to Google Analytics](images/destination-filters/clean_example.png)
8283

83-
### Remove Internal and Test Events From Production Tools
84+
### Remove internal and test events from production tools
8485

8586
This rule targets email addresses with internal domains to stop test events from reaching Destinations.
8687

@@ -90,15 +91,15 @@ This rule prevents an event from sending if `Order Completed` and `properties.em
9091

9192
![Internal domain filter example](images/destination-filters/internal_example2.png)
9293

93-
### Sample a Percentage of Events
94+
### Sample a percentage of events
9495

9596
Using the [Destination Filters API](https://reference.segmentapis.com/#6c12fbe8-9f84-4a6c-848e-76a2325cb3c5){:target="_blank"}, you can create a rule to randomly sample video heartbeat events.
9697

97-
### Drop Events
98+
### Drop events
9899

99100
[Watch this Destination Filters walkthrough](https://www.youtube.com/watch?v=47dhAF1Hoco){:target="_blank"} to learn how to use event names to filter events sent to destinations.
100101

101-
## Important Notes
102+
## Important notes
102103

103104
**Conflicting settings**
104105

src/connections/functions/destination-functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ Yes, Functions access is logged in the [Audit Trail](/docs/segment-app/iam/audit
452452

453453
##### Does Segment retry failed function invocations?
454454

455-
Segment retries 9 times over the course of 4 hours. This increases the number of attempts for messages, so Segment tries to re-deliver them another 4 times after some backoff. Segment doesn't retry if your function throws a [non-recoverable error](#errors-and-error-handling).
455+
Segment retries invocations that throw RetryError or Timeout errors for up to four hours. Segment does not retry if your function throws a [non-recoverable error](#errors-and-error-handling).
456456

457457
##### Are events guaranteed to send data in order?
458458

src/connections/functions/source-functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ Copy and paste this URL into the upstream tool or service to send data to this s
385385

386386
##### What is the retry policy for a webhook payload?
387387

388-
The webhook payload retries up to six times with an exponential backoff for the function in the event of a failure with the function. After six attempts, the message is dropped.
388+
Segment retries invocations that throw RetryError or Timeout errors up to six times. After six attempts, the request is dropped.
389389

390390
##### What is the maximum payload size for the incoming webhook?
391391

src/connections/sources/catalog/cloud-apps/braze/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Braze maintains this source. For any issues with the source, you can [contact th
2323
The nickname is used as a label for the source in your Segment interface, and Segment creates a related schema name. The schema name is the namespace you'll query against in a warehouse. The nickname can be anything, but Segment recommends sticking to something that reflects the source itself and distinguishes amongst your environments (for example, `Braze_Prod`, `Braze_Staging`, `Braze_Dev`).
2424
4. Copy the **Write Key** on the Overview page.
2525
5. To finish the setup, contact Braze Support or your Customer Support Manager to activate Currents in Braze.
26-
Braze Currents is only available in select Braze packages and can't be configured within Braze without assistance from your Braze Customer Success representative.
26+
- **Note:** Braze Currents is only available in select Braze packages and can't be configured within Braze without assistance from your Braze Customer Success representative. Select the appropriate **Supported Region** in the Braze Currents configuration if you are using a non U.S. Segment Region.
2727
6. Go back to Segment and click **Add Destinations** in your Braze source to add the destinations where you want to receive your Braze data.
2828

2929
Events are now sent to these destinations and automatically loaded into any warehouses you enabled.

src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ With Analytics-Kotlin, you can send data using Kotlin applications to any analyt
1616
If you're migrating to Analytics-Kotlin from a different mobile library, you can skip to the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/).
1717

1818

19-
## Getting Started
19+
## Getting started
2020

2121
To get started with the Analytics-Kotlin mobile library:
2222

@@ -92,7 +92,9 @@ To get started with the Analytics-Kotlin mobile library:
9292
9393
The SDK internally uses a number of Java 8 language APIs through desugaring. Make sure your project either [enables desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring)) or requires a minimum API level of 26.
9494
95-
## Tracking Methods
95+
You'll find configuration options such as IDFA collection and automatic screen tracking in Segment’s [Plugin Examples repository](https://github.com/segmentio/analytics-kotlin/tree/main/samples/kotlin-android-app/src/main/java/com/segment/analytics/next/plugins){:target="_blank"}.
96+
97+
## Tracking methods
9698
9799
Once you've installed the mobile or server Analytics-Kotlin library, you can start collecting data through Segment's tracking methods:
98100
- [Identify](#identify)
@@ -153,7 +155,7 @@ analytics.track("View Product", buildJsonObject {
153155
### Screen
154156
The [Screen](/docs/connections/spec/screen/) method lets you record whenever a user sees a screen in your mobile app, along with optional extra information about the page being viewed.
155157

156-
You'll want to record a screen event whenever the user opens a screen in your app. This could be a view, fragment, dialog or activity depending on your app.
158+
You'll want to record a screen event whenever the user opens a screen in your app. This could be a view, fragment, dialog, or activity depending on your app.
157159

158160
Not all integrations support screen, so when it's not supported explicitly, the screen method tracks as an event with the same parameters.
159161

@@ -203,10 +205,10 @@ analytics.group("user-123", buildJsonObject {
203205
{% endcodeexampletab %}
204206
{% endcodeexample %}
205207

206-
## Plugin Architecture
208+
## Plugin architecture
207209
Segment's plugin architecture enables you to modify and augment how the analytics client works. From modifying event payloads to changing analytics functionality, plugins help to speed up the process of getting things done.
208210

209-
Plugins are run through a timeline, which executes in order of insertion based on their entry types. Segment has these 5 entry types:
211+
Plugins are run through a timeline, which executes in order of insertion based on their entry types. Segment has these five entry types:
210212

211213
| Type | Details |
212214
| ------------- | ---------------------------------------------------------------------------------------------- |
@@ -217,7 +219,7 @@ Plugins are run through a timeline, which executes in order of insertion based o
217219
| `utility` | Executes only with manual calls such as Logging. |
218220

219221
### Fundamentals
220-
There are 3 basic types of plugins that you can use as a foundation for modifying functionality. They are: [`Plugin`](#plugin), [`EventPlugin`](#eventplugin), and [`DestinationPlugin`](#destinationplugin).
222+
There are three basic types of plugins that you can use as a foundation for modifying functionality. They are: [`Plugin`](#plugin), [`EventPlugin`](#eventplugin), and [`DestinationPlugin`](#destinationplugin).
221223

222224
#### Plugin
223225
`Plugin` acts on any event payload going through the timeline.
@@ -341,7 +343,7 @@ analytics.add(yourPlugin)
341343
See how different platforms and languages use Analytics-Kotlin in different [example projects](https://github.com/segmentio/analytics-kotlin/tree/main/samples).
342344
The example projects contain sample [plugins](https://github.com/segmentio/analytics-kotlin/tree/main/samples/kotlin-android-app/src/main/java/com/segment/analytics/next/plugins) and [destination plugins](https://github.com/segmentio/analytics-kotlin/tree/main/samples/kotlin-android-app-destinations/src/main/java/com/segment/analytics/destinations/plugins) you can utilize.
343345

344-
## Utility Methods
346+
## Utility methods
345347
The Analytics-Kotlin utility methods help you work with plugins from the analytics timeline. They include:
346348
- [Add](#add)
347349
- [Find](#find)
@@ -440,7 +442,7 @@ analytics.reset()
440442
{% endcodeexampletab %}
441443
{% endcodeexample %}
442444

443-
## Build Your Own Destination
445+
## Build Your own destination
444446

445447
If Segment doesn't support your Kotlin destination, you can build your own with the template Segment provides.
446448

src/connections/sources/catalog/libraries/mobile/swift-ios/index.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ To get started with the Analytics-Swift mobile library:
3434

3535
```swift
3636
var analytics: Analytics? = nil
37-
37+
3838
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
3939
// Override point for customization after application launch.
4040
let configuration = Configuration(writeKey: "WRITE_KEY")
@@ -68,6 +68,7 @@ Once you've installed the Analytics-Swift library, you can start collecting data
6868
- [Track](#track)
6969
- [Screen](#screen)
7070
- [Group](#group)
71+
- [Alias](#alias)
7172

7273
### Identify
7374
The [Identify](/docs/connections/spec/identify/) method lets you tie a user to their actions and record traits about them. This includes a unique user ID and any optional traits you know about them like their email, name, address. The traits option can include any information you want to tie to the user. When using any of the reserved traits, be sure the information reflects the name of the trait. For example, `email` should always be a string of the user's email address.
@@ -186,6 +187,23 @@ analytics.group(groupId: "user-123", traits: MyTraits(
186187
{% endcodeexampletab %}
187188
{% endcodeexample %}
188189

190+
### Alias
191+
The [Alias](/docs/connections/spec/alias/) method is used to merge two user identities, effectively connecting two sets of user data as one. When this method is called, the `newId` value overwrites the old `userId`. If no `userId` is currently set, the `newId` associates with future events as the `userId`. This is an advanced method and may not be supported across the entire destination catalog.
192+
193+
{% codeexample %}
194+
{% codeexampletab Method signature %}
195+
```swift
196+
func alias(newId: String)
197+
```
198+
{% endcodeexampletab %}
199+
200+
{% codeexampletab Example use %}
201+
```swift
202+
analytics.alias(newId: "user-123")
203+
```
204+
{% endcodeexampletab %}
205+
{% endcodeexample %}
206+
189207
## Plugin Architecture
190208
Segment's plugin architecture enables you to modify and augment how the analytics client works. From modifying event payloads to changing analytics functionality, plugins help to speed up the process of getting things done.
191209

0 commit comments

Comments
 (0)