Skip to content

Commit 354dd66

Browse files
committed
fixes
1 parent 8b38993 commit 354dd66

File tree

3 files changed

+65
-59
lines changed

3 files changed

+65
-59
lines changed
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
Our Web source (Analytics.js), and our native client-side libraries (iOs, Android, React-native) allow you to choose how you send data to Segment from your website or app. Two ways are available:
1+
Segment's web source (Analytics.js), and native client-side libraries (iOS, Android, React-native) allow you to choose how you send data to Segment from your website or app. There are two ways to send data:
22

3-
- **Cloud-mode**: in this mode, the sources send data directly to the Segment servers, which then translate it for each connected downstream destination, and send it on. Translation is done on the Segment servers, keeping your page size, method count, and load time small.
3+
- **Cloud-mode**: The sources send data directly to the Segment servers, which then translate it for each connected downstream destination, and send it on. Translation is done on the Segment servers, keeping your page size, method count, and load time small.
44

5-
- **Device-mode**: in this mode, you include additional code on your website or mobile app which allows Segment to use the data you collect on the device to make calls directly to the destination tool's API, without sending it to the Segment servers _first_. (You still send your data to the Segment servers, but this occurs asynchronously.) This is also called "wrapping" or "bundling", and it might be required when the source has to be loaded on the page to work, or loaded directly on the device to function correctly. When you use Analytics.js, you can change the device-mode destinations that a specific source sends to from within the Segment web app, without touching any code.
5+
- **Device-mode**: You include additional code on your website or mobile app which allows Segment to use the data you collect on the device to make calls directly to the destination tool's API, without sending it to the Segment servers _first_. (You still send your data to the Segment servers, but this occurs asynchronously.) This is also called *wrapping* or *bundling*, and it might be required when the source has to be loaded on the page to work, or loaded directly on the device to function correctly. When you use Analytics.js, you can change the device-mode destinations that a specific source sends from within the Segment web app, without touching any code.
66

