diff --git a/src/connections/sources/about-cloud-sources.md b/src/connections/sources/about-cloud-sources.md index 0406fa47fc..5b191cb99b 100644 --- a/src/connections/sources/about-cloud-sources.md +++ b/src/connections/sources/about-cloud-sources.md @@ -9,11 +9,11 @@ Cloud-App Sources (often shortened to Cloud Sources) allow you to pull in data f As in the basic tracking API, _objects_ usually contain information about a person or group which is updated over time, while _event_ data happens once, and is appended to a list. -### Event Cloud-App Sources +## Event Cloud-App Sources Event Cloud Sources can export their data both into Segment warehouses, and into other enabled Segment integrations that work with event data. -### Object Cloud-App Sources +## Object Cloud-App Sources Object Cloud App Sources can export data and import it directly into a Segment warehouse. You *must* have a Segment warehouse enabled before you enable these. From the warehouse, you can analyze your data with SQL, use [Reverse ETL](/docs/connections/reverse-etl) to extract data, or use Engage SQL Traits to build audiences. Some examples of Object Cloud sources are Salesforce (account information), Zendesk (support cases), and Stripe (payments information). diff --git a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md index e75e23018b..3b7634a41b 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md +++ b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md @@ -137,8 +137,6 @@ To get started, we recommend tracking just a few important events. You can alway Once you've added a few `track` calls, **you're done!** You successfully instrumented your app! Now you're ready to turn on any destination you fancy from our interface, margarita in hand. ---- - ## What's Next? We just walked through the quickest way to get started with Segment using Analytics-Android. You might also want to check out Segment's full [Analytics-Android reference](/docs/connections/sources/catalog/libraries/mobile/android) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http-api/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/csharp/index.md b/src/connections/sources/catalog/libraries/server/csharp/index.md index e7428dde74..482362355e 100644 --- a/src/connections/sources/catalog/libraries/server/csharp/index.md +++ b/src/connections/sources/catalog/libraries/server/csharp/index.md @@ -10,7 +10,6 @@ tags: - Xamarin - Unity - ASP.NET -id: redirect_from: - '/connections/sources/catalog/libraries/mobile/unity/' - '/connections/sources/catalog/libraries/mobile/csharp/' @@ -20,7 +19,8 @@ redirect_from: With Analytics-CSharp, you can add Segment analytics to your C# based app which includes Unity, Xamarin, .NET. Analytics-CSharp helps you measure your users, product, and business. It unlocks insights into your app's funnel, core business metrics, and whether you have product-market fit. The Analytics-CSharp library is open-source [on GitHub](https://github.com/segmentio/analytics-csharp){:target="_blank"}. -### Supported platforms +## Supported platforms + These platforms support Analytics-CSharp: * .NET/.NET core/.NET framework * Mono @@ -403,7 +403,7 @@ For example, you might want to disable flushes if you detect the user has no net } ``` -### Create your own flush policies +### Create your own flush policies You can create a custom FlushPolicy special for your application needs by implementing the `IFlushPolicy` interface. You can also extend the `IFlushPolicy` class that already creates and handles the `shouldFlush` value reset. diff --git a/src/connections/sources/catalog/libraries/server/go/quickstart.md b/src/connections/sources/catalog/libraries/server/go/quickstart.md index 40e21b7821..7c29ca0b85 100644 --- a/src/connections/sources/catalog/libraries/server/go/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/go/quickstart.md @@ -107,10 +107,6 @@ To get started, we recommend tracking just a few important events. You can alway Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand. - ---- - - ## What's Next? We just walked through the quickest way to get started with Segment using go. You might also want to check out our full [Go library reference](/docs/connections/sources/catalog/libraries/server/go/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md b/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md index 5b0c54db1d..2d36746898 100644 --- a/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md @@ -107,10 +107,6 @@ To get started, we recommend tracking just a few important events. You can alway Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand. - ---- - - ## What's Next? We just walked through the quickest way to get started with Segment using go. You might also want to check out our full [Go library reference](/docs/connections/sources/catalog/libraries/server/go/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/java/quickstart.md b/src/connections/sources/catalog/libraries/server/java/quickstart.md index 0b23329169..318c712c0e 100644 --- a/src/connections/sources/catalog/libraries/server/java/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/java/quickstart.md @@ -113,10 +113,6 @@ To get started, we recommend tracking just a few important events. You can alway Once you've added a few `track` calls, **you're done!** You successfully installed Analytics tracking. Now you're ready to turn on any destination you fancy from our interface, margarita in hand. - ---- - - ## What's Next? We just walked through the quickest way to get started with Segment using our Java library. You might also want to check out our full [reference](/docs/connections/sources/catalog/libraries/server/java) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/node/quickstart.md b/src/connections/sources/catalog/libraries/server/node/quickstart.md index a974ec38ed..6e51ae7325 100644 --- a/src/connections/sources/catalog/libraries/server/node/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/node/quickstart.md @@ -89,8 +89,6 @@ To get started with Analytics Node.js: After you've added a few `track` calls, you've successfully installed analytics tracking on your servers. Now you're ready to turn on any destination from the Segment app. ---- - ## What's Next? You can check out the full docs for [Analytics Node.js](/docs/connections/sources/catalog/libraries/server/node) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/object-api/index.md b/src/connections/sources/catalog/libraries/server/object-api/index.md index e9c0f7a972..05a7cb0398 100644 --- a/src/connections/sources/catalog/libraries/server/object-api/index.md +++ b/src/connections/sources/catalog/libraries/server/object-api/index.md @@ -10,18 +10,18 @@ Use the Segment Objects API to send business objects relevant to your business r > warning "" > Segment hasn't added support for the core `analytics-` libraries so you'll need to use the Segment HTTP API directly or the independent Go(lang) client for now. -### Authentication +## Authentication Authenticate to the Objects API by sending your project's **Write Key** along with a request. Authentication uses HTTP Basic Auth, which involves a 'username:password' that is base64 encoded and pre-pended with the string 'Basic '. In practice that means taking a Segment source **Write Key**,`'abc123'`, as the username, adding a colon, and then the password field is left empty. After base64 encoding `'abc123:'` becomes `'YWJjMTIzOg=='`; and this is passed in the authorization header like so: `'Authorization: Basic YWJjMTIzOg=='`. -### Source type +## Source type Set up an `HTTP API` source type in Segment. You will use this source write key for authenticating with the Objects API. -### Content-type +## Content-type In order to send data to Segment's HTTP API, the content-type header must be set to `'application/json'`. @@ -156,12 +156,14 @@ POST https://objects.segment.com/v1/set This call sends a collection of "rooms". "rooms" becomes the table name in your data warehouse, and each individual object in the array becomes a row in that table. +| Field | Type | Description | |-------------------------|--------|-------------------------------------------------------------------------------------------| | `collection` *Required* | String | A string that represents the name of the collection. The collection name will become the table name in your data warehouse. Collection must consist of lowercase letters and underscores and maximum of 100 characters. Can not begin or end with an underscore. | | `objects` | Array | A required array of objects describing the objects and properties being set. Must consist of at least one JSON object and a maximum of 10. | Each object inside of the objects array must consist of the following parameters: +| Parameter | Type | Description | |-------------------------|--------|-------------------------------------------------------------------------------------------| | `id` *Required* | String | The unique ID representing the object in the third party system. Maximum of 100 characters. | | `Properties` *Required* | Object | The object properties that represent the object. Example: Each value could be a string (ISO dates are parsed and recognized as `isodate` type), an integer, or a float (JSON types). Values cannot be lists or objects. Each value must be less than 32KB in size. | diff --git a/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md b/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md index aa9e1860ef..5b1d3b19b3 100644 --- a/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md +++ b/src/connections/sources/catalog/libraries/server/object-bulk-api/index.md @@ -14,7 +14,8 @@ It differs from the Object API in that it is designed to: > warning "" > At this time, Segment hasn't created tooling akin to core analytics-* libraries so you'll need to use Segment's HTTP API directly for now. -### Batched Object Data +## Batched Object Data + The `Batched Object Data` the API accepts is a file of line separated objects, in JSON form, compressed using `Gzip`. The maximum size of a single `object` is 400KB and maximum uncompressed size of a file 512MB. @@ -23,25 +24,26 @@ Example objects: {"id":"1","collection":"users","properties":{"first_name":"John","last_name":"Smith"}} {"id":"2","collection":"users","properties":{"first_name":"Jane","last_name":"Doe"}} ``` - +| Field | Type | Description | |-------------------------|--------|-------------------------------------------------------------------------------------------| | **`id`** *Required* | String | The unique ID representing the object in the third party system.

