publisherNetworkReport
The publisherNetworkReport query endpoint provides standard performance reporting, for all publishers, associated with your TripleLift Account (aka Member), matching the capabilities of the query tool in the TripleLift Console and the Web & Mobile reporting for Publishers in TripleLift Direct.
- Scope: Covers all seller activity within your Account
- Capabilities: Filter and group using custom dimensions, metrics, and filter values.
- Required Parameters: sellerMemberId, startDate, endDate
Refer to the GraphQL schema for the latest information on available endpoints, dimensions, and metrics.
| Category | Name | Description |
|---|---|---|
| DATE | YMD | Specifies the year, month, and day for data aggregation (YYYY-MM-DD); daily data is available for the past 15 months (UTC) |
| DATE | HOUR | Indicates the hour of the day in UTC for granular reporting; hourly data is available starting from 00:00 (UTC) yesterday |
| DEVICE | DEVICE_TYPE | The category of device (e.g. CTV, Desktop, Mobile, Tablet) |
| DEVICE | DEVICE_SUBTYPE | More specific classification of the device type (e.g. Gaming Console, Set Top Box, etc.) |
| DEVICE | DEVICE_VENDOR | The manufacturer of the device |
| DEVICE | OS | The operating system running on the device |
| DEVICE | BROWSER | The browser used by the consumer |
| GEOGRAPHY | SECTOR | The geographic sector or continent where the ad request originated |
| GEOGRAPHY | REGION | Geographic subdivision (e.g. province, state) defined by the International Organization of Standardization (ISO 3166-2) where the ad request originated |
| GEOGRAPHY | COUNTRY_NAME | The geographic country where the ad request originated |
| GEOGRAPHY | DMA | The Designated Metro Area (DMA), from the ad request |
| INVENTORY | PUBLISHER_ID | Unique identifier for the publisher entity; this is the sellers.json identifier |
| INVENTORY | PUBLISHER_NAME | The descriptive name of the publisher |
| INVENTORY | DOMAIN | The web domain, mobile app bundle ID, or CTV app bundle ID where the ad was served |
| INVENTORY | PLACEMENT_ID | A unique ID for the specific ad placement |
| INVENTORY | PLACEMENT_NAME | The name of the specific ad placement |
| INVENTORY | APP_NAME | The name of the CTV or mobile application where the ad appeared |
| INVENTORY | APP_BUNDLE_ID | Unique identifier for a mobile or CTV application |
| INVENTORY | SUPPLY_SOURCE | Describes the supply integration (Direct, Prebid, etc) with TripleLift |
| INVENTORY | SUPPLY_TYPE | Describes whether the supply was web or app |
| INVENTORY | JOUNCE_CLASSIFICATION | A supply path’s quality label defined by Jounce Media |
| BUYER | BUYER_MEMBER | The demand platform (DSP) representing the buyer of the ad opportunity |
| BUYER | BRAND | The brand advertised in the creative |
| BUYER | PARENT_BRAND_NAME | The company that owns the brand; may be the same as brand |
| BUYER | BRAND_DOMAIN | The adomain declared in the bid response, typically the primary website associated with the brand |
| BUYER | DSP_SEAT | Identifier for the demand-side platform seat |
| BUYER | DIRECT_PAYMENT |
Indicates whether TripleLift pays the publisher directly; if true, and TripleLift pays the publisher, Google will invoice the publisher separately for the Open Bidding (OB) fee
|
| DEAL | TRANSACTION_TYPE | Describes the transaction; if Deal is 'Private Marketplace', then ‘PMP’; if Fill Type is 'Ad Server', then ‘Direct Sold’; otherwise, 'Open Exchange' |
| DEAL | DEAL_CODE | Specific code (e.g. tlx-) for a deal |
| DEAL | DEAL_NAME | Descriptive name for a deal |
| DEAL | DEAL_TYPE | Describes the type of deal (e.g. Programmatic Guaranteed, PMP, etc.) If blank, indicates Open Exchange transactions |
| CREATIVE | CREATIVE_ASSET_ID | A unique ID for the specific creative asset used in an ad |
| CREATIVE | CREATIVE_CATEGORY | Classification of the ad's content, based on IAB Tech Lab standards |
| CREATIVE | FORMAT | TripleLift ad format name |
| CREATIVE | AD_SOLUTION | TripleLift advertising solution; may include a combination of format, connection type, video placement &/or template |
| CREATIVE | EXTERNAL_CREATIVE_ID | Identifier for the demand-side creative |
| CREATIVE | CREATIVE_DURATION | Measured length of time, expressed in seconds, that a non-static ad creative is intended to be displayed or played to a user, as submitted by the advertiser or creative source |
| METRIC | AD_REQUESTS | The total number of accepted requests made for an ad to be served (fka Impressions) |
| METRIC | FILL_RATE | Percentage of ad requests that resulted in a rendered ad (Rendered / Ad Requests) |
| METRIC | PAYABLE | The total number of ad requests that resulted in a payable event (aka Delivered Impressions) |
| METRIC | REVENUE | Net seller revenue |
| METRIC | CLICKS |
The number of times consumers interacted with the ad by clicking
TripleLift captures clicks in reporting based on a couple of key factors: the ad format and the buyer (DSP).
|
| METRIC | CTR | Click-through rate, (Clicks / Rendered) |
| METRIC | CPM | Cost per mille, the net seller revenue per thousand payable events |
| METRIC | CPC | Cost per click, (Revenue / Clicks) |
| METRIC | CPCV | Cost per completed view (Revenue / Video Completions) |
| METRIC | MOUSEOVERS | The number of times a consumer's mouse hovered over an ad |
| METRIC | MOUSEOVER_RATE | Creative mouseover rate, (Mouseovers / Rendered) |
| METRIC | RENDERED | The total number of ad requests that resulted in an ad being shown |
| METRIC | RENDER_RATE | Render rate for ad requests that resulted in a won auction (Rendered / Wins) |
| METRIC | RCPM | Revenue per mille (Revenue / Ad Requests) * 1000 |
| METRIC | TL_WINS | The number of ad requests that resulted in a won auction with TripleLift (prior to the publisher auction) |
| METRIC | VIDEO_Q1 | Percentage of video plays reaching the first quartile |
| METRIC | VIDEO_Q2 | Percentage of video plays reaching the second quartile (50%) |
| METRIC | VIDEO_Q3 | Percentage of video plays reaching the third quartile |
| METRIC | VIDEO_2S | Count of video plays that lasted at least 2 seconds |
| METRIC | VIDEO_3S | Count of video plays that lasted at least 3 seconds |
| METRIC | VIDEO_5S | Count of video plays that lasted at least 5 seconds |
| METRIC | VIDEO_10S | Count of video plays that lasted at least 10 seconds |
| METRIC | VIDEO_STARTS | The number of times a video ad began playing |
| METRIC | VSR | Video Start Rate, (Video Starts / Rendered) |
| METRIC | VIDEO_COMPLETIONS | The number of times a video ad played to its end |
| METRIC | VCR | Video Completion Rate, (Video Completions / Video Starts) |
| METRIC | WINS | The total number of ad requests that resulted in a won auction with the publisher (aka downstream wins) |
publisherNetwork Endpoint Summary
- Use the Synchronous endpoints when querying for low volumes of data, with quick response times
- Use the Asynchronous endpoints when querying for larger volumes of data, returned within 5 minutes
Depending on your needs and workflow, use the query endpoints below to request data:
| Query Endpoint Name | Query Endpoint Type | Description |
|---|---|---|
publisherNetworkReport |
Synchronous | Returns standard performance reporting for publishers, up to 5,000 rows |
publisherNetworkFilterOptions |
Synchronous | Returns all possible filter IDs and values of a dimension, in a given time period, to be used in your queries |
asyncDownloadPublisherNetworkReport |
Asynchronous | Returns a high volume of data, up to 400MB, within 5 minutes; responds with a pre-signed S3 download link |
asyncDownloadReportStatus |
Asynchronous | Polling endpoint that accepts the pre-signed S3 link from the asyncDownloadPublisherNetworkReport response and returns the status of your report generation (READY, WAITING, or ERROR) |
asyncEmailPublisherNetworkReport |
Asynchronous | Returns a high volume of data within 5 minutes, up to 10MB; delivers the final CSV report to a specified list of valid email addresses |
publisherNetwork Synchronous endpoints
These endpoints are designed to handle queries for low volumes of data and return results with relatively quick response times. When querying for larger volumes of data, use the Asynchronous endpoints.
Pagination
Synchronous endpoint results are paginated to a default page size of 50 rows. The size can optionally be set using the size parameter in a request (the value of which cannot exceed the row limit).
If the number of result rows is greater than the given page size, then the response will also include a nextCursor object, whose value can be passed in as the cursor field of the subsequent request.
When supplying a cursor to receive the next page of data, the user must also resubmit all the other query parameters, in the same order as they were originally passed in.
publisherNetworkReport
Returns reporting data (e.g. the reporting available TripleLift Console or TripleLift Direct).
Note that publisherNetworkReport has a row limit of 5,000. Any query exceeding the limit will only return data up to the limit. Use the asynchronous endpoints for larger reports.
publisherNetworkFilterOptions
Returns all possible filter values of a dimension in a given time period.
The returned filter IDs can be used as the filter values when querying the publisherNetworkReport.
publisherNetwork Asynchronous endpoints
These endpoints are designed to handle queries for high volumes of data and return results within 5 minutes. For quicker response times and low volumes of data, use the Synchronous endpoints.
Results from querying the asynchronous endpoints are in the form of a CSV. Refer to the FAQs for tips on parsing the results.
There are two options to obtain a CSV report asynchronously:
- Submit a request to an asynchronous endpoint and immediately receive a report download link. Poll a second endpoint until your report is ready at that download link.
- Submit a request to an asynchronous endpoint and wait to receive an email containing the report.
Currently, CSV reports larger than 400MB will fail. Please refer to the Querying Guidelines section for tips on managing report size.
asyncDownloadPublisherNetworkReport
This endpoint is used in Option 1, above. This endpoint uses the same parameters as the synchronous publisherNetworkReport endpoint (without the pagination-related fields cursor and size) and responds with a download link in the form of a pre-signed S3 URL.
The pre-signed S3 URL expires 30 minutes after it is returned.
Example request:
query {
asyncDownloadPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-06-15"
endDate: "2024-07-30"
dimensions: [YMD, PUBLISHER_NAME]
metrics: [AD_REQUESTS, REVENUE]
)
}
Example response:
{
"data": {
"asyncDownloadPublisherNetworkReport": "https://triplelift-reporting-api-downloads.s3.amazonaws.com/9629b338-a654-4f95-ac4f-8b9dfafeb3ca/1735843508921/triplelift_report.csv?X-Amz-Security-Token=IQoJb3JpZ2luXNyF2CRFuvpB430YDTbzZLAIgYBV4T2uFp4np4zZ471RwMNeby0c3%2By3sOTtfYmjRr%2FMqxgUI2%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgwyNTU5OTMwMDUwOTEiDAdZ%2FwDCe8O1dvOekSqaBd9AC9BjQXtHukgmdGomyMnnW5qr72B617Xz976w10EfL3KyOyw9KRD5JSJt8Pz8FrRQ23131xlFF35YmH8OSIlvWWkNfGVJMk0vP8fvc7w99T6fgB5yF2KfMVufwH6Y8lQdd0o5%2BSLvG581NstAl7SzSaEuOIqo0j41qRkueVk2QZGX3t2lkkO4Gqmjq51lU3Oaue7Jl6D%2B%2Bag1%2BFOGGIclN%2BFvxE%2FfBVhLzC3R2GgEsIj2UBe5JMUwdubG9xuwCA09sySJecBcOYknyUT%2FuyLEPZ4IvyshDzZtqYJUW8VjnCFGxLKg5PBj6dcw7rRUVHKxv8PfAkOcyonWQv9yEg5NsDhQnxqJ8bwb9no3aL%2Bdr8EBUeAZhhazilmNpOK87sbg%2BaAxI2o4gIpaTYnAEA4hJpFu1FnNOD8pFMMZzURQaB1Rke4omarL93I7spcpWC20r%2F8vAFu7Ahf9JKt20ZKhx65Kpgvqgw5YjmWITw5K4tJjUpvnW234cuBuiFOwUaHovg%2BG9IjDuDZI5WyLCfKKe8gx3glLK6ZNF8h2FD6vUBAD8XJzo31ARDhcdytwke71h%2BlAsGng6A7Umt62mP%2B1yR%2B29Mw0bvngRjJiEk7xz%2FRFZeGkAwDL6lsmnfppzThir3BYyj0WHdpl9TzuD%2Bxy0%2BgKTJ7Amik1qSvJSfu5kHVthjIfQcD%2FOh%2Fmh4cSFP%2F7g7c24nYE1kUL4SuV2DkpbOJhWR4CNm9gloOEcTmNB79YascR%2FeogWaIO9uS9PvHN%2BlCB%2BNNDOIysQfn6h%2Foqd0AtQLp5bHP17FMzAnJk84fPhG4dBOWq56EB5ai1QC6ihsithiuerhstithre31HEadvXaXds9md9%2FPWOEBI2VbzN8Q3eG19yvzDKrdu7BjqxAWas1Pj8UcE%2B2kA42NrTK%2B3H17PnGJG%2FqXD4Rvcx2wC995mJFpJgDLOOkUNRbrp2MHjm3eshQ8F07BuDbq%2BiuI0LNuBHI0qFoK8%2FesX8mBXKURXmGRGsujZDtjNVwHhqRwmgYKjR5HeXbjUgkHfXMEkJPqupeonlfI%2Fb1Om%2B30f0E%2BT46rQxOb%2B4lK9KYFze2XQC%2Bkl19y5WU0RPD23jfqyA53T3M%2B1pNV6U%2FdjKNgdClQ%3D%3D&X-Amz-Algorithm=ABC-123-DFF&X-Amz-Date=20250102T184508Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1799&X-Amz-Credential=ASIIHHEIHTIHLWH%2F20250102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=14b12cbd349dbbc36acac145778aaaaaaaaaa06f57716b15dba1814"
}
asyncDownloadReportStatus
This is the polling endpoint mentioned in Option 1. It accepts the pre-signed S3 link in the response from asyncDownloadPublisherNetworkReport and returns one of 3 possible status strings:
-
READY- the report is present in the download link -
WAITING- the report is not ready yet -
ERROR- the report request must be resubmitted
Please refer to the GraphQL schema for this endpoint's status refresh rate to help define your poll interval.
asyncEmailPublisherNetworkReport
This endpoint is used in Option 2. It uses the same parameters as the synchronous publisherNetworkReport endpoint (without the pagination-related fields cursor and size), as well as a list of valid email addresses for the report recipients. It returns true if the request was successfully received, and false otherwise.
The asyncEmailPublisherNetworkReport has an email size limit of 10MB. Any email exceeding the limit will fail to send.
Example request:
query {
asyncEmailPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-06-15"
endDate: "2024-07-30"
dimensions: [YMD, PUBLISHER_NAME]
metrics: [AD_REQUESTS, REVENUE]
filters: []
emails: ["EMAIL_1", "EMAIL_2"]
)
}
Example response:
{
"data": {
"asyncEmailPublisherNetworkReport": true
}
ctvPublisherNetworkReport
The ctvPublisherNetworkReport query endpoint provides performance reporting for CTV publishers, inclusive of many of the dimensions and metrics from the standard performance reporting, with the addition of ORTB content object and TripleLift video content metadata. Query for CTV supply activity associated with your TripleLift Account (aka Member), matching the capabilities of the CTV reporting for Publishers in TripleLift Direct.
- Scope: Covers all seller activity for CTV publishers within your Account
- Capabilities: Filter and group using custom dimensions, metrics, and filter values.
- Required Parameters: sellerMemberId, startDate, endDate
Refer to the GraphQL schema for the latest information on available endpoints, dimensions, and metrics.
| Category | Name | Description |
|---|---|---|
| DATE | YMD | Specifies the year, month, and day for data aggregation (YYYY-MM-DD); daily data is available for the past 15 months (UTC) |
| DATE | HOUR | Indicates the hour of the day in UTC for granular reporting; hourly data is available starting from 00:00 (UTC) yesterday |
| DEVICE | DEVICE_TYPE | The category of device (e.g., CTV, Desktop, Mobile, Tablet) |
| DEVICE | DEVICE_SUBTYPE | More specific classification of the device type (e.g. TV, set-top box, game console) |
| DEVICE | DEVICE_VENDOR | The manufacturer of the device |
| DEVICE | OS | The operating system running on the device |
| DEVICE | BROWSER | The browser used by the consumer |
| GEOGRAPHY | SECTOR | The geographic sector or continent where the ad request originated |
| GEOGRAPHY | REGION | Geographic subdivision (e.g. province, state) defined by the International Organization of Standardization (ISO 3166-2) where the ad request originated |
| GEOGRAPHY | COUNTRY_NAME | The geographic country where the ad request originated |
| GEOGRAPHY | DMA | The Designated Metro Area (DMA), from the ad request |
| INVENTORY | PUBLISHER_ID | Unique identifier for the publisher entity. This is the sellers.json identifier |
| INVENTORY | PUBLISHER_NAME | The descriptive name of the publisher |
| INVENTORY | DOMAIN_ID | The CTV app bundle ID where the ad was served |
| INVENTORY | PLACEMENT_ID | A unique ID for the specific ad placement |
| INVENTORY | PLACEMENT_NAME | The name of the specific ad placement |
| INVENTORY | APP_NAME | The name of the CTV or mobile application where the ad appeared |
| INVENTORY | APP_BUNDLE_ID | Unique identifier for a mobile or CTV application |
| INVENTORY | APP_DEVELOPER_DOMAIN | The official website of the app developer |
| INVENTORY | SSAI_VENDOR | Technology provider that facilitates "ad stitching," server-side rather than client-side, to merge video content with ads into a continuous stream |
| INVENTORY | SUPPLY_SOURCE | Describes the supply integration (Direct, Prebid, etc) with TripleLift |
| INVENTORY | SUPPLY_TYPE | Describes whether the supply was web or app |
| INVENTORY | JOUNCE_CLASSIFICATION | A supply path’s quality label defined by Jounce Media |
| INVENTORY | ORTB_CONTENT_NETWORK | OpenRTB Content object describing the network |
| INVENTORY | ORTB_CONTENT_GENRE |
OpenRTB Content object describing the genre |
| INVENTORY | ORTB_CONTENT_SERIES |
OpenRTB Content object describing the series |
| INVENTORY | ORTB_CONTENT_RATING |
OpenRTB Content object describing the content rating |
| INVENTORY | ORTB_CONTENT_ID |
OpenRTB Content object describing the content identifier |
| INVENTORY | ORTB_CONTENT_TITLE |
OpenRTB Content object describing the content title |
| INVENTORY | TL_CONTENT_PRODUCER | The content producer name identified by TripleLift creative services |
| INVENTORY | TL_CONTENT_SERIES_TITLE | The content series title identified by TripleLift creative services |
| INVENTORY | TL_CONTENT_SEASON_NUM | The content season number identified by TripleLift creative services |
| INVENTORY | TL_CONTENT_GENRE_LIST | The list of content genres identified by TripleLift creative services |
| INVENTORY | TL_CONTENT_TITLE | The content title identified by TripleLift creative services |
| INVENTORY | TL_CONTENT_EPISODE_NUM | The content episode number identified by TripleLift creative services |
| INVENTORY | TL_CONTENT_IAB_CATEGORY | The list of IAB content categories identified by TripleLift creative services |
| BUYER | BUYER_MEMBER | The demand platform (DSP) representing the buyer of the ad opportunity |
| BUYER | BRAND | The brand advertised in the creative |
| BUYER | PARENT_BRAND_NAME | The company that owns the brand; may be the same as brand |
| BUYER | BRAND_DOMAIN | The adomain declared in the bid response, typically the primary website associated with the brand |
| BUYER | DSP_SEAT | Identifier for the demand-side platform seat |
| BUYER | DIRECT_PAYMENT |
Indicates whether TripleLift pays the publisher directly; if true, and TripleLift pays the publisher, Google will invoice the publisher separately for the Open Bidding (OB) fee
|
| DEAL | TRANSACTION_TYPE | Describes the transaction; if Deal is 'Private Marketplace', then ‘PMP’; if Fill Type is 'Ad Server', then ‘Direct Sold’; otherwise, 'Open Exchange' |
| DEAL | DEAL_CODE | Specific code for a deal |
| DEAL | DEAL_NAME | Descriptive name for a deal |
| DEAL | DEAL_TYPE | Describes the type of deal (e.g. Programmatic Guaranteed, PMP, etc.) If blank, indicates Open Exchange transactions |
| CREATIVE | CREATIVE_ASSET_ID | A unique ID for the specific creative asset used in an ad |
| CREATIVE | CREATIVE_CATEGORY | Classification of the ad's content, based on IAB Tech Lab standards |
| CREATIVE | FORMAT | TripleLift ad format name |
| CREATIVE | AD_SOLUTION | TripleLift advertising solution; may include a combination of format, connection type, video placement &/or template |
| CREATIVE | EXTERNAL_CREATIVE_ID | Identifier for the demand-side creative |
| CREATIVE | CREATIVE_DURATION | Measured length of time, expressed in seconds, that a non-static ad creative is intended to be displayed or played to a user, as submitted by the advertiser or creative source |
| CREATIVE | TL_CUE_ID | The unique identifier for a CTV opportunity, representing a clip of content that has been ingested and analyzed by TripleLift creative services |
| CREATIVE | CUE_ELIGIBLE_FORMAT | An array of TripleLift ad formats, eligible to be served at a given Cue |
| METRIC | AD_REQUESTS | The total number of accepted requests made for an ad to be served (fka Impressions) |
| METRIC | RENDERED | The total number of ad requests that resulted in an ad being shown |
| METRIC | RENDER_RATE | Render rate for ad requests that resulted in a won auction (Rendered / Wins) |
| METRIC | FILL_RATE | Percentage of ad requests that resulted in a rendered ad (Rendered / Ad Requests) |
| METRIC | PAYABLE | The total number of ad requests that resulted in a payable event (aka Delivered Impressions) |
| METRIC | REVENUE | Net seller revenue |
| METRIC | RCPM | Revenue per mille (Revenue / Ad Requests) * 1000 |
| METRIC | CLICKS |
The number of times consumers interacted with the ad by clicking
TripleLift captures clicks in reporting based on a couple of key factors: the ad format and the buyer (DSP).
|
| METRIC | CTR | Click-through rate, (Clicks / Rendered) |
| METRIC | CPM | Cost per mille, the net seller revenue per thousand payable events (Revenue / Payable) * 1000 |
| METRIC | CPC | Cost per click, (Revenue / Clicks) |
| METRIC | CPCV | Cost per completed view (Revenue / Video Completions) |
| METRIC | VIDEO_Q1 | Percentage of video plays reaching the first quartile |
| METRIC | VIDEO_Q2 | Percentage of video plays reaching the second quartile (50%) |
| METRIC | VIDEO_Q3 | Percentage of video plays reaching the third quartile |
| METRIC | VIDEO_STARTS | The number of times a video ad began playing |
| METRIC | VSR | Video Start Rate, (Video Starts / Rendered) |
| METRIC | VIDEO_COMPLETIONS | The number of times a video ad played to its end |
| METRIC | VCR | Video Completion Rate, (Video Completions / Video Starts) |
| METRIC | WINS | The total number of ad requests that resulted in a won auction with the publisher (aka downstream wins) |
| METRIC | TL_WINS | The number of ad requests that resulted in a won auction with TripleLift (prior to the publisher auction) |
ctvPublisherNetworkReport Endpoint Summary
- Use the Synchronous endpoints when querying for low volumes of data, with quick response times
- Use the Asynchronous endpoints when querying for larger volumes of data, returned within 5 minutes
Depending on your needs and workflow, use the query endpoints below to request data:
| Query Endpoint Name | Query Endpoint Type | Description |
|---|---|---|
ctvPublisherNetworkReport |
Synchronous | Returns performance reporting for CTV publishers, up to 5,000 rows |
ctvPublisherFilterOptions |
Synchronous | Returns all possible filter IDs and values of a dimension, in a given time period, to be used in your queries |
asyncDownloadCTVPublisherNetworkReport |
Asynchronous | Returns a high volume of data, up to 400MB, within 5 minutes; responds with a pre-signed S3 download link |
asyncDownloadReportStatus |
Asynchronous | Polling endpoint that accepts the pre-signed S3 link from the asyncDownloadCTVPublisherNetworkReport response and returns the status of your report generation (READY, WAITING, or ERROR) |
asyncEmailCTVPublisherNetworkReport |
Asynchronous | Returns a high volume of data within 5 minutes, up to 10MB; delivers the final CSV report to a specified list of valid email addresses |
ctvPublisherNetworkReport Synchronous endpoints
These endpoints are designed to handle queries for low volumes of data and return results with relatively quick response times. When querying for larger volumes of data, use the Asynchronous endpoints.
Pagination
Synchronous endpoint results are paginated to a default page size of 50 rows. The size can optionally be set using the size parameter in a request (the value of which cannot exceed the row limit).
If the number of result rows is greater than the given page size, then the response will also include a nextCursor object, whose value can be passed in as the cursor field of the subsequent request.
When supplying a cursor to receive the next page of data, the user must also resubmit all the other query parameters, in the same order as they were originally passed in.
ctvPublisherNetworkReport
Returns CTV reporting data (e.g. the reporting available TripleLift Direct Reports for CTV).
The ctvPublisherNetworkReport has a row limit of 5,000. Any query exceeding the limit will only return data up to the limit. Use the asynchronous endpoints for larger reports.
ctvPublisherFilterOptions
Returns all possible filter values of a dimension in a given time period.
The returned filter IDs can be used as the filter values when querying the ctvPublisherNetworkReport.
ctvPublisherNetworkReport Asynchronous endpoints
These endpoints are designed to handle queries for high volumes of data and return results within 5 minutes. For quicker response times and low volumes of data, use the Synchronous endpoints.
Results from querying the asynchronous endpoints are in the form of a CSV. Refer to the FAQs for tips on parsing the results.
There are two options to obtain a CSV report asynchronously:
- Submit a request to an asynchronous endpoint and immediately receive a report download link. Poll a second endpoint until your report is ready at that download link.
- Submit a request to an asynchronous endpoint and wait to receive an email containing the report.
Currently, CSV reports larger than 400MB will fail. Please refer to the Querying Guidelines section for tips on managing report size.
asyncDownloadCTVPublisherNetworkReport
This endpoint is used in Option 1, above. This endpoint uses the same parameters as the synchronous ctvPublisherNetworkReport endpoint (without the pagination-related fields cursor and size) and responds with a download link in the form of a pre-signed S3 URL.
The pre-signed S3 URL expires 30 minutes after it is returned.
Example request
query {
asyncDownloadCTVPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-11-15"
endDate: "2024-12-15"
dimensions: [YMD, PUBLISHER_NAME, ORTB_CONTENT_GENRE]
metrics: [AD_REQUESTS, RENDERED, REVENUE, VIDEO_COMPLETIONS]
)
}
Example response
{
"data": {
"asyncDownloadCTVPublisherNetworkReport": "https://triplelift-reporting-api-downloads.s3.amazonaws.com/9629b338-a654-4f95-ac4f-8b9dfafeb3ca/1735843508921/triplelift_report.csv?X-Amz-Security-Token=IQoJb3JpZ2luXNyF2CRFuvpB430YDTbzZLAIgYBV4T2uFp4np4zZ471RwMNeby0c3%2By3sOTtfYmjRr%2FMqxgUI2%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgwyNTU5OTMwMDUwOTEiDAdZ%2FwDCe8O1dvOekSqaBd9AC9BjQXtHukgmdGomyMnnW5qr72B617Xz976w10EfL3KyOyw9KRD5JSJt8Pz8FrRQ23131xlFF35YmH8OSIlvWWkNfGVJMk0vP8fvc7w99T6fgB5yF2KfMVufwH6Y8lQdd0o5%2BSLvG581NstAl7SzSaEuOIqo0j41qRkueVk2QZGX3t2lkkO4Gqmjq51lU3Oaue7Jl6D%2B%2Bag1%2BFOGGIclN%2BFvxE%2FfBVhLzC3R2GgEsIj2UBe5JMUwdubG9xuwCA09sySJecBcOYknyUT%2FuyLEPZ4IvyshDzZtqYJUW8VjnCFGxLKg5PBj6dcw7rRUVHKxv8PfAkOcyonWQv9yEg5NsDhQnxqJ8bwb9no3aL%2Bdr8EBUeAZhhazilmNpOK87sbg%2BaAxI2o4gIpaTYnAEA4hJpFu1FnNOD8pFMMZzURQaB1Rke4omarL93I7spcpWC20r%2F8vAFu7Ahf9JKt20ZKhx65Kpgvqgw5YjmWITw5K4tJjUpvnW234cuBuiFOwUaHovg%2BG9IjDuDZI5WyLCfKKe8gx3glLK6ZNF8h2FD6vUBAD8XJzo31ARDhcdytwke71h%2BlAsGng6A7Umt62mP%2B1yR%2B29Mw0bvngRjJiEk7xz%2FRFZeGkAwDL6lsmnfppzThir3BYyj0WHdpl9TzuD%2Bxy0%2BgKTJ7Amik1qSvJSfu5kHVthjIfQcD%2FOh%2Fmh4cSFP%2F7g7c24nYE1kUL4SuV2DkpbOJhWR4CNm9gloOEcTmNB79YascR%2FeogWaIO9uS9PvHN%2BlCB%2BNNDOIysQfn6h%2Foqd0AtQLp5bHP17FMzAnJk84fPhG4dBOWq56EB5ai1QC6ihsithiuerhstithre31HEadvXaXds9md9%2FPWOEBI2VbzN8Q3eG19yvzDKrdu7BjqxAWas1Pj8UcE%2B2kA42NrTK%2B3H17PnGJG%2FqXD4Rvcx2wC995mJFpJgDLOOkUNRbrp2MHjm3eshQ8F07BuDbq%2BiuI0LNuBHI0qFoK8%2FesX8mBXKURXmGRGsujZDtjNVwHhqRwmgYKjR5HeXbjUgkHfXMEkJPqupeonlfI%2Fb1Om%2B30f0E%2BT46rQxOb%2B4lK9KYFze2XQC%2Bkl19y5WU0RPD23jfqyA53T3M%2B1pNV6U%2FdjKNgdClQ%3D%3D&X-Amz-Algorithm=ABC-123-DFF&X-Amz-Date=20250102T184508Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1799&X-Amz-Credential=ASIIHHEIHTIHLWH%2F20250102%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=14b12cbd349dbbc36acac145778aaaaaaaaaa06f57716b15dba1814"
}
asyncDownloadReportStatus
This is the polling endpoint mentioned in Option 1. It accepts the pre-signed S3 link in the response from asyncDownloadCTVPublisherNetworkReport and returns one of 3 possible status strings:
-
READY- the report is present in the download link -
WAITING- the report is not ready yet -
ERROR- the report request must be resubmitted
Please refer to the GraphQL schema for this endpoint's status refresh rate to help define your poll interval.
asyncEmailCTVPublisherNetworkReport
This endpoint is used in Option 2. It uses the same parameters as the synchronous ctvPublisherNetworkReport endpoint (without the pagination-related fields cursor and size), as well as a list of valid email addresses for the report recipients. The endpoint returns true if the request was successfully received and false if otherwise.
Note that asyncEmailCTVPublisherNetworkReport has an email size limit of 10MB. Any email exceeding the limit will fail to send.
Example request
query {
asyncEmailCTVPublisherNetworkReport(
sellerMemberId: "YOUR_MEMBER_ID"
startDate: "2024-11-15"
endDate: "2024-12-30"
dimensions: [YMD, PUBLISHER_NAME]
metrics: [AD_REQUESTS, REVENUE]
filters: []
emails: ["EMAIL_1", "EMAIL_2"]
)
}
Example response
{
"data": {
"asyncEmailCTVPublisherNetworkReport": true
}
What's next