7-
> **Note:** If you use Server source libraries, they only send data directly to Segment in Cloud-mode. (Server library implementations operate in the server backend, and can't load additional destination SDKs.)
7+
8+
> info ""
9+
> If you use Server source libraries, they only send data directly to Segment in Cloud-mode. (Server library implementations operate in the server backend, and can't load additional destination SDKs.)

src/connections/destinations/destination-filters.md

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ Common use cases for Destination Filters include:
1414
> info ""
1515
> Destination Filters are only available to Business Tier customers.
1616
17-
### Destination filtering limitations
17+
### Limitations
1818

1919
Keep the following limitations in mind when you use Destination Filters:
2020

2121
- Segment applies Destination Filters one at a time in the order that they appear in your workspace.
22-
- Destination Filters can only be applied to cloud-mode (server-side) streaming destinations. Device-mode destinations aren't supported.
22+
- Destination Filters can only be applied to cloud-mode (server-side) streaming destinations.
23+
- Device-mode destinations aren't supported.
2324
- You can't apply Destination Filters to Warehouses or S3 destinations.
2425
- Each filter can only apply to one source-destination pair.
2526

@@ -54,7 +55,13 @@ To learn more, read Segment's [Destination Filters API docs](https://reference.s
5455

5556
## Examples
5657

57-
The following examples illustrate common Destinations Filters use cases.
58+
The following examples illustrate common Destinations Filters use cases:
59+
* [PII management](#pii-management)
60+
* [Control event volume](#control-event-volume)
61+
* [Cleaner data](#cleaner-data)
62+
* [Remove internal and test events from production tools](#remove-internal-and-test-events-from-production-tools)
63+
* [Sample a percentage of events](#sample-a-percentage-of-events)
64+
* [Drop events](#drop-events)
5865

5966
### PII management
6067

@@ -97,15 +104,15 @@ Using the [Destination Filters API](https://reference.segmentapis.com/#6c12fbe8-
97104

98105
## Important notes
99106

100-
**Conflicting settings**
107+
#### Conflicting settings
101108

102109
Some destinations offer settings that also allow you to filter data. For example, the Facebook App Events destination allows you to map `Screen` events to `Track` events. Because Destination Filters are evaluated and applied _before_ the Destination settings are applied, they can conflict with your settings.
103110

104-
In the example in [the video](https://www.youtube.com/watch?v=47dhAF1Hoco){:target="_blank"}, if you have a Destination Filter that filters Track events _and_ you have the **Use Screen Events as Track Events** setting enabled, `Track` events drop, but `Screen` events still process. The destination settings will transform it into a `Track` event - *after* the filters.
111+
In the example in [the video](https://www.youtube.com/watch?v=47dhAF1Hoco){:target="_blank"}, if you have a Destination Filter that filters Track events _and_ you have the **Use Screen Events as Track Events** setting enabled, `Track` events drop, but `Screen` events still process. The destination settings transform it into a `Track` event - *after* the filters.
105112

106-
**Error handling**
113+
#### Error handling
107114

108-
Segment makes effort to ensure that Destination Filters handle unexpected situations. For example, if you use the `contains()` FQL function on `null` field, Segment returns `false` instead of returning an error. If Segment can't infer your intent, Segment logs an internal error and drops the event. Segment defaults to this behavior to prevent sensitive information, like a PII filter, from getting through.
115+
Segment makes effort to ensure that Destination Filters can handle unexpected situations. For example, if you use the `contains()` FQL function on the `null` field, Segment returns `false` instead of returning an error. If Segment can't infer your intent, Segment logs an internal error and drops the event. Segment defaults to this behavior to prevent sensitive information, like a PII filter, from getting through.
109116

110117
Errors aren't exposed in your Destination's Event Deliverability tab. For help diagnosing missing destination filter events, [contact Segment](https://segment.com/help/contact/){:target="_blank"}.
111118

@@ -121,7 +128,7 @@ For example, the `properties.products.newElement` filter blocks all `newElement`
121128

122129
![Filter array properties](images/destination-filters/filter-array-properties.png)
123130

124-
To block the Identify event trait `products.newElement`, select the option under the **User Traits** list instead. To block a context object field `products.newElement`, select it from the **Context Fields** list.
131+
To block the Identify event trait `products.newElement`, select the option under the **User Traits** list instead. To block the context object field `products.newElement`, select it from the **Context Fields** list.
125132

126133
#### How many filters can I create?
127134

@@ -139,19 +146,17 @@ Segment displays the most recent 15,000 properties. To find a property not in th
139146

140147
To filter out events from warehouses, use Selective Sync.
141148

142-
#### I don't see a `name` property at the top level of my events to filter on "event name".
149+
#### I don't see a *name* property at the top level of my events to filter on *event* name".
143150

144-
Generally, only Track calls have "name" properties, which correspond to the "Event" field in an event.
151+
Generally, only Track calls have *name* properties, which correspond to the *event* field in an event.
145152

146153
#### How can I find out when new Destination Filters have been added or removed?
147154

148-
The activity feed shows the action, date, and user who performed the action when a Destination Filter is created, modified, enabled, disabled, or deleted. You can also subscribe to notifications for any of these changes in the Activity Feed settings page.
149-
150-
The Activity Feed shows the user, date, and action performed when a Destination Filter is created, modified, enabled, disabled, or deleted.
155+
The Activity Feed shows the action, date, and user who performed the action when a Destination Filter is created, modified, enabled, disabled, or deleted. You can also subscribe to notifications for any of these changes in the **Activity Feed** settings page.
151156

152157
#### Why am I getting a permissions denied error when I try to save a filter?
153158

154-
You must have write access to save and edit filters; read permission allows viewing and testing access only.
159+
You must have write access to save and edit filters. Read permission only allows viewing and testing access.
155160

156161
#### How can I test my filter?
157162

0 commit comments

Comments
 (0)