{% if source.regions contains "us" %}{% else %}{% endif %}
+
{% if source.regions contains "eu" %}{% else %}{% endif %}
+
+ {% endfor %}
+
+
+
+
diff --git a/src/connections/destinations/catalog/actions-google-analytics-4/index.md b/src/connections/destinations/catalog/actions-google-analytics-4/index.md
deleted file mode 100644
index 0c0b189e2f..0000000000
--- a/src/connections/destinations/catalog/actions-google-analytics-4/index.md
+++ /dev/null
@@ -1,177 +0,0 @@
----
-title: Google Analytics 4 Cloud Destination
-strat: google
-hide-boilerplate: true
-hide-dossier: false
-id: 60ad61f9ff47a16b8fb7b5d9
-versions:
- - name: "Google Analytics 4 Web"
- link: '/docs/connections/destinations/catalog/actions-google-analytics-4-web/'
----
-
-{% include content/plan-grid.md name="actions" %}
-
-[Google Analytics 4](https://support.google.com/analytics/answer/10089681){:target="_blank"} is Google's new Analytics property, which you can use for both websites and applications. Google Analytics 4 has machine learning at its core to help surface insights and give you a more complete understanding of your customers across devices and platforms.
-
-When you have Segment installed, you can use your existing tracking implementation to fulfill your data collection needs with Google Analytics 4. Segment will send your data server-side to [Google's Measurement Protocol API](https://developers.google.com/analytics/devguides/collection/protocol/ga4){:target='_blank'}.
-
-> warning ""
-> Google Analytics 4 doesn't officially support a pure server-to-server integration. However, Segment monitors the capabilities of the Measurement Protocol API and updates the cloud integration accordingly to achieve a reasonable level of reporting for mutual customers. For full functionality, please see the [Google Analytics 4 Web destination](/docs/connections/destinations/catalog/actions-google-analytics-4-web/){:target='_blank'}.
-
-## Benefits of Google Analytics 4 Cloud
-
-The Google Analytics 4 Cloud destination provides the following benefits:
-
-- **Fewer settings**. Data mapping for actions-based destinations happens during configuration, which eliminates the need for most settings.
-- **Clearer mapping of data**. Actions-based destinations enable you to define the mapping between the data Segment receives from your source and the data Segment sends to Google Analytics 4.
-- **Prebuilt mappings**. Mappings for recommended Google Analytics 4 events, like `Purchase`, are prebuilt with the prescribed parameters and available for customization.
-- **Support for multi-product arrays**. Products nested within arrays, like the `products` array in the [Order Completed](/docs/connections/spec/ecommerce/v2/#order-completed){:target='_blank'} event, can be sent to Google Analytics 4.
-
-## Getting started
-
-Before you connect Segment to Google Analytics 4, configure a Google Analytics 4 property in your Analytics account. For more information, see Google's article: [Set up Analytics for a website and/or app](https://support.google.com/analytics/answer/9304153){:target='_blank'}.
-
-To add the Google Analytics 4 Cloud destination:
-
-1. From the Segment web app, click **Catalog**, then click **Destinations**.
-2. Search for “Google Analytics 4 Cloud” in the Destinations Catalog, and select the destination.
-3. Click **Configure Google Analytics 4 Cloud** in the top-right corner of the screen.
-4. Select the source that will send data to Google Analytics 4 and follow the steps to name your destination.
-5. On the **Settings** tab, enter in the [Measurement ID](https://support.google.com/analytics/answer/9539598){:target='_blank'} for web streams or the [Firebase App ID](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=firebase#payload_query_parameters){:target='_blank'} for mobile streams. Next, enter in the API Secret associated with your GA4 stream and click **Save**. To create a new API Secret, navigate in the Google Analytics UI to Admin > Data Streams > choose your stream > Measurement Protocol > Create.
-6. Follow the steps in the Destinations Actions documentation on [Customizing mappings](/docs/connections/destinations/actions/#customizing-mappings).
-
-{% include components/actions-fields.html %}
-
-## Universal Analytics and Google Analytics 4
-
-### Differences between Universal Analytics and Google Analytics 4
-
-Google Analytics 4 uses an event-based data model similar to Segment, with the principle that any interaction can be captured as an event. Universal Analytics, on the other hand, is based on hits and is primarily pageview-based. Because the data collection models are different, data cannot be migrated from Universal Analytics to Google Analytics 4 and Google recommends recreating your existing Universal Analytics tracking in Google Analytics 4. For more information on the different data models, see Google’s [Events in Google Analytics 4 vs Universal Analytics](https://support.google.com/analytics/answer/11091422?hl=en&ref_topic=11091421){:target='_blank'} and [Universal Analytics versus Google Analytics 4 data](https://support.google.com/analytics/answer/9964640?hl=en&ref_topic=11192706){:target='_blank'}.
-
-Google Analytics 4 has different out-of-the-box reports. Google Analytics 4’s reporting is much more configurable and supports new reporting metrics like churn probability and predictive revenue estimates. In addition, goals defined in Universal Analytics have been replaced with the concept of conversions in Google Analytics 4. Reports and conversions will need to be rebuilt in Google Analytics 4.
-
-> info ""
-> To determine whether you have a Universal Analytics property or a Google Analytics 4 property, look at your property ID. Universal Analytics property IDs start with UA and end with a number (UA-XXXXXXXXX-1). Google Analytics 4 property IDs have only numbers (XXXXXXXXX).
-
-### Migrating from Universal Analytics to Google Analytics 4
-> warning ""
-> Google announced that all standard Universal Analytics properties will stop processing new data on July 1, 2023. 360 Universal Analytics properties with a current order will receive a one-time processing extension ending on July 1, 2024. Learn more about when [Google Analytics 4 will replace Universal Analytics](https://support.google.com/analytics/answer/11583528?sjid=13479291677968058253-NA){:target='_blank'}.
-
-Segment’s Google Analytics 4 Cloud integration is a server-side integration with the GA4 Measurement Protocol API. This is similar to Segment’s Google Universal Analytics cloud-mode integration in that all data is sent directly to Google’s servers. Please note that this means client-side functionality, such as [Enhanced Measurement](https://support.google.com/analytics/answer/9216061){:target='_blank'}, may not be available through Segment. In addition, as Google continues to develop the GA4 Measurement Protocol API ahead of general availability of the API, there may be limitations that impact what can be seen in the Google Analytics 4 reports.
-
-#### Recommended events
-Google Analytics 4 requires the use of [recommended events and properties](https://support.google.com/analytics/answer/9267735){:target='_blank'} to power certain built-in reports. Segment’s Google Analytics 4 Cloud destination provides prebuilt mappings to automatically map your [Segment spec](/docs/connections/spec/ecommerce/v2){:target='_blank'} events to the corresponding Google Analytics 4 events and properties. If your Segment events don't follow the Segment spec exactly, you can modify the mappings. For example, Segment maps "Order Completed" events to the Google Analytics 4 “Purchase” event by default. If your company uses “Products Purchase” to indicate a purchase, this can be mapped in the Purchase action’s Event Trigger instead.
-
-Segment recommends using the prebuilt mappings when possible, however the Segment spec doesn't have an equivalent event for every Google Analytics 4 recommended event. If there are other recommended events you would like to send, please use the [Custom Event action](/docs/connections/destinations/catalog/actions-google-analytics-4/#custom-event){:target='_blank'}. For example, to send a `spend_virtual_currency` event, create a mapping for Custom Event, set up your Event Trigger criteria, and input a literal string of "spend_virtual_currency" as the Event Name. You can use the Event Parameters object to add fields that are in the `spend_virtual_currency` event such as `value` and `virtual_currency_name`.
-
-#### Custom events
-In addition to recommended events, you can also send custom events using the [Custom Event action](/docs/connections/destinations/catalog/actions-google-analytics-4/#custom-event){:target='_blank'}. Custom events are events that you name. Custom events don't appear in most standard reports; you need to set up custom reports for meaningful analysis. To create custom events in the Google Analytics 4 web interface, see Google’s [Modify and create events through the user interface](https://support.google.com/analytics/answer/10085872){:target='_blank'}.
-
-> info "Event naming limitations"
-> Google Analytics 4 requires that all event names contain only alpha-numeric characters and underscores, must start with an alphabetic character, and support a maximum of 40 characters. Segment replaces spaces in Event Names with an underscore, so that these events are accepted by GA4. For example, Segment renames an event named `Home Profile` to `Home_Profile`. In some cases, GA4 may reject an event outright, due to unsupported characters. For example, an event named `Home | Profile` will be silently rejected due to the pipe character.
-
-In all cases, event names in GA4 are case sensitive and require values in all properties. The Custom Event action includes a **Lowercase Event Name** option, to ensure consistency of all events sent to Google. For more information, see Google's articles [Google Analytics 4 event name rules](https://support.google.com/analytics/answer/10085872?hl=en&ref_topic=9756175#event-name-rules){:target='_blank'} and [Event name limitations](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=firebase){:target="_blank"}.
-
-#### Custom dimensions and metrics
-With Google Analytics 4, you must create custom dimensions and metrics within the Google Analytics 4 interface and link parameters to the corresponding dimension or metric. When you create the dimension or metric, you can either select a parameter from the list of already collected fields or enter the name of the parameter you plan to collect in the future. Custom dimensions can be either event-scoped or user-scoped, and custom metrics must be event-scoped.
-
-To send parameters to Google Analytics 4, use the Event Parameters or User Properties object available on every action. Only pass flat key-value pairs in the Event Parameters and User Properties objects. Keep in mind that Google silently drops any events that include nested parameters.
-
-To achieve parity with Universal Analytics, you should create the same custom dimensions that you defined in Universal Analytics. Additionally, in Google Analytics 4, you should recreate many of the values that you tracked as event dimensions in Universal Analytics, particularly event category and event label. For more information, see [Google Analytics 4 Custom dimensions and metrics](https://support.google.com/analytics/answer/10075209){:target='_blank'}.
-
-#### Tracking active users and sessions
-
-##### Server-side Implementation using Google Analytics 4 Cloud Destination
-
-The Google Analytics 4 reports only display active users who engage with your site for a non-zero amount of time. To ensure users are rendered in reports, Segment sets the `engagement_time_msec` parameter to 1 by default. If you track engagement time on your Segment events, you can use the Engagement Time in Milliseconds field mapping to set `engagement_time_msec` to a different value.
-
-Besides Engagement Time in Milliseconds, you can also generate your own `session_id` and `session_number` and pass them as event properties to Segment. These properties can then be mapped to their corresponding parameters in Segment's Google Analytics 4 Cloud destination.
-
-> info "Session tracking limitations"
-> Session tracking server-side only supports a subset of user dimensions. Certain reserved fields such as location, demographics, other [predefined user dimensions](https://support.google.com/analytics/answer/9268042?hl=en&ref_topic=11151952){:target='_blank'} and device-specific information are not supported by Google's Measurement Protocol API.
-
-##### Using Gtag.js and Google Analytics 4 Cloud Destination
-
-If you choose to integrate with Google Analytics 4 client-side (either with Segment's Google Analytics 4 Web destination or outside of Segment) _and_ also use Segment's Google Analytics 4 Cloud destination to send events through the API, you will have all the reserved parameters and sessions tracking information available in Google Analytics 4 reports.
-
-When using Gtag, [Google generates a `session_id` and `session_number` when a session begins](https://support.google.com/analytics/answer/9191807?hl=en){:target='_blank'}. The `session_id` and `session_number` generated on the client can be passed as Event Parameters to stitch events sent through the API with the same session that was collected client-side. Additionally, `client_id` must be the same for both client-side and server-side events in order to deduplicate user counts in GA4 (unless User-ID is used as the basis for user identification). For events to stitch properly, server-side events must arrive within a 48 hour window of when the client-side events arrive.
-
-You can check your `client_id`, `session_id` and `session_number` with the [Google Site Tag function](https://developers.google.com/tag-platform/gtagjs/reference){:target='_blank'} or by running this script in your JavaScript console and replacing `G-xxxxxxxxxx` with your Google Analytics 4 Measurement ID:
-
-```java
-const sessionIdPromise = new Promise(resolve => {
- gtag('get', 'G-xxxxxxxxxx', 'session_id', resolve)
-});
-const sessionNumPromise = new Promise(resolve => {
- gtag('get', 'G-xxxxxxxxxx', 'session_number', resolve)
-});
-
-const clientIdPromise = new Promise(resolve => {
- gtag('get', 'G-xxxxxxxxxx', 'client_id', resolve)
-});
-
-Promise.all([sessionIdPromise, sessionNumPromise, clientIdPromise]).then(function(session_data) {
- console.log("session ID: "+session_data[0]);
- console.log("session Number: "+session_data[1]);
- console.log("client ID: "+session_data[2]);
-});
-```
-
-#### User identification
-Segment requires a Client ID or Firebase App Instance ID to send data to Google Analytics 4. The Client ID is the web equivalent of a device identifier and uniquely identifies a given user instance of a web client. By default, Segment sets Client ID to the Segment `userId`, falling back on `anonymousId`. This mapping can be changed within each action if you prefer to map a different field to Client ID.
-
-The Firebase App Instance ID is the mobile equivalent of a device identifier and uniquely identifiers a given Firebase app instance. No default is set for Firebase App Instance ID, as [this value needs to be retrieved through the Firebase SDK](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=firebase#payload_post_body){:target='_blank'}.
-
-Segment also allows you to send a User-ID with your events. The User-ID feature lets you associate your own identifiers with individual users so you can connect their behavior across different sessions and on various devices and platforms. For more information on User-ID, see Google’s [Measure activity across platforms](https://support.google.com/analytics/answer/9213390){:target='_blank'} and [Reporting: deduplicate user counts](https://support.google.com/analytics/answer/9355949){:target='_blank'}.
-
-There are certain scenarios where sending a User-ID can be helpful. For example, if you choose to integrate with Google Analytics 4 client-side (either with Segment's Google Analytics 4 Web destination or outside of Segment) _and_ also use Segment's Google Analytics 4 Cloud destination to send events through the API, you may consider taking the following approach:
-- **Use the Gtag-generated Client ID.** Gtag will set a Client ID automatically. The Client ID is stored in a cookie and can be fetched on the web client. To tie data between client-side and server-side, pass the Gtag-generated Client ID to Segment as a property and use that value as the Client ID in the Google Analytics 4 Cloud destination mappings.
-- **Use the Segment `userId` for User-ID.** The Segment `userId` should be your company’s canonical user identifier. By setting Google's User-ID to the same value as `userId` on client-side and server-side, you can benefit from cross-platform analytics. In addition, if you use [Firebase to send mobile data to Google Analytics 4](/docs/connections/destinations/catalog/actions-google-analytics-4/#mobile-data), using the same User-ID across web and mobile will ensure users are stitched together across devices.
-
-#### Validating and comparing data
-Google recommends a period of dual-collection with both Universal Analytics and Google Analytics 4. This dual-collection approach lets you build a historical record in Google Analytics 4 while continuing to depend on Universal Analytics until you're ready to fully switch over.
-
-During this period, you may find it hard to perfectly compare between the two properties because reports and configuration settings vary between Universal Analytics and Google Analytics 4 properties. Google provides guidance on the [conditions that must be met](https://support.google.com/analytics/answer/9964640?hl=en&ref_topic=11192706#comparing){:target="_blank"} in order to compare data in the Realtime reports, as well as [which metrics are comparable versus not](https://support.google.com/analytics/answer/11986666?hl=en&ref_topic=10737980){:target="_blank"}.
-
-For a complete map of Universal Analytics functionality to corresponding Google Analytics 4 functionality, please see Google’s [Migration Reference](https://support.google.com/analytics/answer/10607999?hl=en&ref_topic=10737980){:target="_blank"}.
-
-## FAQ and Troubleshooting
-
-### Data not sending to Google
-
-Ensure that at least one mapping has been configured and enabled in the destination mappings for an event that you would like to reach Google. Without any mappings enabled to trigger on an event that has been ingested by the connected source, the destination will not send events downstream.
-
-### Attribution reporting
-
-Google doesn't currently support passing certain reserved fields to the Google Analytics 4 Measurement Protocol API. This includes attribution data, like UTM parameters. If you rely on attribution reporting, you can either send this data as [custom dimensions](/docs/connections/destinations/catalog/actions-google-analytics-4/#custom-dimensions-and-metrics){:target='_blank'} or implement a parallel client-side integration to collect this data with gtag.js (web) or Firebase (mobile).
-
-### Debug mode
-
-The Google Analytics 4 [debug mode](https://support.google.com/analytics/answer/7201382?hl=en){:target="_blank"} only works with a client-side implementation through gtag.js, Google Tag Manager, or Firebase. Because Segment's Google Analytics 4 Cloud integration is server-side and uses the Measurement Protocol API, debug mode is not supported.
-
-### Mobile data
-
-To achieve complete reporting, Google recommends use of their Firebase SDKs to send mobile data to Google Analytics 4. To assist in your implementation, Segment has a [Firebase destination](/docs/connections/destinations/catalog/firebase) available for mobile analytics. For more information on linking Google Analytics 4 properties to Firebase, see [Google Analytics 4 Firebase integration](https://support.google.com/analytics/answer/9289234?hl=en){:target="_blank"}.
-
-The Segment Google Analytics 4 Cloud destination supports sending mobile app events server-side to supplement your Firebase implementation. To send mobile events server-side, configure the Firebase App ID in the Destination settings. In each mapping, change the Data Stream Type to `Mobile App` and set a Firebase App Instance ID so that data routes to a mobile stream.
-
-### Reserved names
-
-Google reserves certain event names, parameters, and user properties. Google silently drops any events that include [these reserved names](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=gtag#reserved_names){:target="_blank"}. Google doesn't accept events in the following conditions:
-- event or user property names have spaces in them
-- fields with `null` values
-- fields or events with reserved names
-- fields with a number as the key
-- fields or events with a dash (-) character in the name
-
-### Verifying Event Meet GA4's Measurement Protocol API
-**Why are the events returning an error _Param [PARAM] has unsupported value._?**
-Google has some requirements/[limitations](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#limitations){:target="_blank"} imposed by their [Measurement Protocol API](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag){:target="_blank"}. If an event contains `null`/`object`/`array` parameters, GA4 silently drops the event, so Segment does not attempt to send the event but instead returns an error of `Invalid Type` that can be found in the destination's Event Delivery tab. To verify whether an event will return this error, you can send an event to [GA4's debug endpoint](https://developers.google.com/analytics/devguides/collection/protocol/ga4/validating-events?client_type=gtag){:target="_blank"} with an API tool like [Postman](https://www.postman.com/){:target="_blank"}.
-
-### Data takes a long time to appear in Google's reports
-
-Google may take [24-48 hours](https://support.google.com/analytics/answer/9333790){:target='_blank'} to process data sent to Google Analytics. As a result, the Google Analytics user interface may not reflect the most current data. The Google Analytics [Realtime report](https://support.google.com/analytics/answer/9271392){:target="_blank"} displays activity on your site as it happens.
-
-### Google Optimize Support
-
-The Google Analytics 4 Cloud destination does not support Google Optimize. This destination operates in cloud-mode (sending events from Segment servers to Google Analytics using the Measurement Protocol API), which prevents the required [Optimize SDK](https://support.google.com/optimize/answer/11287798?visit_id=637903946258690719-978290187&rd=1){:target="_blank"} snippet from loading on the page.
diff --git a/src/connections/destinations/catalog/google-ads-gtag/index.md b/src/connections/destinations/catalog/google-ads-gtag/index.md
deleted file mode 100644
index 2c62757a17..0000000000
--- a/src/connections/destinations/catalog/google-ads-gtag/index.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: 'Google Ads (Gtag) Destination'
-beta: true
-redirect_from: '/connections/destinations/catalog/google-adwords-new/'
-strat: google
-name-override: true
-id: 5a03bfe73156760001ab34ec
----
-
-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.
-
-> warning ""
-> 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)**.
-
-> info ""
-> If you're sending [enhancement data to Google Ads](/docs/connections/destinations/catalog/actions-google-enhanced-conversions/) in parallel with Gtag, you must include the same Order ID (Transaction ID) on both sets of data. This is required to properly deduplicate conversions between Gtag conversions and enhanced conversions. To send Order ID (Transaction ID) to Gtag, include `order_id` as a property on your web events.
-
-## Getting Started
-
-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.
-
-### Configure the Google Ads (Gtag) destination
-
-1. From the Segment Destinations Catalog find and select Google Ads (Gtag).
-2. Click **Configure Google Ads (Gtag)**.
-3. Select the source you will use to send data to Google Ads (Gtag).
-4. Provide a meaningful name to this instance of the destination.
-5. On the destination Settings tab, enter the **Conversion ID** from your Google Ads (Gtag) account.
-6. Select the 'Click Conversion' setting. Enter the name of the event as it appears in the [`track`](/docs/connections/spec/track) call and map it to your Google Ads (Gtag) conversion label.
-
-## Page
-
-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**.
-
-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.
-
-You can send Google's semantic properties, such as `value`, `currency`, or `transaction_id`, as integration specific options. However, Segment recommends you to create a **Click Conversion** instead, and map them to `.track()` calls. The example below shows these properties as integration-specific options:
-
-```javascript
-analytics.page({}, {
- 'Google Adwords New': {
- value: 25,
- currency: 'USD',
- order_id: 'order123'
- }
-});
-```
-
-> note ""
-> **NOTE:** The `'Google Adwords New'` is case sensitive. Segment prefers you to use `order_id` rather than `transaction_id` to stay more consistent with the [ecommerce spec](/docs/connections/spec/ecommerce/v2). However, Segment will send it as `transaction_id` in the request itself to satisfy Google's specifications.
-
-## Track
-
-You can map your custom `.track()` events to any **Click Conversions** you created inside Google Ads. Segment passes any `properties` so you can use them during your remarketing campaigns.
-
-If you pass `properties.value`, `properties.currency`, or `properties.order_id`, Segment maps them to Google's semantic `value`, `currency`, or `transaction_id` respectively.
-
-The only exception is that for `Order Completed` events, Segment will map Google's semantic `value` field to your `properties.revenue` or `properties.total`. If you pass both as properties, `properties.revenue` takes precedence.
-
-## Troubleshooting Google Ads Conversions
-To figure out if an event is flagged for conversion, follow these steps:
-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:
- 1. Go to **Connections > Sources** in your workspace and choose your Source.
- 2. Go to the **Debugger** tab.
- 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:
-
- ```js
- "library": {
- "name": "analytics.js",
- ```
-
-2. Verify that the [Google Conversion ID](/docs/connections/destinations/catalog/google-ads-gtag/#google-conversion-id) in your Segment workspace is correct.
-3. Find your ad online and click it. This will redirect you to your website.
-4. Open the Network tab in your browser and make sure the **Preserve log** checkbox is checked and **All** is selected. Keep this Network tab and webpage open.
-
- ![Network tab](../../images/network-tab.png)
-
-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**.
-
- ![Edit Settings](../../images/conversion-settings.png)
-
-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`.
-7. Go to the Network tab in your browser and enter the **Conversion Label** linked to the event you triggered in the **Filter** field.
-
- ![Network tab](../../images/network-tab-search.png)
-
-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.
-
-> info ""
-> Google Ads considers an event as a conversion when the user arrives to your website as a result of an Ad _click_. The Google SDK is responsible for checking if the user came from an Ad click and sets the parameter `ct_cookie_present` to true. Without clicking through an ad, Google Ads doesn't reflect the conversion because this information is missing in the network requests.
-
-## Multiple Google Ads Accounts
-
-If you are an enterprise that uses multiple Google Ads Gtag accounts (usually managed by various third party agencies) you can override the top level default Google Conversion ID at the event level by entering it into the settings.
diff --git a/src/connections/destinations/catalog/headsup-ai/index.md b/src/connections/destinations/catalog/headsup-ai/index.md
index b6241eb870..674869c363 100644
--- a/src/connections/destinations/catalog/headsup-ai/index.md
+++ b/src/connections/destinations/catalog/headsup-ai/index.md
@@ -2,6 +2,8 @@
title: HeadsUp AI Destination
rewrite: true
id: 60900f0a60033befef038889
+hidden: true
+private: true
---
[HeadsUp AI](https://headsup.ai?utm_source=segmentio&utm_medium=docs&utm_campaign=partners) allows customers to build metrics on top of their existing Segment analytics to better understand customer behavior and gauge health scores.
diff --git a/src/connections/destinations/destination-filters.md b/src/connections/destinations/destination-filters.md
index 8f39a92b47..034ff61f6b 100644
--- a/src/connections/destinations/destination-filters.md
+++ b/src/connections/destinations/destination-filters.md
@@ -22,6 +22,7 @@ Common use cases for destination filters include:
Keep the following limitations in mind when you use destination filters:
+- Destination Filters aren't applied to events sent through the Event Tester.
- Segment applies destination filters one at a time in the order that they appear in your workspace.
- You can't apply destination filters to Warehouses or S3 destinations.
- Each filter can only apply to one source-destination pair.
@@ -31,8 +32,6 @@ Keep the following limitations in mind when you use destination filters:
- *(For web device-mode)* Destination filters for web device-mode only supports the Analytics.js 2.0 source. You need to enable device mode destination filters for your Analytics.js source. To do this, go to your Javascript source and navigate to **Settings > Analytics.js** and turn the toggle on for **Destination Filters**.
- *(For web device-mode)* Destination filters for device-mode only supports the Analytics.js 2.0 source.
- *(For mobile device-mode)* Destination filters for mobile device-mode doesn't support iOS and Android libraries.
-- Destination Filters don't apply to events that send through the destination Event Tester.
-
[Contact Segment](https://segment.com/help/contact/){:target="_blank"} if these limitations impact your use case.
diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/mixpanel-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/mixpanel-swift.md
deleted file mode 100644
index 9e93070b1b..0000000000
--- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/mixpanel-swift.md
+++ /dev/null
@@ -1,261 +0,0 @@
----
-title: Analytics Swift Mixpanel Plugin
-strat: swift
----
-[Mixpanel](https://mixpanel.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners) is an event-tracking and segmentation platform for your web and mobile apps. By analyzing the actions your users perform, you can gain a better understanding to drive retention, engagement, and conversion. The client-side Mixpanel Destination code is open-source.
-
-Segment's Mixpanel destination plugin code is open source and available on GitHub. You can view it [here.](https://github.com/segment-integrations/analytics-swift-mixpanel)
-
-## Getting Started
-
-
-
-1. From the Segment app Destinations page click on **Add Destination**.
-2. Search for Mixpanel in the Destinations Catalog and confirm the Source to connect to.
-3. Copy your Mixpanel "API Secret" and "Token", and paste them into the Connection Settings in Segment.
-4. Enable the destination to start sending your data to Mixpanel.
-
-### Adding the dependency
-
-***Note:** the Mixpanel library itself will be installed as an additional dependency.*
-
-### through Xcode
-In the Xcode `File` menu, click `Add Packages`. You'll see a dialog where you can search for Swift packages. In the search field, enter the URL to this repository.
-
-https://github.com/segment-integrations/analytics-swift-mixpanel{:target="_blank"}
-
-You'll then have the option to pin to a version, or specific branch, as well as which project in your workspace to add it to. Once you've made your selections, click the `Add Package` button.
-
-### through Package.swift
-
-Open your Package.swift file and add the following do your the `dependencies` section:
-
-```
-.package(
- name: "Segment",
- url: "https://github.com/segment-integrations/analytics-swift-mixpanel.git",
- from: "1.1.3"
- ),
-```
-
-
-*Note the Mixpanel library itself will be installed as an additional dependency.*
-
-
-## Using the Plugin in your App
-
-Open the file where you setup and configure the Analytics-Swift library. Add this plugin to the list of imports.
-
-```
-import Segment
-import SegmentMixpanel // <-- Add this line
-```
-
-Just under your Analytics-Swift library setup, call `analytics.add(plugin: ...)` to add an instance of the plugin to the Analytics timeline.
-
-```
-let analytics = Analytics(configuration: Configuration(writeKey: "")
- .flushAt(3)
- .trackApplicationLifecycleEvents(true))
-analytics.add(plugin: MixpanelDestination())
-```
-
-Your events will now begin to flow to Mixpanel in device mode.
-
-## Identify
-
-If you're not familiar with the Segment Specs, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. An example call would look like:
-
-```swift
-struct MyTraits: Codable {
- let favoriteColor: String
-}
-
-analytics.identify(userId: "a user's id", MyTraits(favoriteColor: "fuscia"))
-```
-
-The first thing you'll want to do is to identify your users so Mixpanel knows who they are. You'll use the Identify method to accomplish this which takes the unique `userId` of a user and any `traits` you know about them.
-
-> info ""
-> **Important:** Mixpanel used to require that you call `alias` in all libraries to connect anonymous visitors to identified users. However, with the release of Mixpanel's new [Identity Merge feature](https://help.mixpanel.com/hc/en-us/articles/360039133851#enable-id-merge){:target="_blank"} this is no longer necessary. To enable ID Merge, go to your Mixpanel Settings Dashboard, navigate to **Project Settings > Identity Merge** and enable the setting from that screen. If you are _not_ using this setting, use the instructions below.
-
-
-As soon as you have a `userId` for a visitor that was previously anonymous you'll need to [`alias`](/docs/connections/spec/alias/) their old anonymous `id` to the new `userId`. In Mixpanel only **one** anonymous user history can be merged to **one** identified user. For that reason you should only call `alias` once, right after a user registered, but before the first `identify`.
-
- When you call the Identify method from the client in either a browser using Analytics.js or one a mobile SDKs, several things occur: Segment recognizes and translates the [special traits](/docs/connections/spec/identify/#traits) so that they fit the expectations of Mixpanel's API. The table below shows the mappings. Pass the key on the left and Segment transforms it to the key on the right before sending to Mixpanel.
-
-
-
-
`created`
-
`$created`
-
-
-
`email`
-
`$email`
-
-
-
`firstName`
-
`$first_name`
-
-
-
`lastName`
-
`$last_name`
-
-
-
`name`
-
`$name`
-
-
-
`username`
-
`$username`
-
-
-
`phone`
-
`$phone`
-
-
-
-### People
-
-Segment doesn't send data to Mixpanel People by default. To enable Mixpanel People, change the "Use Mixpanel People" setting in the Mixpanel Destination settings in Segment.
-
-To add people properties in Mixpanel before you know the user's unique database `userId`, you can identify `traits` without the `userId`.
-
-## Group
-
-Group calls are sent to Mixpanel if, **and only if**,
-
-1. The Group Identifier Traits setting has one or more traits saved in the destination settings for Mixpanel.
- ![Group ID Traits](images/mixpanel-group-id-traits.png)
-2. You have created a group key of the same name in your Mixpanel [project settings](https://help.mixpanel.com/hc/en-us/articles/360025333632-Group-Analytics#implementation){:target="_blank"}.
-3. A Group trait with the same name as one of the configured Group Identifier Traits is sent with the group call.
-
-```swift
-struct MyTraits: Codable {
- let username: String
- let email: String
- let plan: String
-}
-
-// ...
-
-analytics.group(groupId: "group123", traits: MyTraits(
- username: "MisterWhiskers",
- email: "hello@test.com",
- plan: "premium"))
-```
-
-Mixpanel supports multiple definitions of groups. For more information see [Mixpanel's Group Analytics documentation](https://help.mixpanel.com/hc/en-us/articles/360025333632-Group-Analytics){:target="_blank"}.
-
-If the group call **does not** have a group trait that matches the Group Identifier Traits setting, then the event will be ignored.
-
-### Register Super Properties
-
-By default, each trait (that is, properties in an `identify` call) is registered as a super property. This doesn't require passing a `userId` in the `identify` call. You can pass a `traits` object by itself and it will still register the traits as super properties.
-
-Disable **Set All Traits as Super Properties or People Properties By Default** to disable the default behavior and register super properties explicitly. For more information, see [Explicitly set People Properties and Super Properties](#explicitly-set-people-properties-and-super-properties).
-
-> info ""
-> Super properties require a device mode connection.
-
-#### Set People Properties
-
-If you've enabled Mixpanel People in your Segment settings, Segment calls Mixpanel's `people.set` with the same `traits` object. There's no need for an additional API call to populate Mixpanel People.
-
-Disable **Set All Traits as Super Properties or People Properties By Default** to disable the default behavior and register super properties explicitly. Segment automatically includes any trait on an identify that matches one of Mixpanel's special properties, which you can see in the table above. For more information, see [Explicitly set People Properties and Super Properties](#explicitly-set-people-properties-and-super-properties).
-
-## Track
-
-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:
-```swift
-struct TrackProperties: Codable {
- let someValue: String
-}
-
-analytics.track(name: "My Event", properties: TrackProperties(someValue: "Hello"))
-```
-Because Mixpanel is an event tracking analytics tool, you'll want to [`track`](/docs/connections/spec/track/) your user's actions. The more useful events you [`track`](/docs/connections/spec/track/), the better Mixpanel becomes.
-
-You should use the [`track`](/docs/connections/spec/track/) method to accomplish this. The Segment [`track`](/docs/connections/spec/track/) method maps events and event properties directly to Mixpanel events and event properties.
-
-### Track Charge
-
-If Mixpanel People is enabled in your Segment settings and you include an event property called `revenue`, Segment tracks a charge to the current user.
-
-### Reserved Properties
-
-There are two strings to avoid when naming event properties that will be sent to Mixpanel: `length` and `bucket`. `length` is interpreted as the JavaScript `.length` method, which causes the `mixpanel.track` call to fail silently. `bucket` is a reserved property that was used in the early days of Mixpanel. If you include a property called `bucket` in your events, it will not show up in the UI. However, it will not cause the `mixpanel.track` call to fail.
-
-### Explicitly Set People Properties and Super Properties
-
-Previously, Segment set all traits and properties as both Super Properties and People Properties (If you had Mixpanel People enabled). Now Mixpanel allows you to segment your reports by both People Properties and Super Properties. To give you better precision and control over what property or trait gets set as a Super Property or People Property, you can disable **Set All Traits as Super Properties or People Properties By Default** and pass in the properties or traits that you want to send to Mixpanel as People or Super Properties as shown below. Segment passes through all of Mixpanel's special traits as People Properties so you only need to add the ones that aren't on [this list](#group-using-device-mode).
-
-
-![mixpanel people properties list](images/mixpanelpeoplesuperprops.png)
-
-### Incrementing events
-
-You don't need to add extra code to increment event counts for Mixpanel people, as long as they are "known users". Supply the events that should be incremented.
-
-![mixpanel increment events list](images/mixpanelincrementinpeople.png)
-
-You can find this in the **Advanced Options** of your Mixpanel settings on your Segment Destinations page.
-
-For each event name listed, Segment calls Mixpanel `increment`, and set a user trait of `Last + {{ event.name }}`.
-
-For example, if you add **Logged In** to the list of increment events, Segment increments a user trait called **Logged In** and set a trait called **Last Logged In** with the current date and time.
-
-If you'd like to add an increment for viewing a specific page or screen, ensure you have the setting "Track Named Pages" selected and use the dynamically generated event name under "Events to Increment in People." For example, `.page('Signup')` would translate to "*Viewed* Signup *Page*" and `.screen('Listing')` would translate to "*Viewed* Listing *Screen*".
-
-Remember, Segment sends one event per `page` call.
-
-> info ""
-> Increment works for "known users", so if your track call is being made server-side, you need to pass a `userId`. If your track call is being made client-side, you need to identify the user first.
-
-### Incrementing properties
-
-To increment at the property level, tell Segment which properties you want to increment using the **Properties to increment** setting and Segment calls Mixpanel's `increment` for you when you attach a number to the property (for example, `'items purchased': 5`)
-
-### Screen
-
-When you use the Mixpanel destination in Device-mode, Segment sends Screen events to Mixpanel as follows:
-
-- If you select "Track all Pages to Mixpanel", all `screen` calls regardless of how you have customized it will send a `Loaded A Screen`. Even if you have the other options enabled, Segment sends this call to prevent double counting your pageviews.
-
-- If you select "Track Categorized Pages to Mixpanel", Segment sends a `Viewed [category] Screen` event.
-
-- If you select "Track Named Pages to Mixpanel", Segment sends a `Viewed [name] Screen` event.
-
-In short, Segment sends one event to Mixpanel per `screen` call.
-
-### Sending data to Mixpanel's European Union Endpoint
-
-To implement Mixpanel in the European Union, enable the setting "Enable European Union Endpoint" on the Settings tab of the Mixpanel destination. When this setting is enabled, Segment updates the endpoint for any data sent from server-side libraries, browsers using Analytics.js, or the iOS SDK.
-### When Will I See Data from my Mobile App?
-
-If you already have an app deployed with the Segment library, and you just enabled Mixpanel mobile, it can take up to an hour for all your mobile users to refresh their Segment settings cache, and learn about the new service that you want to send to.
-
-After the settings cache refreshes, the library starts to send data to Mixpanel.
-
-Also worth noting, Mixpanel's SDK only submits requests to the Mixpanel servers when the app is backgrounded. That means you may see events in your Segment debugger while testing, but those requests won't actually be forwarded to Mixpanel until the app gets sent to the background.
-
-If you're testing in Xcode remember you must first background the app, then the events will show up in Mixpanel. If you terminate the session without backgrounding those events will be lost.
-
-### I'm seeing events come into Mixpanel but not people.
-
-1. You'll need to make sure you're using [`identify`](/docs/connections/spec/identify/). A Mixpanel track doesn't create users in Mixpanel People.
-2. Make sure to turn on the "People" setting so that all of your [`identify`](/docs/connections/spec/identify/) calls will be sent to Mixpanel's People feature.
-3. Make sure you disable the default filter in the Mixpanel People Explore tab.
-
-### IP
-
-If an `ip` property is passed to Mixpanel, the value will be interpreted as the IP address of the request and therefore automatically parsed into Mixpanel geolocation properties (City, Country, Region). After that IP address has been parsed, they will throw out the IP address and only hold onto those resulting geolocation properties. As such, if you want to display an IP address as a property within the Mixpanel UI or within raw data, you will simply want to slightly modify the naming convention for that property.
-
-Instead of `ip`, you can use a property name of `user IP` or `IP Address` (whatever is most clear for your implementation). This way, Mixpanel won't automatically interpret the IP address as an IP address, and instead store that value as a property on the event. You can read more [here](https://mixpanel.com/help/reference/http#tracking-events){:target="_blank"}.
-
-### Push Notifications
-
-Push notifications are only available for projects bundling the Segment-Mixpanel SDK.
-
-> info ""
-> Set up your push notification handlers by calling into native Mixpanel methods. You can read more about how to approach this in the [iOS](/docs/connections/sources/catalog/libraries/mobile/ios/#what-if-your-sdk-doesnt-support-feature-x)
\ No newline at end of file
diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/mixpanel-kotlin-android.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/mixpanel-kotlin-android.md
index 3a8c89d27b..72857a5aef 100644
--- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/mixpanel-kotlin-android.md
+++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/mixpanel-kotlin-android.md
@@ -116,7 +116,7 @@ To add people properties in Mixpanel before you know the user's unique database
Group calls are sent to Mixpanel if, **and only if**,
1. The Group Identifier Traits setting has one or more traits saved in the destination settings for Mixpanel.
- ![](images/mixpanel-group-id-traits.png)
+ ![Group ID Traits](/docs/connections/destinations/catalog/mixpanel/images/mixpanel-group-id-traits.png)
2. You have created a group key of the same name in your Mixpanel [project settings](https://help.mixpanel.com/hc/en-us/articles/360025333632-Group-Analytics#implementation){:target="_blank"}.
3. A Group trait with the same name as one of the configured Group Identifier Traits is sent with the group call.
diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md
index d37883ad53..6b5f3e58d1 100644
--- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md
+++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/mixpanel-react-native.md
@@ -114,7 +114,7 @@ To add people properties in Mixpanel before you know the user's unique database
Group calls are sent to Mixpanel if, **and only if**,
1. The Group Identifier Traits setting has one or more traits saved in the destination settings for Mixpanel.
- ![Group ID Traits](images/mixpanel-group-id-traits.png)
+ ![Group ID Traits](/docs/connections/destinations/catalog/mixpanel/images/mixpanel-group-id-traits.png)
2. You have created a group key of the same name in your Mixpanel [project settings](https://help.mixpanel.com/hc/en-us/articles/360025333632-Group-Analytics#implementation){:target="_blank"}.
3. A Group trait with the same name as one of the configured Group Identifier Traits is sent with the group call.
diff --git a/src/guides/how-to-guides/set-up-notifications-alerts.md b/src/guides/how-to-guides/set-up-notifications-alerts.md
index 73790738e2..19f34cdfe7 100644
--- a/src/guides/how-to-guides/set-up-notifications-alerts.md
+++ b/src/guides/how-to-guides/set-up-notifications-alerts.md
@@ -8,28 +8,29 @@ Below you'll find a bunch of ways to set up notifications for yourself based on
You can use Google Analytics Custom Alerts to send yourself emails whenever a specific traffic segment drops below (or above) a threshold you set.
-[Details on how to set that up can be found here](https://support.google.com/analytics/answer/1033021?hl=en)
+[Learn how to set up email alerts here](https://support.google.com/analytics/answer/1033021?hl=en){:target="_blank"}.
### Analytics email summaries
-In tools like Amplitude, Kissmetrics, Mixpanel you can set up email reports delivered to you on a daily basis. They are completely customizable, so you can keep an eye on as many events or other metrics you'd like.
+With tools like Amplitude, Kissmetrics, and Mixpanel, you can set up email reports delivered to you on a daily basis. They are completely customizable, so you can keep an eye on as many events or other metrics you'd like.
* [Mixpanel email reports](https://mixpanel.com/blog/2011/04/14/email-reports/)
* [Amplitude email alerts (scroll down a bit)](https://amplitude.com/blog/2015/03/20/new-features-stickiness-team-access-controls-email-alerts-redshift-playbook/)
-### Realtime Traffic Monitoring
+### Realtime traffic monitoring
Chartbeat and GoSquared both offer awesome real-time dashboards to see what's happening right now on your site. They both include the option to get notified when your traffic hits a certain threshold. For example, if your on-site visitors is less than 100 people, or more than 1,000.
-* [Chartbeat Spike Alerts](http://blog.chartbeat.com/2011/08/11/newsbeat-introducing-spike-alerts/)
-* [GoSquared Traffic Spike Alerts](https://www.gosquared.com/customer/portal/articles/1036771-traffic-spike-alerts)
+* [Chartbeat Spike Alerts](http://blog.chartbeat.com/2011/08/11/newsbeat-introducing-spike-alerts/){:target="_blank"}
+* [GoSquared Traffic Spike Alerts](https://www.gosquared.com/customer/portal/articles/1036771-traffic-spike-alerts){:target="_blank"}
-Note: GoSquared also offers in-depth historical and user analysis. Chartbeat sticks to realtime anonymous traffic, but offers some sweet features for publishers.
+> info ""
+> GoSquared also offers in-depth historical and user analysis. Chartbeat sticks to realtime anonymous traffic, but offers some sweet features for publishers.
-### Webhook-based Alerts
+### Webhook-based alerts
-The last option we recommend is to use a monitoring tool like [PagerDuty](https://www.pagerduty.com/) or [Data Dog](https://www.datadoghq.com/) and point our [webhooks](/docs/connections/destinations/catalog/webhooks/) destination at them. That way you can set up custom alerts in their system.
+The last option Segment recommends is to use a monitoring tool like [PagerDuty](https://www.pagerduty.com/){:target="_blank"} or [Data Dog](https://www.datadoghq.com/){:target="_blank"} and point Segment's [webhooks](/docs/connections/destinations/catalog/webhooks/) destination at them. That way you can set up custom alerts in their system.
-### Event-Triggered Emails
+### Event-triggered emails
The last option for alerting based off of Segment events is to use one of the email tools available on the Segment platform that offers event-triggered emails. Your options there are Customer.io, Vero, Autopilot, Outbound, Klaviyo, or Threads.
diff --git a/src/guides/regional-segment.md b/src/guides/regional-segment.md
index 1e8f5fb8ee..74f27b517f 100644
--- a/src/guides/regional-segment.md
+++ b/src/guides/regional-segment.md
@@ -88,3 +88,13 @@ Use Segment's custom CIDR `3.251.148.96/29` while authorizing Segment to write i
The following integrations marked with a ![Supports EU regional endpoints](/docs/images/supported.svg){:class="inline"} (checkmark) support EU Regional endpoints.
{% include content/regional-integrations-table.md %}
+
+## Source Regional support
+
+> info "Don't see regional support for a source you're using?"
+> As more of the partner Sources start to support posting data to our regional endpoint, Segment will update this list. Your contact for that tool should have a timeline for when they're hoping to support regional data ingestion. You can also visit Segment's [support page](https://segment.com/help/contact/) for any Segment-related questions.
+
+The following Sources marked with a ![Supports EU regional endpoints](/docs/images/supported.svg){:class="inline"} (checkmark) are supported in EU workspaces.
+
+{% include content/regional-sources-table.md %}
+