Skip to content

Commit

Permalink
Merge pull request #6991 from segmentio/develop
Browse files Browse the repository at this point in the history
Release 24.35.2
  • Loading branch information
stayseesong authored Aug 29, 2024
2 parents f96cd0a + f797816 commit d7b01f3
Show file tree
Hide file tree
Showing 10 changed files with 81 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/_data/catalog/destination_categories.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/_data/catalog/destinations.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/_data/catalog/destinations_private.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/_data/catalog/source_categories.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/_data/catalog/sources.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down
64 changes: 64 additions & 0 deletions src/connections/destinations/catalog/actions-topsort/index.md
Original file line number Diff line number Diff line change
@@ -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:[email protected]){: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: '[email protected]'
});
```

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`.
3 changes: 3 additions & 0 deletions src/connections/reverse-etl/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
6 changes: 3 additions & 3 deletions src/connections/reverse-etl/manage-retl.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
<!--- 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.
Expand Down Expand Up @@ -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.
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.
3 changes: 3 additions & 0 deletions src/privacy/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
3 changes: 3 additions & 0 deletions src/privacy/user-deletion-and-suppression.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit d7b01f3

Please sign in to comment.