Skip to content

Commit 0dda5b2

Browse files
Merge pull request #3168 from segmentio/develop
Release 22.27.1
2 parents 4d7fa82 + 33196ec commit 0dda5b2

File tree

19 files changed

+215
-240
lines changed

19 files changed

+215
-240
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ Kameleoon
6363
Kissmetrics
6464
Lightbox
6565
Littledata
66+
Mailchimp
6667
Mailmodo
6768
markdownify
6869
Marketo

.github/styles/segment/headings.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ exceptions:
3131
- Amberflo
3232
- Amplitude
3333
- Amplitude (Actions)
34+
- Analytics.js
3435
- Anodot
3536
- Appcues
3637
- AppNexus
@@ -375,3 +376,4 @@ exceptions:
375376
- Zendesk
376377
- Zendesk Connect
377378
- Zopim
379+
- JavaScript

src/_includes/content/destination-dossier.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,12 @@
4343
<h6>Destination Info</h6>
4444
<ul class="qi">
4545
{% if destMethods.size > 0 %}<li>Accepts {% for method in destMethods%}{% if destMethods.size == 1 %}{{method}} calls.{% else %}{% unless forloop.last == true %}{{method}}, {% endunless %}{% if forloop.last == true%}and {{method}} calls{%endif%}{% endif %}{% endfor %}</li>{% endif %}
46-
<li>Referred to as <strong>{{previous_names | join: '</strong>, or <strong>' }}</strong> in the <a href="/docs/guides/filtering-data/#filtering-with-the-integrations-object">Integrations object</a></li>
46+
{% if previous_names.size == 1 or components.size == 0 %}
47+
<li>Refer to it as <strong>{{previous_names | join: '</strong>, or <strong>' }}</strong> in the <a href="/docs/guides/filtering-data/#filtering-with-the-integrations-object">Integrations object</a></li>
48+
{% else %}
49+
{% if connectionModes.cloud.web == true or connectionModes.cloud.mobile == true or connectionModes.cloud.server == true %} <li>In Cloud-mode, refer to it as <strong>{{previous_names | join: '</strong>, or <strong>' }}</strong> in the <a href="/docs/guides/filtering-data/#filtering-with-the-integrations-object">Integrations object</a></li>{%endif%}
50+
{% if connectionModes.device.web == true or connectionModes.device.mobile == true or connectionModes.device.server == true %} <li>In Device-mode, refer to it as <strong>{{previous_names | first}}</strong> in the <a href="/docs/guides/filtering-data/#filtering-with-the-integrations-object">Integrations object</a> </li>{%endif%}
51+
{% endif %}
4752
{% if destinationInfo.status == "PUBLIC_BETA" %}<li>This destination is in <span class="release-pill">Beta</span></li>{% endif %}
4853
</ul>
4954
{% if components.size > 0%}

src/_includes/content/destination-footer.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,7 @@ Segment lets you change these destination settings from the Segment app without
4646
{% endunless %}
4747
{% if currentIntegration.previous_names.size > 1 %}
4848

49-
{% unless page.hide-integrations-object == true %}
50-
## Adding {{ currentIntegration.display_name }} to the integrations object
5149

52-
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:
53-
{% if page.name-override %}
54-
{% assign currentIntegration = site.data.catalog.overrides.items | where: "slug", currentSlug | first %}
55-
{% endif %}
56-
57-
{% for valid_name in currentIntegration.previous_names %}
58-
- {{ valid_name }}
59-
{% endfor %}
60-
61-
{% endunless %}
6250
{% endif %}
6351

6452
{% endif %}

