diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 38560f57a9..17b3cfc9c3 100644 --- a/src/_data/catalog/destination_categories.yml +++ b/src/_data/catalog/destination_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination categories last updated 2024-08-27 +# destination categories last updated 2024-08-29 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index f907790525..37245a152c 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-08-27 +# destination data last updated 2024-08-29 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 97953f161a..d1bbda9567 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-08-27 +# destination data last updated 2024-08-29 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index c66b7e2ece..2cba3e9bea 100644 --- a/src/_data/catalog/source_categories.yml +++ b/src/_data/catalog/source_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# source categories last updated 2024-08-27 +# source categories last updated 2024-08-29 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml index 4607d9ada3..31ddbc5fe0 100644 --- a/src/_data/catalog/sources.yml +++ b/src/_data/catalog/sources.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# sources last updated 2024-08-27 +# sources last updated 2024-08-29 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/connections/destinations/catalog/actions-topsort/index.md b/src/connections/destinations/catalog/actions-topsort/index.md new file mode 100644 index 0000000000..ba2f81f42b --- /dev/null +++ b/src/connections/destinations/catalog/actions-topsort/index.md @@ -0,0 +1,64 @@ +--- +title: Topsort Events Destination +id: 66ba237845b93b71bca2713e +--- + +[Topsort](https://www.topsort.com){:target="_blank"} is an AI-powered retail media platform enabling retailers and marketplaces to build their own high-performing ad networks, rivaling Google and Amazon. With its advanced auto-bidding algorithm and fast integration, Topsort provides an advertising solution that delivers exceptional returns on ad spend (ROAS) while respecting users privacy by being cookie-less. + +This is a destination for eCommerce sites that want to use Segment or are already using it to Track actions on their site. It helps you seamlessly integrate Topsort events for sponsored listings. +Setting up an events integration is one of the 3 steps to integrate with Topsort (see [Integration Overview](https://docs.topsort.com/reference/integration-overview){:target="_blank"} for more details). It allows marketplaces to have a full metrics report available through Topsort's Reporting API or directly in the [Topsort Manager Platform](https://app.topsort.com){:target="_blank"} dashboards. It also provides the necessary information for the Topsort team to display relevant ads, optimize budget consumption, attribute purchases and accomplish sellers' conversion goals. + +This destination is maintained by Topsort. For any issues with the destination, [contact the Topsort Support team](mailto:support@topsort.com){:target="_blank"}. + +## Getting started + +### Intro to Topsort Events + +This destination helps you track the 3 main events Topsort needs to serve the most relevant ads and accomplish attribution for sponsored listings: `impressions`, `clicks` and `purchases`. Here is an explanation of what each one of these means to Topsort: + +- **Impression**: Every time a user sees a promoted product in a listing page (PLP) or section, you should trigger an `impressions` event. +- **Click**: If the user then clicks or adds the promoted product to a cart, you should trigger a `click` event. +- **Purchase**: When an order is completed and confirmed to be successful, report a `purchase` event to Topsort. You can report a purchase whether it has promoted products or not. Topsort takes care of filtering relevant promoted products inside the completed order given the information about promoted clicks. + +This destination has 3 default presets that map the Track events `'Product Viewed'`, `'Product Clicked'` and `'Order Completed'` to Topsort's `impression`, `click` and `purchase` events, respectively. If you’re not familiar with the Segment Spec, take a look to understand what the [Track method](/docs/connections/spec/track/) does. + +The mappings in the Topsort destination are built based on the Segment [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/). If you have different Segment Track events mapped to these action definitions, then Topsort can adapt this destination to your case. Once the destination is configured, activate only the mappings relevant to your site. See point 5 of the [set up](#set-up-your-topsort-destination) for more details. + +### Set up your Topsort destination + +1. From the Segment web app, click **Catalog**, then click **Destinations**. +2. Search for "Topsort" in the Catalog, select it, and choose which of your sources to connect the destination to. +3. In the [Topsort Manager Platform](https://app.topsort.com){:target="_blank"}, go to [Settings > API Integration](https://app.topsort.com/new/es/marketplace/account-settings/api-integration){:target="_blank"} to find or create your **Marketplace API Key** for auctions and events. +4. Return to the Topsort destination in the Segment app and enter the value for your **Marketplace API Key**. +5. Enable only the Track events relevant to your site and so that the events do not get duplicated with a single user action. For example, if you always trigger a `Product Clicked` event together with the `Product Added` event when a user makes a click in the "Add to cart" button, then you should enable only the `Product Clicked` event for the Topsort Destination. + +{% include components/actions-fields.html %} + +### Track + +You don't need to change anything about the way you report Track events to Segment. The only extra field you need to provide, only for the `impression` and `click` events, is the `resolvedBidId` given in the winner promoted product (whether it is from the [Auctions API](https://docs.topsort.com/reference/createauctions){:target="_blank"} or the [proxy](https://docs.topsort.com/reference/listings-low-code){:target="_blank"} response). Please find below an example call to track a product listing page (PLP) click event with the `resolvedBidId` included: + +```js +analytics.track("Product Clicked", { + product_id: product.id, + name: product.name, + resolvedBidId: product.resolvedBidId +}); +``` + +### Identify + +For Segment's browser and mobile libraries Topsort recommends that you identify your logged-in users using Segment's [Identify method](/docs/connections/spec/identify/). + +Please find an example Identify call below: + +```js +analytics.identify('361b1fdfbeaa9d64a13c033eb9f970dc6740f6bc', { + email: 'john.doe@example.com' +}); +``` + +Once a user is identified, each call to Segment's [Track method](/docs/connections/spec/track/) automatically records the user ID. +Users that are not logged in can be tracked using an [anonymousID](/docs/connections/spec/identify/#anonymous-id). + +If you use a server-side source please provide one or more identifiers: `anonymousId` or `userId`. diff --git a/src/connections/reverse-etl/faq.md b/src/connections/reverse-etl/faq.md index 55b433e44b..0fa219c64f 100644 --- a/src/connections/reverse-etl/faq.md +++ b/src/connections/reverse-etl/faq.md @@ -23,3 +23,6 @@ Segment uses the [gosnowflake library](https://pkg.go.dev/github.com/snowflakedb ## Can I have multiple queries in the Query Builder? No. In Reverse ETL, Segment executes queries in a [common table expression](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#with_clause){:target="_blank”}, which can only bind the results from **one single** subquery. If there are multiple semicolons `;` in the query, they'll be treated as several subqueries (even if the second part is only an inline comment) and cause syntax errors. + +## Can I use functions with Reverse ETL? +Functions aren't supported by Reverse ETL. As a workaround, instead of using the [Segment Connections](/docs/connections/destinations/catalog/actions-segment/) integration, use the [Webhook (Actions)](/docs/connections/destinations/catalog/actions-webhook/) integration behind your Reverse ETL extraction. With that in place, you can send data to [Source Functions](/docs/connections/functions/source-functions/). You can write the code in that function to do the work you had wanted to do in the Insert Function. From there, the data your code allows to move on, flows into a Segment source just like it would if you were using Segment Connections. \ No newline at end of file diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md index c449ac0c4d..63f68cd90b 100644 --- a/src/connections/reverse-etl/manage-retl.md +++ b/src/connections/reverse-etl/manage-retl.md @@ -40,8 +40,8 @@ To check the status of your extractions: * The load results - how many successful records were synced as well as how many records were updated, deleted, or are new. 5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue. -> info "Segment automatically retries events that were extracted but failed to load" -> Segment retries events for 14 days following a total or partial sync failure. Before loading the failed records on a subsequent sync, Segment checks for the latest changes in your data to ensure the data loaded into your warehouse isn't stale. If the error causing the load failure is coming from an upstream tool, you can fix the error in the upstream tool to ensure the record loads on the next sync. + ## Reset syncs You can reset your syncs so that your data is synced from the beginning. This means that Segment resyncs your entire dataset for the model. During the next sync, all records extracted by the model are sent to your destination, not just the records that changed since the last sync. @@ -138,4 +138,4 @@ Select array | This enables you to send all nested properties within the array. > success "" > Certain array mapping fields have a fixed list of properties they can accept. If the names of the nested properties in your array don't match the destination properties, the data won't send. Segment recommends you to use the **Customize array** option to ensure your mapping is successful. -Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property. \ No newline at end of file +Objects in an array don't need to have the same properties. If a user selects a missing property in the input object for a mapping field, the output object will miss the property. diff --git a/src/privacy/faq.md b/src/privacy/faq.md index 1e9d08c4d6..4ec5c9535d 100644 --- a/src/privacy/faq.md +++ b/src/privacy/faq.md @@ -78,3 +78,6 @@ Segment supports the following regulation types: - **SUPPRESS_WITH_DELETE**: Suppress new data based on the `userId` and also delete all existing data for that ID from your workspace and our internal archives. While Segment forwards the deletion request to your downstream destinations, Segment cannot guarantee deletion in your third-party tools. - **DELETE_INTERNAL**: Deletes user data from within Segment archives only and not from any connected destinations. - **DELETE_ONLY**: Deletes user data from Segment and your connected warehouses. Also sends a deletion request to your downstream destinations. + +> info "" +> Using **SUPPRESS_WITH_DELETE** or **DELETE_ONLY** regulation types might lead to additional charges levied by your destination providers. diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index ab97bca482..0a398f11e9 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -31,6 +31,9 @@ The following regulation types are available: - **SUPPRESS_WITH_DELETE_INTERNAL:** Suppress new data and delete from Segment internals only - **DELETE_ONLY:** Delete existing data without suppressing any new data +> info "" +> Using **SUPPRESS_WITH_DELETE** or **DELETE_ONLY** regulation types might lead to additional charges levied by your destination providers. + ## Suppression Support and the Right to Revoke Consent `SUPPRESS` regulations add a user to your suppression list by the `userId`. Segment blocks suppressed users across all sources; messages you send to Segment with a suppressed `userId` are blocked at the API. These messages do not appear in the debugger, are not saved in archives and systems, and are not sent to any downstream server-side destinations. However, if you set up a destination in [device-mode](/docs/connections/destinations/#connection-modes), the events are sent directly to destinations as well. In this case, Suppression doesn't suppress the events.