Skip to content

Commit 6efcbc9

Browse files
authored
Merge pull request #5660 from segmentio/develop
Release 23.45.1
2 parents 37bdaaa + 626ecd0 commit 6efcbc9

File tree

35 files changed

+253
-45
lines changed

35 files changed

+253
-45
lines changed

src/_data/catalog/destination_categories.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
2-
# destination categories last updated 2023-11-02
2+
# destination categories last updated 2023-11-09
33
items:
44
- display_name: A/B Testing
55
slug: a-b-testing

src/_data/catalog/destinations.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
2-
# destination data last updated 2023-11-02
2+
# destination data last updated 2023-11-09
33
items:
44
- id: 637e8d185e2dec264895ea89
55
display_name: 1Flow
@@ -46372,7 +46372,7 @@ items:
4637246372
previous_names:
4637346373
- Iterable (Actions)
4637446374
website: http://www.iterable.com
46375-
status: PUBLIC_BETA
46375+
status: PUBLIC
4637646376
categories:
4637746377
- Email Marketing
4637846378
- SMS & Push Notifications

src/_data/catalog/destinations_private.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
2-
# destination data last updated 2023-11-02
2+
# destination data last updated 2023-11-09
33
items:
44
- id: 54521fd725e721e32a72eec6
55
display_name: Intercom

src/_data/catalog/source_categories.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
2-
# source categories last updated 2023-11-02
2+
# source categories last updated 2023-11-09
33
items:
44
- display_name: A/B Testing
55
slug: a-b-testing

src/_data/catalog/sources.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
2-
# sources last updated 2023-11-02
2+
# sources last updated 2023-11-09
33
items:
44
- id: 8HWbgPTt3k
55
display_name: .NET

src/_sass/components/_markdown.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,12 @@
246246
}
247247
}
248248

