Skip to content

Commit 75959f8

Browse files
author
markzegarelli
authored
Merge branch 'master' into pwseg-sfmc-update
2 parents 82f91f9 + 8cf17b7 commit 75959f8

File tree

17 files changed

+158
-49
lines changed

17 files changed

+158
-49
lines changed

src/_data/sidenav/main.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,21 @@ sections:
2424
- path: /guides
2525
title: An introduction to Segment
2626
- path: /guides/intro-impl
27-
title: Segment developer overview
27+
title: Segment for developers
2828
- path: /guides/intro-user
29-
title: Segment data user overview
29+
title: Segment for data users
3030
- path: /guides/intro-admin
31-
title: Segment workspace admin overview
31+
title: Segment for workspace admins
3232
- path: /guides/filtering-data
3333
title: Filtering your Segment data
3434
- path: /guides/duplicate-data
35-
title: How does Segment handle duplicate data?
35+
title: Handling duplicate data
3636
- path: /guides/ignore-bots
37-
title: How can I ignore internet bots?
37+
title: Ignoring internet bots
3838
- path: /guides/segment-vs-tag-managers
39-
title: What is the difference between Segment and tag managers?
39+
title: Segment vs. tag managers
4040
- path: /guides/what-is-replay
41-
title: What is Replay?
41+
title: Replay
4242

4343
- section_title: How To Guides
4444
slug: guides/how-to-guides

src/_includes/content/current-version.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
<p>Release Date: {{release.date | date: "%b %d, %Y" }}</p>
1515

1616
<div class="links">
17-
<a href="https:///github.com/segmentio/{{page.repo}}" target="_blank"><img src="/docs/images/github.svg" /></a>
18-
<a href="https:///github.com/segmentio/{{page.repo}}/tags.atom" target="_blank"><img src="/docs/images/atom.svg" /></a>
17+
<a class="no-icon" href="https:///github.com/segmentio/{{page.repo}}" target="_blank"><img src="/docs/images/github.svg" /></a>
18+
<a class="no-icon" href="https:///github.com/segmentio/{{page.repo}}/tags.atom" target="_blank"><img src="/docs/images/atom.svg" /></a>
1919
{% if page.repo == 'analytics-android' %}
2020
<a href="https://maven-badges.herokuapp.com/maven-central/com.segment.analytics.android/analytics"><img style="height: 18px;" src="https://maven-badges.herokuapp.com/maven-central/com.segment.analytics.android/analytics/badge.svg" /></a>
2121
{% endif %}

src/_includes/content/destination-footer.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,15 @@ Segment lets you change these destination settings from the Segment app without
5656
{% endunless %}
5757
{% if currentIntegration.previous_names.size > 1 %}
5858

59+
{% unless page.hide-integrations-object == true %}
5960
## Adding {{ currentIntegration.display_name }} to the integrations object
6061