src/_includes/content/functions/runtime.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ The following dependencies are installed in the function environment by default.
1515
- [`@google-cloud/functions v1.1.0`](https://www.npmjs.com/package/@google-cloud/functions) exposed as `google.cloud.functions`
1616
- [`@google-cloud/pubsub v2.6.0`](https://www.npmjs.com/package/@google-cloud/pubsub) exposed as `google.cloud.pubsub`
1717
- [`@google-cloud/storage v5.3.0`](https://www.npmjs.com/package/@google-cloud/storage) exposed as `google.cloud.storage`
18+
- [`jsforce v1.11.0`](https://www.npmjs.com/package/jsforce) exposed as `jsforce`
1819
- [`jsonwebtoken v8.5.1`](https://www.npmjs.com/package/jsonwebtoken) exposed as `jsonwebtoken`
1920
- [`lodash v4.17.15`](https://www.npmjs.com/package/lodash) exposed as `_`
2021
- [`moment v2.26.0`](https://www.npmjs.com/package/moment/v/2.26.0) exposed as `moment`

src/connections/destinations/catalog/algolia-insights/index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
---
22
title: Algolia Insights Destination
33
rewrite: true
4-
layout: dest-test
54
beta: true
65
redirect_from: '/connections/destinations/catalog/algolia/'
76
id: 5d373a350abf930001a6b70f

src/connections/destinations/catalog/google-ads-classic/index.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@ hide-personas-partial: true
66
cmode-override: true
77
id: 54521fd525e721e32a72ee92
88
---
9-
> info ""
10-
> The Google Ads (Classic) destination code is available on GitHub [here](https://github.com/segment-integrations/analytics.js-integration-adwords){:target="_blank"}.
9+
> warning "The Google Ads (Classic) destination is outdated."
10+
> For website tracking, Google released a new version of Google Ads that uses [a global site tag (gtag.js)](https://support.google.com/google-ads/answer/7548399?hl=en){:target="_blank"}. Segment supports the global site tag in the [Google Ads (Gtag) destination](/docs/connections/destinations/catalog/google-adwords-new/). For mobile tracking, Google recommends using their [Firebase SDKs](https://support.google.com/google-ads/answer/6397604?hl=en){:target="_blank"}. Segment supports a Firebase implementation with the [Google Firebase destination](/docs/connections/destinations/catalog/firebase/).
1111
1212
## Getting Started
1313

14-
> info ""
15-
> Google released a new version of Google Ads that uses [a Global Site Tag (or Gtag)](https://support.google.com/adwords/answer/7548399?hl=en). Segment supports this using a different version of the destination - see the documentation for [Google Ads (Gtag)](/docs/connections/destinations/catalog/google-adwords-new/) for more details.
16-
1714
With Segment, you can use your events to fire a Google Ads conversion pixel from your website **in client-side JavaScript.**
1815
You can also trigger Google Ads (Classic) conversion from your mobile app using the **Server to Server** destination, so you don't need to include the SDK in your app. The server to server connection requires mobile device specific details to forward the events to Google Ads (Classic). Google Ads (Classic) **does not work with any server-side libraries**. Make sure when you're setting up your Google Ads (Classic) conversions that you choose the appropriate tracking method.
1916

@@ -47,7 +44,7 @@ To find a conversion ID look inside of your Google Ads (Classic) account and nav
4744

4845
If you select "Website," click through to the "Review and Install" step in the Google Ads (Classic) dashboard. Scroll down to the "Install your tag" section and look for `w.google_conversion_id`. Copy the string directly to the right of it, and paste it into the Google Ads (Classic) section of your Segment destination tab.
4946

50-
If you select "App" you can choose to track conversions from Firebase, Google Play, or first opens and in-app actions. For more on setting up moble tracking, see [Server to Server Destination for Mobile Apps](#mobile--server) further down on this page.
47+
If you select "App" you can choose to track conversions from Firebase, Google Play, or first opens and in-app actions. For more on setting up mobile tracking, see [Server to Server Destination for Mobile Apps](#mobile--server) further down on this page.
5148

5249
> info ""
5350
> If using the New Adwords Experience, the Conversion ID can now be found in a different location. Navigate to Tools, Billing, and Settings menu and, then, select "Measurement: Conversions", which opens to the "Conversion Actions" table. From here you can drill down to the conversion "Tag setup" to view the tag details. From here, select Use Google Tag Manager card in order to expose the Conversion ID.
@@ -135,7 +132,7 @@ All `track` events are by default sent to your Google Ads (Classic) account and
135132
8. ecommerce_purchase
136133
9. custom
137134

138-
Segment integrates with these event types using the use of the [Semantic Event Spec](/docs/connections/spec/semantic/). Each individual mapping Segment supports is documented in the sections below. Any event Segment recieves that is not a mapped semantic event will be sent to Google Ads (Classic) as a `custom` event type.
135+
Segment integrates with these event types using the use of the [Semantic Event Spec](/docs/connections/spec/semantic/). Each individual mapping Segment supports is documented in the sections below. Any event Segment receives that is not a mapped semantic event will be sent to Google Ads (Classic) as a `custom` event type.
139136

140137
### Application Installed
141138

src/connections/destinations/catalog/google-ads-gtag/index.md

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,19 @@ strat: google
66
name-override: true
77
id: 5a03bfe73156760001ab34ec
88
---
9-
## Before you begin
109

11-
If you're using the [new Google Ads (Gtag) experience](https://support.google.com/adwords/answer/6095821?hl=en&ref_topic=3165803), you can enable the **Google Ads (Gtag)** Destination (previously called "Google Adwords New") in the Segment catalog. The new Google Ads uses a Global Site Tag (Gtag) and event snippets.
10+
The [Google global site tag (gtag.js)](https://support.google.com/google-ads/answer/7548399?hl=en){:target="_blank"} is a JavaScript tagging framework and API that allows you to send web conversions to Google Ads. With the Segment Google Ads (Gtag) destination, Segment loads gtag.js for you so you can make efficient use of your existing tracking implementation.
1211

13-
> info "Info message."
14-
> **IMPORTANT**: Only use this destination if your Google Ads account is using the _New_ (Gtag) Experience. If you're using Google Tag Manager (a separate product) as well, don't add the global site tag again in your GTM containers. You should also disable any [Google Ads (Classic)](/docs/connections/destinations/catalog/adwords/) destinations within the same source, since **Google Ads (Classic)** can't load at the same times as **Google Ads (Gtag)**.
12+
> info ""
13+
> Only use this destination if your Google Ads account is using Gtag. If you're using Google Tag Manager, don't add the global site tag (gtag.js) in your GTM containers. You should also disable any [Google Ads (Classic)](/docs/connections/destinations/catalog/adwords/) destinations within the same source, since **Google Ads (Classic)** can't load at the same time as **Google Ads (Gtag)**.
1514
1615
## Getting Started
1716

18-
You can use this destination to map your `.page()` calls to **Page Load Conversions** or `.track()` calls to **Click Conversions**.
19-
20-
Currently this is only supported on the browser.
17+
You can use this destination to map your `.page()` calls to **Page Load Conversions** or `.track()` calls to **Click Conversions**. Currently this is only supported on the browser.
2118

2219
## Page
2320

24-
If you want to map all your unnamed `.page()` calls to a default Page Load Conversion, you can enter the AdWords Conversion ID in **Settings > Default Page Conversion**. However, if you created specific Page Load Conversions in Google Ads that you'd like to map your named `.page()` calls in Segment, you can map the events in **Settings > Page Load Conversions**.
21+
If you want to map all your unnamed `.page()` calls to a default Page Load Conversion, you can enter the Conversion ID in **Settings > Default Page Conversion**. However, if you created specific Page Load Conversions in Google Ads that you'd like to map your named `.page()` calls in Segment, you can map the events in **Settings > Page Load Conversions**.
2522

2623
Segment forwards all the `properties` of the page call, such as `path`, `title`, `url`, because by default, Google Ads (Gtag) makes these available in your remarketing campaigns.
2724

@@ -48,9 +45,9 @@ If you pass `properties.value`, `properties.currency`, or `properties.order_id`,
4845

4946
The only exception is that for `Order Completed` events, Segment will map Google's semantic `value` field to your `properties.revenue`.
5047

51-
## Troubleshooting AdWords Conversions
52-
To figure out if an event is flagged for Conversion by the AdWords SDK, follow these steps:
53-
1. Confirm that the events mapped to Google Ads Conversion are being sent in device-mode while using the Segment Analytics.js library. To do this:
48+
## Troubleshooting Google Ads Conversions
49+
To figure out if an event is flagged for conversion, follow these steps:
50+
1. Confirm that the events mapped to a Google Ads conversion are being sent in device-mode while using the Segment Analytics.js library. To do this:
5451
1. Go to **Connections > Sources** in your workspace and choose your Source.
5552
2. Go to the **Debugger** tab.
5653
3. Click on an event and look at the **Raw** view to make sure the events have a library name of `analytics.js`. There should be a snippet of code that looks like this:
@@ -66,16 +63,16 @@ To figure out if an event is flagged for Conversion by the AdWords SDK, follow t
6663
6764
![Network tab](../../images/network-tab.png)
6865
69-
5. Go to the **Settings** tab for your Gtag destination in Segment on a new webpage and choose **Click Conversions** to look at the mapped `track()` events and make sure the events are mapped to the correct **Adwords Conversion Label**.
66+
5. Go to the **Settings** tab for your Gtag destination in Segment on a new webpage and choose **Click Conversions** to look at the mapped `track()` events and make sure the events are mapped to the correct **Conversion Label**.
7067
7168
![Edit Settings](../../images/conversion-settings.png)
7269
7370
6. Go back to your website and trigger the event mapped to the conversion. For example, as shown in the image above, it would be `Order Completed`.
74-
7. Go to the Network tab in your browser and enter the **Adwords Conversion Label** linked to the event you triggered in the **Filter** field.
71+
7. Go to the Network tab in your browser and enter the **Conversion Label** linked to the event you triggered in the **Filter** field.
7572
7673
![Network tab](../../images/network-tab-search.png)
7774
78-
8. See if the value for the `ct_cookie_present` changed to `true`. If `true`, it means that Adwords counts the event as a conversion.
75+
8. See if the value for the `ct_cookie_present` changed to `true`. If `true`, it means that Google Ads counts the event as a conversion.
7976
8077
## Multiple Google Ads Accounts
8178

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

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,36 @@ title: Hotjar Destination
33
rewrite: true
44
id: 5913371070a3e552b9561a4e
55
---
6-
[Hotjar](https://help.hotjar.com/hc/en-us) is the fast & visual way to understand your users. It offers a full set of user experience tools: heatmaps, session recordings, forms reporting, funnels, and feedback tools, giving you everything your team needs to uncover user insights and make the right changes.
6+
[Hotjar](https://hotjar.com){:target="_blank"} enables you to understand your users in a fast and visual way. Hotjar offers a full set of tools such as analytics, page heatmaps, session recordings, feedback tools, and more. Hotjar provides you with everything your team needs to uncover user insights and make the right product changes.
77

8-
The Segment Hotjar Destination allows you to both easily install Hotjar on your pages, and send [User Attributes](https://help.hotjar.com/hc/en-us/articles/360038394053-How-to-Setup-User-Attributes-in-4-Steps) information over Hotjar's [Identify API](https://help.hotjar.com/hc/en-us/articles/360033640653) using the Segment Identify Spec. As of February 3rd, 2020, this allows you to:
9-
10-
* [Target Polls and Incoming Feedback to users based on their User Attributes](https://help.hotjar.com/hc/en-us/articles/360022688554)
11-
* [Lookup and Delete user data based on their User ID](https://help.hotjar.com/hc/en-us/articles/360001749014)
12-
13-
In time, most or all Hotjar features will use User Attributes in some way, with filtering Recordings planned in the first half of 2020.
14-
15-
This destination is maintained by Segment.
8+
The Segment Hotjar Destination allows you to get started with Hotjar and its core APIs. You can:
9+
1. Automatically install the [Hotjar Tracking Code](https://help.hotjar.com/hc/en-us/articles/115011639927){:target="_blank"}.
10+
2. Automatically send [user attributes](https://help.hotjar.com/hc/en-us/articles/360033640653-Identify-API-Reference){:target="_blank"} to Hotjar by connecting your Segment `identify` calls with Hotjar's own Identify API.
11+
3. Automatically send [custom events](https://help.hotjar.com/hc/en-us/articles/4405109971095-Events-API-Reference){:target="_blank"} to Hotjar by connecting your Segment `track` calls with Hotjar's own Events API.
1612

13+
Knowing who your users are and what they're doing unlocks more advanced filtering and targeting capabilities across all of Hotjar's tools, helping you find meaningful insights faster.
1714

1815
## Getting Started
1916

2017
{% include content/connection-modes.md %}
2118

22-
1. From the Segment web app, click **Catalog**.
19+
1. Navigate to **Connections** and click **Add Destination** From the Segment web app.
2320

24-
2. Search for "Hotjar" in the Catalog, select it, and choose which of your Javascript sources to connect the destination to.
21+
2. Search for *Hotjar* in the Catalog, select it, and choose the Javascript source you want to connect the destination to.
2522

26-
3. Add your Hotjar Site ID to your Destination settings. You can find this under Settings and Sites & Organizations in your Hotjar dashboard. It should be a whole number (e.g. 123456).
23+
3. Add your **Hotjar Site ID** to your Destination settings. You can find this ID in Account settings > Sites & Organizations.
2724

28-
4. Your changes appear in the Segment CDN in about 45 minutes, and then Analytics.js starts asynchronously loading Hotjar's tracking snippet, along with your Site ID, onto the page. If you are already using Hotjar, remove Hotjar's snippet from your code.
29-
30-
Hotjar automatically starts tracking visitors based on the tools you have enabled in your Hotjar dashboard.
25+
Your changes will appear in the Segment CDN after 45 minutes, and then Analytics.js will start to asynchronously load Hotjar's tracking snippet and send data. If you're already using Hotjar, remove Hotjar's snippet from your code.
3126

3227
## Identify
3328

34-
The Hotjar destination will automatically ingest a User ID, as well as values sent over your Identify spec as [traits](/docs/connections/spec/identify/#traits), as long as [User Attributes are enabled in Hotjar](https://help.hotjar.com/hc/en-us/articles/360038394053-How-to-Setup-User-Attributes-in-4-Steps#step-2-review-your-privacy-requirements-and-enable-user-attributes).
29+
The Hotjar destination will automatically ingest a User ID and any values sent over your Identify spec as [traits](/docs/connections/spec/identify/#traits), as long as session capture is enabled in Hotjar.
3530

3631
Identify calls that do not have a User ID value will not be sent to Hotjar.
3732

3833
### Nested values or lists
3934

40-
The Hotjar Identify API is unable to ingest values passed as nested objects or lists over your `identify` Spec:
35+
Currently, the Hotjar Identify API **does not** support ingesting values passed as nested objects or lists over your identify Spec:
4136

4237
```js
4338
"traits": {
@@ -54,6 +49,23 @@ The Hotjar Identify API is unable to ingest values passed as nested objects or l
5449
}
5550
```
5651
57-
In this example, Hotjar would reject all the values in the `address` field.
52+
In the example above, Hotjar rejects all the values in the `address` field.
53+
54+
## Track
55+
56+
The Hotjar destination automatically ingests any user actions tracked over your Track spec as [events](/docs/connections/spec/track/), as long as session capture is enabled in Hotjar.
57+
58+
### Event properties
59+
60+
Currently, the Hotjar Events API **does not** support ingesting event properties:
61+
62+
```js
63+
analytics.track("Experiment Viewed", {
64+
experiment_id: "1234",
65+
experiment_name: "new_upsell_UX"
66+
variation_id: "1234b"
67+
variation_name: "variant"
68+
});
69+
```
5870
59-
This is a recognized limitation of this version of the Hotjar Identify API, and as of February 3rd, 2020, is in the improvements backlog for the API.
71+
In the example above, Hotjar only ingests the event name, `Experiment Viewed`. All of its event properties are rejected.

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,16 @@ analytics.group("groupId123", {
8585

8686
Segment sends Group calls to Variance as an `Account` if you've chosen the "Group" Account Mapping method during setup.
8787

88+
### Alias
89+
90+
If you're not familiar with the Segment Spec, take a look at the [Alias method documentation](/docs/connections/spec/alias/) to learn about what it does. An example call would look like this:
91+
92+
```js
93+
analytics.alias('123456')
94+
```
95+
96+
If there is an existing user with that `userId` in Variance that matches the `previousId` passed with the alias, that user will be merged into the "123456" user identified in the alias. If there is only one user with the `previousId` and no user with the `userId`, that user will have their Variance `externalId` updated to match the current `userId` passed in the alias.
97+
8898
## Account Mapping
8999

90100
Variance offers several ways to map your users to accounts or companies, including the following.

0 commit comments

Comments
 (0)