From 30dd680c9157612046651754b03df088b51bfa58 Mon Sep 17 00:00:00 2001 From: Edward Upton Date: Wed, 21 Apr 2021 10:29:03 +0100 Subject: [PATCH 1/5] Add subscription_revenue --- .../website/shopify-littledata/index.md | 57 ++++++++++--------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md index 2bfc405156..b774646c04 100644 --- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md @@ -123,7 +123,7 @@ Email marketing platforms such as [Klaviyo](/docs/connections/destinations/catal To support seamless customer tracking the [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias), [Vero](/docs/connections/destinations/catalog/vero/#alias) and [KISSMetrics](/docs/connections/destinations/catalog/kissmetrics/#alias) destinations, Littledata ensures the pre-checkout `anonymousId` is added as an alias of the `userId` (used from checkout step 2 onwards). -## Subscription e-commerce Events +## Subscription Events Additional events available through Littledata's [ReCharge connection](https://www.littledata.io/connections/recharge), and available in cloud-mode destinations. @@ -141,33 +141,34 @@ Additional events available through Littledata's [ReCharge connection](https://w The list below outlines the properties included in the events listed above. -| Property | Description | Property Type | -| -------------------------------------- | -------------------------------------------------------------- | ------------- | -| `affiliation` | The affiliation of the order | String | -| `checkoutId` | The ID of the checkout session | String | -| `context.uip` | The user's IP address | String | -| `context['Google Analytics'].clientId` | The user's Google Analytics Client ID | String | -| `context['Google Analytics'].geoid` | The user's location | String | -| `coupon` | Comma-separated string of discount coupons used, if applicable | String | -| `currency` | The currency of the order | String | -| `discount` | The discounted amount | Float | -| `email` | Shopify email address, or email submitted on a storefront form | String | -| `order_id` | The ID of the order | String | -| `payment_method` | The payment method chosen for checkout | String | -| `presentment_currency` | The user's local currency | String | -| `presentment_total` | The order total in local currency | String | -| `products` | A list of all the product at that step of the funnel \* | Array | -| `revenue` | Product revenue (excluding discounts, shipping and tax) | Float | -| `sent_from` | A unique property to identify events sent by Littledata | String | -| `shipping_method` | The shipping method chosen for checkout | String | -| `shipping` | The shipping cost | Float | -| `step` | The checkout step | Integer | -| `subtotal` | Order total after discounts but before taxes and shipping | Float | -| `tax` | The amount of tax on the order | Float | -| `total` | The total value of the order | Float | -| `userId` | Chosen user identifier, defaulting to Shopify Customer ID | Double | - -\* Prior to 1st February 2021, `products` on Product Added and Product Removed events was [only the single product](https://blog.littledata.io/help/posts/segment-changed-schema-for-product-added-and-product-removed/), not the whole cart. +| Property | Description | Property Type | +| -------------------------------------- | ----------------------------------------------------------------------- | ------------- | +| `affiliation` | The affiliation of the order | String | +| `checkoutId` | The ID of the checkout session | String | +| `context.uip` | The user's IP address | String | +| `context['Google Analytics'].clientId` | The user's Google Analytics Client ID | String | +| `context['Google Analytics'].geoid` | The user's location | String | +| `coupon` | Comma-separated string of discount coupons used, if applicable | String | +| `currency` | The currency of the order | String | +| `discount` | The discounted amount | Float | +| `email` | Shopify email address, or email submitted on a storefront form | String | +| `order_id` | The ID of the order | String | +| `payment_method` | The payment method chosen for checkout | String | +| `presentment_currency` | The user's local currency | String | +| `presentment_total` | The order total in local currency | String | +| `products` | A list of all the product at that step of the funnel | Array | +| `revenue` | Product revenue (excluding discounts, shipping and tax) \* | Float | +| `sent_from` | A unique property to identify events sent by Littledata | String | +| `shipping_method` | The shipping method chosen for checkout | String | +| `shipping` | The shipping cost | Float | +| `step` | The checkout step | Integer | +| `subscription_revenue` | The revenue associated with a [Subscription Event](#subscription-event) | Float | +| `subtotal` | Order total after discounts but before taxes and shipping | Float | +| `tax` | The amount of tax on the order | Float | +| `total` | The total value of the order | Float | +| `userId` | Chosen user identifier, defaulting to Shopify Customer ID | String | + +\* `revenue` is available only with the Order Completed event, and only if the store opts in via the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in will override the `total` property sent to Google Analytics. ## Product Properties From a9908e45e3dcdbba705e657d5c99b9172d5073af Mon Sep 17 00:00:00 2001 From: Edward Upton Date: Wed, 21 Apr 2021 10:30:53 +0100 Subject: [PATCH 2/5] heading case --- .../catalog/libraries/website/shopify-littledata/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md index b774646c04..6ed2c56839 100644 --- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md @@ -77,7 +77,7 @@ Below is a table of events that **Shopify by Littledata** sends to Segment from | Product Added | A user has added a product to the cart, and left it in the cart for more than 10 seconds | | Product Removed | A user has removed a product from the cart | -## User identity +## User Identity In the Littledata application, you can choose which of the following fields you want to send as the `userId` for known customers: @@ -192,7 +192,7 @@ Each item in the `products` array, or Product Viewed and Product Added events, w | `url` | The URL of the product page | String | | `variant` | The product variant name | String | -## Advanced device-mode settings +## Advanced Device-mode Settings You can edit the LittledataLayer object in your Shopify theme to manually change these advanced settings. For more information, see the [Shopify tracker GitHub repository](https://github.com/littledata/shopify-tracker#segment-configuration). From ed3d46e0faa774c3a328b16dface2e1e83506aaa Mon Sep 17 00:00:00 2001 From: Edward Upton Date: Wed, 21 Apr 2021 10:53:10 +0100 Subject: [PATCH 3/5] typo --- .../website/shopify-littledata/index.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md index d7af4ccd71..3879516a80 100644 --- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md @@ -140,33 +140,33 @@ Additional events available through Littledata's [ReCharge connection](https://w The list below outlines the properties included in the events listed above. -| Property | Description | Property Type | -| -------------------------------------- | ----------------------------------------------------------------------- | ------------- | -| `affiliation` | The affiliation of the order | String | -| `cart_id` | The ID of the Shopify cart | String | -| `checkoutId` | The ID of the checkout session | String | -| `context.uip` | The user's IP address | String | -| `context['Google Analytics'].clientId` | The user's Google Analytics Client ID | String | -| `context['Google Analytics'].geoid` | The user's location | String | -| `coupon` | Comma-separated string of discount coupons used, if applicable | String | -| `currency` | The currency of the order | String | -| `discount` | The discounted amount | Float | -| `email` | Shopify email address, or email submitted on a storefront form | String | -| `order_id` | The ID of the order | String | -| `payment_method` | The payment method chosen for checkout | String | -| `presentment_currency` | The user's local currency | String | -| `presentment_total` | The order total in local currency | String | -| `products` | A list of all the product at that step of the funnel | Array | -| `revenue` | Product revenue (excluding discounts, shipping and tax) \* | Float | -| `sent_from` | A unique property to identify events sent by Littledata | String | -| `shipping_method` | The shipping method chosen for checkout | String | -| `shipping` | The shipping cost | Float | -| `step` | The checkout step | Integer | -| `subscription_revenue` | The revenue associated with a [Subscription Event](#subscription-event) | Float | -| `subtotal` | Order total after discounts but before taxes and shipping | Float | -| `tax` | The amount of tax on the order | Float | -| `total` | The total value of the order | Float | -| `userId` | Chosen user identifier, defaulting to Shopify Customer ID | String | +| Property | Description | Property Type | +| -------------------------------------- | ------------------------------------------------------------------------ | ------------- | +| `affiliation` | The affiliation of the order | String | +| `cart_id` | The ID of the Shopify cart | String | +| `checkoutId` | The ID of the checkout session | String | +| `context.uip` | The user's IP address | String | +| `context['Google Analytics'].clientId` | The user's Google Analytics Client ID | String | +| `context['Google Analytics'].geoid` | The user's location | String | +| `coupon` | Comma-separated string of discount coupons used, if applicable | String | +| `currency` | The currency of the order | String | +| `discount` | The discounted amount | Float | +| `email` | Shopify email address, or email submitted on a storefront form | String | +| `order_id` | The ID of the order | String | +| `payment_method` | The payment method chosen for checkout | String | +| `presentment_currency` | The user's local currency | String | +| `presentment_total` | The order total in local currency | String | +| `products` | A list of all the product at that step of the funnel | Array | +| `revenue` | Product revenue (excluding discounts, shipping and tax) \* | Float | +| `sent_from` | A unique property to identify events sent by Littledata | String | +| `shipping_method` | The shipping method chosen for checkout | String | +| `shipping` | The shipping cost | Float | +| `step` | The checkout step | Integer | +| `subscription_revenue` | The revenue associated with a [Subscription Event](#subscription-events) | Float | +| `subtotal` | Order total after discounts but before taxes and shipping | Float | +| `tax` | The amount of tax on the order | Float | +| `total` | The total value of the order | Float | +| `userId` | Chosen user identifier, defaulting to Shopify Customer ID | String | \* `revenue` is available only with the Order Completed event, and only if the store opts in via the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in will override the `total` property sent to Google Analytics. From 1407a54b9de89213ee2b50b89ef79c9145c1ef82 Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 21 Apr 2021 08:54:02 -0700 Subject: [PATCH 4/5] fix notes, revert title case --- .../website/shopify-littledata/index.md | 18 ++++---- src/personas/product-limits.md | 43 +++++++++++++++++++ 2 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 src/personas/product-limits.md diff --git a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md index 3879516a80..013a050a0a 100644 --- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md @@ -52,9 +52,10 @@ Below is a table of events that **Shopify by Littledata** sends to Segment throu | Registration Viewed | A user has viewed the /account/register page | | Thank you Page Viewed | A user has viewed the thank you page after completing an order \* | -> info "" \* This is less reliable than the de-duplicated `Order Completed` event sent from the Littledata servers, but you can use it in device-mode destinations to trigger a conversion. The `payment_method` and `shipping_method` properties are not available with this event. +> info "" +> \* This is less reliable than the de-duplicated `Order Completed` event sent from the Littledata servers, but you can use it in device-mode destinations to trigger a conversion. The `payment_method` and `shipping_method` properties are not available with this event. -## Cloud-mode Events +## Cloud-mode events Below is a table of events that **Shopify by Littledata** sends to Segment from Littledata's servers. These events appear as tables in your warehouse, and as regular events in your other Destinations that support cloud-mode. They include the `anonymousId` that links them to the device-mode events where the event was part of a previous user session, or associated with a `userId` that was previously linked with an `anonymousId`. See Littledata's [troubleshooting guide on attribution](https://blog.littledata.io/help/posts/troubleshooting-marketing-attribution-for-shopify/) for more details. @@ -76,7 +77,7 @@ Below is a table of events that **Shopify by Littledata** sends to Segment from | Product Added | A user has added a product to the cart, and left it in the cart for more than 10 seconds | | Product Removed | A user has removed a product from the cart | -## User Identity +## User identity In the Littledata application you can choose which of the following fields you want to send as the `userId` for known customers: @@ -118,11 +119,11 @@ All events (device-mode and cloud-mode) contain the Google Analytics `clientId` Email marketing platforms such as [Klaviyo](/docs/connections/destinations/catalog/klaviyo/#server-side-track), [Iterable](/docs/connections/destinations/catalog/iterable/#track) and [Hubspot](/docs/connections/destinations/catalog/hubspot/#server) require an email property with any server-side event in order to associate events with a customer (they cannot use an `anonymousId`). Littledata adds that `email` property whenever an email address is set in the user `traits()` object (in device-mode) or from the Shopify customer record (in cloud-mode). Iterable can also [receive cookie values](#cookiesToTrack) with the Order Completed event. -## Alias Calls +## Alias calls To support seamless customer tracking the [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias), [Vero](/docs/connections/destinations/catalog/vero/#alias) and [KISSMetrics](/docs/connections/destinations/catalog/kissmetrics/#alias) destinations, Littledata ensures the pre-checkout `anonymousId` is added as an alias of the `userId` (used from checkout step 2 onwards). -## Subscription Events +## Subscription events Additional events available through Littledata's [ReCharge connection](https://www.littledata.io/connections/recharge), and available in cloud-mode destinations. @@ -136,7 +137,7 @@ Additional events available through Littledata's [ReCharge connection](https://w | Subscription Created | A customer has created a subscription (with `status`, `order_interval_frequency` and `order_interval_unit`) | | Subscription Updated | A customer has updated a subscription (with `status`, `order_interval_frequency` and `order_interval_unit`) | -## Event Properties +## Event properties The list below outlines the properties included in the events listed above. @@ -168,7 +169,8 @@ The list below outlines the properties included in the events listed above. | `total` | The total value of the order | Float | | `userId` | Chosen user identifier, defaulting to Shopify Customer ID | String | -\* `revenue` is available only with the Order Completed event, and only if the store opts in via the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in will override the `total` property sent to Google Analytics. +> note "" +> \* `revenue` is available only with the Order Completed event, and only if the store opts in via the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in will override the `total` property sent to Google Analytics. ## Product Properties @@ -196,7 +198,7 @@ Each item in the `products` array, or Product Viewed and Product Added events, w With a [Littledata Plus plan](https://www.littledata.io/app/enterprise) you can import all Shopify orders and refunds from before you started using Segment, to sync with destinations that support timestamped events (for example, a data warehouse). This enables you to build a complete customer history in your chosen destination. -## Advanced Device-mode Settings +## Advanced Device-mode settings You can edit the LittledataLayer object in your Shopify theme to manually change these advanced settings. For more information, see the [Shopify tracker GitHub repository](https://github.com/littledata/shopify-tracker#segment-configuration). diff --git a/src/personas/product-limits.md b/src/personas/product-limits.md new file mode 100644 index 0000000000..9fd8e00d58 --- /dev/null +++ b/src/personas/product-limits.md @@ -0,0 +1,43 @@ +--- +title: Limits +--- + + + + +These rate limits were added to our product documentation on December 9, 2020. + +## Summary of Limits + +| Name | Limit | +| ------------------------------------------- | ----------------------------------------------------------- | +| Inbound Data Throughput | 1000 events per second | +| Inbound Historical Replay Throughput | 1000 events per second | +| Outbound Downstream Destination Rate Limits | Reduced retries when failures exceed 1000 events per second | +| Profile API throughput | 100 requests per second | +| Identity Merges | 100 merges | +| Identity Mappings | 1000 mappings | + +## Inbound Data Throughput + +If within a ten minute period a Customer’s sources (in aggregate) send more than 600,000 events (average of 1,000 events per second) without prior arrangement, Segment reserves the right to queue any additional events and process those at a rate that does not exceed 600,000 events in any ten minute period. Any requests to raise that limit must be made in writing with Segment. Please reach out to friends@segment.com with details on your use case and estimated throughput. + +## Inbound Historical Replay Throughput + +Similar to live data ingestion, any requests to replay historical customer data into Personas will be capped at a rate of 1000 events per second. Replays are initiated by the Segment support team. If you have a need for a higher replay throughput, please reach out to friends@segment.com with details on your use case. + +## Outbound Downstream Destination Rate Limits + +Most destinations have their own rate limits that Segment cannot control. In some instances, Segment is able to ingest and attempt to deliver data faster than the downstream destination is able to accept data. Outbound requests to a destination may also fail for other reasons outside of Segment’s control. When requests to downstream destinations fail, Segment makes additional attempts to deliver the data (retries). However, when more than 1,000 requests per second to a downstream destination fail or when the failure rate for a downstream destination exceeds 50% for more than 72 hours, Segment reserves the right to reduce the number of retries until the condition is resolved. + +## Profile API throughput + +If a Customer sends more than 100 requests a second per space to the Profile API, Segment will return a 429 rate-limiting error. Any requests to raise that limit must be made in writing with Segment. Please reach out to friends@segment.com with details on your use case and estimated throughput. + +## Identity Merges + +Personas supports up to 100 merges per profile in its identity graph. A merge occurs when two existing profile are joined together by a common external_id. For example, if a user starts their journey on mobile, and then signs in via a web application, those two user profiles are joined together by a common identifier like a user_id. Messages that attempt additional merges are usually a sign of a corrupt profile and are dropped. + +## Identity Mappings + +Personas supports up to 1000 mappings per profile in its identity graph. Mappings are external id values like a user_id, email, mobile advertising id, or any custom id's. Messages that attempt to add additional mappings are usually a sign of a corrupt profile and are dropped. Note that this limit counts mappings across all merged profiles. From 6ad938d729448ba506a1cb943b3bf80768f8b10e Mon Sep 17 00:00:00 2001 From: markzegarelli Date: Wed, 21 Apr 2021 09:08:56 -0700 Subject: [PATCH 5/5] fix notes [netlify-ignore] --- .../libraries/website/shopify-littledata/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md index 013a050a0a..c4c6b95906 100644 --- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md @@ -35,7 +35,7 @@ Here's an architecture diagram that shows how the Littledata app mediates data f 7. Segment's **analytics.js** library, Littledata **tracking script** and **webhooks** will be automatically applied to the store and the installation process will then be complete. ![](images/kvjNx4M.png) -## Device-mode Events +## Device-mode events Below is a table of events that **Shopify by Littledata** sends to Segment through the analytics.js library. These events will show up as tables in your warehouse, and as regular events in your other Destinations supporting device-mode. @@ -50,9 +50,9 @@ Below is a table of events that **Shopify by Littledata** sends to Segment throu | Product Viewed | A user has viewed a product page | | Products Searched | A user has searched for products (with search `query`) | | Registration Viewed | A user has viewed the /account/register page | -| Thank you Page Viewed | A user has viewed the thank you page after completing an order \* | +| Thank you Page Viewed | A user has viewed the thank you page after completing an order\* | -> info "" +> note "" > \* This is less reliable than the de-duplicated `Order Completed` event sent from the Littledata servers, but you can use it in device-mode destinations to trigger a conversion. The `payment_method` and `shipping_method` properties are not available with this event. ## Cloud-mode events @@ -88,7 +88,7 @@ In the Littledata application you can choose which of the following fields you w For [Segment Personas](/docs/personas/) we also send `shopify_customer_id` as an [externalID](/docs/personas/identity-resolution/externalids/) for advanced matching. -## Identify Calls +## Identify calls For every event where there is an identifiable Shopify customer (from both the device-mode and cloud-mode) Littledata also sends an Identify call. This happens when the customer logs into the storefront, on the last step of the checkout, with the order, and also after purchase with any customer update in Shopify admin. @@ -158,7 +158,7 @@ The list below outlines the properties included in the events listed above. | `presentment_currency` | The user's local currency | String | | `presentment_total` | The order total in local currency | String | | `products` | A list of all the product at that step of the funnel | Array | -| `revenue` | Product revenue (excluding discounts, shipping and tax) \* | Float | +| `revenue` | Product revenue (excluding discounts, shipping and tax) * | Float | | `sent_from` | A unique property to identify events sent by Littledata | String | | `shipping_method` | The shipping method chosen for checkout | String | | `shipping` | The shipping cost | Float | @@ -172,7 +172,7 @@ The list below outlines the properties included in the events listed above. > note "" > \* `revenue` is available only with the Order Completed event, and only if the store opts in via the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in will override the `total` property sent to Google Analytics. -## Product Properties +## Product properties Each item in the `products` array, or Product Viewed and Product Added events, will have the following properties