6162
To add {{ currentIntegration.display_name }} to the `integrations` JSON object (for example, [to filter data from a specific source](/docs/guides/filtering-data/#filtering-with-the-integrations-object)), use one of the following valid names for this integration:
6263

6364
{% for valid_name in currentIntegration.previous_names %}
6465
- {{ valid_name }}
6566
{% endfor %}
67+
{% endunless %}
6668
{% endif %}
6769

6870
{% endif %}

src/_sass/components/_markdown.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,4 +260,8 @@
260260
a[target="_blank"]:after{
261261
content: url("/docs/images/external-link-alt-solid.svg");
262262
margin-left: 4px;
263+
}
264+
265+
a.no-icon[target="_blank"]:after {
266+
content: none
263267
}

src/connections/destinations/actions.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,24 @@ Each Actions-framework Destination you see in the Segment catalog represents a f
2626
- If you are using Protocols, Destination Actions actions are applied *after* [schema filters](/docs/protocols/enforce/schema-configuration/) and [transformations](/docs/protocols/transform/). If you are using [destination filters](/docs/connections/destinations/destination-filters/), Actions are applied after the filters - meaning that they are not applied to data that is filtered out.
2727
- Destination Actions can not yet be accessed or modified using the Segment APIs.
2828

29+
## Components of a Destination Action
30+
31+
A Destination Action contains a hierarchy of components, that work together to ensure the right data is sent to the destination.
32+
33+
At the top level, is the Destination itself. It has two children: **Global Settings** and **Subscriptions**.
34+
35+
**Global Settings** are where you include authentication information like API keys, and other connection-related information.
36+
37+
**Subscriptions** handle the individual calls to the destination. In them, you define what type of call you want to make to the destination, and what triggers that call. Individual Destination Actions come enabled with some predefined subscriptions to handle common events like Screen calls, Identify calls, and Track calls. Subscriptions have two components that make this possible: **Triggers** and an **Action**.
38+
39+
**Triggers** enable you to define *when* the corresponding Action fires. As part of a Trigger, you can use condition-based filters to narrow the scope of the trigger.
40+
41+
**Actions** determine the information sent to the destination. In the Configure action section, you map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected
42+
43+
For example, in the Amplitude (Actions) destination, you define your API and Secret keys in the destination's global settings. Then, the provided Page Calls subscription:
44+
45+
1. Triggers the action on all incoming Page events.
46+
2. Runs the Log Event action, to map your incoming data to Amplitudes properties.
2947

3048

3149
## Set up a destination action
@@ -87,6 +105,13 @@ The following type filters and operators are available to help you build conditi
87105

88106
You can combine criteria in a single group using **ALL** or **ANY**. Use an ANY to “subscribe” to multiple conditions. Use ALL when you need to filter for very specific conditions. You can only create one group condition per destination action. You cannot created nested conditions.
89107

108+
> info "Destination Filters"
109+
> Destination filters are compatible with Destination Actions. Consider a Destination Filter when:
110+
> - You need to remove properties from the data sent to the destination
111+
> - You need to filter data from multiple types of call (for example, Track, Page, and Identify calls)
112+
>
113+
> If your use case does not match these criteria, you might benefit from using Subscription-level triggers to match only certain events.
114+
90115

91116

92117
<!--

src/connections/destinations/catalog/actions-amplitude/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ Session tracking is only available when using Segment's new libraries: [Analytic
4545
Once you have a mapping, you can follow the steps in the Destinations Actions documentation on [Customizing mappings](/docs/connections/destinations/actions/#customizing-mappings).
4646

4747

48+
### Device ID Mappings
49+
The Amplitude destination requires that each event include either a Device ID or a User ID. If a User ID isn't present, Amplitude uses the a Device ID, and vice versa, if a Device ID isn't present, Amplitude uses the User ID. By default, Segment maps the Segment property `context.device.id` to the Amplitude property `Device ID`. If `context.device.id` isn't available, Segment maps the property `anonymousId` to the Amplitude `Device ID`. This is indicated by the following text in the Device ID field: `coalesce(` `context.device.id` `anonymousId` `)`.
50+
4851
### Enable session tracking for Analytics.js 2.0
4952

5053
The session tracking is automatically enabled on Javascript sources.

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
title: Braze Destination
33
hide-cmodes: true
44
hide-personas-partial: true
5+
hide-integrations-object: true
56
---
67

78
[Braze](https://www.braze.com/), formerly Appboy, is an engagement platform that empowers growth by helping marketing teams to build customer loyalty through mobile, omni-channel customer experiences.

src/connections/sources/catalog/libraries/website/javascript/upgrade-to-ajs2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Upgrade to Analytics.js 2.0
33
strat: ajs
44
---
55

6-
Analytics.js 2.0 is fully backward compatible with Analytics.js Classic. To upgrade your sources, follow the manual upgrade steps below, or see the schedule for automatic migration. As with all upgrades, Segment recommends that you start development on a non-production source to test the upgrade process and outcome, prior to upgrading your production sources.
6+
Analytics.js 2.0 is fully backward compatible with Analytics.js Classic when using the default Segment snippet. To upgrade your sources, follow the manual upgrade steps below, or see the schedule for automatic migration. As with all upgrades, Segment recommends that you start development on a non-production source to test the upgrade process and outcome, prior to upgrading your production sources.
77

88
## Manual upgrade
99

src/guides/duplicate-data.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: How does Segment handle duplicate data?
2+
title: Handling duplicate data
33
---
44

55
Segment has a special de-duplication service that sits just behind the `api.segment.com` endpoint, and attempts to drop duplicate data. However, that de-duplication service has to hold the entire set of events in memory in order to know whether or not it has seen that event already. Segment stores 24 hours worth of event `message_id`s. This means Segment can de-duplicate any data that appears within a 24 hour rolling window.

src/guides/ignore-bots.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
---
2-
title: How can I ignore internet bots?
2+
title: Internet bots
33
---
44

5-
## But wait, I don't even know what a bot is!
5+
## What's a bot?
66

77
If you stumbled onto this page by accident and don't know what a bot is or are just curious to learn more, the following Wikipedia article provides an awesome summary: [https://en.wikipedia.org/wiki/Internet\_bot](https://en.wikipedia.org/wiki/Internet_bot).
88

99
Surprisingly, more than half of all web traffic is made up of bots. While a fraction of them are good bots with a regulated pattern, and therefore beneficial to all online businesses, the majority of them have malicious intents and are mostly unregulated.
1010

11-
## Got it! So is it possible to ignore bad bots?
11+
## Is it possible to ignore bad bots?
1212

13-
Now that we're level-set on what a bot is, unfortunately Segment does not offer any out-of-the-box feature to filter/ignore bot traffic.
13+
Segment doesn't offer any out-of-the-box feature to filter or ignore bot traffic.
1414

1515
As such, you generally have two options:
1616

17-
**Handle the filtering at a destination-level:** some of our destination partners, [like Mixpanel](https://help.mixpanel.com/hc/en-us/articles/115004567946-Exclude-Bot-Activity-Web-JavaScript-), filter bots automatically. Whereas others [such as Hubspot](https://knowledge.hubspot.com/getting-started-with-hubspot-v2/how-to-filter-out-traffic-from-your-website-analytics) allow you to set up bot filtering manually. The advantage of filtering bots at a destination level is that it allows you to implement a robust, easy-to-maintain solution. However, as it pertains to Segment, the downside is that bot traffic will _still_ make it to Segment, [affecting your MTU count.](https://segment.com/docs/guides/usage-and-billing/mtus-and-throughput/#how-does-segment-calculate-mtus)
17+
**Handle the filtering at a destination-level:** Some of Segment's destination partners, [like Mixpanel](https://help.mixpanel.com/hc/en-us/articles/115004567946-Exclude-Bot-Activity-Web-JavaScript-), filter bots automatically. Whereas others [such as Hubspot](https://knowledge.hubspot.com/getting-started-with-hubspot-v2/how-to-filter-out-traffic-from-your-website-analytics) allow you to set up bot filtering manually. The advantage of filtering bots at a destination level is that it allows you to implement a robust, easy-to-maintain solution. However, as it pertains to Segment, the downside is that bot traffic will _still_ make it to Segment, [affecting your MTU count.](https://segment.com/docs/guides/usage-and-billing/mtus-and-throughput/#how-does-segment-calculate-mtus)
1818

1919
**Write custom logic that suppresses bot activity from being sent to Segment:** if you want to prevent bot traffic from making it to Segment in the first place, another option is to write your own custom code. The logic, in pseudo-code, would look something like this if you know a particular characteristic of the bot traffic to filter out, such as the userAgent:
2020

@@ -25,17 +25,17 @@ if ! window.navigator.userAgent in robots
2525
 analytics.track
2626
```
2727

28-
The benefit here of course is that you would be able to limit the impact that bots have on your MTU count. However, on the flip side, it's much harder to implement and maintain a custom filter.
28+
The benefit here is that you would be able to limit the impact that bots have on your MTU count. On the flip side, it's much harder to implement and maintain a custom filter.
2929

30-
## If we see a massive MTU spike because of bots, can we apply for a refund?
30+
## If I see a massive MTU spike because of bots, can I apply for a refund?
3131

32-
As a matter of policy, we typically do not provide refunds for bot-related MTU spikes, as bot traffic is out of our control. However for extenuating circumstances, [you can petition for a refund](https://segment.com/contact/billing), assuming you're able to provide proof of the bot's effect.
32+
As a matter of policy, Segment doesn't provide refunds for bot-related MTU spikes, as bot traffic is out of Segment's control. However for extenuating circumstances, [you can petition for a refund](https://segment.com/contact/billing), assuming you're able to provide proof of the bot's effect.
3333

34-
## I'm seeing a lot of browser traffic from Boardman; isn't that from Segment?
34+
## I'm seeing a lot of browser traffic from Boardman; is that from Segment or a bot?
3535

36-
We do indeed use Amazon's hosting services, which are based in Boardman, Oregon. However [many bots also originate from AWS in Boardman as well](https://productforums.google.com/forum/#!topic/webmasters/Ow5baxkjiPI).
36+
Segment uses Amazon's hosting services, which are based in Boardman, Oregon. However [many bots also originate from AWS in Boardman as well](https://productforums.google.com/forum/#!topic/webmasters/Ow5baxkjiPI).
3737

38-
One way you can confirm whether or not traffic is coming from Segment vs. a bot is to check the userAgent of the inbound call. Ours is:
38+
One way you can confirm whether or not traffic is coming from Segment vs. a bot is to check the userAgent of the inbound call. Segment's is:
3939

4040
```js
4141
'Mozilla/5.0 (' + deviceModel.slice(0, -3) + '; CPU ' + osName + ' ' +

0 commit comments

Comments
 (0)