Destinations receive data from Segment.
In the Segment Public API, you can manipulate Destinations and the connections between Sources and Destinations, as well as list and inspect their relationships.
Like Segment Public API, Config API allows creating, retrieving, updating and deleting Destination objects. See the table below for some key differences:
Config API | Public API |
---|---|
catalogId | Not returned |
config | settings |
connectionMode | Not returned |
createTime | Not returned |
displayName | name |
enabled | enabled |
name | See note on names vs IDs in the migration guide |
parent | sourceId (prefix removed) |
updateTime | Not returned |
To migrate, replace any use of the Config API endpoints with the Segment Public API counterparts, using the field mappings in the table above.
Creates a new Destination.
• When called, this endpoint may generate the Integration Created
event in the audit trail.
OK
Resource not found
Validation failure
Too many requests
{- "sourceId": "rh5BDZp6QDHvXFCkibm1pR",
- "metadataId": "547610a5db31d978f14a5c4e",
- "name": "my destination v1",
- "settings": {
- "apiKey": "XYZ",
- "retarget": true
}
}
{- "data": {
- "destination": {
- "id": "6424a4cbb03b3d8fe288f003",
- "enabled": true,
- "name": "my destination v1",
- "settings": {
- "apiKey": "••••••••••",
- "retarget": true
}, - "metadata": {
- "id": "547610a5db31d978f14a5c4e",
- "name": "Blueshift",
- "description": "Blueshift's predictive marketing automates behavioral messaging on email, push notifications, display, Facebook and more",
- "slug": "blueshift",
- "logos": {
}, - "options": [
- {
- "name": "apiKey",
- "type": "string",
- "defaultValue": "",
- "description": "Your API key can be found in Account Profile > API Keys",
- "required": true,
- "label": "API Key"
}, - {
- "name": "retarget",
- "type": "boolean",
- "defaultValue": false,
- "description": "This will retarget page calls on the client-side",
- "required": true,
- "label": "Retarget"
}
], - "status": "PUBLIC",
- "categories": [
- "SMS & Push Notifications",
- "Advertising",
- "Email Marketing"
], - "components": [
- {
- "type": "BROWSER"
}, - {
- "type": "SERVER"
}
], - "previousNames": [
- "Blueshift"
], - "supportedMethods": {
- "track": true,
- "pageview": true,
- "identify": true,
- "group": false,
- "alias": true
}, - "supportedPlatforms": {
- "browser": true,
- "mobile": true,
- "server": true,
- "warehouse": false
}, - "supportedFeatures": {
- "cloudModeInstances": "0",
- "deviceModeInstances": "0",
- "replay": false,
- "browserUnbundling": false,
- "browserUnbundlingPublic": true
}, - "actions": [ ],
- "presets": [ ],
- "contacts": [ ],
- "partnerOwned": false
}, - "sourceId": "rh5BDZp6QDHvXFCkibm1pR"
}
}
}
Returns a list of Destinations.
required | object (PaginationInput) Required pagination params for the request. This parameter exists in v1. Example: pagination[count]=1 |
OK
Resource not found
Validation failure
Too many requests
import { configureApis, unwrap } from '@segment/public-api-sdk-typescript' const api = configureApis('/* Insert your Public API token here */') try { const result = await unwrap(api.destinations.listDestinations({ count: 1 })) console.log(JSON.stringify(result)) } catch (e) { console.log('ERROR:', e) }
{- "data": {
- "destinations": [
- {
- "id": "5GFhvtz8fha42Cm4B9E6L8",
- "enabled": true,
- "name": "",
- "settings": {
- "region": "us-west",
- "roleAddress": "arn::...",
- "secretId": "secrettt",
- "stream": "bla"
}, - "metadata": {
- "id": "57da359580412f644ff33fb9",
- "name": "Amazon Kinesis",
- "description": "Amazon Kinesis Streams enables you to build custom applications that process or analyze streaming data for specialized needs. Amazon Kinesis Streams can continuously capture and store terabytes of data per hour from hundreds of thousands of sources such as website clickstreams, financial transactions, social media feeds, IT logs, and location-tracking events.",
- "slug": "amazon-kinesis",
- "logos": {
}, - "options": [
- {
- "name": "region",
- "type": "string",
- "defaultValue": "us-west-2",
- "description": "The Kinesis Stream's AWS region key",
- "required": true,
- "label": "AWS Kinesis Stream Region"
}, - {
- "name": "roleAddress",
- "type": "string",
- "defaultValue": "",
- "description": "The address of the AWS role that will be writing to Kinesis (ex: arn:aws:iam::874699288871:role/example-role)",
- "required": true,
- "label": "Role Address"
}, - {
- "name": "secretId",
- "type": "string",
- "defaultValue": "#SEGMENT_WORKSPACE_ID",
- "description": "The External ID to your IAM role. This value is read-only. Reach out to support if you wish to change it. This value is also a secret and should be treated as a password.",
- "required": true,
- "label": "Secret ID (Read-Only)"
}, - {
- "name": "stream",
- "type": "string",
- "defaultValue": "",
- "description": "The Kinesis Stream Name",
- "required": true,
- "label": "AWS Kinesis Stream Name"
}, - {
- "name": "useMessageId",
- "type": "boolean",
- "defaultValue": false,
- "description": "You can enable this option if you want to use the Segment generated `messageId` for the **Partition Key**. If you have issues with too many `provisionedthroughputexceededexceptions` errors, this means that your Segment events are not being evenly distributed across your buckets as you do not have even user event distribution (*default partition key is `userId` or `anonymousId`*). This option should provide much more stable and even distribution.",
- "required": false,
- "label": "Use Segment Message ID"
}
], - "status": "PUBLIC",
- "categories": [
- "Analytics",
- "Raw Data"
], - "components": [
- {
- "type": "SERVER"
}
], - "previousNames": [
- "Amazon Kinesis"
], - "supportedMethods": {
- "track": true,
- "pageview": true,
- "identify": true,
- "group": true,
- "alias": true
}, - "supportedPlatforms": {
- "browser": true,
- "mobile": true,
- "server": true,
- "warehouse": false
}, - "supportedFeatures": {
- "cloudModeInstances": "0",
- "deviceModeInstances": "0",
- "replay": true,
- "browserUnbundling": false,
- "browserUnbundlingPublic": true
}, - "actions": [ ],
- "presets": [ ],
- "contacts": [ ],
- "partnerOwned": false
}, - "sourceId": "rh5BDZp6QDHvXFCkibm1pR"
}
], - "pagination": {
- "current": "MA==",
- "next": "MQ==",
- "totalEntries": 2
}
}
}
Creates a new Destination subscription.
• This endpoint is in Alpha testing. Please submit any feedback by sending email to friends@segment.com.
• In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.
OK
Resource not found
Validation failure
Too many requests
{- "name": "Example Subscription",
- "actionId": "jiMz7MfHNeHmUckzRnUGkU",
- "trigger": "type = \"track\"",
- "enabled": false
}
{- "data": {
- "destinationSubscription": {
- "id": "fwY8GVfEbHDnpx5yFWCKZG",
- "name": "Example Subscription",
- "actionId": "jiMz7MfHNeHmUckzRnUGkU",
- "actionSlug": "someActionSlug",
- "destinationId": "fP7qoQw2HTWt9WdMr718gn",
- "modelId": "",
- "enabled": false,
- "trigger": "type = \"track\"",
- "settings": { }
}
}
}
Lists subscriptions for a Destination.
• This endpoint is in Alpha testing. Please submit any feedback by sending email to friends@segment.com.
• In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.
OK
Resource not found
Validation failure
Too many requests
import { configureApis, unwrap } from '@segment/public-api-sdk-typescript' const api = configureApis('/* Insert your Public API token here */') try { const result = await unwrap(api.destinations.listSubscriptionsFromDestination('fP7qoQw2HTWt9WdMr718gn', { count: 3 })) console.log(JSON.stringify(result)) } catch (e) { console.log('ERROR:', e) }
{- "data": {
- "pagination": {
- "current": "MA==",
- "totalEntries": 1
}, - "subscriptions": [
- {
- "id": "eoeXaMeAYcB2XvEApJDrQs",
- "name": "Test Subscription",
- "actionId": "uD9jEQ4DxJZzhzVqppM7UD",
- "actionSlug": "Public API Slug",
- "destinationId": "fP7qoQw2HTWt9WdMr718gn",
- "modelId": "",
- "enabled": true,
- "trigger": "type = \"track\"",
- "settings": { }
}
]
}
}
Deletes an existing Destination.
• When called, this endpoint may generate the Integration Deleted
event in the audit trail.
Config API omitted fields:
catalogId
OK
Resource not found
Validation failure
Too many requests
import { configureApis, unwrap } from '@segment/public-api-sdk-typescript' const api = configureApis('/* Insert your Public API token here */') try { const result = await unwrap(api.destinations.deleteDestination('6424a4a5b03b3d8fe288f000')) console.log(JSON.stringify(result)) } catch (e) { console.log('ERROR:', e) }
{- "data": {
- "status": "SUCCESS"
}
}
Returns a Destination by its id.
Config API omitted fields:
catalogId
OK
Resource not found
Validation failure
Too many requests
import { configureApis, unwrap } from '@segment/public-api-sdk-typescript' const api = configureApis('/* Insert your Public API token here */') try { const result = await unwrap(api.destinations.getDestination('fP7qoQw2HTWt9WdMr718gn')) console.log(JSON.stringify(result)) } catch (e) { console.log('ERROR:', e) }
{- "data": {
- "destination": {
- "id": "fP7qoQw2HTWt9WdMr718gn",
- "enabled": false,
- "name": "",
- "settings": {
- "anonymizeIp": false,
- "classic": false,
- "contentGroupings": { },
- "dimensions": { },
- "domain": "",
- "doubleClick": false,
- "enableServerIdentify": false,
- "enhancedEcommerce": false,
- "enhancedLinkAttribution": false,
- "identifyCategory": "",
- "identifyEventName": "",
- "ignoredReferrers": [ ],
- "includeSearch": false,
- "metrics": { },
- "mobileTrackingId": "123",
- "nameTracker": false,
- "nonInteraction": false,
- "optimize": "",
- "preferAnonymousId": false,
- "protocolMappings": { },
- "reportUncaughtExceptions": false,
- "resetCustomDimensionsOnPage": [ ],
- "sampleRate": 100,
- "sendUserId": false,
- "serversideClassic": false,
- "serversideTrackingId": "123",
- "setAllMappedProps": true,
- "siteSpeedSampleRate": 1,
- "topLevelContextMapping": false,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackingId": "123",
- "typeOverride": false,
- "useGoogleAmpClientId": false,
- "userDeletion": ""
}, - "metadata": {
- "id": "54521fd725e721e32a72eebb",
- "name": "Google Universal Analytics",
- "description": "Google Universal Analytics is the most popular analytics tool for the web. It’s free and provides a wide range of features. It’s especially good at measuring traffic sources and ad campaigns.",
- "slug": "google-analytics",
- "logos": {
}, - "options": [
- {
- "name": "anonymizeIp",
- "type": "boolean",
- "defaultValue": false,
- "description": "For client side libraries. Read more about anonymizing IP addresses from the [Google support documentation](https://support.google.com/analytics/answer/2763052?hl=en).",
- "required": false,
- "label": "Anonymize IP Addresses"
}, - {
- "name": "classic",
- "type": "boolean",
- "defaultValue": false,
- "description": "**Important:** When creating your Google Analytics profile, you can choose between **Classic** and **Universal** Analytics. After March 2013, new profiles default to Universal, while earlier ones are Classic. An easy test: if you see `_gaq.push` in your code you're using Classic, so enable this.",
- "required": false,
- "label": "Use Classic Analytics on Your Site"
}, - {
- "name": "contentGroupings",
- "type": "map",
- "defaultValue": { },
- "description": "Enter a property name on the left. Choose the Google Analytics content grouping you want on the right. Google Analytics only accepts numbered content groupings (e.g. contentGrouping3). When you use `analytics.page(name, properties)` with custom properties, we'll use the value of the property you designate as the value of the specified content grouping.",
- "required": false,
- "label": "Content Groupings"
}, - {
- "name": "dimensions",
- "type": "map",
- "defaultValue": { },
- "description": "Because Google Analytics cannot accept arbitrary data about users or events, when you use `analytics.identify(userId, traits)` with custom traits or `analytics.track('event', properties)` with custom properties, you need to map those traits and properties to Google Analytics custom dimensions if you want them to be sent to GA. Enter a trait or property name on the left. Choose the Google Analytics dimension you want on the right. Google Analytics only accepts numbered dimensions (e.g. dimension3). We suggest using user-scoped dimensions for trait mappings and hit-scoped dimensions for properties [Contact us](https://segment.com/contact) if you need help!",
- "required": false,
- "label": "Custom Dimensions"
}, - {
- "name": "domain",
- "type": "string",
- "defaultValue": "",
- "description": "_Only data sent from visitors on this domain_ will be recorded. By default Google Analytics automatically resolves the domain name, so you should **leave this blank unless you know you want otherwise**! This option is useful if you need to ignore data from other domains, or explicitly set the domain of your Google Analytics cookie. This is known as Override Domain Name in [GA Classic](https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingSite). If you are testing locally, you can set the domain to `none`. [Read more about this setting in our docs](https://segment.com/docs/connections/destinations/catalog/google-analytics/#cookie-domain-name).",
- "required": false,
- "label": "Cookie Domain Name"
}, - {
- "name": "doubleClick",
- "type": "boolean",
- "defaultValue": false,
- "description": "Works with both Universal and Classic tracking methods.",
- "required": false,
- "label": "Remarketing, Display Ads and Demographic Reports."
}, - {
- "name": "enableServerIdentify",
- "type": "boolean",
- "defaultValue": false,
- "description": "If you are sending `.identify()` calls from your server side libraries or have Segment Cloud Apps that send back `.identify()` calls with enriched user traits, you can send that data to your GA account via custom dimensions and metrics. Unlike the client side integration which has the luxury of browsers and the global window `ga` tracker, for server side we will check your `traits` and your settings for custom dimension/metric mappings and send it with an explicit event. ",
- "required": false,
- "label": "Enable Server Side Identify"
}, - {
- "name": "enhancedEcommerce",
- "type": "boolean",
- "defaultValue": false,
- "description": "If you want more detailed reports on ecommerce, you might want to enable this feature. Read more about it [here](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce).",
- "required": false,
- "label": "Enable Enhanced Ecommerce"
}, - {
- "name": "enhancedLinkAttribution",
- "type": "boolean",
- "defaultValue": false,
- "description": "Provides more detailed reports on the links clicked on your site. Read more about it in the [Google support documentation](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-link-attribution).",
- "required": false,
- "label": "Enable Enhanced Link Attribution"
}, - {
- "name": "identifyCategory",
- "type": "string",
- "defaultValue": "",
- "description": "If you have **Enabled Server Side Identify**, you can specify the trait you want to look up for setting the event category will be since all custom metrics/dimensions for server side `.identify()` calls will be sent via an event hit to GA. The default value will be `'All'`. For example, if you are sending `traits.category`, you can put 'category' in the setting above and we will send the value of this trait as the event category.",
- "required": false,
- "label": "Server Side Identify Event Category"
}, - {
- "name": "identifyEventName",
- "type": "string",
- "defaultValue": "",
- "description": "If you have **Enabled Server Side Identify**, you can specify what the event action will be since all custom metrics/dimensions for server side `.identify()` calls will be sent via an event hit to GA. The default value will be `'User Enriched'`",
- "required": false,
- "label": "Server Side Identify Event Action"
}, - {
- "name": "ignoredReferrers",
- "type": "strings",
- "defaultValue": [ ],
- "description": "Add any domains you want to ignore, separated by line breaks. You might use this if you want Google Analytics to ignore certain referral domains (e.g. to prevent your subdomains from showing up as referrers in your analytics). _Note: this only works for Classic profiles. Universal profiles can_ [edit their ignored referrers](https://support.google.com/analytics/answer/2795830?hl=en&ref_topic=2790009) _directly inside Google Analytics._",
- "required": false,
- "label": "Ignored Referrers"
}, - {
- "name": "includeSearch",
- "type": "boolean",
- "defaultValue": false,
- "description": "The querystring doesn't usually affect the content of the page in a significant way (like sorting), so we disable this by default.",
- "required": false,
- "label": "Include the Querystring in Page Views"
}, - {
- "name": "metrics",
- "type": "map",
- "defaultValue": { },
- "description": "Because Google Analytics cannot accept arbitrary data about users or events, when you use `analytics.identify(userId, traits)` with custom numerical traits or `analytics.track('event', properties)` with custom numerical properties, you need to map those traits and properties to Google Analytics custom metrics if you want them to be sent to GA. Enter a trait or property name on the left. Choose the Google Analytics metric you want on the right. Google Analytics only accepts numbered metrics (e.g. metric3). We suggest using user-scoped metrics for trait mappings and hit-scoped metrics for properties. [Contact us](https://segment.com/contact) if you need help!",
- "required": false,
- "label": "Custom Metrics"
}, - {
- "name": "mobileTrackingId",
- "type": "string",
- "defaultValue": "",
- "description": "Google Analytics tracks mobile apps separately, so you'll want to create a separate Google Analytics mobile app property. Remember to only add a mobile tracking ID if you're tracking from a mobile library. If you're tracking from a hybrid app, fill in your website tracking ID instead. Leave it blank if you don't have a mobile app property.",
- "required": true,
- "label": "Mobile Tracking ID"
}, - {
- "name": "nameTracker",
- "type": "boolean",
- "defaultValue": false,
- "description": "Name the tracker 'segmentGATracker'. Enable this if you're working with additional Google Analytics trackers and want to ensure that your Segment tracker has a distinct name. If this is enabled you must prepend this tracker name to any native Google Analytics (except for create) that you call, e.g. 'segmentGATracker.require(....)' ",
- "required": false,
- "label": "Name Tracker"
}, - {
- "name": "nonInteraction",
- "type": "boolean",
- "defaultValue": false,
- "description": "Adds a _nonInteraction: true_ flag to every non-enhanced ecommerce event tracked to Google Analytics. If you're seeing unusually low bounce rates this will solve that issue.",
- "required": false,
- "label": "Add the non-interaction flag to all events"
}, - {
- "name": "optimize",
- "type": "string",
- "defaultValue": "",
- "description": "Integrate with Google Analytics Optimize plugin. Please enter your Optimize Container ID",
- "required": false,
- "label": "Optimize Container ID"
}, - {
- "name": "preferAnonymousId",
- "type": "boolean",
- "defaultValue": false,
- "description": "Enable this setting if you want `clientId` to always be set as a hash of `anonymousId`. If no `anonymousId` is present we will fallback to set the `clientId` to `userId`. This setting only applies to server side connections.",
- "required": false,
- "label": "Prefer Anonymous ID for Client ID - Server Side Only"
}, - {
- "name": "protocolMappings",
- "type": "map",
- "defaultValue": { },
- "description": "If you are using the *server side* GA integration, you can map your custom traits or properties to known [measurement protocol params](https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters).",
- "required": false,
- "label": "Map Traits or Properties to Measurement Protocol Params"
}, - {
- "name": "reportUncaughtExceptions",
- "type": "boolean",
- "defaultValue": false,
- "description": "This lets you study errors and exceptions in your iOS and Android apps in Google Analytics.",
- "required": false,
- "label": "Send Uncaught Exceptions to GA (Mobile)"
}, - {
- "name": "resetCustomDimensionsOnPage",
- "type": "array",
- "defaultValue": [ ],
- "description": "If you have an SPA website, and need to reset custom dimensions between page calls, add to this setting all the properties (already mapped as custom dimensions) that need to be reset for each page call.",
- "required": false,
- "label": "Reset dimensions on Page calls"
}, - {
- "name": "sampleRate",
- "type": "number",
- "defaultValue": 100,
- "description": "Specifies what percentage of users should be tracked. This defaults to 100 (no users are sampled out) but large sites may need to use a lower sample rate to stay within Google Analytics processing limits as [seen here](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#sampleRate). Currently only available in the browser - mobile coming soon.",
- "required": false,
- "label": "Sample Rate"
}, - {
- "name": "sendUserId",
- "type": "boolean",
- "defaultValue": false,
- "description": "User-ID enables the analysis of groups of sessions across devices, using a unique and persistent ID. This only works with Google Analytics Universal. IMPORTANT: Sending email or other personally identifiable information (PII) violates Google Analytics Terms of Service.",
- "required": false,
- "label": "Send User-ID to GA"
}, - {
- "name": "serversideClassic",
- "type": "boolean",
- "defaultValue": false,
- "description": "**Important:** When creating your Google Analytics profile, you can choose between **Classic** and **Universal** Analytics. After March 2013, new profiles default to Universal, while earlier profiles are Classic. An easy test: if you see `_gaq.push` in your code you're using Classic, so enable this.",
- "required": false,
- "label": "Use Classic Analytics for Your Serverside Tracking"
}, - {
- "name": "serversideTrackingId",
- "type": "string",
- "defaultValue": "",
- "description": "Your Serverside Tracking ID is the UA code for the Google Analytics property you want to send server-side calls to. Leave it blank if you don't have a server-side client library that you want to send data from. Remember that data tracked from mobile integrations that are not bundled in your app send data to Google Analytics server side, since Segment sends data to them via our own servers.",
- "required": true,
- "label": "Serverside Tracking ID"
}, - {
- "name": "setAllMappedProps",
- "type": "boolean",
- "defaultValue": true,
- "description": "Google Analytics allows users to either pass custom dimensions / metrics as properties of specific events or as properties for all events on a given page (or the lifetime of the global tracker object). The default Segment behavior is the latter. Any metrics / dimensions that are mapped to a given property will be set to the page and sent as properties of all subsequent events on that page. You can disable this functionality with this setting. If disabled, Segment will only pass custom dimensions / metrics as part of the payload of the event with which they are explicitly associated. Please reference the Google Analytics [documentation](https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets#implementation) for more info.",
- "required": false,
- "label": "Set Custom Dimensions & Metrics to the Page"
}, - {
- "name": "siteSpeedSampleRate",
- "type": "number",
- "defaultValue": 1,
- "description": "Defines the sample size for Site Speed data collection. If you have a small number of visitors you might want to adjust the sampling to a larger rate for your [site speed stats](https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration?hl=en#_gat.GA_Tracker_._setSiteSpeedSampleRate).",
- "required": false,
- "label": "Site Speed Sample Rate"
}, - {
- "name": "topLevelContextMapping",
- "type": "boolean",
- "defaultValue": false,
- "description": "By default, Segment allows mappings from custom traits and properties to Google Analytics custom dimensions and metrics. If you enable this setting, Segment will also send top-level and `context` object fields mapped in the **Custom Dimensions** and **Custom Metrics** settings. When evaluating mappings, Segment will prioritize properties and traits before top-level and `context` fields. This setting only applies to server side connections.",
- "required": false,
- "label": "Enable Mappings from Top-Level or Context Fields - Server Side Only"
}, - {
- "name": "trackCategorizedPages",
- "type": "boolean",
- "defaultValue": true,
- "description": "Tracks events to Google Analytics for [`page` method](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#page) calls that have a `category` associated with them. E.g. `page('Docs', 'Index')` translates to **Viewed Docs Page**.",
- "required": false,
- "label": "Track Categorized Pages"
}, - {
- "name": "trackNamedPages",
- "type": "boolean",
- "defaultValue": true,
- "description": "Tracks events to Google Analytics for [`page` method](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#page) calls that have a `name` associated with them. E.g. `page('Signup')` translates to **Viewed Signup Page**.",
- "required": false,
- "label": "Track Named Pages"
}, - {
- "name": "trackingId",
- "type": "string",
- "defaultValue": "",
- "description": "Your website's Tracking ID is in the **Tracking Info** tab on the [Admin Page](https://www.google.com/analytics/web/#management/Property) of Google Analytics. Leave it blank if you don't have a website property.",
- "required": true,
- "label": "Website Tracking ID"
}, - {
- "name": "typeOverride",
- "type": "boolean",
- "defaultValue": false,
- "description": "By default, Segment sends \"Product List Viewed\" and \"Product List Filtered\" ecommerce events to GA as \"pageview\" hit types. Enable this setting to instead map these two specced Segment track events to GA as \"event\" hit types.",
- "required": false,
- "label": "Send Segment \"Product List\" Events to GA as \"Event\" Hits"
}, - {
- "name": "useGoogleAmpClientId",
- "type": "boolean",
- "defaultValue": false,
- "description": "Google’s AMP Client ID API lets you uniquely identify users who engage with your content on AMP and non-AMP pages. If you opt-in, Google Analytics will use the user's AMP Client ID to determine that multiple site events belong to the same user when those users visit AMP pages via a [Google viewer](https://support.google.com/websearch/answer/7220196). Associating events and users provides features like user counts and session-based metrics. *Enabling this feature will affect your reporting.* Please carefully reference Google's [documentation](https://support.google.com/analytics/answer/7486764?hl=en&ref_topic=7378717) for more info before you enable it.",
- "required": false,
- "label": "Use Google AMP Client ID"
}, - {
- "name": "userDeletion",
- "type": "string",
- "defaultValue": "",
- "description": "Sign in to Google Analytics oAuth to enable User Deletion. ",
- "required": false,
- "label": "User Deletion"
}
], - "status": "PUBLIC",
- "categories": [
- "Analytics"
], - "components": [
- {
- "owner": "SEGMENT",
- "type": "BROWSER"
}, - {
- "owner": "SEGMENT",
- "type": "IOS"
}, - {
- "owner": "SEGMENT",
- "type": "ANDROID"
}, - {
- "owner": "SEGMENT",
- "type": "SERVER"
}
], - "previousNames": [
- "Google Analytics",
- "Google Universal Analytics"
], - "supportedMethods": {
- "track": true,
- "pageview": true,
- "identify": true,
- "group": false,
- "alias": false
}, - "supportedPlatforms": {
- "browser": true,
- "mobile": true,
- "server": true,
- "warehouse": false
}, - "supportedFeatures": {
- "cloudModeInstances": "0",
- "deviceModeInstances": "0",
- "replay": false,
- "browserUnbundling": true,
- "browserUnbundlingPublic": true
}, - "actions": [ ],
- "presets": [ ],
- "contacts": [ ],
- "partnerOwned": false
}, - "sourceId": "rh5BDZp6QDHvXFCkibm1pR"
}
}
}
Updates an existing Destination.
Note: if you attempt to update read-only settings for your destination you'll encounter the following behavior:
• When called, this endpoint may generate the Integration Disabled
event in the audit trail.
Config API omitted fields:
updateMask
OK
Resource not found
Validation failure
Too many requests
{- "enabled": false
}
{- "data": {
- "destination": {
- "id": "fP7qoQw2HTWt9WdMr718gn",
- "enabled": false,
- "name": "",
- "settings": {
- "anonymizeIp": false,
- "classic": false,
- "contentGroupings": { },
- "dimensions": { },
- "domain": "",
- "doubleClick": false,
- "enableServerIdentify": false,
- "enhancedEcommerce": false,
- "enhancedLinkAttribution": false,
- "identifyCategory": "",
- "identifyEventName": "",
- "ignoredReferrers": [ ],
- "includeSearch": false,
- "metrics": { },
- "mobileTrackingId": "123",
- "nameTracker": false,
- "nonInteraction": false,
- "optimize": "",
- "preferAnonymousId": false,
- "protocolMappings": { },
- "reportUncaughtExceptions": false,
- "resetCustomDimensionsOnPage": [ ],
- "sampleRate": 100,
- "sendUserId": false,
- "serversideClassic": false,
- "serversideTrackingId": "123",
- "setAllMappedProps": true,
- "siteSpeedSampleRate": 1,
- "topLevelContextMapping": false,
- "trackCategorizedPages": true,
- "trackNamedPages": true,
- "trackingId": "123",
- "typeOverride": false,
- "useGoogleAmpClientId": false,
- "userDeletion": ""
}, - "metadata": {
- "id": "54521fd725e721e32a72eebb",
- "name": "Google Universal Analytics",
- "description": "Google Universal Analytics is the most popular analytics tool for the web. It’s free and provides a wide range of features. It’s especially good at measuring traffic sources and ad campaigns.",
- "slug": "google-analytics",
- "logos": {
}, - "options": [
- {
- "name": "anonymizeIp",
- "type": "boolean",
- "defaultValue": false,
- "description": "For client side libraries. Read more about anonymizing IP addresses from the [Google support documentation](https://support.google.com/analytics/answer/2763052?hl=en).",
- "required": false,
- "label": "Anonymize IP Addresses"
}, - {
- "name": "classic",
- "type": "boolean",
- "defaultValue": false,
- "description": "**Important:** When creating your Google Analytics profile, you can choose between **Classic** and **Universal** Analytics. After March 2013, new profiles default to Universal, while earlier ones are Classic. An easy test: if you see `_gaq.push` in your code you're using Classic, so enable this.",
- "required": false,
- "label": "Use Classic Analytics on Your Site"
}, - {
- "name": "contentGroupings",
- "type": "map",
- "defaultValue": { },
- "description": "Enter a property name on the left. Choose the Google Analytics content grouping you want on the right. Google Analytics only accepts numbered content groupings (e.g. contentGrouping3). When you use `analytics.page(name, properties)` with custom properties, we'll use the value of the property you designate as the value of the specified content grouping.",
- "required": false,
- "label": "Content Groupings"
}, - {
- "name": "dimensions",
- "type": "map",
- "defaultValue": { },
- "description": "Because Google Analytics cannot accept arbitrary data about users or events, when you use `analytics.identify(userId, traits)` with custom traits or `analytics.track('event', properties)` with custom properties, you need to map those traits and properties to Google Analytics custom dimensions if you want them to be sent to GA. Enter a trait or property name on the left. Choose the Google Analytics dimension you want on the right. Google Analytics only accepts numbered dimensions (e.g. dimension3). We suggest using user-scoped dimensions for trait mappings and hit-scoped dimensions for properties [Contact us](https://segment.com/contact) if you need help!",
- "required": false,
- "label": "Custom Dimensions"
}, - {
- "name": "domain",
- "type": "string",
- "defaultValue": "",
- "description": "_Only data sent from visitors on this domain_ will be recorded. By default Google Analytics automatically resolves the domain name, so you should **leave this blank unless you know you want otherwise**! This option is useful if you need to ignore data from other domains, or explicitly set the domain of your Google Analytics cookie. This is known as Override Domain Name in [GA Classic](https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingSite). If you are testing locally, you can set the domain to `none`. [Read more about this setting in our docs](https://segment.com/docs/connections/destinations/catalog/google-analytics/#cookie-domain-name).",
- "required": false,
- "label": "Cookie Domain Name"
}, - {
- "name": "doubleClick",
- "type": "boolean",
- "defaultValue": false,
- "description": "Works with both Universal and Classic tracking methods.",
- "required": false,
- "label": "Remarketing, Display Ads and Demographic Reports."
}, - {
- "name": "enableServerIdentify",
- "type": "boolean",
- "defaultValue": false,
- "description": "If you are sending `.identify()` calls from your server side libraries or have Segment Cloud Apps that send back `.identify()` calls with enriched user traits, you can send that data to your GA account via custom dimensions and metrics. Unlike the client side integration which has the luxury of browsers and the global window `ga` tracker, for server side we will check your `traits` and your settings for custom dimension/metric mappings and send it with an explicit event. ",
- "required": false,
- "label": "Enable Server Side Identify"
}, - {
- "name": "enhancedEcommerce",
- "type": "boolean",
- "defaultValue": false,
- "description": "If you want more detailed reports on ecommerce, you might want to enable this feature. Read more about it [here](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce).",
- "required": false,
- "label": "Enable Enhanced Ecommerce"
}, - {
- "name": "enhancedLinkAttribution",
- "type": "boolean",
- "defaultValue": false,
- "description": "Provides more detailed reports on the links clicked on your site. Read more about it in the [Google support documentation](https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-link-attribution).",
- "required": false,
- "label": "Enable Enhanced Link Attribution"
}, - {
- "name": "identifyCategory",
- "type": "string",
- "defaultValue": "",
- "description": "If you have **Enabled Server Side Identify**, you can specify the trait you want to look up for setting the event category will be since all custom metrics/dimensions for server side `.identify()` calls will be sent via an event hit to GA. The default value will be `'All'`. For example, if you are sending `traits.category`, you can put 'category' in the setting above and we will send the value of this trait as the event category.",
- "required": false,
- "label": "Server Side Identify Event Category"
}, - {
- "name": "identifyEventName",
- "type": "string",
- "defaultValue": "",
- "description": "If you have **Enabled Server Side Identify**, you can specify what the event action will be since all custom metrics/dimensions for server side `.identify()` calls will be sent via an event hit to GA. The default value will be `'User Enriched'`",
- "required": false,
- "label": "Server Side Identify Event Action"
}, - {
- "name": "ignoredReferrers",
- "type": "strings",
- "defaultValue": [ ],
- "description": "Add any domains you want to ignore, separated by line breaks. You might use this if you want Google Analytics to ignore certain referral domains (e.g. to prevent your subdomains from showing up as referrers in your analytics). _Note: this only works for Classic profiles. Universal profiles can_ [edit their ignored referrers](https://support.google.com/analytics/answer/2795830?hl=en&ref_topic=2790009) _directly inside Google Analytics._",
- "required": false,
- "label": "Ignored Referrers"
}, - {
- "name": "includeSearch",
- "type": "boolean",
- "defaultValue": false,
- "description": "The querystring doesn't usually affect the content of the page in a significant way (like sorting), so we disable this by default.",
- "required": false,
- "label": "Include the Querystring in Page Views"
}, - {
- "name": "metrics",
- "type": "map",
- "defaultValue": { },
- "description": "Because Google Analytics cannot accept arbitrary data about users or events, when you use `analytics.identify(userId, traits)` with custom numerical traits or `analytics.track('event', properties)` with custom numerical properties, you need to map those traits and properties to Google Analytics custom metrics if you want them to be sent to GA. Enter a trait or property name on the left. Choose the Google Analytics metric you want on the right. Google Analytics only accepts numbered metrics (e.g. metric3). We suggest using user-scoped metrics for trait mappings and hit-scoped metrics for properties. [Contact us](https://segment.com/contact) if you need help!",
- "required": false,
- "label": "Custom Metrics"
}, - {
- "name": "mobileTrackingId",
- "type": "string",
- "defaultValue": "",
- "description": "Google Analytics tracks mobile apps separately, so you'll want to create a separate Google Analytics mobile app property. Remember to only add a mobile tracking ID if you're tracking from a mobile library. If you're tracking from a hybrid app, fill in your website tracking ID instead. Leave it blank if you don't have a mobile app property.",
- "required": true,
- "label": "Mobile Tracking ID"
}, - {
- "name": "nameTracker",
- "type": "boolean",
- "defaultValue": false,
- "description": "Name the tracker 'segmentGATracker'. Enable this if you're working with additional Google Analytics trackers and want to ensure that your Segment tracker has a distinct name. If this is enabled you must prepend this tracker name to any native Google Analytics (except for create) that you call, e.g. 'segmentGATracker.require(....)' ",
- "required": false,
- "label": "Name Tracker"
}, - {
- "name": "nonInteraction",
- "type": "boolean",
- "defaultValue": false,
- "description": "Adds a _nonInteraction: true_ flag to every non-enhanced ecommerce event tracked to Google Analytics. If you're seeing unusually low bounce rates this will solve that issue.",
- "required": false,
- "label": "Add the non-interaction flag to all events"
}, - {
- "name": "optimize",
- "type": "string",
- "defaultValue": "",
- "description": "Integrate with Google Analytics Optimize plugin. Please enter your Optimize Container ID",
- "required": false,
- "label": "Optimize Container ID"
}, - {
- "name": "preferAnonymousId",
- "type": "boolean",
- "defaultValue": false,
- "description": "Enable this setting if you want `clientId` to always be set as a hash of `anonymousId`. If no `anonymousId` is present we will fallback to set the `clientId` to `userId`. This setting only applies to server side connections.",
- "required": false,
- "label": "Prefer Anonymous ID for Client ID - Server Side Only"
}, - {
- "name": "protocolMappings",
- "type": "map",
- "defaultValue": { },
- "description": "If you are using the *server side* GA integration, you can map your custom traits or properties to known [measurement protocol params](https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters).",
- "required": false,
- "label": "Map Traits or Properties to Measurement Protocol Params"
}, - {
- "name": "reportUncaughtExceptions",
- "type": "boolean",
- "defaultValue": false,
- "description": "This lets you study errors and exceptions in your iOS and Android apps in Google Analytics.",
- "required": false,
- "label": "Send Uncaught Exceptions to GA (Mobile)"
}, - {
- "name": "resetCustomDimensionsOnPage",
- "type": "array",
- "defaultValue": [ ],
- "description": "If you have an SPA website, and need to reset custom dimensions between page calls, add to this setting all the properties (already mapped as custom dimensions) that need to be reset for each page call.",
- "required": false,
- "label": "Reset dimensions on Page calls"
}, - {
- "name": "sampleRate",
- "type": "number",
- "defaultValue": 100,
- "description": "Specifies what percentage of users should be tracked. This defaults to 100 (no users are sampled out) but large sites may need to use a lower sample rate to stay within Google Analytics processing limits as [seen here](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#sampleRate). Currently only available in the browser - mobile coming soon.",
- "required": false,
- "label": "Sample Rate"
}, - {
- "name": "sendUserId",
- "type": "boolean",
- "defaultValue": false,
- "description": "User-ID enables the analysis of groups of sessions across devices, using a unique and persistent ID. This only works with Google Analytics Universal. IMPORTANT: Sending email or other personally identifiable information (PII) violates Google Analytics Terms of Service.",
- "required": false,
- "label": "Send User-ID to GA"
}, - {
- "name": "serversideClassic",
- "type": "boolean",
- "defaultValue": false,
- "description": "**Important:** When creating your Google Analytics profile, you can choose between **Classic** and **Universal** Analytics. After March 2013, new profiles default to Universal, while earlier profiles are Classic. An easy test: if you see `_gaq.push` in your code you're using Classic, so enable this.",
- "required": false,
- "label": "Use Classic Analytics for Your Serverside Tracking"
}, - {
- "name": "serversideTrackingId",
- "type": "string",
- "defaultValue": "",
- "description": "Your Serverside Tracking ID is the UA code for the Google Analytics property you want to send server-side calls to. Leave it blank if you don't have a server-side client library that you want to send data from. Remember that data tracked from mobile integrations that are not bundled in your app send data to Google Analytics server side, since Segment sends data to them via our own servers.",
- "required": true,
- "label": "Serverside Tracking ID"
}, - {
- "name": "setAllMappedProps",
- "type": "boolean",
- "defaultValue": true,
- "description": "Google Analytics allows users to either pass custom dimensions / metrics as properties of specific events or as properties for all events on a given page (or the lifetime of the global tracker object). The default Segment behavior is the latter. Any metrics / dimensions that are mapped to a given property will be set to the page and sent as properties of all subsequent events on that page. You can disable this functionality with this setting. If disabled, Segment will only pass custom dimensions / metrics as part of the payload of the event with which they are explicitly associated. Please reference the Google Analytics [documentation](https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets#implementation) for more info.",
- "required": false,
- "label": "Set Custom Dimensions & Metrics to the Page"
}, - {
- "name": "siteSpeedSampleRate",
- "type": "number",
- "defaultValue": 1,
- "description": "Defines the sample size for Site Speed data collection. If you have a small number of visitors you might want to adjust the sampling to a larger rate for your [site speed stats](https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration?hl=en#_gat.GA_Tracker_._setSiteSpeedSampleRate).",
- "required": false,
- "label": "Site Speed Sample Rate"
}, - {
- "name": "topLevelContextMapping",
- "type": "boolean",
- "defaultValue": false,
- "description": "By default, Segment allows mappings from custom traits and properties to Google Analytics custom dimensions and metrics. If you enable this setting, Segment will also send top-level and `context` object fields mapped in the **Custom Dimensions** and **Custom Metrics** settings. When evaluating mappings, Segment will prioritize properties and traits before top-level and `context` fields. This setting only applies to server side connections.",
- "required": false,
- "label": "Enable Mappings from Top-Level or Context Fields - Server Side Only"
}, - {
- "name": "trackCategorizedPages",
- "type": "boolean",
- "defaultValue": true,
- "description": "Tracks events to Google Analytics for [`page` method](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#page) calls that have a `category` associated with them. E.g. `page('Docs', 'Index')` translates to **Viewed Docs Page**.",
- "required": false,
- "label": "Track Categorized Pages"
}, - {
- "name": "trackNamedPages",
- "type": "boolean",
- "defaultValue": true,
- "description": "Tracks events to Google Analytics for [`page` method](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#page) calls that have a `name` associated with them. E.g. `page('Signup')` translates to **Viewed Signup Page**.",
- "required": false,
- "label": "Track Named Pages"
}, - {
- "name": "trackingId",
- "type": "string",
- "defaultValue": "",
- "description": "Your website's Tracking ID is in the **Tracking Info** tab on the [Admin Page](https://www.google.com/analytics/web/#management/Property) of Google Analytics. Leave it blank if you don't have a website property.",
- "required": true,
- "label": "Website Tracking ID"
}, - {
- "name": "typeOverride",
- "type": "boolean",
- "defaultValue": false,
- "description": "By default, Segment sends \"Product List Viewed\" and \"Product List Filtered\" ecommerce events to GA as \"pageview\" hit types. Enable this setting to instead map these two specced Segment track events to GA as \"event\" hit types.",
- "required": false,
- "label": "Send Segment \"Product List\" Events to GA as \"Event\" Hits"
}, - {
- "name": "useGoogleAmpClientId",
- "type": "boolean",
- "defaultValue": false,
- "description": "Google’s AMP Client ID API lets you uniquely identify users who engage with your content on AMP and non-AMP pages. If you opt-in, Google Analytics will use the user's AMP Client ID to determine that multiple site events belong to the same user when those users visit AMP pages via a [Google viewer](https://support.google.com/websearch/answer/7220196). Associating events and users provides features like user counts and session-based metrics. *Enabling this feature will affect your reporting.* Please carefully reference Google's [documentation](https://support.google.com/analytics/answer/7486764?hl=en&ref_topic=7378717) for more info before you enable it.",
- "required": false,
- "label": "Use Google AMP Client ID"
}, - {
- "name": "userDeletion",
- "type": "string",
- "defaultValue": "",
- "description": "Sign in to Google Analytics oAuth to enable User Deletion. ",
- "required": false,
- "label": "User Deletion"
}
], - "status": "PUBLIC",
- "categories": [
- "Analytics"
], - "components": [
- {
- "owner": "SEGMENT",
- "type": "BROWSER"
}, - {
- "owner": "SEGMENT",
- "type": "IOS"
}, - {
- "owner": "SEGMENT",
- "type": "ANDROID"
}, - {
- "owner": "SEGMENT",
- "type": "SERVER"
}
], - "previousNames": [
- "Google Analytics",
- "Google Universal Analytics"
], - "supportedMethods": {
- "track": true,
- "pageview": true,
- "identify": true,
- "group": false,
- "alias": false
}, - "supportedPlatforms": {
- "browser": true,
- "mobile": true,
- "server": true,
- "warehouse": false
}, - "supportedFeatures": {
- "cloudModeInstances": "0",
- "deviceModeInstances": "0",
- "replay": false,
- "browserUnbundling": true,
- "browserUnbundlingPublic": true
}, - "actions": [ ],
- "presets": [ ],
- "contacts": [ ],
- "partnerOwned": false
}, - "sourceId": "rh5BDZp6QDHvXFCkibm1pR"
}
}
}
Gets a Destination subscription by id.
• This endpoint is in Alpha testing. Please submit any feedback by sending email to friends@segment.com.
• In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.
OK
Resource not found
Validation failure
Too many requests
import { configureApis, unwrap } from '@segment/public-api-sdk-typescript' const api = configureApis('/* Insert your Public API token here */') try { const result = await unwrap(api.destinations.getSubscriptionFromDestination('fP7qoQw2HTWt9WdMr718gn', 'iUyx2UdPSvp4uJtYAhjTup')) console.log(JSON.stringify(result)) } catch (e) { console.log('ERROR:', e) }
{- "data": {
- "subscription": {
- "id": "iUyx2UdPSvp4uJtYAhjTup",
- "name": "Example Subscription",
- "actionId": "jiMz7MfHNeHmUckzRnUGkU",
- "actionSlug": "someActionSlug",
- "destinationId": "fP7qoQw2HTWt9WdMr718gn",
- "modelId": "",
- "enabled": false,
- "trigger": "type = \"track\"",
- "settings": { }
}
}
}
Deletes an existing Destination subscription.
• This endpoint is in Alpha testing. Please submit any feedback by sending email to friends@segment.com.
• In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.
OK
Resource not found
Validation failure
Too many requests
import { configureApis, unwrap } from '@segment/public-api-sdk-typescript' const api = configureApis('/* Insert your Public API token here */') try { const result = await unwrap(api.destinations.removeSubscriptionFromDestination('fP7qoQw2HTWt9WdMr718gn', 'bXbWrgh8vAeWioqx6Kg5vb')) console.log(JSON.stringify(result)) } catch (e) { console.log('ERROR:', e) }
{- "data": {
- "status": "SUCCESS"
}
}
Updates an existing Destination subscription.
• This endpoint is in Alpha testing. Please submit any feedback by sending email to friends@segment.com.
• In order to successfully call this endpoint, the specified Workspace needs to have the Destination Subscriptions feature enabled. Please reach out to your customer success manager for more information.
OK
Resource not found
Validation failure
Too many requests
{- "input": {
- "name": "Updated name"
}
}
{- "data": {
- "subscription": {
- "id": "mAdhWCVCmFadguoGcqP3vN",
- "name": "Updated name",
- "actionId": "jiMz7MfHNeHmUckzRnUGkU",
- "actionSlug": "someActionSlug",
- "destinationId": "fP7qoQw2HTWt9WdMr718gn",
- "reverseETLModelId": "",
- "trigger": "type = \"track\"",
- "enabled": false,
- "settings": { },
- "createdAt": "2006-01-02T15:04:05.000Z",
- "updatedAt": "2006-01-02T15:04:05.000Z"
}
}
}
Get an event delivery metrics summary from a Destination.
Based on the granularity chosen, there are restrictions on the time range you can query:
Minute:
Hour:
Day:
The rate limit for this endpoint is 60 requests per minute, which is lower than the default due to access pattern restrictions. Once reached, this endpoint will respond with the 429 HTTP status code with headers indicating the limit parameters. See Rate Limiting for more information.
OK
Resource not found
Validation failure
Too many requests
import { configureApis, unwrap } from '@segment/public-api-sdk-typescript' const api = configureApis('/* Insert your Public API token here */') try { const result = await unwrap( api.destinations.listDeliveryMetricsSummaryFromDestination('fP7qoQw2HTWt9WdMr718gn', 'rh5BDZp6QDHvXFCkibm1pR') ) console.log(JSON.stringify(result)) } catch (e) { console.log('ERROR:', e) }
{- "data": {
- "deliveryMetricsSummary": {
- "sourceId": "rh5BDZp6QDHvXFCkibm1pR",
- "destinationMetadataId": "54521fd725e721e32a72eebb",
- "metrics": [
- {
- "metricName": "successes",
- "total": 120,
- "breakdown": [
- {
- "metricName": "successes_on_first_attempt",
- "value": 60
}, - {
- "metricName": "successes_after_retry",
- "value": 60
}
]
}, - {
- "metricName": "expired",
- "total": 0
}, - {
- "metricName": "discarded",
- "total": 0
}, - {
- "metricName": "retried",
- "total": 0
}, - {
- "metricName": "time_to_success",
- "total": 10,
- "breakdown": [
- {
- "metricName": "time_to_success_average",
- "value": 0
}, - {
- "metricName": "time_to_success_p95",
- "value": 0
}
]
}, - {
- "metricName": "time_to_first_attempt",
- "total": 10,
- "breakdown": [
- {
- "metricName": "time_to_first_attempt_average",
- "value": 0
}, - {
- "metricName": "time_to_first_attempt_p95",
- "value": 0
}
]
}
]
}
}
}