249+
table.horizontal-scroll {
250+
display: block;
251+
overflow-x: auto;
252+
white-space: nowrap;
253+
}
254+
249255
table.settings {
250256
width: 100%;
251257
table-layout: fixed;

src/connections/destinations/catalog/actions-google-analytics-4-web/index.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ The automatically collected and enhanced measurement events include parameters b
5555

5656
### Conversion Events
5757

58-
Some of Segment's prebuilt [Available Actions](https://segment-docs.netlify.app/docs/connections/destinations/catalog/actions-google-analytics-4-web/#available-actions) which map to Google's recommended events are automatically marked as a conversion in your Analytics dashborad. For example, when you add a "Order Completed" event, it will show up in your Analytics dashboard as "purchase" with the **Mark as conversion** toggle toggled on by default. However, for other events, such as "Add to Cart", you will need to manually toggle the **Mark as conversion** setting on in your Analytics dashboard. If you don't mark the event as a conversion, it will not show up as a conversion in your built-in reports. You can read more [about conversion events](https://support.google.com/analytics/answer/9267568?sjid=1275909514202748631-NA){:target="_blank"} in Google's docs.
58+
Some of Segment's prebuilt [Available Actions](https://segment-docs.netlify.app/docs/connections/destinations/catalog/actions-google-analytics-4-web/#available-actions) which map to Google's recommended events are automatically marked as a conversion in your Analytics dashboard. For example, when you add a "Order Completed" event, it will show up in your Analytics dashboard as "purchase" with the **Mark as conversion** toggle toggled on by default. However, for other events, such as "Add to Cart", you will need to manually toggle the **Mark as conversion** setting on in your Analytics dashboard. If you don't mark the event as a conversion, it will not show up as a conversion in your built-in reports. You can read more [about conversion events](https://support.google.com/analytics/answer/9267568?sjid=1275909514202748631-NA){:target="_blank"} in Google's docs.
5959

6060
{% include components/actions-fields.html settings="true"%}
6161

@@ -85,6 +85,12 @@ In order for data to be sent downstream to Google Analytics, check your mappings
8585

8686
The **setConfigurationFields** mapping is required in order for data to be sent downstream. If no other mappings are enabled, the destination does not send events.
8787

88+
### Manually send `page_view` events
89+
90+
If you prefer to the keep **Page Views** setting disabled and manually send a `page_view`, please see this Google Doc for more on [Manual Pageviews](https://developers.google.com/analytics/devguides/collection/ga4/views?client_type=gtag#manually_send_page_view_events).
91+
92+
With Google Analytics 4 Web, you will need to configure a [Custom Event](/docs/connections/destinations/catalog/actions-google-analytics-4-web/#custom-event) mapping for manually sending `page_view` events. When mapping the events, please make sure to set the Event Name to `page_view`.
93+
8894
### Tracking UTM Parameters
8995

9096
UTM Parameters are automatically tracked and sent to Google when they are present in the URL. For example, with the following URL:

src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@ The CRM endpoint maps email addresses into UID2s. If it's a valid email address,
6868

6969
#### What PII format should I send?
7070

71-
The Trade Desk recommends transmitting personally identifiable information (PII) in its original, non-hashed format. TTD's preference is to handle the hashing of the data on their end (PII type as `Email`). However, if your data already contains any hashed emails, please designate the PII type as `Hashed Email.`
71+
The Trade Desk recommends transmitting personally identifiable information (PII) in its original, non-hashed format. TTD's preference is to handle the hashing of any PII, like emails, on their end. However, if your data already contains any hashed emails, please ensure you are normalizing and hashing the emails by designating the PII type as `Hashed Email`, in line with TTD's [PII Normalization and Hash Encoding](https://api.thetradedesk.com/v3/portal/data/doc/DataPiiNormalization){:target="_blank”} documentation.
7272

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ This destination is maintained by Autopilot. See [Autopilot's documentation](ht
1010
Are you instead trying to set up Autopilot as a Source to get data from Autopilot into your data warehouse or other downstream tools? See our documentation on our [Autopilot source](/docs/connections/sources/catalog/cloud-apps/autopilothq/) instead.
1111

1212
## Getting Started
13-
14-
15-
1613
1. From the Segment web app, click **Catalog**.
1714
2. Search for "Autopilot" in the Catalog, select it, and choose which of your sources to connect the destination to.
1815
3. In the destination settings, enter your "API Key" from [here](https://login.autopilothq.com/login#settings/app-connections/segment-sync){:target="_blank”} or go to Autopilot: Settings -> App Connections -> Segment and copy/paste the API key which is listed there.
@@ -29,6 +26,9 @@ analytics.identify('12091906-01011992', {
2926
});
3027
```
3128

29+
> info "Engage requires Identify calls from the Autopilot destination to include email or userId"
30+
> If neither are provided in the payload then the Autopilot destination's [Event Delivery](/docs/connections/event-delivery/) tab will show a 400 Bad Request error message : _"Missing unique identifier traits. Either `email` or `user_id` traits must be provided"_.
31+
3232
## Track
3333

3434
If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/) does. An example call would look like:
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: 'CDP Resolution Destination'
3+
hidden: true
4+
id: 650c69e7f47d84b86c120b4c
5+
published: false
6+
beta: true
7+
---

src/connections/destinations/catalog/facebook-pixel-server-side/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Use this approach if you want to separate tracking events completed on a user's
9696

9797
For this option to work best, the same `external_id` needs to be passed from the browser and the server. To achieve this, go to your Facebook Pixel destination settings in Segment and enable the **Enable Advanced Matching** and **Use User ID or Anonymous ID as External ID** settings. By default the Facebook Conversions API destination uses the `userId` (or `anonymousId` if not present) to set the `external_id`, so when you set up Facebook Pixel to use the same settings, Facebook can then match the users.
9898

99-
You can also send [user traits in the context object of the track events](#default-mappings-to-facebook-properties)to increase the match rate for events from a server source. Collect other fields from the browser, like `userAgent`, `ip` address, and [Facebook's parameters (fbp, fbc)](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc){:target="_blank"}, pass them to the server, and manually add them to the events.
99+
You can also send [user traits in the context object of the track events](#default-mappings-to-facebook-properties) to increase the match rate for events from a server source. Collect other fields from the browser, like `userAgent`, `ip` address, and [Facebook's parameters (fbp, fbc)](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc){:target="_blank"}, pass them to the server, and manually add them to the events.
100100

101101
#### Deduplication considerations
102102

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ id: 54521fd725e721e32a72eebd
1212
1. From the Segment web app, click **Catalog**.
1313
2. Search for "Heap" in the Catalog, select it, and choose which of your sources to connect the destination to.
1414
3. In the destination settings, enter your Heap "App ID" into the connection settings.
15-
4. Remove Heap's snippet from your page if you're using Segment's client-side Analytics.js library to load Heap. With the Analytics.js library, Segment asynchronously loads Heap's JavaScript library onto your page. All native functionality of Heap, including auto-capturing of all events are available to you.
15+
4. Remove Heap's snippet from your page if you're using Segment's client-side Analytics.js library to load Heap. With the Analytics.js library, Segment asynchronously loads Heap's JavaScript library onto your page. All native functionality of Heap, including auto-capturing of all events, is available to you.
1616

1717
## Identify
1818

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: 'Insider Audiences Destination'
3+
hidden: true
4+
id: 643698ffee21b544f6aa756a
5+
published: false
6+
---
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: 'Insider Cloud Mode (Actions) Destination'
3+
hidden: true
4+
id: 643697f531f98a978f414453
5+
published: false
6+
---
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: 'LaunchDarkly Audiences Destination'
3+
hidden: true
4+
id: 64e72a310da9ebedf99c8937
5+
published: false
6+
beta: true
7+
---

src/connections/destinations/catalog/linkedin-insight-tag/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,7 @@ From there, click **Configure LinkedIn Insight Tag** and select the source for w
5353
![A screenshot of the Settings page for the LinkedIn Insight Tag destination.](images/Nmad4zYvWy.png)
5454

5555
Select that option and paste in the LinkedIn Data Partner ID that you copied earlier. Click **Save**, then click **Activate Destination**. Our servers build the latest CDN for that source, and the LinkedIn Insight Tag loads on the sites that use that source's Segment snippet!
56+
57+
## Conversion tracking
58+
59+
Segment's LinkedIn Insight Tag destination is fairly unique in that all Segment does is load the LinkedIn scripts onto your website for you so you can call methods directly without having to add the script tags yourself. Any special conversion tracking needs to be done within your LinkedIn workspace as you normally would if you were setting up LinkedIn without Segment.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: 'Optimizely Advanced Audience Targeting Destination'
3+
hidden: true
4+
id: 64edeb2bee24614fe52ede34
5+
published: false
6+
beta: true
7+
---

src/connections/destinations/catalog/optimizely-web/index.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,21 +229,23 @@ For example, let's say you run a redirect experiment on page `http://home.com` t
229229

230230
Our Optimizely Web destination detects this and send the effective referrer value as a property of the subsequent Experiment Viewed. Segment also overrides the `context.page.referrer` with the effective referrer.
231231

232-
More importantly, to send the true referrer value with the initial `page` call inside the Segment snippet, you can look up `window.optimizelyEffectiveReferrer`, and if it exists, you can pass that into your `page` call. This is how you might modify your Segment snippet:
232+
More importantly, to send the true referrer value with the initial `page` call inside the Segment snippet, you can look up `window.optimizelyEffectiveReferrer`, and if it exists, you can pass that into your `page` call. This is how you might modify your Segment snippet to pass the extra code inside [ready()](/docs/connections/sources/catalog/libraries/website/javascript/#ready) so its only called after Optimizely SDK has finished loading:
233233

234234
```javascript
235-
<script type="text/javascript">
236-
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t,e){var n=document.createElement("script");n.type="text/javascript";n.async=!0;n.src="https://cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a);analytics._loadOptions=e};analytics.SNIPPET_VERSION="4.1.0";
235+
<script>
236+
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){if(window.analytics.initialized)return window.analytics[e].apply(window.analytics,arguments);var i=Array.prototype.slice.call(arguments);i.unshift(e);analytics.push(i);return analytics}};for(var i=0;i<analytics.methods.length;i++){var key=analytics.methods[i];analytics[key]=analytics.factory(key)}analytics.load=function(key,i){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src="https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=i};analytics._writeKey="YOUR_WRITE_KEY";;analytics.SNIPPET_VERSION="4.16.1";
237237
analytics.load("YOUR_WRITE_KEY");
238238

239-
/* MODIFIED SECTION */
239+
240+
analytics.ready(function() {
241+
/* MODIFIED SECTION */
240242
// Hey did Optimizely set an effective referrer?
241243
if (window.optimizelyEffectiveReferrer) var referrer = window.optimizelyEffectiveReferrer;
242244

243245
// If they did, override the document.referrer
244-
referrer ? analytics.page({ referrer: referrer }): analytics.page();
246+
referrer ? analytics.page({ referrer: referrer }):analytics.page();
245247
/* MODIFIED SECTION */
246-
248+
});
247249
}}();
248250
</script>
249251
```

src/connections/functions/usage.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,7 @@ for (const response of responses) {
6969
```
7070

7171
If you're only issuing a single request in your function and it is slow, you might want to contact the owner of the external API for support.
72+
73+
## Default limit number
74+
75+
Each workspace has a default limit of 25 Functions in total across Source, Insert, and Destination Functions. If you want to create more, please reach out to [Segment](mailto:[email protected]).

src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ Set up Postgres as your Reverse ETL source.
66

77
At a high level, when you set up Postgres for Reverse ETL, the configured user/role needs read permissions for any resources (databases, schemas, tables) the query needs to access. Segment keeps track of changes to your query results with a managed schema (`__SEGMENT_REVERSE_ETL`), which requires the configured user to allow write permissions for that schema.
88

9+
Segment supports the following Postgres database providers:
10+
- Heroku
11+
- RDS
12+
13+
> warning ""
14+
> Segment only supports these Postgres database providers. Postgres databases from other providers aren't guaranteed to work. For questions or concerns about Segment-supported Postgres providers, [contact Segment Support](https://segment.com/help/contact){:target="_blank"}.
15+
916
## Set up guide
1017
To set up Postgres with Reverse ETL:
1118

@@ -28,4 +35,4 @@ To set up Postgres with Reverse ETL:
2835
## Extra permissions
2936
* Give the `segment` user read permissions for any resources (databases, schemas, tables) the query needs to access.
3037

31-
* Give the `segment` user write permissions for the Segment managed schema (`__SEGMENT_REVERSE_ETL`), which keeps track of changes to the query results.
38+
* Give the `segment` user write permissions for the Segment managed schema (`__SEGMENT_REVERSE_ETL`), which keeps track of changes to the query results.

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
22
title: 'Alloy Flow Source'
3-
hidden: true
43
id: DY0B0Q2Gce
54
beta: true
65
---

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ plugins:
6969
url: https://cdn.filepicker.io/api/file/fb5lNYEhQoWnABOjynZ6
7070
mark:
7171
url: https://cdn.filepicker.io/api/file/kWmScDJ3SvK1QBZTChGQ
72+
- name: Survicate
73+
url: connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/survicate-kotlin-android/
74+
logo:
75+
url: https://cdn.filepicker.io/api/file/BUciQq3kSzqCn8EKMtBN
76+
mark:
77+
url: https://cdn.filepicker.io/api/file/0H2JyPoRT4K3CnBQcHPn
7278
- name: Quantcast
7379
url: connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/quantcast-kotlin-android/
7480
logo:
@@ -139,4 +145,4 @@ To test your destination:
139145
Segment recommends you to test your destination implementation end-to-end. Send some sample analytics events and ensure that they reach the destination.
140146

141147
> info ""
142-
> For more information about the Analytics Kotlin Plugin architecture and how it can help you customize your tracking implementation to suit your needs, refer to the [Plugin Architecture Guide.](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-plugin-architecture)
148+
> For more information about the Analytics Kotlin Plugin architecture and how it can help you customize your tracking implementation to suit your needs, refer to the [Plugin Architecture guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-plugin-architecture).

0 commit comments

Comments
 (0)