Maximum of 100 characters. | | **`collection`** *Required* | String | A string that represents the name of the collection. The collection name will become the table name in your data warehouse.

Collection must consist of lowercase letters and underscores and maximum of 100 characters. Can not begin or end with an underscore. | | **`Properties`** *Required* | Object | The object properties that represent the object.

Example: Each value could be a string (ISO dates are parsed and recognized as `isodate` type), an integer, or a float (JSON types).

Values cannot be lists or objects. Each value must be less than 32KB in size. | -### Authentication +## Authentication Authenticate to the Objects Bulk API by sending your project's **Write Key** along with a request. Authentication uses HTTP Basic Auth, which involves a `username:password` that is base64 encoded and prepended with the string `Basic `. In practice that means taking a Segment source **Write Key** encoding it with base64. For example, `echo "abc123" | base64 -` becomes `'YWJjMTIzCg=='` and this is passed in the authorization header like so: `'Authorization: Basic YWJjMTIzCg=='`. -### Source type +## Source type set up an `HTTP API` source type in Segment. You will use this source write key for authenticating with the Objects Bulk API. -### Limits +## Limits + The API imposes some rate limits including: - **512MB** maximum uncompressed [file](#batched-object-data) upload size - **400KB** maximum [object](#batched-object-data) size diff --git a/src/connections/sources/catalog/libraries/server/php/quickstart.md b/src/connections/sources/catalog/libraries/server/php/quickstart.md index b0192feed5..106219d899 100644 --- a/src/connections/sources/catalog/libraries/server/php/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/php/quickstart.md @@ -141,9 +141,6 @@ Segment::flush(); And presto, **you're done!** You successfully installed PHP tracking. Now you're ready to turn on any destination you fancy from our interface, margarita in hand. ---- - - ## What's Next? We just walked through the quickest way to get started with Segment using PHP. You might also want to check out our full [PHP reference](/docs/connections/sources/catalog/libraries/server/php) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/python/quickstart.md b/src/connections/sources/catalog/libraries/server/python/quickstart.md index 87b2a45367..b3e42eb949 100644 --- a/src/connections/sources/catalog/libraries/server/python/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/python/quickstart.md @@ -97,10 +97,6 @@ To get started, we recommend tracking just a few important events. You can alway And voila, **you're done!** You've just successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, martini in hand. - ---- - - ## What's Next? We just walked through the quickest way to get started with Segment using Python. You might also want to check out our full [Python library reference](/docs/connections/sources/catalog/libraries/server/python/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/ruby/quickstart.md b/src/connections/sources/catalog/libraries/server/ruby/quickstart.md index 857de7f583..b4666b6fa5 100644 --- a/src/connections/sources/catalog/libraries/server/ruby/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/ruby/quickstart.md @@ -112,10 +112,6 @@ To get started, we recommend tracking just a few important events. You can alway Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand. - ---- - - ## What's Next? We just walked through the quickest way to get started with Segment using Ruby. You might also want to check out our full [Ruby library reference](/docs/connections/sources/catalog/libraries/server/ruby) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/server/rust/quickstart.md b/src/connections/sources/catalog/libraries/server/rust/quickstart.md index d37da160c1..aa7b9ac9f9 100644 --- a/src/connections/sources/catalog/libraries/server/rust/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/rust/quickstart.md @@ -144,10 +144,6 @@ To get started, we recommend tracking just a few important events. You can alway Once you've added a few `track` calls, **you're done!** You successfully installed analytics tracking on your servers. Now you're ready to turn on any destination you fancy from our interface, margarita in hand. - ---- - - ## What's Next? We just walked through the quickest way to get started with Segment using go. You might also want to check out our full [Go library reference](/docs/connections/sources/catalog/libraries/server/rust/) to see what else is possible, or read about the [Tracking API methods](/docs/connections/sources/catalog/libraries/server/http/) to get a sense for the bigger picture. diff --git a/src/connections/sources/catalog/libraries/website/cloudflare/index.md b/src/connections/sources/catalog/libraries/website/cloudflare/index.md index 495c23e2ec..ad90b416c2 100644 --- a/src/connections/sources/catalog/libraries/website/cloudflare/index.md +++ b/src/connections/sources/catalog/libraries/website/cloudflare/index.md @@ -10,7 +10,7 @@ Segment makes it simple for Cloudflare customers to integrate analytics, email m The guide below explains how to install Segment on your Cloudflare-hosted website. All you need to get up and running is to create a Cloudflare source and turn on the Segment app for your website. The following guide will show you how, step by step. -don't have a Segment account? No problem, [sign up here](https://segment.com/signup?utm_source=cloudflare&utm_medium=docs&utm_campaign=partners). +Don't have a Segment account? No problem, [sign up here](https://segment.com/signup?utm_source=cloudflare&utm_medium=docs&utm_campaign=partners). ## Getting Started diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md index 5f907dd5cd..5c8f513b70 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/index.md +++ b/src/connections/sources/catalog/libraries/website/javascript/index.md @@ -180,7 +180,7 @@ analytics.trackForm(form, event, [properties]) ``` Field | | Type | Description ------ | | ---- | ----------- +----- | -- | ---- | ----------- `form(s)` | | Element or Array | The form element to track or an array of form elements or jQuery objects. _Note: trackForm takes an element, not a CSS selector._ Segment recommends that you wait until the DOM loads before passing the form element. `event` | | String or Function | The name of the event, passed to the `track` method. Or a **function** that returns a string to use as the name of the `track` event. `properties` | optional | Object or Function | A dictionary of properties to pass with the Track method. Or a **function** that returns an object to use as the `properties` of the event. @@ -278,7 +278,7 @@ analytics.group(groupId, [traits], [options], [callback]); The Group call has the following fields: Field | | Type | Description ------ | | ---- | ----------- +----- | -- | ---- | ----------- `groupId` | | String | The Group ID to associate with the current user. `traits` | optional | Object | A dictionary of [traits](/docs/connections/spec/group#traits) for the group. Example traits for a group include `address`, `website`, and `employees`. `options` | optional | Object | A dictionary of options. For example, [enable or disable specific destinations](#managing-data-flow-with-the-integrations-object) for the call. _Note: If you do not pass a `properties` object, pass an empty object (like '{}') before `options`_. diff --git a/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md b/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md index 437d326be6..399d8e5173 100644 --- a/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md +++ b/src/connections/sources/catalog/libraries/website/plugins/vimeo/index.md @@ -9,7 +9,8 @@ With the analytics.js Vimeo Plugin you can collect Vimeo player events into the To use the Vimeo plugin: 1. Generate an access token in Vimeo. The plugin uses this token to access metadata about the playing video content. Vimeo provides documentation to [generate the access token](https://developer.vimeo.com/api/guides/start#generate-access-token). -- **Note:** Make sure to select the access scopes you need as the plugin only needs to read information about your video(s). + + - **Note:** Make sure to select the access scopes you need as the plugin only needs to read information about your video(s). 2. Enable a new plugin by navigating to the settings for your Source and clicking **Plugins**. You can enable the Vimeo plugin from this menu: diff --git a/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md b/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md index 1fec536c79..439a8d3289 100644 --- a/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md +++ b/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md @@ -21,14 +21,16 @@ To begin, create a new project in the Google Developer Console, then create a ne After you've generated the API key: 1. Enable a new plugin. -- Navigate to **Connections > Sources** and choose the source you want to connect the YouTube plugin to. Go to the **Settings** tab of your source and select **Plugins**. You can enable the YouTube plugin from this menu: + + - Navigate to **Connections > Sources** and choose the source you want to connect the YouTube plugin to. Go to the **Settings** tab of your source and select **Plugins**. You can enable the YouTube plugin from this menu: ![the plugins setting screen](./images/youtube-vimeo-plugins-beta-2021-06-04.png) **Note:** Only JavaScript sources support plugins. 2. Initialize the plugin by giving it access to the YouTube video player instance(s) running on your page. This can be done by adding this script, to the section of the source code where the page loads. -- Use the initialize method in the YouTube `onYouTubeIframeAPIReady()` function to register and initialize the plugin with the player instance and your API key: + + - Use the initialize method in the YouTube `onYouTubeIframeAPIReady()` function to register and initialize the plugin with the player instance and your API key: ```js var player; 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 9e03c63d35..ddf5d79f1a 100644 --- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md @@ -11,7 +11,7 @@ Littledata's [Shopify to Segment connection](https://help.littledata.io/posts/s Littledata is available as an independent [Shopify App](https://apps.shopify.com/segment-com-by-littledata){:target="\_blank"}. -#### Client-side (device mode) tracking +## Client-side (device mode) tracking After the [installation process](https://help.littledata.io/posts/segment-installation-guide/){:target="\_blank"}: @@ -21,7 +21,7 @@ After the [installation process](https://help.littledata.io/posts/segment-insta - Device-mode e-commerce events can send to all Segment destinations - Segment's anonymous ID and Google Analytics' client ID passes to Littledata's servers to ensure consistent user journey tracking -#### Server-side (cloud mode) tracking +## Server-side (cloud mode) tracking During the Segment connection setup, Littledata also adds a set of webhooks to your Shopify store. When a customer interacts with your store these changes are relayed server-side from Shopify to Littledata to Segment. The advantages to this approach are: @@ -177,7 +177,7 @@ The list below outlines the properties included in most events. See the 'Track ( | `affiliation` | A comma-separated list of order tags. Untagged orders use `Shopify`. | String | | `cart_id` | The ID of the Shopify cart. | String | | `checkout_id` | The ID of the checkout session. | String | -| `context\['Google Analytics'].clientId` | The user's Google Analytics Client ID. | String | +| `context['Google Analytics'].clientId` | The user's Google Analytics Client ID. | String | | `context.ip` | The user's IP address. | String | | `coupon` | A comma-separated string of discount coupons used, if applicable. | String | | `currency` | The currency of the order. | String | @@ -205,7 +205,7 @@ The list below outlines the properties included in most events. See the 'Track ( | `total` | The total value of the order. | Float | | `userId` | Chosen user identifier, defaulting to Shopify Customer ID | String | -> info "The `revenue` property is available only with the Order Completed event" +> info "The revenue property is available only with the Order Completed event" > The `revenue` property is only available with the Order Completed event and requires you to opt in through the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in overrides the `total` property sent to Google Analytics. ## Product properties diff --git a/src/connections/sources/catalog/libraries/website/shopify/index.md b/src/connections/sources/catalog/libraries/website/shopify/index.md index 1fd0868f9d..25d8ca3dbe 100644 --- a/src/connections/sources/catalog/libraries/website/shopify/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify/index.md @@ -8,7 +8,7 @@ This Shopify Source lets you send [Shopify Web Pixel API Standard Events](https: This Source is a free [Shopify App Extension](https://shopify.dev/docs/apps/app-extensions){:target="_blank"} which can be installed using your Shopify Store's Admin interface. -#### Overview +## Overview Once installed and enabled, Segment collects events from the user's browser and sends them to your Segment 'Shopify' Source in real time. diff --git a/src/connections/sources/cross-domain.md b/src/connections/sources/cross-domain.md index 442badb2de..2bc67249e9 100644 --- a/src/connections/sources/cross-domain.md +++ b/src/connections/sources/cross-domain.md @@ -44,8 +44,8 @@ The CNAME records for the above example will look like: |TYPE | NAME | DOMAIN | VALUE| |-----|-------|--------|--------| -|CNAME| xid |example1.com|{your-cross-domain-id-service}.xid.segment.com| -|CNAME| xid |example2.com|{your-cross-domain-id-service}.xid.segment.com| +|CNAME| xid |example1.com|\{your-cross-domain-id-service\}.xid.segment.com| +|CNAME| xid |example2.com|\{your-cross-domain-id-service\}.xid.segment.com| *Note: Contact our implementation team for the exact address of your Cross-Domain ID service.* @@ -59,9 +59,11 @@ Segment will verify that your subdomains have CNAME records set up correctly. Th After validation, we will enable Cross-Domain Analytics on your Segment workspace and enabled sources. Once we give you the go ahead, you'll see two things happen when a user visits a domain from the same browser: 1. In the debugger, you'll see `Identify` calls with a Cross-Domain ID in the payload. + ![Cross-Domain Identify call](images/xid_debugger_pretty.png) 1. Subsequent events from that user will have a Cross-Domain ID context trait. + ![Track event with Cross-Domain ID trait](images/xid_debugger_raw.png) ## Frequently Asked Questions @@ -117,6 +119,7 @@ By default, Chrome does not block any cookies. Chrome does give the user two oth #### Safari Safari distinguishes between cookies from sites that a user has previously visited (second-party cookies) and cookies from sites which a user has not been to (third-party cookies). + ![Safari cookie settings](images/xid_safari_settings.png) By default, Safari blocks third-party cookies. diff --git a/src/connections/spec/video.md b/src/connections/spec/video.md index f39d40750d..ddbd5b6b6a 100644 --- a/src/connections/spec/video.md +++ b/src/connections/spec/video.md @@ -32,7 +32,7 @@ All playback events share the same event properties that describe information ab | `content_pod_id`, `content_pod_ids` | String, Array[string] | The Content Pod Id(s) of the video/videos playing or about to be played in the video player. **For [Video Playback Started](#video-playback-started) events only**, you should send the plural form with an Array of unique pod IDs. For all other playback events, you should send the singular form with the ID of the current content pod playing at the time of the event. | | `ad_asset_id` | String, Array[string] | The Ad Asset Id(s) of the ad/ads playing or about to be played in the video player. **For [Video Playback Started](#video-playback-started) events only**, you should send an Array of unique ad asset IDs. For all other playback events, you should send a string with the ID of the current ad asset playing at the time of the event. | | `ad_pod_id` | String, Array[string] | The Ad Pod Id(s) of the ad/ads playing or about to be played in the video player. **For [Video Playback Started](#video-playback-started) events only**, you should send an Array of unique ad pod IDs. For all other playback events, you should send a string with the ID of the current ad pod playing at the time of the event. | -| `ad_type` | Enum {`pre-roll`, `mid-roll`, `post-roll`} | The type of ad playing at the time of the event. Values can include `pre-roll`, `mid-roll`, and `post-roll`. | +| `ad_type` | Enum \{`pre-roll`, `mid-roll`, `post-roll`\} | The type of ad playing at the time of the event. Values can include `pre-roll`, `mid-roll`, and `post-roll`. | | `position` | Integer | The current index position **in seconds** of the playhead, including the duration of any ads seen (if available). If the playback is a livestream, check the documentation for relevant destinations for details on how to correctly pass the playhead position. | | `total_length`| Integer | The total duration of the playback in seconds. This should include the duration of all your content and ad included in this playback session. For livestream playback, send `null`. | | `bitrate` | Integer | The current `kbps`. | @@ -713,12 +713,12 @@ All ad events share the same event properties that describe information about th | `pod_id` | String | The unique ID of the ad pod. | | `pod_position` | Integer | The position of the ad asset relative to other assets in the same pod. | | `pod_length` | Integer | The number of ad assets the current ad pod contains. | -| `type` | Enum {`pre-roll`, `mid-roll`, `post-roll`} | The ad type. You can send either `pre-roll`, `mid-roll`, or `post-roll`. | +| `type` | Enum \{`pre-roll`, `mid-roll`, `post-roll`\} | The ad type. You can send either `pre-roll`, `mid-roll`, or `post-roll`. | | `title` | String | The title of the video ad. | | `publisher` | String | The ad creator, author, producer, or publisher. | | `position` | Integer | The current index position, in seconds, of the playhead with respect to the length of the ad. | | `total_length` | Integer | The total duration of the current ad asset in seconds. | -| `load_type` | Enum {`linear`, `dynamic`} | `dynamic` if ads are loaded dynamically and `linear` if ads are same for all users. | +| `load_type` | Enum \{`linear`, `dynamic`\} | `dynamic` if ads are loaded dynamically and `linear` if ads are same for all users. | | `content` | Object[ContentEventObject] | For video destinations that require content metadata to be sent with ad events, you can send all the content metadata nested under this property (such as `content.asset_id` or `content.title`) as a Content Event Object. | | `quartile` | Integer | For Video Ad Playing events, this property can be set to indicate when a specific ad quartile has been reached (1,2, or 3). If you are using a Segment client-side library to track your video events you don't need to send this property as Segment's libraries will automatically track quartiles. | @@ -1173,5 +1173,6 @@ analytics.track('Video Playback Completed', { ``` Below is an example of how a playback that has three mid-roll ads interspersed within the content: - ![Playback with three mid-roll ads interspersed within content](images/Video_Tracking_Workflow.png) + +![Playback with three mid-roll ads interspersed within content](images/Video_Tracking_Workflow.png)