Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 24.35.2 #6991

Merged
merged 36 commits into from
Aug 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
3d3b972
feat: added topsort destination docs (#2)
agustinespildora Aug 19, 2024
8167d46
Remove comment
agustinespildora Aug 20, 2024
815e9b5
Syntax and spelling
agustinespildora Aug 20, 2024
c9f4bf4
Added description afterwards
agustinespildora Aug 20, 2024
058de97
delete comment
agustinespildora Aug 20, 2024
639fb6c
Syntax and spelling
agustinespildora Aug 20, 2024
5c98cb9
Syntax and spelling
agustinespildora Aug 20, 2024
a48c2f8
Syntax and spelling
agustinespildora Aug 20, 2024
2aa03d9
Syntax and spelling
agustinespildora Aug 20, 2024
99be1b6
Syntax and spelling
agustinespildora Aug 20, 2024
47086c8
Syntax and spelling
agustinespildora Aug 20, 2024
b41412f
add snippet to populate action tables
agustinespildora Aug 21, 2024
4a9df4d
spelling and redaction
agustinespildora Aug 21, 2024
9adb4f6
spelling and redaction
agustinespildora Aug 21, 2024
93aee71
feat: added topsort destination docs (#3)
agustinespildora Aug 21, 2024
f84a529
spelling and redaction fix
agustinespildora Aug 21, 2024
d603aef
spelling and redaction fix
agustinespildora Aug 21, 2024
00b7134
spelling and redaction fix
agustinespildora Aug 21, 2024
62242c2
move section
agustinespildora Aug 23, 2024
8c25b29
remove automated status
agustinespildora Aug 23, 2024
71da8aa
move section
agustinespildora Aug 23, 2024
5507716
changed folder name to destination slug (#5)
agustinespildora Aug 23, 2024
85a0e38
lint fix (#6)
agustinespildora Aug 23, 2024
97cebb2
Note on additional charges for deletions
ranand Aug 28, 2024
3cd26a5
Update user-deletion-and-suppression.md
ranand Aug 28, 2024
04f7194
Merge pull request #6952 from Topsort/develop
forstisabella Aug 28, 2024
ab74e71
Apply suggestions from code review
forstisabella Aug 29, 2024
47fd6c9
functions faq
stayseesong Aug 29, 2024
dc0c8fc
hide advance retries note
forstisabella Aug 29, 2024
9cff1ce
Merge pull request #6987 from segmentio/deletions-suppression-update
forstisabella Aug 29, 2024
65261d6
[netlify-build]
forstisabella Aug 29, 2024
8813e04
make catalog
stayseesong Aug 29, 2024
4258ad8
[netlify-build]
forstisabella Aug 29, 2024
4eda4cd
Merge pull request #6988 from segmentio/PR-6508
stayseesong Aug 29, 2024
3f8c241
Merge pull request #6990 from segmentio/20240829-makecatalog
stayseesong Aug 29, 2024
f797816
Merge pull request #6989 from segmentio/retl-revert-retries
forstisabella Aug 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading