# index.html.md # NextRoll API Documentation ## Get Started To get started, [check out our guide](guides/get-started.md#guide-get-started). AdRoll ABM (formerly RollWorks) customer? Check out our [API guide for AdRoll ABM customers](guides/get-started-rollworks.md#guide-get-started-rollworks). ## Overview The NextRoll API allows you to build marketing technology solutions that enable you to drive more demand for your customers and create new revenue streams. The NextRoll API is divided into several services, each with its own focus: [CRUD API](crud-api/index.md#crud-api-index) : Provides most of the functionality found in the dashboard. You can manage campaigns, advertisements, pixels and more. [GraphQL Reporting API](graphql-reporting-api/index.md#graphql-reporting-api-index) : Provides access to all reporting data so you can generate your own reports. [Audience API](audience-api/index.md#audience-api-index) : The Audience API allows you to create and update [CRM segments](https://help.adroll.com/hc/en-us/articles/211845528). [User Lists API](user-lists-api/index.md#user-lists-api-index) : The User Lists API allows you to retrieve the size of your audiences. [Prospecting API](prospecting-api/index.md#prospecting-api-index) : Prospecting attracts new audiences. [Geotargeting API](geotargeting-api/index.md#geotargeting-api-index) : Search for geotargeting EIDs that are used when setting geotargets on your campaigns [Site Traffic Revealer](site-traffic-revealer/index.md#site-traffic-revealer-index) : Provides firmographic data about the site visitor. It’s a JavaScript API. [Server-to-Server (S2S) API](server-to-server-api/index.md#s2s-api-index) : Allows you directly send events to complement pixel and MMP events. ## Contents * [Developer Home](https://developers.nextroll.com/) * [CRUD API](crud-api/index.md) * [Overview](crud-api/overview.md) * [Usage](crud-api/api-usage.md) * [Example API calls](crud-api/examples.md) * [API Reference](crud-api/reference.md) * [GraphQL Reporting API](graphql-reporting-api/index.md) * [Overview](graphql-reporting-api/overview.md) * [GraphQL Schema](graphql-reporting-api/schema.md) * [API Reference](graphql-reporting-api/reference.md) * [Examples](graphql-reporting-api/examples.md) * [Migrate from the Reporting API](graphql-reporting-api/reporting-api-migration.md) * [Audience API](audience-api/index.md) * [Overview](audience-api/overview.md) * [Examples](audience-api/examples/index.md) * [API Reference](audience-api/reference.md) * [Prospecting API](prospecting-api/index.md) * [Overview](prospecting-api/overview.md) * [Examples](prospecting-api/examples.md) * [API Reference](prospecting-api/reference.md) * [Automated Campaigns API](automated-campaigns-api/index.md) * [Overview](automated-campaigns-api/overview.md) * [Examples](automated-campaigns-api/examples.md) * [API Reference](automated-campaigns-api/reference.md) * [Universal Campaigns API](universal-campaigns-api/index.md) * [Overview](universal-campaigns-api/overview.md) * [Examples](universal-campaigns-api/examples.md) * [API Reference](universal-campaigns-api/reference.md) * [User Lists API](user-lists-api/index.md) * [Overview](user-lists-api/overview.md) * [Examples](user-lists-api/examples.md) * [API Reference](user-lists-api/reference.md) * [Geotargeting API](geotargeting-api/index.md) * [Overview](geotargeting-api/overview.md) * [Examples](geotargeting-api/examples.md) * [API Reference](geotargeting-api/reference.md) * [Site Traffic Revealer](site-traffic-revealer/index.md) * [Overview](site-traffic-revealer/overview.md) * [Examples](site-traffic-revealer/examples.md) * [Server-to-Server (S2S) API](server-to-server-api/index.md) * [Overview](server-to-server-api/overview.md) * [Events](server-to-server-api/events.md) * [API Reference](server-to-server-api/reference.md) * [Guides](guides/index.md) * [Get Started with the NextRoll API](guides/get-started.md) * [AdRoll ABM API Documentation](guides/get-started-rollworks.md) * [Get to know NextRoll](guides/object-structure.md) * [Get Started with OAuth 2.0](guides/oauth.md) * [Creating Web Ads](guides/create-web-ads.md) * [Creating Audiences](guides/create-audiences.md) * [Setup Product Feeds for Dynamic Creative](guides/product-feed-setup.md) * [Create Your First Prospecting Campaign](guides/create-prospecting-campaign.md) * [Manage External Data Segments](guides/external-segments.md) * [Migrating to API Keys](guides/api-key-migration.md) * [Reporting Platforms Guide](guides/reporting-platforms.md) * [Marketing Platforms Guide](guides/marketing-platforms.md) * [Marketplaces Guide](guides/marketplace-integration.md) * [Publishers Guide](guides/publishers.md) * [Integration guide for E-commerce Platforms](guides/ecommerce-integration.md) * [Access AdRoll ABM Account Metrics](guides/account-metrics.md) * [Manage Target Account Lists](guides/target-account-lists.md) * [Working with AdRoll ABM Playbooks](guides/rollworks-playbooks.md) * [Pixel JavaScript API](guides/pixel-javascript-api.md) * [Developer Site Migration](guides/developer-site-migration.md) * [Manage Product Sets](guides/product-sets.md) * [Share Audiences](guides/audience-sharing.md) * [Frequently Asked Questions](faq.md) * [When does reporting data become available?](faq.md#when-does-reporting-data-become-available) * [How to use display_url_override parameter?](faq.md#how-to-use-display-url-override-parameter) * [How can I tell if an ad has been deleted?](faq.md#how-can-i-tell-if-an-ad-has-been-deleted) * [Is there a limit to the size of GraphQL queries?](faq.md#is-there-a-limit-to-the-size-of-graphql-queries) * [Support](support.md) * [Technical Request](support.md#technical-request) * [Rate limit increase](support.md#rate-limit-increase) ## Indices and tables * [HTTP Routing Table](http-routingtable.md) * [Index](genindex.md) * [Search Page](search.md) # index.html.md # Audience API * [Overview](overview.md) * [Authentication](overview.md#authentication) * [Segment Types](overview.md#segment-types) * [Segment Response](overview.md#segment-response) * [User Record](overview.md#user-record) * [User Record examples](overview.md#user-record-examples) * [Examples](examples/index.md) * [Guides](examples/guides.md) * [Target Account List Examples](examples/tal.md) * [List all Target Account Lists](examples/tal.md#list-all-target-account-lists) * [List all accounts in a Target Account List](examples/tal.md#list-all-accounts-in-a-target-account-list) * [Add new accounts to a Target Account List](examples/tal.md#add-new-accounts-to-a-target-account-list) * [Remove accounts from a Target Account List](examples/tal.md#remove-accounts-from-a-target-account-list) * [API Reference](reference.md) * [Description](reference.md#description) * [Operations by Tag](reference.md#operations-by-tag) * [Target Account Lists](reference.md#target-account-lists) * [Untagged](reference.md#untagged) * [Operations](reference.md#operations) * [Definitions](reference.md#definitions) # index.html.md # Automated Campaigns API #### WARNING The Automated Campaigns API will be retired April 2025. * [Overview](overview.md) * [Authentication](overview.md#authentication) * [Service Walkthrough](overview.md#service-walkthrough) * [Examples](examples.md) * [Create a Strategy](examples.md#create-a-strategy) * [Fetch a Strategy](examples.md#fetch-a-strategy) * [Fetch Campaigns for a Strategy](examples.md#fetch-campaigns-for-a-strategy) * [API Reference](reference.md) * [Description](reference.md#description) * [List of Operations](reference.md#list-of-operations) * [Operations](reference.md#operations) * [Definitions](reference.md#definitions) # index.html.md # CRUD API * [Overview](overview.md) * [Authentication](overview.md#authentication) * [Getting Started](overview.md#getting-started) * [Service Walkthrough](overview.md#service-walkthrough) * [Usage](api-usage.md) * [REST Semantics](api-usage.md#rest-semantics) * [Request Headers](api-usage.md#request-headers) * [Response Values](api-usage.md#response-values) * [Errors](api-usage.md#errors) * [Data Types](api-usage.md#data-types) * [Statuses](api-usage.md#statuses) * [Example API calls](examples.md) * [Get info for your organization (including EID)](examples.md#get-info-for-your-organization-including-eid) * [Create an advertisable](examples.md#create-an-advertisable) * [Get the info for the newly created pixel (created along with the advertisable)](examples.md#get-the-info-for-the-newly-created-pixel-created-along-with-the-advertisable) * [Get the new segment (created by the advertisable)](examples.md#get-the-new-segment-created-by-the-advertisable) * [Create an additional rule to match users against](examples.md#create-an-additional-rule-to-match-users-against) * [Create a conversion rule to match users against](examples.md#create-a-conversion-rule-to-match-users-against) * [Create a new retargeting campaign](examples.md#create-a-new-retargeting-campaign) * [Create a new AdGroup for the campaign](examples.md#create-a-new-adgroup-for-the-campaign) * [Upload an ad](examples.md#upload-an-ad) * [Upload another ad](examples.md#upload-another-ad) * [Attach both image ads to the new AdGroup](examples.md#attach-both-image-ads-to-the-new-adgroup) * [Attach a retargeting segment to the new AdGroup](examples.md#attach-a-retargeting-segment-to-the-new-adgroup) * [Exclude a converted segment from the new AdGroup](examples.md#exclude-a-converted-segment-from-the-new-adgroup) * [Fetch a report for the campaign](examples.md#fetch-a-report-for-the-campaign) * [Create a new run-of-network campaign with DMA geotargets](examples.md#create-a-new-run-of-network-campaign-with-dma-geotargets) * [Enable Dynamic Creative for your Advertisable (Advanced)](examples.md#enable-dynamic-creative-for-your-advertisable-advanced) * [API Reference](reference.md) * [Description](reference.md#description) * [Operations by Tag](reference.md#operations-by-tag) * [Ad](reference.md#ad) * [Adgroup](reference.md#adgroup) * [Advertisable](reference.md#advertisable) * [Advertisable Logo](reference.md#advertisable-logo) * [Campaign](reference.md#campaign) * [Consent Banner](reference.md#consent-banner) * [Contextual Categories](reference.md#contextual-categories) * [Dynamic Configuration](reference.md#dynamic-configuration) * [Dynamic Template](reference.md#dynamic-template) * [Dynamic Template Capability Description](reference.md#dynamic-template-capability-description) * [Feed](reference.md#feed) * [Invoice](reference.md#invoice) * [Marketplace](reference.md#marketplace) * [Marketplace Deals](reference.md#marketplace-deals) * [Organization](reference.md#organization) * [Pixel](reference.md#pixel) * [Policy](reference.md#policy) * [Product Feeds](reference.md#product-feeds) * [Report](reference.md#report) * [Rule](reference.md#rule) * [Segment](reference.md#segment) * [Untagged](reference.md#untagged) * [User](reference.md#user) * [Xdevice Opt In](reference.md#xdevice-opt-in) * [Operations](reference.md#operations) # index.html.md # Geotargeting API * [Overview](overview.md) * [Authentication](overview.md#authentication) * [Examples](examples.md) * [Search for a geotarget](examples.md#search-for-a-geotarget) * [Attach a GeoTarget to an AdGroup](examples.md#attach-a-geotarget-to-an-adgroup) * [API Reference](reference.md) * [Description](reference.md#description) * [List of Operations](reference.md#list-of-operations) * [Operations](reference.md#operations) * [Definitions](reference.md#definitions) # index.html.md # GraphQL Reporting API * [Overview](overview.md) * [What is GraphQL?](overview.md#what-is-graphql) * [Authentication](overview.md#authentication) * [Getting Started](overview.md#getting-started) * [Your First Query](overview.md#your-first-query) * [Error Handling](overview.md#error-handling) * [Error Response Structure](overview.md#error-response-structure) * [Basic Error Handling](overview.md#basic-error-handling) * [Example Error Response](overview.md#example-error-response) * [Error Propagation](overview.md#error-propagation) * [Troubleshooting](overview.md#troubleshooting) * [Best Practices](overview.md#best-practices) * [GraphQL Schema](schema.md) * [Objects](schema.md#objects) * [List](schema.md#list) * [Descriptions](schema.md#descriptions) * [Scalars](schema.md#scalars) * [List](schema.md#id2) * [Descriptions](schema.md#id3) * [API Reference](reference.md) * [Description](reference.md#description) * [List of Operations](reference.md#list-of-operations) * [Operations](reference.md#operations) * [Definitions](reference.md#definitions) * [Examples](examples.md) * [List of Advertisables for your Organization](examples.md#list-of-advertisables-for-your-organization) * [List of Campaigns for an Advertisable](examples.md#list-of-campaigns-for-an-advertisable) * [Delivery and Attribution data for all Campaigns](examples.md#delivery-and-attribution-data-for-all-campaigns) * [Delivery and Attribution data for a Campaign](examples.md#delivery-and-attribution-data-for-a-campaign) * [Delivery and Attribution data for an AdGroup](examples.md#delivery-and-attribution-data-for-an-adgroup) * [Delivery and Attribution data for an Ad](examples.md#delivery-and-attribution-data-for-an-ad) * [Connected TV Campaign Metrics](examples.md#connected-tv-campaign-metrics) * [Granular Conversions for an Advertisable](examples.md#granular-conversions-for-an-advertisable) * [Migrate from the Reporting API](reporting-api-migration.md) * [Helpful tips](reporting-api-migration.md#helpful-tips) * [Replacement GraphQL queries](reporting-api-migration.md#replacement-graphql-queries) * [Metrics by Advertisable](reporting-api-migration.md#metrics-by-advertisable) * [Metrics by Campaign](reporting-api-migration.md#metrics-by-campaign) * [Metrics by AdGroup](reporting-api-migration.md#metrics-by-adgroup) * [Metrics by Ad](reporting-api-migration.md#metrics-by-ad) * [Metrics by Delivery Account](reporting-api-migration.md#metrics-by-delivery-account) * [Granular Conversions](reporting-api-migration.md#granular-conversions) # index.html.md # Guides * [Get Started with the NextRoll API](get-started.md) * [Register as a Developer](get-started.md#register-as-a-developer) * [Base URL](get-started.md#base-url) * [Authentication](get-started.md#authentication) * [OAuth 2.0](get-started.md#oauth-2-0) * [Personal Access Tokens](get-started.md#personal-access-tokens) * [Your First API Call](get-started.md#your-first-api-call) * [Next Steps](get-started.md#next-steps) * [AdRoll ABM API Documentation](get-started-rollworks.md) * [Available APIs](get-started-rollworks.md#available-apis) * [Site Traffic Revealer](get-started-rollworks.md#site-traffic-revealer) * [Reporting API](get-started-rollworks.md#reporting-api) * [Playbooks API](get-started-rollworks.md#playbooks-api) * [Target Account List API](get-started-rollworks.md#target-account-list-api) * [Account Metrics API](get-started-rollworks.md#account-metrics-api) * [Email Contact List API](get-started-rollworks.md#email-contact-list-api) * [Get to know NextRoll](object-structure.md) * [Terminology](object-structure.md#terminology) * [Get Started with OAuth 2.0](oauth.md) * [Endpoints](oauth.md#endpoints) * [Supported Grant Types](oauth.md#supported-grant-types) * [Supported Scopes](oauth.md#supported-scopes) * [Token Lifetime](oauth.md#token-lifetime) * [Making Authenticated Requests](oauth.md#making-authenticated-requests) * [Authorization Request Header](oauth.md#authorization-request-header) * [Form-Encoded Body Parameter](oauth.md#form-encoded-body-parameter) * [URL Query Parameter](oauth.md#url-query-parameter) * [Your First API Call](oauth.md#your-first-api-call) * [Python](oauth.md#python) * [Node.js](oauth.md#node-js) * [Outline for a server to server integration](oauth.md#outline-for-a-server-to-server-integration) * [Creating Web Ads](create-web-ads.md) * [Static Web Ads](create-web-ads.md#static-web-ads) * [Native Ads](create-web-ads.md#native-ads) * [Dynamic Native Ads](create-web-ads.md#dynamic-native-ads) * [Dynamic Web Ads](create-web-ads.md#dynamic-web-ads) * [Upload a Logo](create-web-ads.md#upload-a-logo) * [Create the Dynamic Web Ads](create-web-ads.md#create-the-dynamic-web-ads) * [Retrieve List of Dynamic Web Templates](create-web-ads.md#retrieve-list-of-dynamic-web-templates) * [Retrieve List of Dynamic Web Templates Capabilities](create-web-ads.md#retrieve-list-of-dynamic-web-templates-capabilities) * [Dynamic Web Templates](create-web-ads.md#dynamic-web-templates) * [Classic Spotlight](create-web-ads.md#classic-spotlight) * [Classic carousel](create-web-ads.md#classic-carousel) * [Duotone carousel](create-web-ads.md#duotone-carousel) * [Holiday spotlight](create-web-ads.md#holiday-spotlight) * [Holiday carousel](create-web-ads.md#holiday-carousel) * [Valentine carousel](create-web-ads.md#valentine-carousel) * [Valentine spotlight](create-web-ads.md#valentine-spotlight) * [Fall carousel](create-web-ads.md#fall-carousel) * [Fall spotlight](create-web-ads.md#fall-spotlight) * [Black Friday carousel](create-web-ads.md#black-friday-carousel) * [Cyber Monday carousel](create-web-ads.md#cyber-monday-carousel) * [Holiday Bow carousel](create-web-ads.md#holiday-bow-carousel) * [Holiday Sparkle carousel](create-web-ads.md#holiday-sparkle-carousel) * [Valentine 2018 spotlight](create-web-ads.md#valentine-2018-spotlight) * [Valentine 2018 carousel](create-web-ads.md#valentine-2018-carousel) * [Product Gladiator](create-web-ads.md#product-gladiator) * [Spring Stripes](create-web-ads.md#spring-stripes) * [Summer Polka Dots](create-web-ads.md#summer-polka-dots) * [Summer Beach](create-web-ads.md#summer-beach) * [Creating Audiences](create-audiences.md) * [URL](create-audiences.md#url) * [CRM](create-audiences.md#crm) * [Partner](create-audiences.md#partner) * [External Data](create-audiences.md#external-data) * [Attribute](create-audiences.md#attribute) * [Composite](create-audiences.md#composite) * [CrossChannel Lookalike](create-audiences.md#crosschannel-lookalike) * [Setup Product Feeds for Dynamic Creative](product-feed-setup.md) * [Register product feeds](product-feed-setup.md#register-product-feeds) * [Automatic Setup](product-feed-setup.md#automatic-setup) * [Manual Setup](product-feed-setup.md#manual-setup) * [Add your first feed configuration](product-feed-setup.md#add-your-first-feed-configuration) * [Edit your feed configuration](product-feed-setup.md#edit-your-feed-configuration) * [Add Parser Configurations](product-feed-setup.md#add-parser-configurations) * [Capture product views and actions](product-feed-setup.md#capture-product-views-and-actions) * [Verify product feed set up](product-feed-setup.md#verify-product-feed-set-up) * [Create Your First Prospecting Campaign](create-prospecting-campaign.md) * [Create a campaign](create-prospecting-campaign.md#create-a-campaign) * [Add AdGroups to your campaign](create-prospecting-campaign.md#add-adgroups-to-your-campaign) * [Add an audience to your AdGroups (Optional)](create-prospecting-campaign.md#add-an-audience-to-your-adgroups-optional) * [Add flights to your AdGroups (Optional)](create-prospecting-campaign.md#add-flights-to-your-adgroups-optional) * [Manage External Data Segments](external-segments.md) * [Create the segment](external-segments.md#create-the-segment) * [Retrieve the segment](external-segments.md#retrieve-the-segment) * [Update the segment](external-segments.md#update-the-segment) * [Delete the segment](external-segments.md#delete-the-segment) * [External Data Expressions](external-segments.md#external-data-expressions) * [Migrating to API Keys](api-key-migration.md) * [Background](api-key-migration.md#background) * [Migration Instructions](api-key-migration.md#migration-instructions) * [Reporting Platforms Guide](reporting-platforms.md) * [Get to know the NextRoll API](reporting-platforms.md#get-to-know-the-nextroll-api) * [AdRoll and AdRoll ABM similarities](reporting-platforms.md#adroll-and-adroll-abm-similarities) * [AdRoll ABM differences](reporting-platforms.md#adroll-abm-differences) * [Authentication](reporting-platforms.md#authentication) * [Retrieve Metrics](reporting-platforms.md#retrieve-metrics) * [Advertisables for user](reporting-platforms.md#advertisables-for-user) * [Metrics for Advertisables](reporting-platforms.md#metrics-for-advertisables) * [Metrics for Campaigns](reporting-platforms.md#metrics-for-campaigns) * [AdGroup metrics for a campaign](reporting-platforms.md#adgroup-metrics-for-a-campaign) * [Ad metrics for a campaign](reporting-platforms.md#ad-metrics-for-a-campaign) * [Account metrics for a campaign](reporting-platforms.md#account-metrics-for-a-campaign) * [Optimizing queries](reporting-platforms.md#optimizing-queries) * [Paginate your queries](reporting-platforms.md#paginate-your-queries) * [Reusable queries](reporting-platforms.md#reusable-queries) * [Marketing Platforms Guide](marketing-platforms.md) * [Getting to know the NextRoll API](marketing-platforms.md#getting-to-know-the-nextroll-api) * [Overview](marketing-platforms.md#overview) * [Organization Setup](marketing-platforms.md#organization-setup) * [Onboarding a Customer](marketing-platforms.md#onboarding-a-customer) * [Creating an Advertisable](marketing-platforms.md#creating-an-advertisable) * [Pixel Setup](marketing-platforms.md#pixel-setup) * [Enhanced Conversion Tracking](marketing-platforms.md#enhanced-conversion-tracking) * [Cross-Device Targeting](marketing-platforms.md#cross-device-targeting) * [Create Ads](marketing-platforms.md#create-ads) * [Define Audiences](marketing-platforms.md#define-audiences) * [Launching a Campaign](marketing-platforms.md#launching-a-campaign) * [Campaign Management](marketing-platforms.md#campaign-management) * [Pausing the Campaign](marketing-platforms.md#pausing-the-campaign) * [Resuming the Campaign](marketing-platforms.md#resuming-the-campaign) * [Generating Reports](marketing-platforms.md#generating-reports) * [Offboarding a Customer](marketing-platforms.md#offboarding-a-customer) * [Marketplaces Guide](marketplace-integration.md) * [Getting to know the NextRoll API](marketplace-integration.md#getting-to-know-the-nextroll-api) * [Definition Of Terms](marketplace-integration.md#definition-of-terms) * [Overview](marketplace-integration.md#overview) * [Organization Setup](marketplace-integration.md#organization-setup) * [Pixel Setup](marketplace-integration.md#pixel-setup) * [Marketplace Mapping](marketplace-integration.md#marketplace-mapping) * [Enhanced Conversion Tracking](marketplace-integration.md#enhanced-conversion-tracking) * [Cross-Device Targeting](marketplace-integration.md#cross-device-targeting) * [Onboarding a Merchant](marketplace-integration.md#onboarding-a-merchant) * [Creating an Account](marketplace-integration.md#creating-an-account) * [Configure Marketplace Mapping](marketplace-integration.md#configure-marketplace-mapping) * [Adding a Product Feed](marketplace-integration.md#adding-a-product-feed) * [Create Ads](marketplace-integration.md#create-ads) * [Defining Audiences](marketplace-integration.md#defining-audiences) * [Launching a Campaign](marketplace-integration.md#launching-a-campaign) * [Campaign Management](marketplace-integration.md#campaign-management) * [Pause the Campaign](marketplace-integration.md#pause-the-campaign) * [Resume the Campaign](marketplace-integration.md#resume-the-campaign) * [Generate Reports](marketplace-integration.md#generate-reports) * [Offboarding a Merchant](marketplace-integration.md#offboarding-a-merchant) * [Variations](marketplace-integration.md#variations) * [Website per Merchant](marketplace-integration.md#website-per-merchant) * [Publishers Guide](publishers.md) * [Getting to know the NextRoll API](publishers.md#getting-to-know-the-nextroll-api) * [Overview](publishers.md#overview) * [Organization Setup](publishers.md#organization-setup) * [Pixel Setup](publishers.md#pixel-setup) * [Enhanced Conversion Tracking](publishers.md#enhanced-conversion-tracking) * [Cross-Device Targeting](publishers.md#cross-device-targeting) * [Onboarding a Customer](publishers.md#onboarding-a-customer) * [Define Audiences](publishers.md#define-audiences) * [Creating an Advertisable](publishers.md#creating-an-advertisable) * [Create Ads](publishers.md#create-ads) * [Launching a Campaign](publishers.md#launching-a-campaign) * [Campaign Management](publishers.md#campaign-management) * [Pause the Campaign](publishers.md#pause-the-campaign) * [Resume the Campaign](publishers.md#resume-the-campaign) * [Generate Reports](publishers.md#generate-reports) * [Offboarding a Customer](publishers.md#offboarding-a-customer) * [Integration guide for E-commerce Platforms](ecommerce-integration.md) * [Get to know the NextRoll API](ecommerce-integration.md#get-to-know-the-nextroll-api) * [Overview](ecommerce-integration.md#overview) * [Connect using OAuth](ecommerce-integration.md#connect-using-oauth) * [Retrieve the Pixel](ecommerce-integration.md#retrieve-the-pixel) * [Place the Pixel](ecommerce-integration.md#place-the-pixel) * [Enhanced Conversion Tracking](ecommerce-integration.md#enhanced-conversion-tracking) * [Cross Device Targeting](ecommerce-integration.md#cross-device-targeting) * [Link to Onboarding Flow](ecommerce-integration.md#link-to-onboarding-flow) * [Conclusion](ecommerce-integration.md#conclusion) * [Access AdRoll ABM Account Metrics](account-metrics.md) * [Get to know the NextRoll API](account-metrics.md#get-to-know-the-nextroll-api) * [Authentication](account-metrics.md#authentication) * [Retrieve account metrics](account-metrics.md#retrieve-account-metrics) * [Manage Target Account Lists](target-account-lists.md) * [Get to know Target Account Lists](target-account-lists.md#get-to-know-target-account-lists) * [Retrieve all Target Account Lists](target-account-lists.md#retrieve-all-target-account-lists) * [Retrieve the Accounts in a Target Account List](target-account-lists.md#retrieve-the-accounts-in-a-target-account-list) * [Add an Account to a Target Account List](target-account-lists.md#add-an-account-to-a-target-account-list) * [Remove an Account from a Target Account List](target-account-lists.md#remove-an-account-from-a-target-account-list) * [Working with AdRoll ABM Playbooks](rollworks-playbooks.md) * [Playbook reporting](rollworks-playbooks.md#playbook-reporting) * [Retrieve Playbook objects](rollworks-playbooks.md#retrieve-playbook-objects) * [Pixel JavaScript API](pixel-javascript-api.md) * [Overview](pixel-javascript-api.md#overview) * [Prerequisites](pixel-javascript-api.md#prerequisites) * [Tracking Events](pixel-javascript-api.md#tracking-events) * [Basic Event Tracking](pixel-javascript-api.md#basic-event-tracking) * [Event with Product Data](pixel-javascript-api.md#event-with-product-data) * [Supported Events](pixel-javascript-api.md#supported-events) * [B2C Events](pixel-javascript-api.md#b2c-events) * [B2B/ABM Events](pixel-javascript-api.md#b2b-abm-events) * [Event Attributes](pixel-javascript-api.md#event-attributes) * [Example: E-commerce Tracking](pixel-javascript-api.md#example-e-commerce-tracking) * [Product Page View](pixel-javascript-api.md#product-page-view) * [Add to Cart](pixel-javascript-api.md#add-to-cart) * [Purchase Conversion](pixel-javascript-api.md#purchase-conversion) * [Retrieving the First-Party Cookie](pixel-javascript-api.md#retrieving-the-first-party-cookie) * [Best Practices](pixel-javascript-api.md#best-practices) * [Use Supported Event Names](pixel-javascript-api.md#use-supported-event-names) * [Product IDs](pixel-javascript-api.md#product-ids) * [Test Your Implementation](pixel-javascript-api.md#test-your-implementation) * [Related Resources](pixel-javascript-api.md#related-resources) * [Developer Site Migration](developer-site-migration.md) * [How to access your existing applications](developer-site-migration.md#how-to-access-your-existing-applications) * [Common questions](developer-site-migration.md#common-questions) * [I don’t know which email address my application belongs to](developer-site-migration.md#i-dont-know-which-email-address-my-application-belongs-to) * [What should I do if I no longer have access to the email that owns my application?](developer-site-migration.md#what-should-i-do-if-i-no-longer-have-access-to-the-email-that-owns-my-application) * [I’ve got a question that isn’t answered here](developer-site-migration.md#ive-got-a-question-that-isnt-answered-here) * [Manage Product Sets](product-sets.md) * [Product Sets](product-sets.md#product-sets) * [Create a Product Set](product-sets.md#create-a-product-set) * [Edit a Product Set](product-sets.md#edit-a-product-set) * [List Product Sets for an Advertisable](product-sets.md#list-product-sets-for-an-advertisable) * [Get a Product Set](product-sets.md#get-a-product-set) * [Delete a Product Set](product-sets.md#delete-a-product-set) * [Use Product Sets with Web Retargeting campaigns](product-sets.md#use-product-sets-with-web-retargeting-campaigns) * [Attach Product Sets to an AdGroup](product-sets.md#attach-product-sets-to-an-adgroup) * [Edit an AdGroup with a Product Set attached](product-sets.md#edit-an-adgroup-with-a-product-set-attached) * [Remove a Product Set from an AdGroup](product-sets.md#remove-a-product-set-from-an-adgroup) * [Share Audiences](audience-sharing.md) * [Create a share invitation](audience-sharing.md#create-a-share-invitation) * [Fetch share invitations](audience-sharing.md#fetch-share-invitations) * [Accept a share invitation](audience-sharing.md#accept-a-share-invitation) * [Attach a shared audience to a campaign](audience-sharing.md#attach-a-shared-audience-to-a-campaign) * [Revoke a shared audience](audience-sharing.md#revoke-a-shared-audience) # index.html.md # Prospecting API * [Overview](overview.md) * [Authentication](overview.md#authentication) * [Getting Started](overview.md#getting-started) * [Service Walkthrough](overview.md#service-walkthrough) * [Examples](examples.md) * [API Reference](reference.md) * [Description](reference.md#description) * [Operations by Tag](reference.md#operations-by-tag) * [Adgroups](reference.md#adgroups) * [Advertisables](reference.md#advertisables) * [Audiences](reference.md#audiences) * [Campaigns](reference.md#campaigns) * [Flights](reference.md#flights) * [Untagged](reference.md#untagged) * [Operations](reference.md#operations) # index.html.md # Server-to-Server (S2S) API #### NOTE The S2S event API is under active development. Although the API is generally stable, it may change. Event processing is not yet fully complete. [Send us a message](../support.md#support) if you have questions. * [Overview](overview.md) * [Introduction](overview.md#introduction) * [Data flow](overview.md#data-flow) * [User identifiers](overview.md#user-identifiers) * [Click ID (`adct`)](overview.md#click-id-adct) * [First-Party Cookie](overview.md#first-party-cookie) * [Fetch first-party cookie](overview.md#fetch-first-party-cookie) * [Generate a first-party cookie](overview.md#generate-a-first-party-cookie) * [Mobile device ID](overview.md#mobile-device-id) * [Email](overview.md#email) * [Custom user ID](overview.md#custom-user-id) * [Events](events.md) * [Event format](events.md#event-format) * [Required Fields](events.md#required-fields) * [Optional Fields](events.md#optional-fields) * [Specifying products](events.md#specifying-products) * [Mobile app URLs](events.md#mobile-app-urls) * [Event types](events.md#event-types) * [B2C event types](events.md#b2c-event-types) * [Page view event](events.md#page-view-event) * [Home view event](events.md#home-view-event) * [Product search event](events.md#product-search-event) * [Add to cart event](events.md#add-to-cart-event) * [Purchase event](events.md#purchase-event) * [B2B/ABM event types](events.md#b2b-abm-event-types) * [High-value page event](events.md#high-value-page-event) * [Gated content event](events.md#gated-content-event) * [Demo request event](events.md#demo-request-event) * [Signup plan event](events.md#signup-plan-event) * [Signup trial event](events.md#signup-trial-event) * [Contact sales event](events.md#contact-sales-event) * [Live chat event](events.md#live-chat-event) * [Form fill event](events.md#form-fill-event) * [API Reference](reference.md) * [API endpoint](reference.md#api-endpoint) * [Authentication](reference.md#authentication) * [Request Body](reference.md#request-body) # index.html.md # Site Traffic Revealer * [Overview](overview.md) * [Setup](overview.md#setup) * [Examples](examples.md) * [Get Visitor Attributes](examples.md#get-visitor-attributes) * [Data Dictionary](examples.md#data-dictionary) # index.html.md # Universal Campaigns API #### WARNING The Universal Campaigns API will be retired April 2025. * [Overview](overview.md) * [Authentication](overview.md#authentication) * [Service Walkthrough](overview.md#service-walkthrough) * [Migration from Automated Campaigns API](overview.md#migration-from-automated-campaigns-api) * [Examples](examples.md) * [Create a Universal Campaign](examples.md#create-a-universal-campaign) * [Create a Universal AdGroup](examples.md#create-a-universal-adgroup) * [Fetch a Universal Campaign](examples.md#fetch-a-universal-campaign) * [API Reference](reference.md) * [Description](reference.md#description) * [List of Operations](reference.md#list-of-operations) * [Operations](reference.md#operations) * [Definitions](reference.md#definitions) # index.html.md # User Lists API * [Overview](overview.md) * [Authentication](overview.md#authentication) * [Examples](examples.md) * [Retrieve the size of a segment](examples.md#retrieve-the-size-of-a-segment) * [API Reference](reference.md) * [Description](reference.md#description) * [List of Operations](reference.md#list-of-operations) * [Operations](reference.md#operations) * [Definitions](reference.md#definitions) # index.html.md # Audience API Examples * [Guides](guides.md) * [Target Account List Examples](tal.md) * [List all Target Account Lists](tal.md#list-all-target-account-lists) * [List all accounts in a Target Account List](tal.md#list-all-accounts-in-a-target-account-list) * [Add new accounts to a Target Account List](tal.md#add-new-accounts-to-a-target-account-list) * [Remove accounts from a Target Account List](tal.md#remove-accounts-from-a-target-account-list) # account-metrics.html.md # Access AdRoll ABM Account Metrics You can access AdRoll ABM account metrics using the GraphQL Reporting API. Metrics are available per account for a list of campaigns in an advertisable. You can specify any date range as long as it doesn’t exceed thirty days. If you need more than thirty days of data, you can make multiple queries and iterate on the date range. ## Get to know the NextRoll API Before you start building your integration, it helps to have a basic understanding of the NextRoll API. [Get Started with the NextRoll API](get-started.md#guide-get-started) will help you make your first API call. [Get to know NextRoll](object-structure.md#guides-object-structure) provides an overview of the object structure and defines common terminology. ## Authentication Use [OAuth 2.0](oauth.md#guide-oauth) to gain access to a user’s account. Our OAuth 2.0 implementation is compatible with standard libraries. You should be able to plug-in our token and authorization URLs into your favorite library. See also: - [Get Started with OAuth 2.0](oauth.md#guide-oauth) ## Retrieve account metrics To retrieve account metrics, you’ll need to use the [GraphQL Reporting API](../graphql-reporting-api/overview.md#graphql-reporting-api-overview). When querying the data, you’ll need to specify: - Advertisable EID - One or more campaign EIDs - Start and end date - Metrics that you want to retrieve. See [`FieldAccountMetrics`](../graphql-reporting-api/schema.md#FieldAccountMetrics) for the complete list. The response contains metrics for up to 1,000 accounts, ordered alphabetically by domain. The response contains account metrics aggregated for all campaigns specified and the entire date range. If you want fine-grained reporting, you’ll need to query for a single campaign EID and day at a time. #### NOTE You can experiment with building queries using [GraphiQL](https://app.adroll.com/reporting/graphiql) The following is an example GraphQL query that shows account metrics for your campaigns: ```graphql { accountMetrics { summary(start: "yyyy-mm-dd", end: "yyyy-mm-dd", advertisableEID: "YOUR_ADVERTISABLE_EID", campaignEIDs: ["YOUR_CAMPAIGN_EID1", "YOUR_CAMPAIGN_EID2", "YOUR_CAMPAIGN_EID3"]) { domain cost impressions clicks adjustedClickThroughs adjustedViewThroughs pageViews uniqueVisitors } } } ``` If you’re unfamiliar with how to make a GraphQL query using HTTP. See [Your First Query](../graphql-reporting-api/overview.md#your-first-graphql-query) for an example of how to package a query into an HTTP API call. # api-key-migration.html.md # Migrating to API Keys We now require all NextRoll API developers to register applications and use an API key for all requests. This guide explains why we’ve migrated and how to get your application started. Don’t care about the background story? Jump straight to the [Migration Instructions](#api-key-migration-instructions). ## Background We’ve re-launched the developer program with the goal to improve communication and support for our API. Here’s what we’ve released: - A new developer site with application registration: [developers.nextroll.com](https://developers.nextroll.com/) - A new subdomain for API calls that enforces API keys and rate limiting: `services.adroll.com` The new developer site allows you to register as a developer. Once registered, you can create one or more applications, each with their own API key. By registering as a developer and creating applications, we’ll be able to better understand how developers are using the NextRoll API. It will be easier to see how changes will impact developers and allow us to keep you informed of changes. We offer two tiers of API access: Basic and Partner. Most developers will select the Basic tier when creating their applications. This gives access to all API features, with a daily limit of 10,000 API calls. When you register for Basic access, you’ll be able to make API calls right away. If you select Partner access, your application will need to be approved before you can make API calls. As we roll out API quotas, we may need to fine-tune the default limit. If you’re concerned about usage, [send us a message](../support.md#support). Looking to the future, we plan to roll out support for OAuth 2.0 so that you don’t need to deal with passwords when making API calls. We’ll also be writing guides and tutorials to help you get started and make maximum use out of our APIs. ## Migration Instructions Ready to migrate? Here’s what you need to do: 1. [Create a developer account](https://developers.nextroll.com/accounts/create) 2. [Create an application](https://developers.nextroll.com/my-apps/new-app) 3. Change all calls from `api.adroll.com` or `app.adroll.com` to `services.adroll.com` 4. Include your new API key in every request via the `apikey` query parameter #### NOTE The [CRUD API](../crud-api/index.md#crud-api-index) basepath, `/api`, was optional for calls to `api.adroll.com`. This meant that calls to `api.adroll.com/v1/` were equivalent to `api.adroll.com/api/v1/`. When you migrate, you’ll need to use the `/api` basepath. For example: `api.adroll.com/v1/` calls become `services.adroll.com/api/v1/`. #### NOTE Once you’ve registered your application, you’ll see both a consumer key and secret. We currently do not use the secret. You’ll only use the consumer key when making API calls. Now you can make an API call: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/organization/get?apikey=MYAPIKEY ``` # api-usage.html.md # CRUD API Usage ## REST Semantics The CRUD API is RESTful. The API is made up of a number of services, and each service has operations such as create, get, edit, and deactivate/delete. The reference page is the source of truth for each endpoint’s exact HTTP method, but the common mappings are: | Verb | Function | |---------------------------------------------------------------------------------------------------------------------------------|-------------------| | [POST](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.3) | create | | [GET](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.1) | get | | [PUT](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.4) or
[POST](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.3) | edit | | [DELETE](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.5) | deactivate/delete | When using `PUT` or `POST`, parameters can be passed in the body of the request or in the URL query. To pass parameters in the body of the request, use either *application/x-www-form-urlencoded* or *multipart/form-data* MIME types. For `PUT` and `POST` requests you can also place parameters in the URL query: ```default POST https://services.adroll.com/api/v1/ad/create?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID&name=My+Ad PUT https://services.adroll.com/api/v1/ad/edit?apikey=MYAPIKEY&ad=XJCACTZQ2RHKRHU34YPFXQ&name=My+Ad ``` ## Request Headers Please set the HTTP [Accept](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) header to ‘application/json’. ## Response Values When all is peachy, you’ll get a 200 OK HTTP response code and JSON with a `results` field that contains the function’s return value. ```default GET https://services.adroll.com/api/v1/ad/get?apikey=MYAPIKEY&ad=XJCACTZQ2RHKRHU34YPFXQ ``` ```default //Server says 200 OK //JSON Response { 'results': { 'ad': 'XJCACTZQ2RHKRHU34YPFXQ', ... } } ``` ## Errors In the event of an error, the API will return an appropriate HTTP response code and an `errors` field in place of the `results` field. The API’s HTTP response codes are unsurprising: | HTTP Response Code | What Happened | |----------------------|-----------------------------------| | 200 | Good to go | | 400 | Validation error or missing input | | 401/403 | You do not have access | | 404 | We couldn’t find the object | | 405 | HTTP method not allowed | | 500 | You broke our service | The response’s `errors` field will be a list of error objects. Each error object will have a `message` field and either a `code` field or a `field` field. Occasionally, an error object will have both a `code` field and a `field` field, but this is rare. Field errors are returned in response to an error with one of the input fields, and errors without a `field` field are more generic errors. In the case of a 405 response code, the allowed HTTP methods are listed as a comma-separated list in the `Allow` header of the response. Let’s see what a grand failure looks like. What if we wanted to create an ad but didn’t specify any parameters except for an uploaded text file? We would have validation (field) errors and errors with a code field. ```default POST https://services.adroll.com/api/v1/ad/create?apikey=MYAPIKEY ``` ```default //Server says 400 Bad Request //JSON Response { 'errors': [{ message: 'No Advertisable found', field: 'name', code: 16 },{ message: 'Please enter a name for your ad', field: 'name' },{ message: 'Please enter a destination url', field: 'destination_url' },{ message: 'File is an invalid image', field: 'ad_file', code: 1 }] } ``` The code field is an enum with the following values: | code value | What it means | |--------------|-----------------| | 1 | INVALID | | 2 | MISMATCH | | 4 | NO_DEFAULT | | 8 | FAIL | | 16 | NOT_FOUND | | 32 | UNSET | | 64 | INCOMPLETE | | 128 | EXTERNAL | | 256 | DUPLICATE | | 512 | FORBIDDEN | ### Data Types Throughout this documentation, we will be referring to a number of data types. | Data Type | Description | Example | |-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| | String | A string | “My cat’s breath smells like cat food.” | | Integer | An integer | 42 | | Float | A real number | 123.127 | | Boolean | true or false | true | | List | As input this means a comma-separated list of values in string form. This is often a list of object (e.g. Campaign) EIDs. As output from a service’s method, List will mean a JSON list. | WPCWFT43KVFN3JKKZD2EYO,JXZWV4IW4RDALBFJIE3UPL | | Binary | A binary stream, like a file. | 1010100101011110101010101010010 | | DateTime | A date string in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format, with or without the time. | 2009-03-23 19:00 | ## Statuses Campaign and ad objects have a `status` attribute. These statuses may have different meanings depending on the type of object. In addition, campaign and ad objects have an `is_active` attribute, which indicates whether or not the object has been deleted, and is independent of the object’s `status` attribute. **Campaign Statuses** | Status | Description | |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `approved` | The campaign has been approved by an admin and submitted to the appropriate network(s). | | `paused` | The campaign has been paused by a user or an admin, and is not serving any ads. | | `admin_review` | The campaign is undergoing review by an admin and has not been approved or rejected yet. | | `completed` | The campaign’s end date has elapsed and the campaign is no longer eligible to serve ads. | | `draft` | The campaign is in draft state and has not yet been launched. | | `admin_paused` | The campaign has been suspended by the review team, sometimes due to conflicts with creative requirements. See [Creative Requirements](https://help.adroll.com/hc/en-us/articles/214806408-Ad-Content-and-Format-Guidelines) for details on creative requirements. | | `cancelled` | The campaign has been cancelled by an admin. | | `rejected` | The campaign is not compliant with site policy or requirements. See [Website Content](https://help.adroll.com/hc/en-us/articles/213099348-Website-Content) for details on site policy and requirements. | **Ad Statuses** | Status | Description | |----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `approved` | The ad has been approved by an admin. If it is included as active in any currently running adgroups, it is serving impressions in those adgroups. An “approved” ad can be marked as “paused” in a specific adgroup, in which case, it will not serve impressions in that adgroup. | | `paused` | The ad has been paused by a user or an admin. If it is included in any adgroups, it is not serving impressions in those adgroups. | | `admin_review` | The ad is undergoing review from an admin. If it is included in any adgroups, it will not serve impressions in those adgroups until it is approved. | | `admin_paused` | The ad has been paused by an admin. If it is included in any adgroups, it is not serving impressions in those adgroups. This is sometimes due to conflicts with creative requirements. See [Creative Requirements](https://help.adroll.com/hc/en-us/articles/214806408-Ad-Content-and-Format-Guidelines) for details on creative requirements. | | `kicked` | The ad has been rejected by a network or removed by a user or an admin. If it is included in any adgroups, it is not serving impressions in those adgroups. | # audience-sharing.html.md # Share Audiences #### NOTE Audience Sharing is an upcoming feature and isn’t available to everyone Audience Sharing enables you to share an Audience you’ve created with another NextRoll customer. Once shared, you can attach the shared audience to Web Retargeting campaigns. For another Advertisable to use a shared segment, there are a few steps: 1. [Create a share invitation](#guide-audience-sharing-create) 2. [Fetch share invitations](#guide-audience-sharing-fetch) 3. [Accept a share invitation](#guide-audience-sharing-accept) 4. [Attach a shared audience to a campaign](#guide-audience-sharing-attach) If you have seconds thoughts about sharing segments, you can [revoke the shared audience](#guide-audience-sharing-revoke). Currently, only the following segment types can be shared: - URL (`url`) - External data (`arbitrary_data`) - Pages viewed (`pages_viewed`) ## Create a share invitation The first step in sharing an audience is to send a share invitation. This is done by making a request to [`POST /audience/v1/sharing/invitation`](../audience-api/reference.md#post--audience-v1-sharing-invitation). You’ll need to specify the segment EID you want to share and the Advertisable EID that you want to send the invitation. This request needs to be done using the credentials of the Advertisable that owns the segment. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --request POST \ 'https://services.adroll.com/audience/v1/sharing/invitation?apikey=MYAPIKEY&advertisable_eid=TARGET_ADV_EID&segment_eid=SEGMENT_EID' ``` ```json { "eid": "1DE62679ADA5EEA4EEE6B2", "source_segment_eid": "01C8D357DCE0384FB23B7F", "created_at": "2021-01-19T15:36:28.052968+00:00", "is_active": true, "source_user_eid": "A2B5747D084B7072BEFDF9", "updated_at": "2021-01-19T15:36:28.051623+00:00", "accepted": false, "segment_source": "adroll", "target_advertisable_eid": "6E1140DFF2B8FA0AC6EEAF", "source_advertisable_eid": "EA1704974734327A383B01" } ``` ## Fetch share invitations You can view the list of outstanding share invitations you’ve been sent by calling [`GET /audience/v1/sharing/invitation`](../audience-api/reference.md#get--audience-v1-sharing-invitation) and specifying the Advertisable EID that received the request. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ 'https://services.adroll.com/audience/v1/sharing/invitation?apikey=MYAPIKEY&target_advertisable_eid=TARGET_ADV_EID' ``` ```json [ { "eid": "1DE62679ADA5EEA4EEE6B2", "source_segment_eid": "01C8D357DCE0384FB23B7F", "created_at": "2021-01-19T15:36:28.052968+00:00", "is_active": true, "source_user_eid": "A2B5747D084B7072BEFDF9", "updated_at": "2021-01-19T15:36:28.051623+00:00", "accepted": false, "segment_source": "adroll", "target_advertisable_eid": "6E1140DFF2B8FA0AC6EEAF", "source_advertisable_eid": "EA1704974734327A383B01" } ] ``` ## Accept a share invitation After you’ve created a sharing invitation, the receiving Advertisable needs to accept the invitation. This is done using the [`POST /audience/v1/sharing/segment`](../audience-api/reference.md#post--audience-v1-sharing-segment) endpoint. This request needs to be done using the credentials of the receiving Advertisable. Once accepted, a new segment of type `mirror` can be found in the receiving Advertisable when retrieving a list of segments owned by that Advertisable. You’ll also see the new segment when browsing the dashboard. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --request POST \ 'https://services.adroll.com/audience/v1/sharing/segment?apikey=MYAPIKEY&invitation_eid=YOUR_INVITATION_EID' ``` ```json { "abm_tags": null, "advertiser_id": "D5A1ED3325E61E27C9FF07", "conversion_value": null, "created_date": 1610998568758, "currency_code": null, "duration": 90, "is_active": true, "is_conversion": false, "is_lead": false, "lead_type": null, "name": "Visitors to Unsegmented Pages", "product": null, "segment_id": "F71A58D5EAD767722199DA", "source": "slargma", "source_segment": { "advertiser_id": "03865DAF43940F1D726995", "conversion_value": null, "created_date": 1414594022000, "duration": 90, "int_id": 601911, "is_active": true, "is_conversion": false, "name": "Visitors to Unsegmented Pages", "parent_segment_eid": "7B4B0BA630B4B903E9AF09", "pattern": "", "product": null, "segment_id": "585F5A39D83FC5353F16FC", "source": "adroll", "tags": "p", "type": "url", "url_match_id": "all_prodo" }, "source_segment_eid": "585F5A39D83FC5353F16FC", "tags": "s", "type": "mirror" } ``` ## Attach a shared audience to a campaign Once you’ve accepted the share invitation, the segment is available when retrieving the list of segments for the Advertisable. You can attach it to Web Retargeting campaigns just like any other segment. ## Revoke a shared audience If you no longer wish to share a segment, you can call the [`DELETE /audience/v1/sharing/invitation`](../audience-api/reference.md#delete--audience-v1-sharing-invitation) endpoint. Once revoked, you’ll see that the is_active field is now false. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --request DELETE \ 'https://services.adroll.com/audience/v1/sharing/invitation?apikey=MYAPIKEY&invitation_eid=YOUR_INVITATION_EID' ``` ```json { "eid": "8DE426B5BB2EDFB9210895", "created_at": "2021-01-19T15:36:28.052968+00:00", "accepted": true, "is_active": false, "updated_at": "2021-01-19T17:49:53.447559+00:00", "source_segment_eid": "048234E69DE8DA46FB9E61", "segment_source": "adroll", "target_advertisable_eid": "E5BA939587DA06A7FD846D", "source_user_eid": "J7UHJLT7MVFIFK2STSXHVT", "source_advertisable_eid": "DEB21215BEEC304325CB50" } ``` # create-audiences.html.md # Creating Audiences > ##### Audience Types > > * [URL](#url) > * [CRM](#crm) > * [Partner](#partner) > * [External Data](#external-data) > * [Attribute](#attribute) > * [Composite](#composite) > * [CrossChannel Lookalike](#crosschannel-lookalike) ## URL Type: `url` To create a URL Audience, you’ll need to create a rule on the Pixel. To create a rule on a Pixel, you call [`POST /api/v1/rule/create`](../crud-api/reference.md#post--api-v1-rule-create) with the following parameters: `pixel` : Pixel EID to create the rule on. You can retrieve the Pixel EID by calling [`GET /api/v1/advertisable/get_pixel`](../crud-api/reference.md#get--api-v1-advertisable-get_pixel). `type` : The type of the rule being created. You can’t change this later. One of:
- `c` — Conversion - `b` — Visited their cart - `l` — Viewed a list of products - `u` — Viewed a single product - `s` — Segment. Use this if a one of the previous doesn’t fit your situation `match_method` : Set to `url_match` when creating a URL Audience `pattern` : Pattern expression that matches your URL. You can specify [wildcards](https://help.adroll.com/hc/en-us/articles/215785058) in the pattern. Max length of 255. `name` : Name for this rule. This must be unique within each Pixel. Max 128 characters. Alphanumeric with `-`, `_`, `(`, `)`, `[`, `]`, `<`, `>`. `display_name` (Optional) : Display name for reporting. Names cannot contain `<`, `>`, `'`, or `"`. Max 128 characters. `order` : Priority order in which this rule needs to be applied among the others. Must be unique in the Pixel. The lower the number, the higher the priority. Highest priority is `0`. For example, to create an audience of people who have visited a cart page: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -F pixel=MY_PIXEL_EID \ -F type=b \ -F match_method=url_match \ -F pattern='*/cart/' \ -F name=shopping_cart \ -F order=3 \ https://services.adroll.com/api/v1/rule/create?apikey=MYAPIKEY ``` ## CRM Type: `crm` Target your users by email address by creating a CRM Audience. To create a CRM Audience, call [`POST /audience/v1/segments`](../audience-api/reference.md#post--audience-v1-segments) with the following body: ```json { "advertiser_id": "MY_ADVERTISALE_EID", "name": "Newsletter subscribers", "type": "crm", "data": [ { "email": "test1@example.com" }, { "email": "test2@example.com" } ] } ``` Emails need to be either: - [RFC 5322](http://tools.ietf.org/html/rfc5322#section-3.4) emails, e.g. `test1@example.com` - MD5 hashes of [RFC 5322](http://tools.ietf.org/html/rfc5322#section-3.4) emails, e.g. `aa99b351245441b8ca95d54a52d2998c` (MD5 hash of “[test1@example.com](mailto:test1@example.com)”) You can optionally specify a timestamp, `ts`, to indicate when a user entered a Audience (the default timestamp is *now*). Timestamps can be up to 540 days old or up to 7 days in the future. Timestamps are specified as seconds since epoch. ## Partner Type: `custom` Target people using your custom user identifiers. These identifiers must have been previously matched to cookies using a cookie-match. To create a Partner Audience, call [`POST /audience/v1/segments`](../audience-api/reference.md#post--audience-v1-segments) with the following body: ```json { "advertiser_id": "MY_ADVERTISABLE_EID", "name": "Downloaded whitepaper", "type": "custom", "duration": 30, "data": [ { "id": "MY_USER_ID_1" }, { "id": "MY_USER_ID_2" } ] } ``` The `duration` parameter, controls the number of days that a user will remain in the defined segment. After that period, the identifiers in the segment should be refreshed in order to repopulate the segment with up-to-date profiles. We recommend a duration of 90 days. Longer durations expose the same ads to the same audience for an extended period of time and can lead to ad fatigue. You can optionally specify a timestamp, `ts`, to indicate when a user entered a segment (the default timestamp is *now*). Timestamps can be up to 540 days old or up to 7 days in the future. Timestamps are specified as seconds since epoch. There are not limits on the number of identifiers that can be added to a segment. However, our APIs limits the size of the body request up to 20MB. If you require to append identifiers to an existing segment you should call [`POST /audience/v1/segments/(segment_id)`](../audience-api/reference.md#post--audience-v1-segments-(segment_id)) with the following body: ```json { "name": "Downloaded whitepaper", "type": "custom", "data": [ { "id": "MY_USER_ID_3" }, { "id": "MY_USER_ID_4" } ] } ``` ## External Data Type: `arbitrary_data` See [Manage External Data Segments](external-segments.md#guide-external-segments). ## Attribute Type: `user_attributes` Attribute Audiences target users based on data from third party sources. #### NOTE Access to Attribute Audiences is not available to everyone. Contact your Account Manager if you’re interested in Attribute Audiences. To create an Attribute Audience, you specify one or more attributes. You can retrieve a list of available attribute names and values for your Advertisable by calling [`GET /audience/v1/user_attribute_names/(advertisable_eid)`](../audience-api/reference.md#get--audience-v1-user_attribute_names-(advertisable_eid)). `type` : Set to `user_attributes` to create an Attribute Audience `attributes` : Array of attributes that define the Audience `use_first_party_data` (Optional) : If `true`, use first-party data sources. Defaults to `true`. `use_third_party_data` (Optional) : If `true`, use third-party data sources. Defaults to `true`. Each object in the `attributes` array consists of: `name` : Name of the attribute `values` : Array of target values for the named attribute. Case sensitive. `comparator` : Operator to use when comparing a user to an attribute value. Possible values include:
- `in` — Attribute matches any value in the list - `not_in` — Attribute does not match any value in the list #### NOTE If `values` is `null` then `comparator` must also be `null` and that means that membership to the audience is defined as the *existence* of `name`. For example, to create an Attribute Audience that targets managers at `example.com`, call [`POST /audience/v1/segments`](../audience-api/reference.md#post--audience-v1-segments) with the following body: ```json { "advertiser_id": "MY_ADVERTISABLE_EID", "name": "Management at example.com", "type": "user_attributes", "attributes": [ { "name" : "ccm_seniority", "values" : ["Management"], "comparator" : "in", }, { "name" : "domain", "values" : ["example.com"], "comparator" : "in", } ] } ``` ## Composite Type: `composite` Composite Audiences apply a set union relationship between two or more Audiences. A composite audience can narrow down Audiences to a more precise target audience. E.g. usage can be all audiences who viewed pages at least 5 times and are interested in snowboarding. To create a Composite Audience, call [`POST /audience/v1/segments`](../audience-api/reference.md#post--audience-v1-segments) with the following body: ```json { "advertiser_id": "MY_ADVERTISABLE_EID", "name": "Managers at example.com who have downloaded a whitepaper", "type": "composite", "duration": 30, "components": [ "MY_SEGMENT_EID_1", "MY_SEGMENT_EID_2" ] } ``` `components` is a list of two or more audiences specified by their Segment EID. All components must be valid existing audiences and must not be another composite audience. You cannot have multiple Attribute Audiences in a Composite Audience. ## CrossChannel Lookalike Type: `crosschannel_lal` CrossChannel Lookalike Audiences gives you the ability to run campaigns seamlessly across inventory sources (Web Prospecting campaigns). To create a CrossChannel Lookalike audience, call [`POST /audience/v1/segments`](../audience-api/reference.md#post--audience-v1-segments) with the following body: ```json { "advertiser_id": "MY_ADVERTISABLE_EID", "name": "Test CrossChannel Lookalike audience", "type": "crosschannel_lal", "source_segment_eid": "SOURCESEGMENT_EID", "duration": 30, "size": 6, "countries": [ { "country_code": "CL", "include": "True" } ], "allow_international_seeds": "True" } ``` `countries` (Optional) : List of countries to target the audience. The actual limit is just 1 country. `source_segment_eid` : Source segment eid to created the audience. The current restrictions for the source segment are:
- The source segment must be of type CRM, pages viewed or arbitrary data. - The source segment size must be of at least 100 total visitors. `size` : A choice between broadness and narrowness on a 1-10 scale. `allow_international_seeds` : Boolean indicating if allow or not international seeds. # create-prospecting-campaign.html.md # Create Your First Prospecting Campaign #### NOTE In this page we will use `0000000ADVERTISABLEEID` as an example of an advertisable EID. You should use an advertisable from your organization as ownership privileges are enforced. ## Create a campaign The first step is creating your campaign. This is done by making a request to [`POST /prospecting/api/v2/advertisables/(adv)/campaigns`](../prospecting-api/reference.md#post--prospecting-api-v2-advertisables-(adv)-campaigns): ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{"name":"Example Campaign","weekly_budget":"30","currency_code":"USD"}' \ https://services.adroll.com/prospecting/api/v2/advertisables/0000000ADVERTISABLEEID/campaigns?apikey=MYAPIKEY ``` ```javascript { "results": { "status": "active", "created_at": "2017-02-13T15:32:57+00:00", "advertisable": "0000000ADVERTISABLEEID", "name": "Example Campaign", "end_date": null, "kpi_goal": null, "weekly_budget": 30, "is_active": true, "updated_at": "2017-02-13T15:32:57+00:00", "frequency_cap": null, "source": "49er", "admin_status": "active", "eid": "0000000CAMPAIGNEID", "adgroups": [], "kpi_metric": null, "start_date": "2017-02-13T15:32:57+00:00", "currency_code": "USD" } } ``` ## Add AdGroups to your campaign Now you’ll need to create the desired AdGroups for your campaign. This is done by making a request to [`POST /prospecting/api/v2/campaigns/(campaign)/adgroups`](../prospecting-api/reference.md#post--prospecting-api-v2-campaigns-(campaign)-adgroups): ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{"name":"Example AdGroup","auto_audience":"true","auto_geo_targets":"true","ads":[{"ad":"0000000ADEID","is_active":"true","status":"active"}]}' \ https://services.adroll.com/prospecting/api/v2/campaigns/0000000CAMPAIGNEID/adgroups?apikey=MYAPIKEY ``` ```javascript { "results": { "status": "active", "campaign": "0000000CAMPAIGNEID", "is_active": true, "updated_at": "2017-02-13T15:42:28+00:00", "auto_audience": true, "ads": [ { "status": "active", "ad_eid": "0000000ADEID", "is_active": true, "eid": "0000000PROSPECTINGADEID" } ], "created_at": "2017-02-13T15:42:28+00:00", "name": "Example AdGroup", "audience": null, "eid": "0000000ADGROUPEID", "auto_geo_targets": false, "geo_targets": [ { "eid": "XSTN6R5HH5FJ5MAS5W8GEO", "operation": "include" } ] } } ``` #### NOTE You must always send `auto_geo_targets` as `false` here, and send a list of `geo_targets` that can be queried using the [Geotargeting API](../geotargeting-api/examples.md#geotargeting-examples). ## Add an audience to your AdGroups (Optional) In the previous step, notice how we set `auto_audience` to `true` in the request to create the AdGroup. This means that an audience of potential new customers will be created automatically for that AdGroup. However, if you wish to specify a particular audience for an existing AdGroup, you can do that by making a request to [`POST /prospecting/api/v2/adgroups/(adgroup)/audience`](../prospecting-api/reference.md#post--prospecting-api-v2-adgroups-(adgroup)-audience): ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{"source_segment_eid":"0000000SOURCESEGMENTEID","size":200000}' \ https://services.adroll.com/prospecting/api/v2/adgroups/0000000ADGROUPEID/audience?apikey=MYAPIKEY ``` ```javascript { "results": { "eid": "0000000AUDIENCEEID" "adgroup_eid": "0000000ADGROUPEID", "target_segment_eid": "0000000TARGETSEGMENTEID", "source_segment_eid": "0000000SOURCESEGMENTEID", "size": 200000, "created_at": "2017-02-13T16:25:37+00:00", "updated_at": "2017-02-13T16:25:37+00:00", } } ``` ## Add flights to your AdGroups (Optional) Once your AdGroups are set, your campaign is ready to serve. By default, all AdGroups will serve their ads during the same period of time determined by the campaign’s start and end date. However, you can specify time periods during which an individual AdGroup should serve by creating flights. This is done by making a request to [`POST /prospecting/api/v2/adgroups/(adgroup)/flights`](../prospecting-api/reference.md#post--prospecting-api-v2-adgroups-(adgroup)-flights): ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{"start_date":"2017-02-15T00:00:00+00:00","end_date":"2017-02-20T00:00:00+00:00"}' \ https://services.adroll.com/prospecting/api/v2/adgroups/0000000ADGROUPEID/flights?apikey=MYAPIKEY ``` ```javascript { "results": { "adgroup": "0000000ADGROUPEID", "end_date": "2017-02-20T00:00:00+00:00", "created_at": "2017-02-13T16:25:37+00:00", "updated_at": "2017-02-13T16:25:37+00:00", "eid": "0000000FLIGHTEID", "start_date": "2017-02-15T00:00:00+00:00" } } ``` # create-web-ads.html.md # Creating Web Ads ## Static Web Ads To create a static web ad, you need to specify: - Advertisable EID to add the advertisement to - Destination URL where to send the user when the ad is clicked - Image file to upload **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -F advertisable=8597013E81481B0FE28772 \ -F name="Test Ad 300x250" \ -F destination_url=https://developers.nextroll.com \ -F file=@300x250.png \ https://services.adroll.com/api/v1/ad/create?apikey=MYAPIKEY ``` **Response**: ```javascript { "results": { "eid": "2A842B75A34EF695A5AA9D", "name": "Test Ad 300x250", // ... } } ``` ## Native Ads To create Native Ads, you’ll need to specify `type=native` and `inventory_type=iab` when calling [`POST /api/v1/ad/create`](../crud-api/reference.md#post--api-v1-ad-create). For the list of supported image sizes, please refer to the [Ad Format Guidelines](https://help.adroll.com/hc/en-us/articles/214806408-Ad-Format-Guidelines). **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -F advertisable=8597013E81481B0FE28772 \ -F type=native \ -F inventory_type=iab \ -F name="Test Native Ad" \ -F body="This is the description" \ -F destination_url=https://www.example.com/ \ -F file=@600x500.png \ 'https://services.adroll.com/api/v1/ad/create?apikey=MYAPIKEY' ``` **Response**: ```javascript { "results": { "eid": "EABF2CB2DEED8B777E8306", "name": "Test Native Ad", "type": "native", // ... } } ``` ## Dynamic Native Ads To create Dynamic Native Ads, you’ll need to specify several parameters: `advertisable` : Advertisable EID to create the native ad in `name` : Name of the ad when shown in the dashboard and in reports `type` : Always `native` `inventory_type` : Always `iab` `is_liquid` : Always `true` `format` : Always `33` (600x315) `headline` : Called *Title* in the dashboard. When rendered, the value may be truncated after 25 characters. `message` : Called *Description* in the dashboard. When rendered, the value may be truncated after 125 characters. `brand_name` : Called *Brand Name* in the dashboard. When rendered, the value may be truncated after 30 characters. `destination_url` : Fallback destination URL. When the ad is rendered, the product’s URL will be used. `file` : Fallback image. When the ad is rendered, the product’s image will be used. Pass a base64-encoded string or use the *multipart/form-data* content-type. The `headline`, `message`, and `brand_name` parameters support the following macros that pull values from your product feed. These macros must be mapped to fields in the product feed to be useable. `%%title%%` : Title of the product `%%description%%` : Description of the product `%%price%%` : Price of the product `%%brand%%` : Brand name of the product **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -F advertisable=8597013E81481B0FE28772 \ -F type=native \ -F inventory_type=iab \ -F is_liquid=true \ -F name="Test Dynamic Native Ad" \ -F headline="%%title%%" \ -F message="%%description%%" \ -F brand_name="%%brand%%" \ -F destination_url=https://www.example.com/ \ -F file=@600x315.png \ 'https://services.adroll.com/api/v1/ad/create?apikey=MYAPIKEY' ``` **Response**: ```javascript { "results": { "eid": "EABF2CB2DEED8B777E8306", "name": "Test Native Ad", "type": "native", // ... } } ``` ## Dynamic Web Ads To create [Dynamic Web Ads](https://www.adroll.com/platform/dynamic-ads), you first need to ensure you’ve uploaded a logo for your Advertisable. ### Upload a Logo You can upload a logo for an advertisable by calling [`/api/v1/advertisable_logo/create`](../crud-api/reference.md#post--api-v1-advertisable_logo-create). You only need to do this once or if you want to change the logo. The endpoint expects the logo to be passed as a base64-encoded data. Here’s an example of base64-encoding an image on the command line using Python: ```shell python -m base64 < 320x50.png > 320x50.png.txt ``` **Request**: This example uses the `name@filename` syntax for the `--data-urlencode` cURL parameter which will URL-encode the contents of the file before sending it. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -d advertisable=8597013E81481B0FE28772 \ --data-urlencode logo_file@320x50.png.txt \ https://services.adroll.com/api/v1/advertisable_logo/create?apikey=MYAPIKEY ``` **Response**: ```javascript { "results": { "id": 1234, "advertisable_id": 1234, "s3_logo_path": "https://s.adroll.com/logos/8597013E81481B0FE28772/CS5ETCEWB5GQRHCJ3ANOG5", "width": 200, "height": 31 } } ``` ### Create the Dynamic Web Ads You create a set of Dynamic Web Ads by calling [`/api/v1/ad/create_templated_web_ads`](../crud-api/reference.md#post--api-v1-ad-create_templated_web_ads). When calling the method, you need to specify the ID of the template you’d like to use. The table below provides the IDs and examples. The endpoint returns a list of ads created, which you can then add to your campaigns. | Template ID | Theme name | |---------------|-------------------------------------------------------------------| | 0 | [Classic spotlight](#dc-theme-spotlight) | | 1 | [Classic carousel](#dc-classic-carousel) | | 2 | [Duotone carousel](#dc-duotone-carousel) | | 3 | [Holiday spotlight](#dc-holiday-spotlight) | | 4 | [Holiday carousel](#dc-holiday-carousel) | | 10 | [Valentine spotlight](#dc-valentines-spotlight) | | 13 | [Valentine carousel](#dc-valentines-carousel) | | 21 | [Fall carousel](#dc-fall-spotlight) | | 22 | [Fall spotlight](#dc-fall-carousel) | | 28 | [Black Friday carousel](#dc-black-friday-carousel) | | 29 | [Cyber Monday carousel](#dc-cyber-monday-carousel) | | 33 | [Holiday Bow carousel](#dc-holiday-bow-spotlight) | | 36 | [Holiday Sparkle carousel](#dc-holiday-sparkle-carousel) | | 45 | [Valentine 2018 spotlight](#dc-holiday-valentines-2018-spotlight) | | 47 | [Valentine 2018 carousel](#dc-holiday-valentines-2018-carousel) | | 64 | [Product Gladiator](#dc-product-gladiator) | | 72 | [Spring Stripes](#dc-spring-stripes) | | 80 | [Summer Polka Dots](#dc-summer-polka-dots) | | 83 | [Summer Beach](#dc-summer-beach) | **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -d advertisable=8597013E81481B0FE28772 \ -d name='test' \ -d theme_color='#FFFFFF' \ -d text_cta='Shop Now' \ -d dynamic_template_id=1 \ https://services.adroll.com/api/v1/ad/create_templated_web_ads?apikey=MYAPIKEY ``` **Response**: ```javascript { "results": [ { "eid": "05995D19B6B19DD08AAF00", "name": "Dynamic_728x90_3/3/2017_1_test", // ... } ] } ``` ### Retrieve List of Dynamic Web Templates Call [`GET /api/v1/dynamic_template/get_all_for_advertisable`](../crud-api/reference.md#get--api-v1-dynamic_template-get_all_for_advertisable) to retrieve the list of available templates. To create ads, use the value of the `id` field from the template as the `dynamic_tempalte_id` parameter in [`POST /api/v1/ad/create_templated_web_ads`](../crud-api/reference.md#post--api-v1-ad-create_templated_web_ads). See [Create the Dynamic Web Ads](#dc-create-ads) for more on creating ads. The response includes a list of capabilities. You can use the `capabilities` list to decide what fields to prompt the user for. For example, if you see the `salePrice` capability, then you’ll know you can use the `sale_price_option` field when calling [`POST /api/v1/ad/create_templated_web_ads`](../crud-api/reference.md#post--api-v1-ad-create_templated_web_ads). Note that capabilities are optional. **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ 'https://services.adroll.com/api/v1/dynamic_template/get_all_for_advertisable?advertisable=8597013E81481B0FE28772&apikey=MYAPIKEY' ``` **Response**: ```javascript { "results": [ { "id": 33, "eid": "6SJ2LVKKLZHNFCBGRZLPXA", "category": null, "in_testing": false, "is_private": false, "is_published": true, "is_visible": true, "name": "Holiday Bow NEW!", "capabilities": [ { "id": 2, "eid": "RJTMLC5L4ZDVFJSGV3EMOJ", "name": "salePrice", "description": "Sale price", "is_enabled": true, "type": null } ], "allowed_advertisables": [] } ] } ``` ### Retrieve List of Dynamic Web Templates Capabilities Call [`GET /api/v1/dynamic_template_capability_description/get_all`](../crud-api/reference.md#get--api-v1-dynamic_template_capability_description-get_all) to query the full list of capabilities that might appear in templates. **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ 'https://services.adroll.com/api/v1/dynamic_template_capability_description/get_all?apikey=MYAPIKEY' ``` **Response**: ```javascript { "results": [{ "id": 1, "eid": "CHU4RLZSVJCVNG6ZELX2RM", "name": "promoText", "description": "Promo text", "is_enabled": true, "type": null }, { "id": 2, "eid": "RJTMLC5L4ZDVFJSGV3EMOJ", "name": "salePrice", "description": "Sale price", "is_enabled": true, "type": null }] } ``` ### Dynamic Web Templates #### Classic Spotlight ![image](guides/img/dc-classic-spotlight.gif) #### Classic carousel ![image](guides/img/dc-classic-carousel.gif) #### Duotone carousel ![image](guides/img/dc-duotone-carousel.gif) #### Holiday spotlight ![image](guides/img/dc-holiday-spotlight.gif) #### Holiday carousel ![image](guides/img/dc-holiday-carousel.gif) #### Valentine carousel ![image](guides/img/dc-valentines-spotlight.gif) #### Valentine spotlight ![image](guides/img/dc-valentines-carousel.gif) #### Fall carousel ![image](guides/img/dc-fall-spotlight.gif) #### Fall spotlight ![image](guides/img/dc-fall-carousel.gif) #### Black Friday carousel ![image](guides/img/dc-black-friday-carousel.gif) #### Cyber Monday carousel ![image](guides/img/dc-cyber-monday-carousel.gif) #### Holiday Bow carousel ![image](guides/img/dc-holiday-bow-spotlight.gif) #### Holiday Sparkle carousel ![image](guides/img/dc-holiday-sparkle-carousel.gif) #### Valentine 2018 spotlight ![image](guides/img/dc-valentines-2018-spotlight.gif) #### Valentine 2018 carousel ![image](guides/img/dc-valentines-2018-carousel.gif) #### Product Gladiator ![image](guides/img/dc-product-gladiator.gif) #### Spring Stripes ![image](guides/img/dc-spring-stripes.gif) #### Summer Polka Dots ![image](guides/img/dc-summer-polka-dots.gif) #### Summer Beach ![image](guides/img/dc-summer-beach.gif) # developer-site-migration.html.md # Developer Site Migration At the end of August 2020, we’re launching a redesign of the NextRoll developer portal, [developers.nextroll.com](https://developers.nextroll.com/). To continue managing your existing applications, you’ll need to re-register using the same email address you created your application with. ## How to access your existing applications To regain access to your existing applications, follow these simple steps: 1. Visit the developer portal to [register an account](https://developers.nextroll.com/accounts/create). #### NOTE Make sure to use the same email address you used before to regain access to your existing applications 2. Click the activation link in the validation email sent to you 3. [Sign into the developer portal](https://developers.nextroll.com/login) and [find your applications](https://developers.nextroll.com/my-apps) ## Common questions ### I don’t know which email address my application belongs to You can [send us a message](../support.md#support) with your API key and we can help you identify the owning email address. We also sent a notification email to every registered email address. ### What should I do if I no longer have access to the email that owns my application? The simplest method would be to simply create a new account and application. If that doesn’t work for you, you can [contact us](../support.md#support). ### I’ve got a question that isn’t answered here You can [create a support ticket](../support.md#support) making sure to specify *API Issue* in the Issue drop-down. # ecommerce-integration.html.md # Integration guide for E-commerce Platforms This guide is intended for e-commerce platforms that are interested in automating the setup for their users. In this guide, you’ll learn how to use the NextRoll API to access your store owner’s account and place their Pixel. Properly placing the Pixel can be a hurdle for users and must be done properly to ensure optimal performance. High performing campaigns means more revenue for your platform. ## Get to know the NextRoll API Before you start building your integration, it helps to have a basic understanding of the NextRoll API: [Get Started with the NextRoll API](get-started.md#guide-get-started) will help you make your first API call. [Get to know NextRoll](object-structure.md#guides-object-structure) provides an overview of the object structure and defines common terminology. ## Overview For every store that wants to set up, you’ll need to do the following steps: 1. [Connect using OAuth](#guides-ecommerce-oauth) 2. [Retrieve the Pixel](#guides-ecommerce-get-pixel) 3. [Place the Pixel](#guides-ecommerce-place-pixel) 4. [Link to Onboarding Flow](#guides-ecommerce-buy-flow) If the user wants to disconnect the integration from their store, you can simplify remove the Pixel from their website. ## Connect using OAuth The NextRoll API uses OAuth 2.0 to allow users to grant you access to their accounts. Our OAuth 2.0 implementation works with most OAuth 2.0 libraries. We recommend using the Authorization Code Grant. For the technical details see [Get Started with OAuth 2.0](oauth.md#guide-oauth). ## Retrieve the Pixel The Pixel is a JavaScript snippet that you place on every page of the store’s website. To retrieve a Pixel: 1. Call [`GET /api/v1/organization/get_advertisables`](../crud-api/reference.md#get--api-v1-organization-get_advertisables) to retrieve the list of Advertisables (there should be only one at this point). You’ll need the value of the `eid` field for the next step 2. Call [`GET /api/v1/advertisable/get_pixel`](../crud-api/reference.md#get--api-v1-advertisable-get_pixel) and specify the `advertisable` parameter. The `code` field of the returned JSON object will contain the HTML to embed on the user’s website. The HTML snippet consists of a ` ``` In addition to sending this data via the Pixel, users will need to set up a conversion segment for the page that this code is rendered on. You should tell the user which URLs to set up as conversion segments when you [Link to Onboarding Flow](#guides-ecommerce-buy-flow). See also: [Setting Up Enhanced Conversion Tracking](https://help.adroll.com/hc/en-us/articles/212629938-Setting-Up-Enhanced-Conversion-Tracking). ### Cross Device Targeting **Optional** We can recognize visitors across devices. When you provide a cross-device ID to us, ads will display on other devices that your visitors use. To enable cross-device targeting, set `adroll_email`, `adroll_user_identifier`, or both when calling the Pixel. The value of `adroll_email` is the plaintext or MD5 hashed email address for the user (if you have one). The value of `adroll_user_identifier` is your custom identifier for the user (if you have one). For example: ```html ``` ## Link to Onboarding Flow Once you’ve configured the user’s store, you can deep-link the user to the dashboard onboarding flow. The onboarding flow will walk the user through completing setup and launch campaigns. Here’s the link you should use: ```text https://app.adroll.com/activate/getting-started/ ``` In addition to linking the user, you should also provide to the user the conversion URL so that they can set up the conversion segment. This URL should be the same page that you render the [Enhanced Conversion Tracking](#guides-ecommerce-track-conversions) on. ## Conclusion That’s all that’s needed for a basic setup. This gets users over the first hurdle of Pixel placement that is often done wrong when placed manually. A deeper integration would automatically setup conversion Audiences and product feed of their store items. If that sounds interesting to you, [send us a note](https://www.adroll.com/partners/technology) about partnering. # events.html.md # Server-to-Server (S2S) API Events #### NOTE The S2S event API is under active development. Although the API is generally stable, it may change. Event processing is not yet fully complete. [Send us a message](../support.md#support) if you have questions. ## Event format Below is an event’s JSON structure. You can send more than one event per request, but please limit it to no more than one hundred events. For additional properties and examples, please review the following event-specific sections. ```json [{ "advertisable_eid": "", "pixel_eid": "", "event_name": "", "event_attributes": "", "external_data": "", "ip": "", "user_agent": "", "conversion_value": "", "currency": "", "page_location": "", "device_os": "", "device_type": "", "package_app_name": "", "package_app_version": "", "timestamp": "", "identifiers": { "adct": "", "email": "", "email_sha256": "", "email_md5": "", "device_id": "", "first_party_cookie": "", "user_id": "" } }] ``` ### Required Fields `advertisable_eid` : The unique identifier for your AdRoll advertisable. `pixel_eid` : The pixel identifier associated with your AdRoll advertisable. `event_name` : Event type. One of the following:
- `pageView`: See [Page view event](#s2s-api-event-pageview). - `homeView`: See [Home view event](#s2s-api-event-homeview). - `productSearch`: See [Product search event](#s2s-api-event-productsearch). - `addToCart`: See [Add to cart event](#s2s-api-event-addtocart). - `purchase`: See [Purchase event](#s2s-api-event-purchase). - `highValuePage`: See [High-value page event](#s2s-api-event-highvaluepage). - `gatedContent`: See [Gated content event](#s2s-api-event-gatedcontent). - `demoRequest`: See [Demo request event](#s2s-api-event-demorequest). - `signupPlan`: See [Signup plan event](#s2s-api-event-signupplan). - `signupTrial`: See [Signup trial event](#s2s-api-event-signuptrial). - `contactSales`: See [Contact sales event](#s2s-api-event-contactsales). - `liveChat`: See [Live chat event](#s2s-api-event-livechat). - `formFill`: See [Form fill event](#s2s-api-event-formfill). `page_location` : The full URL where the event occurred. When using a mobile app, you should build a “fake” URL using the format mentioned in [Mobile app URLs](#s2s-api-mobile-app-urls). `ip` : IPv4 or IPv6 user address. `identifiers` : You must provide at least one of `first_party_cookie` or `adct`. Additional identifiers are recommended.
- `adct`: Ad Click Token parameter retrieved after an ad click. See [Click ID (adct)](overview.md#s2s-api-id-click). - `email`: Email address in clear text. See [Email](overview.md#s2s-api-id-email). - `email_sha256`: Email address hashed using SHA-256. See [Email](overview.md#s2s-api-id-email). - `email_md5`: Email address hashed using MD5. See [Email](overview.md#s2s-api-id-email). - `device_id`: mobile device ID. See [Mobile device ID](overview.md#s2s-api-id-mobile). - `first_party_cookie`: First-party cookie retrieved from AdRoll pixel or generated. See [First-Party Cookie](overview.md#s2s-api-id-fpc). - `user_id`: Custom user ID. See [Custom user ID](overview.md#s2s-api-id-custom). ### Optional Fields `event_attributes` : See the [Event types](#s2s-api-event-types) for the format of this field. `user_agent` : Optional for requests originating from a mobile app. When the journey begins on the web, capture and send the browser’s user agent. `conversion_value` : Monetary value of the event (e.g., purchase amount). `currency` : The currency of the `conversion_value` (e.g., `USD`). Supports three-letter ISO 4217 currency codes. `timestamp` : UTC timestamp in seconds of when the event should be considered to have taken place. The current time will be used if omitted. You can use a decimal point if you want to specify milliseconds. `device_os` : The operating system of the user’s device for mobile events. `device_type` : The user’s device type for mobile events. `package_app_name` : Your application’s package name for mobile events. `package_app_version` : Your application’s package version for mobile events. `external_data` : JSON string containing any additional event data that is useful to your application. ### Specifying products Most events let you specify a list of products relevant to the event. Each product can contain the following fields: `product_id` : The ID of the product on your site `product_group` : The group or department of the product on your site `price` : The price of the product added. The currency must match what is specified in the event-level `currency` field. `quantity` : Quantity of this product added to cart or purchased `category` : Other categorization for product on your site ### Mobile app URLs When sending mobile app events, you can create a fake URL for the `page_location` field. This allows you to use URL audiences for campaign targeting. This URL should simulate a web-like structure using key app-related fields. Start with a domain you manage (the domain doesn’t need to be reachable), and append query parameters derived from the mobile app data. Include the following optional event fields: - `device_os` - `device_type` - `package_app_name` - `package_app_version` For example, a valid mobile app URL could look like this: ```default https://app.example.com?device_os=iOS&device_type=phone&package_app_name=com.example.TradingApp&package_app_version=14.1.3 ``` ## Event types The following sections describe the purpose and format for supported events. Please let us know if you need additional events to better represent your needs. ## B2C event types ### Page view event Event name: `pageView` This event means a user has viewed a page on your website or app. It serves as the default event type when a more specific event (such as “add to cart” or “purchase”) isn’t available. Tracking page views provides insights into user behavior, popular content, and overall engagement. #### NOTE If the AdRoll pixel is already installed on a page, do not send an S2S `pageView` event for that same page. Sending both can lead to double counting in traffic metrics. Required attributes: - None Optional attributes: `event_attributes.products` : An array of products shown on the page. See [Specifying products](#s2s-api-specify-products). Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "pageView", "event_attributes": { "products": [ { "product_id": "ABCDEF-12345", "product_group": "womens-fashion", "quantity": 1, "price": "56.78", "category": "top-sellers" } ] } } ``` ### Home view event Event name: `homeView` This event means a user has viewed the homepage of your website or app. It indicates an initial entry point or a return to the main landing page, providing insight into user engagement at the most general level. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "homeView" } ``` ### Product search event Event name: `productSearch` This event means a user has searched for products on your website or app. It indicates active engagement and a potential interest in making a purchase. Required attributes: - None Optional attributes: `event_attributes.keywords` : Search terms entered by the user `event_attributes.products` : An array of products returned as results. See [Specifying products](#s2s-api-specify-products). Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "productSearch", "event_attributes": { "keywords": "shoes", "products": [ { "product_id": "ABCDEF-12345", "product_group": "womens-fashion", "price": "56.78", "category": "top-sellers" }, { "product_id": "GHIJKL-67890", "product_group": "womens-fashion", "price": "61.23", "category": "new-items" }, { "product_id": "MNOPQR-98765", "product_group": "womens-fashion", "price": "57.89" }, { "product_id": "STUVWX-43210", "product_group": "womens-fashion", "price": "63.45", "category": "new-items" } ] } } ``` ### Add to cart event Event name: `addToCart` This event means a user has added a product to their shopping cart. Required attributes: - None Optional attributes: `currency` : Currency of the conversion value `event_attributes.products` : An array of products added to the cart. See [Specifying products](#s2s-api-specify-products). Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "addToCart", "currency": "USD", "event_attributes": { "products": [ { "product_id": "ABCDEF-12345", "product_group": "womens-fashion", "quantity": 2, "price": "56.78", "category": "top-sellers" }, { "product_id": "UVWXYZ-98765", "product_group": "electronics", "quantity": 1, "price": "123.45", "category": "new-items" } ] } } ``` ### Purchase event Event name: `purchase` This event means a user has completed a purchase. Required attributes: - None Optional attributes: `conversion_value` : The total conversion value of this purchase `currency` : Currency of the conversion value `event_attributes.order_id` : ID of the order on your site `event_attributes.products` : An array of purchased products. See [Specifying products](#s2s-api-specify-products). `external_data` : JSON string containing for any additional conversion data that is useful to your needs. It’s value is available in Granular Conversion Reports. Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "purchase", "conversion_value": "113.56", "currency": "USD", "event_attributes": { "order_id": "ABCDEFGH-1234-5678-9012-IJKLMNOPQRST", "products": [ { "product_id": "ABCDEF-12345", "product_group": "womens-fashion", "quantity": 2, "price": "56.78", "category": "top-sellers" } ] }, "external_data": "{\"foo\": \"bar\"}" } ``` ## B2B/ABM event types ### High-value page event Event name: `highValuePage` This event signifies a user has visited a page deemed to be of high value. This could be a pricing page, a key feature page, or any other page that indicates strong user interest or intent. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "highValuePage" } ``` ### Gated content event Event name: `gatedContent` This event indicates a user has accessed gated content, such as a whitepaper, ebook, or exclusive article, typically after providing their information (e.g., email address). Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "gatedContent" } ``` ### Demo request event Event name: `demoRequest` This event means a user has requested a product demonstration. This is a strong indicator of interest and a high-intent action. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "demoRequest" } ``` ### Signup plan event Event name: `signupPlan` This event signifies a user has completed a signup process for a specific plan or subscription. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "signupPlan" } ``` ### Signup trial event Event name: `signupTrial` This event indicates a user has signed up for a free trial of your product or service. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "signupTrial" } ``` ### Contact sales event Event name: `contactSales` This event means a user has initiated contact with your sales team, typically through a form submission or a direct click-to-call/email. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "contactSales" } ``` ### Live chat event Event name: `liveChat` This event signifies a user has engaged in a live chat session. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "liveChat" } ``` ### Form fill event Event name: `formFill` This event indicates a user has completed a form, excluding those covered by more specific events like demo requests or contact sales. Required attributes: - None Optional attributes: - None Below is an example event: ```json { "advertisable_eid": "", "pixel_eid": "", "page_location": "", "ip": "", "identifiers": { "first_party_cookie": "" }, "event_name": "formFill" } ``` # examples.html.md # Automated Campaigns API Examples #### WARNING The Automated Campaigns API will be retired April 2025. #### NOTE In this documentation page we will use `MY_ADVERTISABLE_EID` as an example of an Advertisable EID. To try the calls, use an Advertisable from your organization as ownership privileges are enforced. > ##### Examples on this page > > * [Create a Strategy](#create-a-strategy) > * [Fetch a Strategy](#fetch-a-strategy) > * [Fetch Campaigns for a Strategy](#fetch-campaigns-for-a-strategy) ## Create a Strategy Create a strategy with a set of campaigns under one goal and one budget. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{ "budget": 1000, "currency": "USD", "kpi_goal": 2.00, "kpi_metric": "CPC", "products": "web" }' \ "https://services.adroll.com/activate/api/v1/strategy?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID" ``` ```shell { "data": [ { "advertisable_eid": "MY_ADVERTISABLE_EID", "budget": 1000.0, "created_at": "2017-03-13T23:08:33.198960", "currency": "USD", "end_date": null, "start_date": "2017-03-13T23:08:33.184906", "status": "live", "strategy_eid": "0000000STRATEGYEID8VOL" } ], "message": "", "status": 200 } ``` ## Fetch a Strategy Fetch strategy data ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/activate/api/v1/strategy?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID&strategy_eid=0000000STRATEGYEID8VOL ``` ```shell { "data": [ { "advertisable_eid": "MY_ADVERTISABLE_EID", "budget": 1000.0, "created_at": "2017-03-13T23:08:33.198960", "currency": "USD", "end_date": null, "start_date": "2017-03-13T23:08:33.184906", "status": "live", "strategy_eid": "0000000STRATEGYEID8VOL" } ], "mesage": "", "status": 200 } ``` ## Fetch Campaigns for a Strategy Get all campaigns under a strategy ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/activate/api/v1/campaign?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID&strategy_eid=0000000STRATEGYEID8VOL ``` ```shell { "data": [ { "budget": 1000, "campaign_eid": "RDEMJY2RF5CGZLRIGYIZ2U", "created_at": "2017-03-13T23:35:56.805483", "product": "retargeting", "strategy_eid": "RYULGPREKBA6LIVBWU8VOL", "updated_at": "2017-03-13T23:36:00.460571" } ], "message": "", "status": 200 } ``` # examples.html.md # CRUD API Examples The following examples use the tool [cURL](https://curl.haxx.se/) to submit requests to the web service. This method was chosen for its ubiquity, clarity, and compact syntax. Your organization’s method for calling the web service will vary depending on programming language and operating system. The server response shown below each web service call excludes the HTTP headers and is formatted for readability. Actual response bodies contain less whitespace, but still conform to the JSON marshalling standard. > ##### Examples on this page > > * [Get info for your organization (including EID)](#get-info-for-your-organization-including-eid) > * [Create an advertisable](#create-an-advertisable) > * [Get the info for the newly created pixel (created along with the advertisable)](#get-the-info-for-the-newly-created-pixel-created-along-with-the-advertisable) > * [Get the new segment (created by the advertisable)](#get-the-new-segment-created-by-the-advertisable) > * [Create an additional rule to match users against](#create-an-additional-rule-to-match-users-against) > * [Create a conversion rule to match users against](#create-a-conversion-rule-to-match-users-against) > * [Create a new retargeting campaign](#create-a-new-retargeting-campaign) > * [Create a new AdGroup for the campaign](#create-a-new-adgroup-for-the-campaign) > * [Upload an ad](#upload-an-ad) > * [Upload another ad](#upload-another-ad) > * [Attach both image ads to the new AdGroup](#attach-both-image-ads-to-the-new-adgroup) > * [Attach a retargeting segment to the new AdGroup](#attach-a-retargeting-segment-to-the-new-adgroup) > * [Exclude a converted segment from the new AdGroup](#exclude-a-converted-segment-from-the-new-adgroup) > * [Fetch a report for the campaign](#fetch-a-report-for-the-campaign) > * [Create a new run-of-network campaign with DMA geotargets](#create-a-new-run-of-network-campaign-with-dma-geotargets) > * [Enable Dynamic Creative for your Advertisable (Advanced)](#enable-dynamic-creative-for-your-advertisable-advanced) ## Get info for your organization (including EID) ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/organization/get?apikey=MYAPIKEY ``` ```shell {"results": {"account_balance": 0.0, "created_date": "2009-07-21 23:28:44", "eid": "I5E7IOHF4BD6PNI5ZFEPMH", "is_prepaid": true, "last_billed_date": null, "last_paid_date": null, "minimum_payment_amount": 20.0, "outstanding_balance": 0.0, "updated_date": "2010-10-20 16:49:21"}} ``` ## Create an advertisable ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/advertisable/create?apikey=MYAPIKEY \ -F name=Test \ -F organization=I5E7IOHF4BD6PNI5ZFEPMH \ -F country_code=us \ -F url=http://customer.com ``` ```shell {"results": {"click_through_conversion_window": 30, "created_date": "2011-01-04 02:18:35", "eid": "6SHGRDIZUBDXLHUG4YHFGC", "name": "Test", "organization": "I5E7IOHF4BD6PNI5ZFEPMH", "status": "admin_review", "updated_date": "2011-01-04 02:18:35", "url": "https://customer.com", "view_through_conversion_window": 30}} ``` ## Get the info for the newly created pixel (created along with the advertisable) ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/api/v1/advertisable/get_pixel?apikey=MYAPIKEY&advertisable=MY_ADVERTISALE_EID" ``` ```shell {"results": {"code": "\n", "eid": "XCOW5YUNQFGR5J5VSDITAX", "status": "pending"}} ``` ## Get the new segment (created by the advertisable) ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/api/v1/pixel/get_segments?apikey=MYAPIKEY&pixel=MY_ADVERTISALE_EID" ``` ```shell {"results": [{"duration_sec": 7776000, "eid": "TJ5XB3USVBBMDCRNFBU2H3", "conversion_value": null}]} ``` ## Create an additional rule to match users against ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/rule/create?apikey=MYAPIKEY \ -F pixel=XCOW5YUNQFGR5J5VSDITAX \ -F type=s \ -F name=shopping_cart \ -F pattern=*/cart/ \ -F order=3 \ -F duration=60 ``` ```shell {"results": {"name": "shopping_cart, "eid": "4039IJRGINVWNO43WA2KDW", "type": "s", "order": 3, "pattern": "*/cart/", "segments": [{"name": "shopping_cart, "duration": 60, "duration_sec": 5184000, "type": "s", "eid": "IJ34IJR9JEVNVOOQWI90W0", "pattern": "*/cart/", "rule": "4039IJRGINVWNO43WA2KDW", "conversion_value": null}]} ``` ## Create a conversion rule to match users against ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/rule/create?apikey=MYAPIKEY \ -F pixel=XCOW5YUNQFGR5J5VSDITAX \ -F type=c \ -F name=converted \ -F pattern=*/checkout_complete/ \ -F order=2 \ -F duration=90 ``` ```shell {"results": {"name": "converted, "eid": "LJKEGNO3O30NDKSKLLW245", "type": "c", "order": 3, "pattern": "*/checkout_complete/", "segments": [{"name": "converted", "duration": 90, "duration_sec": 7776000, "type": "c", "eid": "O230V3IVOWVNIEOPLWMO2P", "pattern": "*/checkout_complete/", "rule": "LJKEGNO3O30NDKSKLLW245", "conversion_value": null}]} ``` ## Create a new retargeting campaign ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/campaign/create?apikey=MYAPIKEY \ -F advertisable=6SHGRDIZUBDXLHUG4YHFGC \ -F name="Test Campaign" \ -F start_date=2020-01-01 \ -F end_date=2020-02-28 \ -F budget=30.5 ``` ```shell {"results": {"adgroups": [], "advertisable": "V7PRCKI2ZRAEJMK4OLWF7I", "is_retargeting": true, "budget": 30.5, "cpc": null, "cpm": null, "created_date": "2011-01-04 18:50:21", "eid": "ZO245MTLPFGJ3E3CDJLCK4", "end_date": "2020-02-28 00:00:00", "name": "Test Campaign", "start_date": "2020-01-01 00:00:00", "status": "admin_review", "updated_date": "2011-01-04 18:50:21"}} ``` ## Create a new AdGroup for the campaign ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/adgroup/create?apikey=MYAPIKEY \ -F campaign=ZO245MTLPFGJ3E3CDJLCK4 \ -F name="Test AdGroup" ``` ```shell {"results": {"ad_optimization": "", "campaign": "ZO245MTLPFGJ3E3CDJLCK4", "created_date": "2011-01-04 18:52:45", "eid": "RUXJF6GPBZDQLAUFVL7MII", "geo_targets": [], "name": "Test AdGroup", "space_optimization": "", "status": "approved", "updated_date": "2011-01-04 18:52:45"}} ``` ## Upload an ad ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/ad/create?apikey=MYAPIKEY \ -F advertisable=V7PRCKI2ZRAEJMK4OLWF7I \ -F name="Test Ad 728" \ -F destination_url=http://customer.com \ -F file=@ad1.jpg ``` ```shell {"results": {"ad_format": "728 wide x 90 high", "ad_format_id": 3, "ad_format_name": "728x90", "adgroups": [], "advertisable": "V7PRCKI2ZRAEJMK4OLWF7I", "body": null, "created_date": "2011-01-04 19:01:01", "destination_url": "http://customer.com", "eid": "OAX4PI4NWZBYHHEWI4TUJU", "has_edits": false, "has_future_campaigns": false, "has_pending_edits": false, "headline": null, "height": 728, "is_active": true, "is_outlined": false, "message": null, "name": "Test Ad 728", "original_ad": null, "outline_color": null, "src": "https://adroll-main-storage-west-2.s3.amazonaws.com/a/OAX/4PI/OAX4PI4NWZBYHHEWI4TUJU.jpg", "status": "approved", "type": "image", "updated_date": "2011-01-04 19:01:01", "valid_clicktag": null, "width": 90}} ``` ## Upload another ad ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/ad/create?apikey=MYAPIKEY \ -F advertisable=V7PRCKI2ZRAEJMK4OLWF7I \ -F name="Test Ad 160" \ -F destination_url=http://customer.com \ -F file=@ad2.jpg ``` ```shell {"results": {"ad_format": "728 wide x 90 high", "ad_format_id": 3, "ad_format_name": "728x90", "adgroups": [], "advertisable": "V7PRCKI2ZRAEJMK4OLWF7I", "body": null, "created_date": "2011-01-04 19:15:00", "destination_url": "http://customer.com", "eid": "FBUD7AQR7ZBNHHWQ7IOMWA", "has_edits": false, "has_future_campaigns": false, "has_pending_edits": false, "headline": null, "height": 728, "is_active": true, "is_outlined": false, "message": null, "name": "Test Ad 728", "original_ad": null, "outline_color": null, "src": "https://adroll-main-storage-west-2.s3.amazonaws.com/a/FBU/D7A/FBUD7AQR7ZBNHHWQ7IOMWA.jpg", "status": "approved", "type": "image", "updated_date": "2011-01-04 19:15:00", "valid_clicktag": null, "width": 90}} ``` ## Attach both image ads to the new AdGroup ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/adgroup/select_ads?apikey=MYAPIKEY \ -F adgroup=RUXJF6GPBZDQLAUFVL7MII \ -F ads=FBUD7AQR7ZBNHHWQ7IOMWA,OAX4PI4NWZBYHHEWI4TUJU ``` ```shell {"results": [{"ad": "FBUD7AQR7ZBNHHWQ7IOMWA", "errors": []}, {"ad": "OAX4PI4NWZBYHHEWI4TUJU", "errors": []}]} ``` ## Attach a retargeting segment to the new AdGroup ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/adgroup/add_segments?apikey=MYAPIKEY \ -F adgroup=RUXJF6GPBZDQLAUFVL7MII \ -F segments=TJ5XB3USVBBMDCRNFBU2H3 ``` ```shell {"results": true} ``` ## Exclude a converted segment from the new AdGroup ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/adgroup/add_segments?apikey=MYAPIKEY \ -F adgroup=RUXJF6GPBZDQLAUFVL7MII \ -F segments=O230V3IVOWVNIEOPLWMO2P \ -F is_negative=True ``` ```shell {"results": true} ``` ## Fetch a report for the campaign ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/report/campaign?apikey=MYAPIKEY \ -F campaigns=CEA4BUOVRNDJPDFVS6KTEP \ -F past_days=1 \ -F data_format=entity ``` ```shell {"results": [{"campaign": "My campaign 1", "eid": "CEA4BUOVRNDJPDFVS6KTEP", "advertiser": "My Advertisable", "type": "Retargeting", "status": "approved", "created_date": "2010-02-23", "start_date": "2010-02-23", "end_date": null, "budget": 3234.0, "cpc": 1.0, "ctr": 0.234, "cpm": 2.34, "cost": 500.00, "impressions": 213675, "clicks": 500, "uniques": 6983}]} ``` ## Create a new run-of-network campaign with DMA geotargets 1. Create the campaign ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/campaign/create?apikey=MYAPIKEY \ -F advertisable=6SHGRDIZUBDXLHUG4YHFGC \ -F name="Test Geo Campaign" \ -F start_date=2020-01-01 \ -F end_date=2020-02-28 \ -F budget=50 ``` ```shell {"results": {"adgroups": [], "advertisable": "V7PRCKI2ZRAEJMK4OLWF7I", "budget": 30.5, "cpc": null, "cpm": null, "created_date": "2011-01-04 18:50:21", "eid": "PFL30SXLKA033IOPFHDJ9SAX", "end_date": "2020-02-28 00:00:00", "name": "Test Geo Campaign", "start_date": "2020-01-01 00:00:00", "status": "admin_review", "updated_date": "2011-01-04 18:50:21"}} ``` 1. Create the AdGroup ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/adgroup/create?apikey=MYAPIKEY \ -F campaign=PFL30SXLKA033IOPFHDJ9SAX \ -F name="Test AdGroup" ``` ```shell {"results": {"ad_optimization": "", "campaign": "PFL30SXLKA033IOPFHDJ9SAX", "created_date": "2011-01-04 18:52:45", "eid": "RUXJF6GPBZDQLAUFVL7MII", "geo_targets": [], "name": "Test AdGroup", "space_optimization": "", "status": "approved", "updated_date": "2011-01-04 18:52:45"}} ``` 1. Add geotargets for DMA’s in Alaska ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/adgroup/add_geo_target?apikey=MYAPIKEY \ -F adgroup=RUXJF6GPBZDQLAUFVL7MII \ -F type="usmetro" \ -F targets="743,745,747" ``` ```shell {"results":true} ``` ## Enable Dynamic Creative for your Advertisable (Advanced) Dynamic Creative is an effective way to produce personalized ads dynamically for General Web. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ https://services.adroll.com/api/v1/advertisable/enable_rollcrawl?apikey=MYAPIKEY \ -F advertisable=6SHGRDIZUBDXLHUG4YHFGC \ -F url="http://customer.com/product_feed.xml" ``` ```shell {"results": true} ``` # examples.html.md # Geotargeting API Examples > ##### Examples on this page > > * [Search for a geotarget](#search-for-a-geotarget) > * [Attach a GeoTarget to an AdGroup](#attach-a-geotarget-to-an-adgroup) ## Search for a geotarget To search for a geotarget by name, you can use the [`GET /geo/api/search/v2/geo`](reference.md#get--geo-api-search-v2-geo) endpoint. Specify: `geo_types` : Type of geopgrahic area you are searching for:
- `country` - `metro` - `region` - `city` - `postal_code` `starts_with` : Segment that you want to query For example, to search for a city named Austin: **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/geo/api/search/v2/geo?apikey=MYAPIKEY&geo_types=city&starts_with=austin" ``` **Response**: ```javascript { "results": [ { "country": { "iso2": "US", "name": "United States" }, "eid": "PVVKZWCOHFH3XNYZKX8GEO", "name": "Austin", "name_localized": null, "type": "city" } ] } ``` ## Attach a GeoTarget to an AdGroup ```shell curl --location --request POST 'https://services.adroll.com/api/v1/adgroup/create?apikey=MYAPIKEY' \ -H 'Authorization: Token YOUR_TOKEN' \ --form 'advertisable="ADVERTISABLE_EID"' \ --form 'name="OI"' \ --form 'campaign="CAMPAIGN_EID"' \ --form 'geo_targets="[{\"eid\": \"PVVKZWCOHFH3XNYZKX8GEO\", \"is_negative\": false}]"' ``` **Response**: ```javascript { "results": { "status": "approved", "updated_date": "2021-01-25 14:42:40", "coops": [], "ad_optimization": "", "campaign": "CAMPAIGN_EID", "site_exclusions": [], "platform_targets": [], "type": "sites", "segments": [], "ads": [], "geo_targets": [], "placement_targets": [], "eid": "ADGROUP_EID", "is_cats4gold": false, "created_date": "2021-01-25 14:42:40", "demographic_targets": [], "space_optimization": "", "flight_timezone": "UTC", "name": "OI" } } ``` Then you can check if the GeoTargets were correctly attached with the following API call: ```shell curl --location \ --request GET \ -H 'Authorization: Token YOUR_TOKEN' \ 'https://services.adroll.com/geo/api/targets/v1/target/ADGROUP_EID?apikey=MYAPIKEY' ``` **Response**: ```javascript { "data": [ { "city": { "country_code": "US", "eid": "PVVKZWCOHFH3XNYZKX8GEO", "id": 315714, "is_facebook_target": false, "name": "Austin", "name_localized": null, "region_code": "PA", "region_name": "Pennsylvania", "type": "city" }, "country": { "code": "US", "country": "US", "eid": "TTWGSKZDVNAVNKJ7GJ8GEO", "id": 232, "is_facebook_target": true, "name": "United States", "server_id": 232, "type": "country" }, "geo_eid": "PVVKZWCOHFH3XNYZKX8GEO", "metro": { "boundaries": "NY-PA", "country": "US", "country_code": "US", "eid": "LPU5NINNNJHI3H72QS8GEO", "id": 514, "is_facebook_target": null, "name": "Buffalo, NY", "server_id": 514, "type": "metro" }, "name": "Austin", "operation": "include", "postalcode": null, "region": { "country": "US", "eid": "O5OINHGRIVHJ5GTZAJ8GEO", "id": "USPA", "is_facebook_target": true, "name": "Pennsylvania", "name_localized": null, "region": "PA", "type": "region" }, "type": "city" } ], "eid": "ADGROUP_EID" } ``` # examples.html.md # GraphQL Reporting API Examples The examples on this page contain GraphQL queries. For how to run these queries, see [Your First Query](overview.md#your-first-graphql-query). > ##### Examples on this page > > * [List of Advertisables for your Organization](#list-of-advertisables-for-your-organization) > * [List of Campaigns for an Advertisable](#list-of-campaigns-for-an-advertisable) > * [Delivery and Attribution data for all Campaigns](#delivery-and-attribution-data-for-all-campaigns) > * [Delivery and Attribution data for a Campaign](#delivery-and-attribution-data-for-a-campaign) > * [Delivery and Attribution data for an AdGroup](#delivery-and-attribution-data-for-an-adgroup) > * [Delivery and Attribution data for an Ad](#delivery-and-attribution-data-for-an-ad) > * [Connected TV Campaign Metrics](#connected-tv-campaign-metrics) > * [Granular Conversions for an Advertisable](#granular-conversions-for-an-advertisable) ## List of Advertisables for your Organization ```graphql { organization { current { advertisables { eid name } } } } ``` ## List of Campaigns for an Advertisable ```graphql { advertisable { byEID(advertisable: "MY_ADVERTISABLE_EID") { eid name campaigns { eid name } } } } ``` ## Delivery and Attribution data for all Campaigns ```graphql { advertisable { byEID(advertisable: "MY_ADVERTISABLE_EID") { eid name campaigns { eid name channel metrics(start: "2017-06-01", end: "2017-06-02", currency: "USD") { byDate { # Deliveries impressions clicks cost # Attribution viewThroughs clickThroughs viewRevenue clickRevenue } } } } } } ``` ## Delivery and Attribution data for a Campaign ```graphql { campaign { byEID(campaign: "MY_CAMPAIGN_EID") { eid name metrics(start: "2017-06-01", end: "2017-06-02", currency: "USD") { byDate { impressions clicks cost viewThroughs clickThroughs viewRevenue clickRevenue } } } } } ``` ## Delivery and Attribution data for an AdGroup ```graphql { adgroup { byEID(adgroup: "MY_ADGROUP_EID") { eid name status metrics(start: "2017-06-01", end: "2017-06-02", currency: "USD") { byDate { # Deliveries impressions clicks cost # Attribution viewThroughs clickThroughs viewRevenue clickRevenue } } } } } ``` ## Delivery and Attribution data for an Ad ```graphql { ad { byEID(ad: "MY_AD_EID") { eid name adFormatName metrics(start: "2017-06-01", end: "2017-06-02", currency: "USD") { byDate { impressions clicks cost viewThroughs clickThroughs viewRevenue clickRevenue } } } } } ``` ## Connected TV Campaign Metrics To retrieve metrics for Connected TV (CTV) campaigns, you must include the `enableConnectedTVCampaigns:true` flag in your query. This enables access to video-specific metrics. ```graphql query ($advertisable_eid: String!, $start_date: Date!, $end_date: Date!) { flags(enableConnectedTVCampaigns:true) advertisable { byEID(advertisable: $advertisable_eid) { eid name campaigns { eid name channel metrics(start: $start_date, end: $end_date, currency: "USD") { summary { impressions clicks cost viewThroughs clickThroughs viewRevenue clickRevenue videoImpressions videoViews videoTwentyFivePercent videoFiftyPercent videoSeventyFivePercent videoHundredPercent } } adgroups { eid name metrics(start: $start_date, end: $end_date, currency: "USD") { summary { impressions clicks cost viewThroughs clickThroughs viewRevenue clickRevenue videoImpressions videoViews videoTwentyFivePercent videoFiftyPercent videoSeventyFivePercent videoHundredPercent } } } } } } } ``` **Query Variables:** ```json { "advertisable_eid": "MY_ADVERTISABLE_EID", "start_date": "2025-08-01", "end_date": "2025-08-28" } ``` ## Granular Conversions for an Advertisable You can use this query to replicate the Granular Conversion Report (GCR) that is generated in the dashboard. Note that this API does not support the converted user’s email. If you need an email address, you’ll have to use the GCR genreated by the dashboard. ```graphql { advertisable { byEID(advertisable: "MY_ADVERTISABLE_EID") { granularConversions(start: "2020-06-01", end: "2020-07-01") { time type attributionModel attributionCredit adrollConversionId touchpointTimestamp attributedConversions lastTouchAttribution channel campaignEID campaignType campaignName adgroupEID adgroupName adEID adName adSize segmentEID segmentName attributedRevenue externalData device country city firstTouchTimestamp lastTouchTimestamp daysToConversionFirstTouch daysToConversionLastTouch referrerURL } } } } ``` # examples.html.md # Prospecting API Examples #### NOTE In this page we will use `0000000ADVERTISABLEEID` as an example of an advertisable EID. You should use an advertisable from your organization as ownership privileges are enforced. # examples.html.md # Site Traffic Revealer Examples > ##### Examples on this page > > * [Get Visitor Attributes](#get-visitor-attributes) > * [Data Dictionary](#data-dictionary) ## Get Visitor Attributes The Site Traffic Revealer JavaScript interface provides a callback called B2BPersonalizationData which returns an array of five (5) firmographic attributes pertaining to the visitor: `domain`, `company_name`, `company_industry`, `company_revenue`, and `company_size`. The following JavaScript code will set variables with the available firmographic data of the current web visitor for use on-site or to make available as data with other applications and pixels. ```shell window.onB2BPersonalizationDataReady = (function(personalizationData) { var companyDomain = personalizationData["domain"]; var companyName = personalizationData["company_name"]; var companyIndustry = personalizationData["company_industry"]; var companyRevenue = personalizationData["company_revenue"]; var companySize = personalizationData["company_size"]; var accountLists = personalizationData["account_lists"]; var journeyStage = personalizationData["journey_stage"]; }); ``` **Example Response**: | Description | Variable | Value | |----------------------------------------------------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------| | Company domain of the site visitor | companyDomain | adroll.com | | Company name of the site visitor based on the domain | companyName | AdRoll | | Company industry of the site visitor based on the domain | companyIndustry | Marketing and Advertising | | Company revenue of the site visitor based on the domain | companyRevenue | Medium-Small ($10MM-$50MM) | | Company size of the site visitor based on the domain | companySize | Medium-Large (500 - 999 Employees) | | Account Lists that include the site visitor | accountLists | `[ {accountList: "US East High Intent", accountGroup: "A accounts"}, {accountList: "US West High Intent", accountGroup: "B accounts"} ]` | | Journey Stage of the site Visitor | journeyStage | Unaware | ## Data Dictionary Company Revenue - a value from one of the following (7) options: | Micro ($0-$1MM) | |-----------------------------| | Small ($1MM-$10MM) | | Medium-Small ($10MM-$50MM) | | Medium-Large ($50MM-$100MM) | | Large ($100MM-$200MM) | | XLarge ($200MM-$1B) | | XXLarge ($1B+) | Company Size - a value from one of the following (8) options: | Micro (1 - 9 Employees) | |------------------------------------| | Small (10 - 49 Employees) | | Medium-Small (50 - 199 Employees) | | Medium (200 - 499 Employees) | | Medium-Large (500 - 999 Employees) | | Large (1,000 - 4,999 Employees) | | XLarge (5,000 - 10,000 Employees) | | XXLarge (10,000+ Employees) | Industry - a value from one of the following (150) options: | Accounting | |--------------------------------------| | Agriculture | | Airlines/Aviation | | Alternative Dispute Resolution | | Alternative Medicine | | Animation | | Apparel & Fashion | | Architecture & Planning | | Arts and Crafts | | Automotive | | Aviation & Aerospace | | Banking | | Biotechnology | | Broadcast Media | | Building Materials | | Business Services | | Business Supplies and Equipment | | Capital Markets | | Chemicals | | Civic & Social Organization | | Civil Engineering | | Commercial Real Estate | | Computer & Network Security | | Computer Games | | Computer Hardware | | Computer Networking | | Construction | | Consumer Electronics | | Consumer Goods | | Consumer Services | | Cosmetics | | Dairy | | Defense & Space | | Dentistry | | Design | | E-Learning | | Education Management | | Electrical/Electronic Manufacturing | | Entertainment | | Environmental Services | | Events Services | | Executive Office | | Facilities Services | | Financial Services | | Fine Art | | Fishery | | Food & Beverages | | Food Production | | Fund-Raising | | Furniture | | Gambling & Casinos | | Glass, Ceramics & Concrete | | Government Administration | | Graphic Design | | Health, Wellness and Fitness | | Higher Education | | Hospital & Health Care | | Hospitality | | Human Resources | | Import and Export | | Individual & Family Services | | Industrial Automation | | Industrial Engineering | | Information Services | | Insurance | | International Affairs | | International Trade and Development | | Internet | | Investment Banking | | Investment Management | | Judiciary | | Law Enforcement | | Law Practice | | Legal Services | | Legislative Office | | Leisure, Travel & Tourism | | Libraries | | Local Business | | Logistics and Supply Chain | | Luxury Goods & Jewelry | | Machinery | | Management Consulting | | Manufacturing | | Maritime | | Market Research | | Marketing and Advertising | | Mechanical or Industrial Engineering | | Media Production | | Medical Devices | | Medical Practice | | Mental Health Care | | Military | | Mining & Metals | | Motion Pictures and Film | | Museums and Institutions | | Music | | Nanotechnology | | Newspapers | | Non-Profit Organization Management | | Oil & Energy | | Online Media | | Outsourcing/Offshoring | | Package/Freight Delivery | | Packaging and Containers | | Paper & Forest Products | | Performing Arts | | Pharmaceuticals | | Philanthropy | | Photography | | Plastics | | Political Organization | | Primary/Secondary Education | | Printing | | Professional Training & Coaching | | Program Development | | Public Policy | | Public Relations and Communications | | Public Safety | | Publishing | | Railroad Manufacture | | Ranching | | Real Estate | | Recreational Facilities and Services | | Religious Institutions | | Renewables & Environment | | Research | | Restaurants | | Retail | | Security and Investigations | | Semiconductors | | Shipbuilding | | Software / Information Technology | | Sporting Goods | | Sports | | Staffing and Recruiting | | Supermarkets | | Telecommunications | | Textiles | | Think Tanks | | Tobacco | | Translation and Localization | | Transportation/Trucking/Railroad | | Utilities | | Venture Capital & Private Equity | | Veterinary | | Warehousing | | Wholesale | | Wine and Spirits | | Wireless | | Writing and Editing | # examples.html.md # Universal Campaigns API Examples #### WARNING The Universal Campaigns API will be retired April 2025. > ##### Examples on this page > > * [Create a Universal Campaign](#create-a-universal-campaign) > * [Create a Universal AdGroup](#create-a-universal-adgroup) > * [Fetch a Universal Campaign](#fetch-a-universal-campaign) ## Create a Universal Campaign Create a Universal Campaign that can serve web retargeting ads. This campaign will not have any ads or AdGroups yet. Those can be included in the request to set up the campaign via the `adgroups` parameter, or created separately (see below). A Universal Campaign governs the budget, which is shared among its AdGroups. See also [`CampaignCreate`](reference.md#AdRoll Universal Campaigns API (v2) CampaignCreate) ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d ' { "advertisable_eid": "MY_ADVERTISABLE_EID", "name": "My First Campaign", "budget_settings": { "budget_type": "daily", "goal": 200.00, } }' \ "https://services.adroll.com/activate/api/v2/campaign?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID" ``` ```shell { "data": [ { "advertisable_eid": "MY_ADVERTISABLE_EID", "budget": 1000.0, "created_at": "2017-03-13T23:08:33.198960", "currency": "USD", "end_date": null, "start_date": "2017-03-13T23:08:33.184906", "status": "live", "strategy_eid": "MY_UNI_CAMPAIGN_EID" } ] } ``` ## Create a Universal AdGroup Create an AdGroup as part of an existing Universal Campaign. The Universal AdGroup is where you specify start and end dates, KPI goal and metric, a set of ads, and targeting parameters. In order to create a new AdGroup within a campaign, the Universal Campaign must have a budget of at least `5 * ([number of current AdGroups] + [number of AdGroups being created])` (in USD), otherwise the AdGroup will be rejected. AdGroups should only contain either all static or all dynamic ads, and the ad types should match the value of the ad_type parameter. See also [`AdGroupCreate`](reference.md#AdRoll Universal Campaigns API (v2) AdGroupCreate) ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{ "ad_type": "static", "ads": [{"eid": STATIC_AD_EID, "status": "live"}], "name": "My Adgroup", "kpi_metric": "CPC", "kpi_goal": 3}' \ "https://services.adroll.com/activate/api/v2/adgroup?apikey=MYAPIKEY&campaign_eid=MY_UNI_CAMPAIGN_EID" ``` ```shell { "data": { "ad_type": "static", "ads": [{"eid": "STATIC_AD_EID", "status": "live"}], "campaign_eid": "MY_UNI_CAMPAIGN_EID", "created_at": "2017-03-13T23:08:33.198960", "eid": "NEW_ADGROUP_EID", "email": null, "kpi_goal": 3.0, "kpi_metric": "CPC", "name": "My Adgroup", "start_date": "2017-03-13T23:08:33.184906", "end_date": null, "status": "live", "targeting_features": { "geotargets": [], "negative_segment_eids": [], "positive_segment_eids": [] } } } ``` ## Fetch a Universal Campaign ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/activate/api/v2/campaign?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID&eid=MY_UNI_CAMPAIGN_EID" ``` ```shell { "data": [ { "advertisable_eid": "MY_ADVERTISABLE_EID", "budget": 1000.0, "created_at": "2017-03-13T23:08:33.198960", "currency": "USD", "end_date": null, "start_date": "2017-03-13T23:08:33.184906", "status": "live", "strategy_eid": "MY_UNI_CAMPAIGN_EID" } ] } ``` # examples.html.md # User Lists API Examples > ##### Examples on this page > > * [Retrieve the size of a segment](#retrieve-the-size-of-a-segment) ## Retrieve the size of a segment To retrieve a summary of the size of a segment, you can use the [`GET /user-lists/api/v1/userlists/segment`](reference.md#get--user-lists-api-v1-userlists-segment) endpoint. Specify: `advertisable_eid` : Advertisable that owns the segment `segment_eids` : Segment that you want to query `breakdowns` : How to group the data, for example `summary` or `date` `start_date` : First day to retreive data for `end_date` : Last day to retrieve data for **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/user-lists/api/v1/userlists/segment?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID&segment_eids=MY_SEGMENT_EID&breakdowns=summary&start_date=2019-08-21&end_date=2019-09-26" ``` **Response**: ```javascript { "results": { "summary": { "current_visitors": 1613519, "current_visitors_in_date_range": 781266, "new_visitors": 781266, "total_visitors": 781266 } } } ``` # external-segments.html.md # Manage External Data Segments The guide shows you how to create and manage external data segments using the [Audience API](../audience-api/index.md#audience-api-index). ## Create the segment **Request Arguments** | Key | Data Type | Description | Example | |---------------|-------------|--------------------------------------------------------------------------------------------|-------------------------------| | advertiser_id | string | ID of the advertiser to create a new segment for | `MOCQ3OFYHRA4PGY6VCZYRT` | | type | string | Type of the segment, in this case `arbitrary_data` | `arbitrary_data` | | name | string | Name of the segment | `Entertainment Segment` | | url | string | The URL pattern you want to apply your external data filter against | `/checkout/cart*` | | expression | string | The external data expression - see [External Data Expressions](#external-data-expressions) | `category == "entertainment"` | | duration | integer | Number of days users are in the segment | `90` | **Request Format**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{ "name": "{segment_name}", "advertiser_id": "{advertiser_id}", "type": "arbitrary_data", "url": "{url_pattern}", "expression": "{external_data_expression}", "duration": {duration} }' \ "https://services.adroll.com/audience/v1/segments?apikey=MYAPIKEY" ``` **Example Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" -d '{ "name": "Your External Data Segment", "advertiser_id": "MOCQ3OFYHRA4PGY6VCZYRT", "type": "arbitrary_data", "url": "cart*", "expression": "category == \"hotels\" && [\"hilton\", \"westin\", \"sheraton\"] contains refererDomain", "duration": 90 }' \ "https://services.adroll.com/audience/v1/segments?apikey=MYAPIKEY" ``` **Example Response**: ```json { "result": "success", "segment": { "advertiser_id": "MOCQ3OFYHRA4PGY6VCZYRT", "conversion_value": null, "created_date": 1486523382000, "duration": 90, "expression": "category == \"Hotels\" && [\"hilton\", \"westin\", \"sheraton\"] contains refererDomain", "is_active": true, "is_conversion": false, "name": "Your External Data Segment", "segment_id": "IIEBKZ5R7BAADIF3BVVY7T", "source": "slargma", "tags": "s", "type": "arbitrary_data", "url": "cart*" } } ``` ## Retrieve the segment **Request Format**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/audience/v1/segments/{segment_id}?apikey=MYAPIKEY" ``` **Example Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/audience/v1/segments/IIEBKZ5R7BAADIF3BVVY7T?apikey=MYAPIKEY" ``` **Example Response**: ```json { "advertiser_id": "MOCQ3OFYHRA4PGY6VCZYRT", "conversion_value": null, "created_date": 1486523382000, "duration": 90, "expression": "category == \"Hotels\" && [\"hilton\", \"westin\", \"sheraton\"] contains refererDomain", "is_active": true, "is_conversion": false, "name": "Your External Data Segment", "segment_id": "IIEBKZ5R7BAADIF3BVVY7T", "source": "slargma", "tags": "s", "type": "arbitrary_data", "url": "cart*" } ``` ## Update the segment **Request Arguments** You can choose to edit the name, url, or duration of the segment. | Key | Data Type | Description | Example | |----------|-------------|---------------------------------------------------------------------|-------------------| | name | string | Name of the segment | `Fashion Segment` | | url | string | The URL pattern you want to apply your external data filter against | `/women/shoes*` | | duration | integer | Number of days users are in the segment | `90` | **Request Format**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{ "name": "{segment_name}", "url": "{url_pattern}", "duration": "{duration}" }' \ "https://services.adroll.com/audience/v1/segments/{segment_id}?apikey=MYAPIKEY" ``` **Example Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{ "name": "Your Edited External Data Segment", "url": "buy*", }' \ "https://services.adroll.com/audience/v1/segments/IIEBKZ5R7BAADIF3BVVY7T?apikey=MYAPIKEY" ``` **Example Response**: ```json { "result": "success", "segment": { "advertiser_id": "MOCQ3OFYHRA4PGY6VCZYRT", "conversion_value": null, "created_date": 1486523382000, "duration": 90, "expression": "category == \"Hotels\" && [\"hilton\", \"westin\", \"sheraton\"] contains refererDomain", "is_active": true, "is_conversion": false, "name": "Your Edited External Data Segment", "segment_id": "IIEBKZ5R7BAADIF3BVVY7T", "source": "slargma", "tags": "s", "type": "arbitrary_data", "url": "buy*" } } ``` ## Delete the segment **Request Format**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -X DELETE \ "https://services.adroll.com/audience/v1/segments/{segment_id}?apikey=MYAPIKEY" ``` **Example Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -X DELETE \ "https://services.adroll.com/audience/v1/segments/IIEBKZ5R7BAADIF3BVVY7T?apikey=MYAPIKEY" ``` **Example Response**: ```json { "result": "success", "segment_id": "IIEBKZ5R7BAADIF3BVVY7T" } ``` ## External Data Expressions You may use the expressions to target your Segment audiences based on data passed in through the pixel. **It supports the following operators** | Operator | Description | Example | |------------|--------------------------------|----------------------------------------------------------------------| | == | equals (case sensitive) | `category == "entertainment"` | | > | greater than | `age > 21` | | < | less than | `age < 21` | | >= | greater than or equal to | `age >= 21` | | <= | less than or equal to | `age <= 21` | | && | and | `category == "contractors" && vertical contains "construction"` | | || | or | `category == "contractors" || vertical contains "construction"` | | contains | string or array contains value | `category contains "contractors" || [94102, 94115] contains zipcode` | | ~= | regex match | `category ~= ".*education.*"` | **Additional Notes** - You can use single quotes `'` for strings instead of double quotes (`"`). For example: `category == 'foobar'`. - You can use brackets to specify order of operations. For example, `"a > 1 && (b > 2 || c < 3)"`. # faq.html.md # Frequently Asked Questions > ##### Questions on this page > > * [When does reporting data become available?](#when-does-reporting-data-become-available) > * [How to use display_url_override parameter?](#how-to-use-display-url-override-parameter) > * [How can I tell if an ad has been deleted?](#how-can-i-tell-if-an-ad-has-been-deleted) > * [Is there a limit to the size of GraphQL queries?](#is-there-a-limit-to-the-size-of-graphql-queries) ## When does reporting data become available? We provide approximate real-time reporting data throughout the day. The numbers for a day are typically available within twelve hours after the day finishes. However, that data is not considered finalized until 48 hours after the start of the current UTC day. All of our dates and times are in UTC. ## How to use display_url_override parameter? For web campaigns, display_url_override parameter is deprecated. If the destination URL is a redirect, you will need to specify the final destination URL in the display_url_override parameter as this is needed to pass ad review. ## How can I tell if an ad has been deleted? Ads are never really ‘deleted’, we just set the ads `is_active` flag to `false`. ## Is there a limit to the size of GraphQL queries? There is no limit to the size of GraphQL queries. Behind the scenes, the GraphQL Reporting API queries multiple services to retrieve your data. These requests are done in parallel and in bulk. It is more efficient to request all of the data you need in a single query than to create multiple queries. # get-started-rollworks.html.md # AdRoll ABM API Documentation AdRoll ABM (formerly RollWorks) offers a host of APIs for many use cases — from pushing ad performance data into your system of record to pushing target account lists into other platforms. The NextRoll API can be used by AdRoll ABM customers. To make your first API call, see [Get Started with the NextRoll API](get-started.md#guide-get-started) ## Available APIs Here are some of our most popular APIs and their use cases. ### [Site Traffic Revealer](../site-traffic-revealer/index.md#site-traffic-revealer-index) The Site Traffic Revealer helps marketers better understand their website traffic in real time to create a more tailored experience for their website visitors and analyze trends in their visitor data. The benefits of the Site Traffic Revealer are: - Provide site visitor analytics in your source of truth to inform business decisions (e.g., content strategy) - Enable personalization of website,chat, and other content. AdRoll ABM has direct integrations with Google Analytics, Uberflip, Hushly, Folloze, and [more](https://www.rollworks.com/partners/) - Provide site visitor data for engagement modeling ### [Reporting API](../graphql-reporting-api/index.md#graphql-reporting-api-index) Whether you want to export data into data visualization tools (Tableau, Datorama, Looker, Domo, etc.) or create custom CSV reports, our reporting API can fit your needs. AdRoll ABM customers most commonly use our GraphQL Reporting API because of its flexibility and ability to surface many different metrics. We also offer a [GraphQL query builder](https://app.adroll.com/reporting/graphiql), which customers can use to help build their reporting queries. The most common data our customers query are spend, impressions, clicks by account, ad unit, and campaign. For examples on querying for metrics for Playbooks, see [Playbook reporting](rollworks-playbooks.md#guide-playbooks-reporting). For further examples, see [GraphQL Reporting API Examples](../graphql-reporting-api/examples.md#graphql-reporting-api-examples). ### [Playbooks API](rollworks-playbooks.md#guide-playbooks) Playbooks are a simple user experience for running B2B advertising campaigns based on the best practices AdRoll ABM Customer Success organization has developed over the past several years. You can use our APIs to report on and manipulate Playbooks. ### [Target Account List API](target-account-lists.md#guide-target-account-lists) Our Target Account List API grow our customers’ cross-channel orchestration capabilities by enabling them to sync target account data across their tech stack. Here’s how AdRoll ABM customers and partners most commonly use this API: - Fetch accounts on their target account lists to build a similar, personalized experience with users at those target accounts across different channels. - Push a dynamic list of accounts into the AdRoll ABM platform when they’re showing high levels of intent and/or engagement in order to automatically activate ads against them. ### [Account Metrics API](account-metrics.md#guide-account-metrics) You can access AdRoll ABM account metrics like unique visitors and page views using the [GraphQL Reporting API](../graphql-reporting-api/index.md#graphql-reporting-api-index). Metrics are available per account for a list of campaigns in an Advertisable. You can specify any date range as long as it doesn’t exceed thirty days. If you need more than thirty days of data, you can make multiple queries and iterate on the date range. ### [Email Contact List API](../audience-api/index.md#audience-api-index) Sync email contact lists to reach contacts with ad campaigns and/or gather firmographic and technographic insights about those contacts. AdRoll ABM customers and partners most commonly use the Email Contact List API when they’re unable to integrate their CRM or MAP. # get-started.html.md # Get Started with the NextRoll API The NextRoll API is divided into [several services](../index.md#api-list), each with its own focus. Every API uses a common base URL and the authentication method. API parameters and responses can vary with each service, however we try to use consistent terminology across services. If you have any questions, you can [contact the API team](../support.md#support). For a high-level overview of the object structure, see [Get to know NextRoll](object-structure.md#guides-object-structure). ## Register as a Developer To make API calls, you’ll need to register as developer and create an application: 1. [Create a developer account](https://developers.nextroll.com/accounts/create) 2. [Create an application](https://developers.nextroll.com/my-apps/new-app) It is recommended that you create an application for production and one for testing. This allows you to have a separate OAuth 2.0 redirect URI for each of your development environments. The default quota is 100 API requests per service per day. If you think you need your limit increased, [send us a message](../support.md#support). #### NOTE Be sure to give your application a meaningful name. Users will see the name on the OAuth consent page and it helps us when reviewing usage for quota increases. #### NOTE Once you’ve registered your application, you’ll see both a consumer key and secret. You’ll only use the consumer key when making API calls using Personal Access Tokens. You’ll use both key and secret when authenticating with OAuth 2.0. ## Base URL The base URL for all API calls is: ```text https://services.adroll.com ``` HTTPS is the only supported protocol. ## Authentication ### OAuth 2.0 All API calls are authenticated using [**OAuth 2.0**](https://datatracker.ietf.org/doc/html/rfc6749.html). For information on how to use OAuth 2.0 see [Get Started with OAuth 2.0](oauth.md#guide-oauth). ### Personal Access Tokens Personal Access Tokens (PAT) are a simple way for developers to make API calls. Developers use them in simple API integrations and scripts where OAuth is not practical. If you’re building an application where you need to ask your users for their Personal Access Token, you should instead use [OAuth](oauth.md#guide-oauth). To get started, first visit the [your settings page in the dashboard](https://app.adroll.com/settings/personal-access-tokens). From this page, you’ll be able to create and revoke Personal Access Tokens. To make a request using a Personal Access Token, you need to include two things: your Personal Access Token and your application’s client ID. The Personal Access Token identifies the AdRoll user. The client ID identifies the application making the API call. The Personal Access Token is sent via the `Authorization` header with the Token scheme. For example: `Authorization: Token MYTOKEN` You’ll also need to pass your application’s client ID in the `apikey` query parameter. The `apikey` parameter is always sent in the URL query string, regardless of the HTTP method used. The `apikey` parameter should not be included in the body of the request for POST, PUT, or PATCH calls. A complete request would look something like: ```shell curl --header 'Authorization: Token MYTOKEN' \ 'https://services.adroll.com/api/v1/organization/get_advertisables?apikey=MYAPIKEY' ``` ## Your First API Call The Advertisable is commonly used object in user accounts. Since the Advertisable EID will be used for most API calls, it is recommended to retrieve the Advertisable EID as your first API call. Using cURL: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ 'https://services.adroll.com/api/v1/organization/get_advertisables?apikey=MYAPIKEY' ``` Using the [Requests](https://2.python-requests.org/en/master/) library in Python: ```python r = requests.get( 'https://services.adroll.com/api/v1/organization/get_advertisables?apikey=MYAPIKEY', headers={ 'Authorization': 'Token MY_TOKEN' } ) ``` Using PHP: ```php { const data = await res.json(); if (res.ok) { console.log(data); } else { console.error(data); } }) .catch(console.error); ``` ## Next Steps Check out one of our [API guides](index.md#guides-index) or jump straight to our [list of services](../index.md#api-list). - [Creating Audiences](create-audiences.md#guide-audiences) - [Automated Campaigns API Examples](../automated-campaigns-api/examples.md#automated-campaigns-examples) - [CRUD API Examples](../crud-api/examples.md#examples) - [Prospecting API Examples](../prospecting-api/examples.md#prospecting-examples) # guides.html.md # Guides The following guides use the Audience API: - [Creating Audiences](../../guides/create-audiences.md#guide-audiences) - [Manage External Data Segments](../../guides/external-segments.md#guide-external-segments) # marketing-platforms.html.md # Marketing Platforms Guide This guide is intended for marketing platforms that are interested in expanding their current solutions to new channels and inventory sources. In this guide, you’ll learn how to use the NextRoll API to easily onboard your customers. ## Getting to know the NextRoll API Before you start building your integration, it helps to have a basic understanding of the NextRoll API: [Get Started with the NextRoll API](get-started.md#guide-get-started) will help you make your first API call. [Get to know NextRoll](object-structure.md#guides-object-structure) provides an overview of the object structure and defines common terminology. ## Overview A single Organization contains all of your customer’s accounts, also known as Advertisables. When onboarding a customer, you will create a new Advertisable for them. To begin, you’ll start the initial setup: 1. [Organization Setup](#guides-marketing-platform-create-org) After that, your customers will go through the following lifecycle: 1. [Onboarding a Customer](#guides-marketing-platform-on-board) 2. [Campaign Management](#guides-marketing-platform-manage) 3. [Offboarding a Customer](#guides-marketing-platform-off-board) ## Organization Setup After you successfully [create a user account](https://app.adroll.com/onboarding/register) an Organization and Advertisable are automatically generated for you. To create accounts for your customers, therefore generate customer-specific Advertisables, you’ll need your Organization EID. This can be found in the `eid` field returned by [`GET /api/v1/organization/get`](../crud-api/reference.md#get--api-v1-organization-get). ## Onboarding a Customer The following steps are needed to onboard a new customer. ### Creating an Advertisable First, you’ll create an Advertisable for the customer. This establishes an Advertisable EID that will be used for subsequent API calls. Call [`POST /api/v1/advertisable/create`](../crud-api/reference.md#post--api-v1-advertisable-create) with the following parameters: - `organization` — EID for your Organization - `name` — Name of the customer. This can be returned in the GraphQL Reporting API when generating reports - `country_code` - ISO-3166 2-Letter country code the Advertisable is registered in ### Pixel Setup The Pixel is a snippet of JavaScript that you place on all of your customer’s webpages and can be configured by setting JavaScript variables. You can retrieve the Pixel using the API call [`GET /api/v1/advertisable/get_pixel`](../crud-api/reference.md#get--api-v1-advertisable-get_pixel) and specify the `advertisable` parameter using the EID returned when creating the Advertisable. The JavaScript snippet should be placed right before the closing `` HTML tag. #### Enhanced Conversion Tracking **Optional** To enable revenue tracking or the tracking of custom values such as order IDs, user IDs, and more please review [Setting Up Enhanced Conversion Tracking](https://help.adroll.com/hc/en-us/articles/212629938-Setting-Up-Enhanced-Conversion-Tracking). For example: ```html ``` #### Cross-Device Targeting **Optional (Recommended)** To enhance cross-device targeting and attribution, set `adroll_email` and/or `adroll_user_identifier` when calling the Pixel. The value of `adroll_email` is the plaintext or MD5 hashed email address for the user (if you have one). The value of `adroll_user_identifier` is your custom identifier for the user (if you have one). For example: ```html ``` ### Create Ads Depending on where you’ll run campaigns, review these guides for how to create ads: - [Creating Web Ads](create-web-ads.md#guides-web-ads) When creating ads, be sure to keep track of the EIDs returned. You’ll need to specify them when launching the campaign. ### Define Audiences Audiences or segments represent a set of people who will be targeted or excluded from Campaigns. There are many different types of Audiences, please review [Creating Audiences](create-audiences.md#guide-audiences) to learn more about creating them. The most common audience type is based on the URLs visited. These URL based audiences can be used to target visitors to specific pages such as a cart or conversion page. ### Launching a Campaign Once you’ve successfully created your ads and audiences, you can create a Campaign by calling [`POST /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#post--activate-api-v2-campaign). By default, it will start spending right away, but you can also specify a start date. For example, this call will create a campaign with one AdGroup containing a single ad and audience: ```javascript { "advertisable_eid": "MY_ADVERTISABLE_EID", "name": "My First Campaign", "objective": "convert", "budget_settings": { "budget_type": "daily", "goal": 200.0 }, "adgroups": [ { "name": "My AdGroup", "kpi_metric": "CPC", "kpi_goal": 5.0, "ad_type": "static", "ads": [ { "eid": "MY_AD_EID", "status": "live" } ], "targeting_features": { "positive_segment_eids": [ "MY_SEGMENT_EID" ] } } ] } ``` ## Campaign Management Below you can find the day to day operations of a live customer. ### Pausing the Campaign Call [`PUT /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#put--activate-api-v2-campaign) to pause a campaign. The body of the request will look like: ```javascript { "status": "paused" } ``` ### Resuming the Campaign Call [`PUT /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#put--activate-api-v2-campaign) to resume a campaign. The body of the request will look like: ```javascript { "status": "live" } ``` ### Generating Reports You can use the [GraphQL Reporting API](../graphql-reporting-api/index.md#graphql-reporting-api-index) to retrieve reporting metrics. Example query: ```graphql query AllAdvertisables { advertisable { byEIDs(eids: ["MY_ADVERTISABLE_EID"]) { eid name metrics(start: "2019-12-09", end: "2019-12-10") { byDate { date cost impressions clicks } } } } } ``` ## Offboarding a Customer To offboard a customer, you should: 1. [Pausing the Campaign](#guides-marketing-platform-pause) 2. Remove the Pixel from their website # marketplace-integration.html.md # Marketplaces Guide This guide is intended for marketplaces that are interested in offering or enhancing a marketing solution to drive additional purchases and grow revenue streams for their merchants. In this guide, you’ll learn how to use the NextRoll API to easily onboard merchants and run marketing campaigns across a vast selection of channels and inventory sources. ## Getting to know the NextRoll API Before you start building your integration, it helps to have a basic understanding of the NextRoll API: [Get Started with the NextRoll API](get-started.md#guide-get-started) will help you make your first API call. [Get to know NextRoll](object-structure.md#guides-object-structure) provides an overview of the object structure and defines common terminology. ### Definition Of Terms We’ll make references to the following terms that are specific to this guide: Marketplace : A service provider that hosts multiple businesses that want to advertise independent of each other Merchant : A business that participates in the Marketplace that will advertise independent of other businesses Parent Advertisable : The account, also known as Advertisable, that owns the Pixel that is placed on the Marketplace’s website Merchant Advertisable : An account or Advertisable that belongs to a merchant ## Overview A single Organization contains all of your merchant Advertisables. The overarching Parent Advertisable owns the Pixel. This Pixel is placed on your site and enables you to identify which merchant a page view belongs to. When you onboard a merchant, you will create a new Advertisable for them. If this setup doesn’t quite match your needs, one of these [Variations](#guides-marketplace-variants) might. To begin, you’ll start the initial setup: 1. [Organization Setup](#guides-marketplace-create-org) 2. [Pixel Setup](#guides-marketplace-pixel) After that, merchants will go through the following lifecycle: 1. [Onboarding a Merchant](#guides-marketplace-on-board) 2. [Campaign Management](#guides-marketplace-manage) 3. [Offboarding a Merchant](#guides-marketplace-off-board) ## Organization Setup After you successfully [created a user account](https://app.adroll.com/activate/register/) an Organization and Advertisable are automatically generated for you. This first Advertisable will serve as your Parent Advertisable. To create merchant accounts, therefore merchant-specific Advertisables, you’ll need your Organization EID. This can be found in the `eid` field returned by [`GET /api/v1/organization/get`](../crud-api/reference.md#get--api-v1-organization-get). ## Pixel Setup The Pixel is a snippet of JavaScript that you place on all of your webpages and can be configured by setting JavaScript variables. While most users place a Pixel for each account on the respective website, Marketplaces operate on a single site and therefore install one Pixel from the Parent Advertisable. Marketplace Mappings then allow differentiating between the individual merchants. To retrieve the Pixel using the API: 1. Call [`GET /api/v1/organization/get_advertisables`](../crud-api/reference.md#get--api-v1-organization-get_advertisables) to retrieve the list of Advertisables (there should be only one at this point). You’ll need the value of the `eid` field for the next step 2. Call [`GET /api/v1/advertisable/get_pixel`](../crud-api/reference.md#get--api-v1-advertisable-get_pixel) and specify the `advertisable` parameter. You should then place the JavaScript snippet on your website, right before the closing `` HTML tag. If each merchant has their own website, see the [Website per Merchant](#guides-marketplace-site-per-merchant) variant. ### Marketplace Mapping **Required** Since you are deploying a single pixel but running multiple Advertisables, we need to make sure that we can identify which merchant was visited. On merchant pages that are running marketing programs, please set the `adroll_shop_id` global JavaScript variable to your merchant identifier. This identifier should match the one you configure in the [Configure Marketplace Mapping](#guide-configure-marketplace-mapping) step. If you don’t specify the marketplace mapping, the visits will be attributed to the Parent Advertisable. For example: ```html ``` ### Enhanced Conversion Tracking **Optional** To enable revenue tracking or the tracking of custom values such as order IDs, user IDs, and more please review [Setting Up Enhanced Conversion Tracking](https://help.adroll.com/hc/en-us/articles/212629938-Setting-Up-Enhanced-Conversion-Tracking). For example: ```html ``` ### Cross-Device Targeting **Optional (Recommended)** To enhance cross-device targeting and attribution, set `adroll_email` and/or `adroll_user_identifier` when calling the Pixel. The value of `adroll_email` is the plaintext or MD5 hashed email address for the user (if you have one). The value of `adroll_user_identifier` is your custom identifier for the user (if you have one). For example: ```html ``` ## Onboarding a Merchant The following steps are needed to onboard a new merchant. ### Creating an Account First, you’ll create an Account for the merchant which establishes an Advertisable EID that will be used for subsequent API calls. Call [`POST /api/v1/advertisable/create`](../crud-api/reference.md#post--api-v1-advertisable-create) with the following parameters: - `organization` — EID for your Organization - `name` — Name of the merchant. This can be returned in the GraphQL Reporting API when generating reports - `country_code` - ISO-3166 2-Letter country code the Advertisable is registered in ### Configure Marketplace Mapping We need to establish a mapping between your internal ID for the merchant sent through the Pixel and the Advertisable you just created. Call [`POST /api/v1/marketplace/create`](../crud-api/reference.md#post--api-v1-marketplace-create) with the following parameters: - `source_advertisable` — EID for your Parent Advertisable - `dest_advertisable` — EID for the Merchant Advertisable that you created in the previous step - `shop_id` — Your internal ID for the merchant that matches what will be sent in the `adroll_shop_id` Pixel parameter ### Adding a Product Feed If you plan to run ads that contain product recommendations, namely [Dynamic Creative](https://www.adroll.com/platform/dynamic-ads), you’ll need to set up a product feed for the Merchant. If you don’t have a product feed in a standard format, we can work with you to configure our system to parse your feed. Call [`POST /api/v1/feed/autoconfigure`](../crud-api/reference.md#post--api-v1-feed-autoconfigure) with the feed URL we can access on an ongoing basis. We will automatically recognize the feed and configure the rest. We will periodically re-fetch each feed to update the product catalog. Ideally, you will host your feeds at a publicly accessible URL, but we can fetch them using (S)FTP if needed. See [Setup Product Feeds for Dynamic Creative](product-feed-setup.md#guides-product-feed) for additional information. ### Create Ads Depending on where you’ll run campaigns, review these guides for how to create ads: - [Creating Web Ads](create-web-ads.md#guides-web-ads) When creating ads, be sure to keep track of the EIDs returned. You’ll need to specify them when launching the campaign. ### Defining Audiences Audiences or segments represent a set of people who will be targeted or excluded from Campaigns. There are many different types of Audiences, please review [Creating Audiences](create-audiences.md#guide-audiences) to learn more about creating them. The most common audience type is based on the URLs visited. These URL based audiences can be used to target visitors to specific pages such as a cart or conversion page. ### Launching a Campaign Once you’ve successfully created your ads and audiences, you can create a Campaign by calling [`POST /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#post--activate-api-v2-campaign). By default, it will start spending right away, but you can also specify a start date. For example, this call will create a campaign with one AdGroup containing a single ad and audience: ```javascript { "advertisable_eid": "MY_ADVERTISABLE_EID", "name": "My First Campaign", "objective": "convert", "budget_settings": { "budget_type": "daily", "goal": 200.0 }, "adgroups": [ { "name": "My AdGroup", "kpi_metric": "CPC", "kpi_goal": 5.0, "ad_type": "static", "ads": [ { "eid": "MY_AD_EID", "status": "live" } ], "targeting_features": { "positive_segment_eids": [ "MY_SEGMENT_EID" ] } } ] } ``` ## Campaign Management Below you can find the day to day operations of a live merchant. ### Pause the Campaign Call [`PUT /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#put--activate-api-v2-campaign) to pause a campaign. The body of the request will look like: ```javascript { "status": "paused" } ``` ### Resume the Campaign Call [`PUT /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#put--activate-api-v2-campaign) to resume a campaign. The body of the request will look like: ```javascript { "status": "live" } ``` ### Generate Reports You can use the [GraphQL Reporting API](../graphql-reporting-api/index.md#graphql-reporting-api-index) to retrieve reporting metrics. Example query: ```graphql query AllAdvertisables { advertisable { byEIDs(eids: ["MY_ADVERTISABLE_EID"]) { eid name metrics(start: "2019-12-09", end: "2019-12-10") { byDate { date cost impressions clicks } } } } } ``` ## Offboarding a Merchant To offboard a merchant, you should: 1. [Pause the Campaign](#guides-marketplace-pause) 2. Stop attributing website visits to a merchant by not setting the `adroll_shop_id` Pixel parameter for the merchant ## Variations ### Website per Merchant For some marketplaces, each merchant has their own website on a different domain. If that’s your setup, you can place the Pixel attached to the merchant’s Advertisable on their website. You can also skip the Marketplace Mapping API call and setting the `adroll_shop_id` Pixel parameter. # oauth.html.md # Get Started with OAuth 2.0 [OAuth](https://en.wikipedia.org/wiki/OAuth) is a popular standard that allows users to give account access to third party developers without having to share their password. For a general overview of OAuth 2.0, check out the [official getting started guides](https://oauth.net/getting-started/). AdRoll’s OAuth implementation conforms to [**RFC 6749**](https://datatracker.ietf.org/doc/html/rfc6749.html) and uses Bearer Tokens ([**RFC 6750**](https://datatracker.ietf.org/doc/html/rfc6750.html)). ## Endpoints Authorization : `https://services.adroll.com/auth/authorize` Token : `https://services.adroll.com/auth/token` ## Supported Grant Types **Authorization Code Grant** (aka three-legged) : Most commonly used grant type. **Implicit Grant** : Used when your client secret cannot be kept secret (such as single-page web applications) **Resource Owner Password Credentials Grant** : Used when your cannot use web browser redirection. Use only when the previous two grant types doesn’t work for you. ## Supported Scopes At this time, we only support a single scope. We plan to implement fine-grained scopes in the future. `all` : Gives you access to all resources. This is the default if no scope is specified. ## Token Lifetime Access Tokens : Expire 24 hours after they are issued for all supported grant types Refresh Tokens : Expire a year after they are issued and **after they are used**. You’ll receive a new refresh token along with your new access token. ## Making Authenticated Requests Once you’ve received an access token, you can include it in your API calls using any of the methods defined in the Bearer Tokens specification ([**RFC 6750**](https://datatracker.ietf.org/doc/html/rfc6750.html)). ### Authorization Request Header You can use the Authorization header by specifying the Bearer scheme like this: ```text Authorization: Bearer {ACCESS_TOKEN} ``` ### Form-Encoded Body Parameter When making requests with the *application/x-www-form-urlencoded* content-type, you can specify the `access_token` as another parameter. For example: ```text access_token={ACCESS_TOKEN}&advertisable_eid=1C5489F116A0DA38618850 ``` ### URL Query Parameter You can include your access token in the query in the component of the URL. For example: ```text https://services.adroll.com/api/v1/organization/get?access_token={ACCESS_TOKEN} ``` ## Your First API Call There are many OAuth libraries that take the effort out of managing OAuth tokens. You should be able to plug the authorization and token URLs into your favorite OAuth 2.0 library. ### Python For Python, you can use the [requests-oauthlib](https://requests-oauthlib.readthedocs.io/en/latest/index.html) library. You can update the `authorization_base_url` and `token_url` variables in the [web app example](https://requests-oauthlib.readthedocs.io/en/latest/examples/real_world_example.html). ### Node.js For Node.js you can use the [Passport](http://www.passportjs.org/) middleware with the `passport-oauth2` strategy: ```javascript passport.use(new OAuth2Strategy({ authorizationURL: 'https://services.adroll.com/auth/authorize', tokenURL: 'https://services.adroll.com/auth/token', clientID: 'YOUR CLIENT ID', clientSecret: 'YOUR CLIENT SECRET', callbackURL: "http://example.com/callback" }, function(accessToken, refreshToken, profile, cb) { console.log(accessToken, refreshToken, profile); // TODO: Save accessToken and refreshToken for later use return cb(null, profile); } )); ``` ## Outline for a server to server integration 1. [Create your developer account](https://developers.nextroll.com/accounts/create). 2. Once logged in, go to *My Apps* and click on [Add New App](https://developers.nextroll.com/my-apps/new-app). Once you’ve created your application, click on the application to get your client id and client secret. 3. Your initial auth code request should look like below, replacing the `[CLIENT_ID]` and `[REDIRECT_URL]` placeholders with your appropriate values that you can copy from registered app: ```text https://services.adroll.com/auth/authorize?response_type=code&client_id=[CLIENT_ID]&redirect_uri=[REDIRECT_URL] ``` 1. Once you have replaced the placeholders, you can visit this URL in your web browser, it will redirect you to OAuth authorization page. It requires you to be signed into the dashboard, and you must click on the *Authorize* button to continue. 2. After you have authorized your NextRoll account and granted access to your app, you will be redirected to the `[REDIRECT_URL]` that you provided while registering the app and you will be provided an authorization access code in the query parameter of redirect. ```text https://www.your-redirect-url.com/?code=AIWUVOQA&scope=all ``` 1. Copy this temporary auth code, and you can use a REST client like POSTMan to test getting access tokens from the below endpoint. ```text POST https://services.adroll.com/auth/token grant_type=authorization_code& code=AUTH_CODE_HERE& redirect_uri=REDIRECT_URI& client_id=CLIENT_ID& client_secret=CLIENT_SECRET ``` 1. For the subsequent requests to renew access token after it expires in 24 hours, you should store and use your previous refresh token that you received along with the access token. The response will be a new access token along with a new refresh token that you can use next time. ```text POST https://services.adroll.com/auth/token grant_type=refresh_token& refresh_token=REFRESH_TOKEN_HERE& client_id=CLIENT_ID& client_secret=CLIENT_SECRET ``` # object-structure.html.md # Get to know NextRoll The NextRoll API has a simple object structure. It’s best introduced visually: ![Diagram of NextRoll object structure](crud-api/img/adroll-model-hierarchy.svg) ## Terminology Each *Organization* contains one or more Advertisables. An *Advertisable* represents “a thing that can be advertised” such as a business or a particular product or service. Agencies generally have an Advertisable per client. *Audiences* (aka *Segments*) represent sets of people who will be targeted or excluded from Campaigns. Example audience types include: Conversion, CRM, and URL. *Ads* are the creative that are shown to target Audiences. Example Ad types include: Static Web and Dynamic Web. *AdGroups* join together Audiences and Ads. The goal is to show targeted Audiences specific Ads. *Campaigns* consist of one or more AdGroups. Every *User* belongs to a single Organization. Depending on the user’s permissions, they may only have access to a subset of the Advertisables within that Organization. Currently we only offer full access to the account, we’re considering a read-only access in the future. Each object is referred to by an *EID* (External ID) which consists of alphanumeric characters (e.g. `48F9EA2E5ACAEE24EB766F`). # overview.html.md # Audience API Overview The Audience API allows you to create and update [CRM segments](https://help.adroll.com/hc/en-us/articles/211845528). #### NOTE The Audience API does not currently support all Segment Types. The Audience API currently supports [these segment types](#segment-types). For unsupported segment types, you can use the [CRUD API](../crud-api/index.md#crud-api-index). ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). ## Segment Types The Audience API currently supports the following segment types: `composite` : Composite segments apply a set intersection relationship between two or more segments `crm` : Segment users based on lists of emails `custom` : Segment users based on lists of partner user IDs synced `impression` : Segment users based on number of impressions shown `user_events` : Segment users based on user defined events `user_attributes` : Segment users based on user attributes defined by third party data `crosschannel_lal` : CrossChannel Lookalike Audiences gives you the ability to run campaigns seamlessly across inventory sources. See [Creating Audiences](../guides/create-audiences.md#guide-audiences) for examples of how to create these segments. ## Segment Response A JSON dictionary representing a segment. Some info may only be present depending on the request method and [segment type](#segment-types). | Key | Data Type | Description | Segment Types | |------------|-------------|-------------------------------------------------------------|-----------------| | segment_id | string | Identifier used to represent this segment | all | | type | string | See [Segment Types](#segment-types) | all | | name | string | Name given to the segment upon creation | all | | duration | long | Number of days (1 to 540) members are valid in this segment | custom | | emails | long | Number of emails in the crm segment | crm | | ids | long | Number of users in the custom segment | custom | **Example Response**: ```json { "result": "success", "segment": { "emails": 101, "name": "TestCRMSegment", "segment_id": "TESTSEGMENT1234567890X", "type": "crm" } } ``` ## User Record A user record is a JSON dictionary containing an identifier for an individual user. | Key | Data Type | Segment Type | Description | Required | |-------|-------------|----------------|----------------------------------------------------------------------------|------------| | email | string | crm | Email [RFC 5322](https://tools.ietf.org/html/rfc5322#section-3.4) standard | Y | | id | string | custom | Unique partner user identifier | Y | ### User Record examples `email` (`crm` segment type): ```json { "email": "first.last@host.com" } ``` `id` (`custom` segment type): ```javascript { "id": "user_identifier_1234" } ``` Optionally, a timestamp can be added to indicate when a user entered a segment (the default timestamp is “now”). Valid timestamps can be up to 540 days old or up to 7 days in the future: ```javascript { "id": "user_identifier_1234", "ts": 1455342342 } ``` # overview.html.md # Automated Campaigns API Overview #### WARNING The Automated Campaigns API will be retired April 2025. Automated Campaigns is a campaign optimization solution. Campaigns are grouped in a strategy with a single goal and a shared budget which is shifted between campaigns to optimize performance. ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). ## Service Walkthrough - Advertisable - an advertising profile representing a brand (e.g., “Bob’s Pets”) : - Strategy - Automated Campaigns groups your budget, goal and campaigns under one object called a Strategy : - Campaigns 1..N - Campaigns are automatically created according to a template. These campaigns are continuously optimized towards the best performance for your budget. The strategy creation API endpoint handles creating the Strategy and Campaigns for your Advertisable. # overview.html.md # CRUD API Overview The CRUD API is implemented as JSON over HTTP using all four verbs ([GET](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.1), [POST](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.3), [PUT](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.4), [DELETE](https://www.rfc-editor.org/rfc/rfc7231#section-4.3.5)). Each resource, like Advertisers, Campaigns, Ads, has its own URL and is manipulated in isolation. In other words, we’ve tried to make the API follow the REST principles as much as possible. ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). ## Getting Started The [CRUD API Usage](api-usage.md#api-usage) page shows general API concepts. ## Service Walkthrough [Get to know NextRoll](../guides/object-structure.md#guides-object-structure) # overview.html.md # Geotargeting API Overview The Geotargeting API allows you to search for the EIDs that are used when setting geotargets on your campaigns. ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). # overview.html.md # GraphQL Reporting API Overview The GraphQL Reporting API is the place to retrieve all of your reporting data. Instead of making multiple API calls, you can retrieve everything you need in a single request. Want to query multiple Advertisables at once? That’s possible with the GraphQL Reporting API. The GraphQL Reporting API replaces the following API methods: - `/report` endpoints of the [CRUD API](../crud-api/index.md#crud-api-index) - `/report` and `/metrics` endpoints of the [Prospecting API](../prospecting-api/index.md#prospecting-api-index) ## What is GraphQL? [GraphQL](https://graphql.org/) is a query language for APIs. The benefits of GraphQL include: - Retrieve only the data you need - Access multiple resources at once - Evolve without API versions If you’d like to learn the basics of GraphQL, we recommend reading the official [Introduction to GraphQL](https://graphql.org/learn/). ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). ## Getting Started To make an API call, you’ll need to write a GraphQL query. Once you’ve written the query, you’ll package that query inside a JSON object. Then you’ll then send that JSON to [`POST /reporting/api/v1/query`](reference.md#post--reporting-api-v1-query). GraphQL uses a single endpoint for all requests. Alternatively, you could use a [GraphQL client library](https://graphql.org/code/#graphql-clients). When using a client library, make sure you configure it to use either [Personal Access Tokens](../guides/get-started.md#guide-get-started-pat) or [OAuth](../guides/oauth.md#guide-oauth). ## Your First Query The following is GraphQL query retrieves the name and EID of every Advertisable you have access to: ```graphql query MyFirstQuery { advertisable { forUser { eid name campaigns { eid name metrics(start: "2017-06-01", end: "2017-06-30") { summary { impressions clicks cpc cpa } } } } } } ``` This becomes the following JSON payload ```javascript { "query": "query MyFirstQuery { advertisable { forUser { eid name campaigns { eid name metrics(start: \"2017-06-01\", end: \"2017-06-30\") { summary { impressions clicks cpc cpa } } } } } }" } ``` Which can then be sent using: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "query": "query MyFirstQuery { advertisable { forUser { eid name campaigns { eid name metrics(start: \"2017-06-01\", end: \"2017-06-30\") { summary { impressions clicks cpc cpa } } } } } }" }' \ 'https://services.adroll.com/reporting/api/v1/query?apikey=MYAPIKEY' ``` Which gives us our Advertisables: ```javascript { "(~˘▾˘)~": "2017.05.24-1/req4561", "request": "req4561", "version": "2017.05.24-1", "data": { "organization": { "current": { "advertisables": [ { "eid": "B0167F8263EE64DEEEC533", "name": "Test advertisable", "metrics": { "summary": { "clicks": 100, "cpa": 1, "cpc": 1, "impressions": 200 } } } ] } } } } ``` #### NOTE You can experiment with building queries using [GraphiQL](https://app.adroll.com/reporting/graphiql) ## Error Handling The GraphQL Reporting API uses a custom error structure that differs from standard GraphQL error handling. Understanding this structure is essential for building robust integrations. ### Error Response Structure When errors occur, the API response includes error information at multiple levels: - **Top-level**: `has_errors` flag and `errors` array with detailed error messages - **Object-level**: `has_errors` flag and `errors` array containing error IDs - **Parent objects**: Propagate `has_errors: true` up the object hierarchy Error IDs in object-level `errors` arrays reference detailed error messages in the top-level `errors` array. These IDs are unique per request, and multiple objects can reference the same error ID. ### Basic Error Handling The simplest way to handle errors is to check for `has_errors: true` in the top-level response: ```python response = make_graphql_request(query) if response.get('has_errors'): # Log errors and retry later print(f"Request {response['request']} failed with errors:") for error in response.get('errors', []): print(f" {error['id']}: {error['msg']}") else: # Process successful response process_data(response['data']) ``` This approach prevents displaying a mix of correct and incomplete data in your application. ### Example Error Response Here’s an example response with an error: ```json { "(˘▾˘)": "2018.09.11-1/req46209 (production)", "data": { "advertisable": { "byEID": { "campaigns": [], "eid": "", "name": "" }, "errors": [ "E001" ], "has_errors": true }, "has_errors": true }, "errors": [ { "id": "E001", "msg": "HTTP request failed" } ], "has_errors": true, "request": "req46209", "version": "2018.09.11-1" } ``` In this example: 1. The top-level `has_errors` is `true` 2. The `advertisable` object has `has_errors: true` and references error `E001` 3. The top-level `errors` array contains the detailed message for `E001` 4. The `request` field (`req46209`) can be used for support investigations ### Error Propagation When any nested object encounters an error: 1. The object sets `has_errors: true` and includes error IDs in its `errors` array 2. All parent objects up to the root also set `has_errors: true` 3. The root `errors` array contains the detailed error messages This allows you to: - Quickly check the top level to see if any errors occurred - Drill down to specific objects to identify which ones failed - Access detailed error messages from the top-level `errors` array ### Troubleshooting If you encounter errors and need assistance: 1. **Save the full response**: Include both the query and the complete response 2. **Note the request ID**: The `request` field (e.g., `req46209`) helps investigate issues 3. **Check error messages**: The `msg` field in the `errors` array provides details 4. **Contact support**: Provide the request ID and error details for investigation ### Best Practices - **Always check** `has_errors` before processing data - **Log error details** including the request ID for debugging - **Implement retry logic** for transient errors - **Handle partial data carefully**: When `has_errors` is `true`, either handle the error appropriately or discard the results entirely to avoid displaying incomplete data # overview.html.md # Prospecting API Overview AdRoll Prospecting helps attract new audiences who are likely to convert and become customers. This is done by targeting digital profiles similar to already defined segments for AdRoll Retargeting. ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). ## Getting Started Before using the prospecting API, you must have created your organization(s) and advertisable(s) using the [CRUD API](../crud-api/index.md#crud-api-index). Once you’ve created your organization(s) and advertisable(s), you’re ready to start creating prospecting objects. If you’d like to jump directly to the complete reference of methods, go to the [Prospecting API Reference](reference.md#prospecting-reference) page. Otherwise, you can check our [Create Your First Prospecting Campaign](../guides/create-prospecting-campaign.md#guide-create-prospecting-campaign) page to get you started on creating your first prospecting campaign. ## Service Walkthrough Here’s an overview of the available objects. Remember that this hierarchy lives under an advertisable: - Campaign - a prospecting campaign associated with a date range and a budget (e.g., “Prospect Holiday Blitz”) : - AdGroup 1 - used to pair a set of ads with a set of prospecting criteria (e.g., “Prospecting Holiday Blitz AG1”) : - Selected Ads - Selected Audience - defines the set of potential new users based on existing retargeting segments - Selected GeoTargets - AdGroup … - AdGroup N # overview.html.md # Server-to-Server (S2S) API Overview #### NOTE The S2S event API is under active development. Although the API is generally stable, it may change. Event processing is not yet fully complete. [Send us a message](../support.md#support) if you have questions. ## Introduction AdRoll’s **Server-to-Server (S2S) Event API** lets you send user events and conversions directly from your servers. The S2S Event API complements the AdRoll pixel and Mobile Measurement Partner (MMP) integrations. ## Data flow Here’s how the S2S event API integrates with your user journey starting from an ad click: 1. **The visitor clicks an ad.** 2. **AdRoll redirects visitors to your landing page,** appending a unique click ID (`adct`) to the URL as a query parameter. 3. **You capture and store visitor identifiers**, such as the click ID and first-party cookie, using one of the available methods detailed below. 4. **Upon conversion (e.g., purchase or sign-up),** your server sends an S2S API call to AdRoll, reporting the conversion and the relevant user identifiers. Here’s how the S2S event API integrates with your user journey, starting from a page visit: 1. **A visitor lands on your website.** 2. **You capture and store a visitor identifier.** A first-party cookie can be retrieved from the AdRoll pixel or generated using the sample code we provide. 3. **Upon conversion (e.g., purchase or sign-up),** your server makes an API call to AdRoll, reporting the conversion using the relevant user identifiers. ## User identifiers You can use one or more of the following methods to identify visitors. By providing multiple identifiers for each event, AdRoll is more likely to match your events to marketing events. At minimum, every event must include at least one of these identifiers: `first_party_cookie` or `adct`. ### Click ID (`adct`) AdRoll automatically appends a **unique click ID** to your landing page URL when a user clicks on an ad. The query parameter name is `adct`. Capture this parameter from the URL and store it for future API calls. #### NOTE If you use a third-party click tracker in your ad click URLs, ensure you pass the `adct` to the final landing page URL. Example: ```default https://example.com?adct=click123 ``` ### First-Party Cookie First-party cookies are placed on browsers and do not have the same restrictions as third-party cookies. This behavior makes first-party cookies more stable than third-party cookies. There are multiple ways of retrieving first-party cookies to use for events: - **Option 1**: [Fetch first-party cookie](#s2s-api-id-fpc-fetch) - **Option 2**: [Generate a first-party cookie](#s2s-api-id-fpc-generate) #### Fetch first-party cookie You can fetch the first-party cookie directly from the AdRoll Pixel using JavaScript. The following code shows an example callback: ```javascript // Fetch first-party cookie from AdRoll pixel adroll.get_cookie(function callback (result) { // `result` is the cookie value as a string }); ``` #### Generate a first-party cookie You can generate a first-party cookie if you cannot place the AdRoll Pixel on your site. The generated cookie should be **valid for one year**. The [AdRoll/server-to-server GitHub repository](https://github.com/AdRoll/server-to-server) contains code examples in several languages. ### Mobile device ID For events originating from mobile apps, include the device’s advertising identifier. This could be the Apple Identifier for Advertisers (IDFA) for iOS devices or the Google Advertising ID (GAID) for Android devices. ### Email When available, you can provide cleartext or hashed emails. If hashing emails, you can specify multiple hashes to increase the chances of matching existing identities. When hashing, use a consistent format: - `email_sha256`: `SHA-256(LOWERCASE(email))` - `email_md5`: `MD5(LOWERCASE(email))` ### Custom user ID A user ID is a unique identifier you assign and manage for each user within your system. This identifier should be consistent and stable for a particular user across all their interactions with your website or app. Using a user ID provides a consistent and reliable way to track individual user behavior across sessions and devices, enhancing your ability to understand and engage with your customers over time. # overview.html.md # Site Traffic Revealer Overview The Site Traffic Revealer enables the firmographic identification of a site visitor in real-time, across a variety of firmographic attributes. The firmographic data can be used for customisation or personalization of the web page, generating analytics, or use with other applications in your organization. Additionally, the Site Traffic Revealer allows you to leverage AdRoll ABM account-level data in other platforms, including [Account Lists, Account Groups](https://help.rollworks.com/hc/en-us/articles/4415491926157), and [Journey Stages](https://help.rollworks.com/hc/en-us/articles/4415495461261). This means you can use AdRoll ABM’ segmentation capabilities in other platforms as well as for analytics purposes. ## Setup For details on how to enable the Site Traffic Revealer for your account, please see the [AdRoll ABM Help Center](https://help.rollworks.com/hc/en-us/articles/360048160372). For questions about access, contact your Account Manager or AdRoll ABM support for additional assistance. Once your account has been enabled with the Site Traffic Revealer, you’ll have access to some additional data via JavaScript everywhere your AdRoll ABM pixel is placed. You must have a properly configured and installed [AdRoll ABM pixel](https://help.rollworks.com/hc/en-us/articles/360036380891) on your website. The visitor’s browser must also allow third-party cookies for this to work most effectively. # overview.html.md # Universal Campaigns API Overview #### WARNING The Universal Campaigns API will be retired April 2025. Universal Campaigns are campaigns that automatically optimize your budget across inventory sources, currently web retargeting. Instead of creating and managing campaigns for Web, a Universal Campaign will automatically create and manage campaigns across those inventory sources. The shared budget will be allocated to different sources to optimize performance. ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). ## Service Walkthrough Universal Campaigns share a similar structure to CRUD and Prospecting API campaigns. You can create a campaign, then create AdGroups within the campaign. ## Migration from Automated Campaigns API You can think of the Universal Campaign API as a rebranded v2 of the Automated Campaigns API. Instead of creating a strategy, you create a Universal Campaign. Strategies are now called Universal Campaigns. Campaign Groups in a Strategy are called Universal AdGroups. # overview.html.md # User Lists API Overview The User Lists API allows you to retrieve the size of your audiences. ## Authentication For details on how to authenticate, refer to [Get Started with the NextRoll API](../guides/get-started.md#guide-get-started). # pixel-javascript-api.html.md # Pixel JavaScript API The AdRoll Pixel provides a JavaScript API that allows you to track custom events and pass product information directly from your website. This complements the automatic page view tracking that the pixel provides by default. > ##### On this page > > * [Overview](#overview) > * [Prerequisites](#prerequisites) > * [Tracking Events](#tracking-events) > * [Basic Event Tracking](#basic-event-tracking) > * [Event with Product Data](#event-with-product-data) > * [Supported Events](#supported-events) > * [B2C Events](#b2c-events) > * [B2B/ABM Events](#b2b-abm-events) > * [Event Attributes](#event-attributes) > * [Example: E-commerce Tracking](#example-e-commerce-tracking) > * [Product Page View](#product-page-view) > * [Add to Cart](#add-to-cart) > * [Purchase Conversion](#purchase-conversion) > * [Retrieving the First-Party Cookie](#retrieving-the-first-party-cookie) > * [Best Practices](#best-practices) > * [Use Supported Event Names](#use-supported-event-names) > * [Product IDs](#product-ids) > * [Test Your Implementation](#test-your-implementation) > * [Related Resources](#related-resources) ## Overview The Pixel v2 JavaScript API is available through the global `adroll` object. You can use this API to: - Track custom user events - Pass product information for dynamic ads - Capture conversion data with custom attributes The API is designed to work alongside the standard pixel installation and does not require any additional setup beyond placing the pixel code on your site. ## Prerequisites Before using the JavaScript API, ensure you have: 1. Installed the AdRoll Pixel on your website header 2. Verified the pixel is firing correctly using [PixelPal](https://help.adroll.com/hc/en-us/articles/360040010352) or the [Pixel Assistant](https://help.adroll.com/hc/en-us/articles/8261197025165) ## Tracking Events Use the `track()` method to send custom events to AdRoll. This method allows you to pass product attributes like price, quantity, and category along with the event. ### Basic Event Tracking ```javascript adroll.track("pageView"); ``` ### Event with Product Data ```javascript adroll.track("addToCart", { product_id: "SKU-12345", product_group: "electronics", price: 99.99, quantity: 1, category: "smartphones" }); ``` ## Supported Events The following event names are supported and recommended for use with User Event Audiences: ### B2C Events `pageView` : General page view event `homeView` : Homepage view `productSearch` : Product search performed `addToCart` : Product added to shopping cart `purchase` : Purchase completed ### B2B/ABM Events `highValuePage` : High-value page visit (e.g., pricing page, key feature page) `gatedContent` : Gated content accessed (e.g., whitepaper, ebook) `demoRequest` : Product demonstration requested `signupPlan` : Signup for a specific plan or subscription `signupTrial` : Free trial signup `contactSales` : Contact initiated with sales team `liveChat` : Live chat session engaged `formFill` : Form completed (general forms not covered by specific events) ## Event Attributes When tracking events, you can include the following product attributes: `product_id` : Unique identifier for the product (e.g., SKU) `product_group` : Product category or group identifier `product_action` : Action performed on the product `category` : Product category name `price` : Product price (numeric value) `quantity` : Quantity of the product (numeric value) ## Example: E-commerce Tracking ### Product Page View ```javascript adroll.track("pageView", { product_id: "PROD-789", product_group: "apparel", category: "t-shirts", price: 24.99 }); ``` ### Add to Cart ```javascript adroll.track("addToCart", { product_id: "PROD-789", product_group: "apparel", category: "t-shirts", price: 24.99, quantity: 2 }); ``` ### Purchase Conversion ```javascript adroll.track("purchase", { product_id: "PROD-789", product_group: "apparel", category: "t-shirts", price: 24.99, quantity: 2 }); ``` ## Retrieving the First-Party Cookie You can retrieve the AdRoll first-party cookie value using a callback function. This is useful for server-to-server event tracking. ```javascript adroll.get_first_party_cookie(function(cookie) { console.log("AdRoll first-party cookie:", cookie); // Send cookie to your server for S2S tracking }); ``` For more information on using the first-party cookie with server-to-server events, see [Server-to-Server (S2S) API Overview](../server-to-server-api/overview.md#s2s-api-overview). ## Best Practices ### Use Supported Event Names Always use the supported event names (`pageView`, `homeView`, `productSearch`, `addToCart`, `purchase`, etc.) when creating User Event Audiences. This ensures your audiences are properly configured. ### Product IDs Use consistent product identifiers across all events. This allows AdRoll to properly track product engagement and power dynamic ad campaigns. ### Test Your Implementation Use [PixelPal](https://help.adroll.com/hc/en-us/articles/360040010352) to verify that your custom events are firing correctly and that product data is being captured. ## Related Resources - [Server-to-Server (S2S) API Overview](../server-to-server-api/overview.md#s2s-api-overview) - Server-to-Server Event API - [Pixel Installation Guide](https://help.adroll.com/hc/en-us/articles/360040116252) - [Set Up Your Pixel for Dynamic Ads](https://help.adroll.com/hc/en-us/articles/360024510552) - [PixelPal Chrome Extension](https://help.adroll.com/hc/en-us/articles/360040010352) # product-feed-setup.html.md # Setup Product Feeds for Dynamic Creative #### NOTE This document is intended for setting up multiple feeds via API. If you’re intending to implement a single feed, please contact your account manager for assistance. Dynamic Creative enables personalized ads across devices on the Web. Dynamic ads can feature previously-viewed, recommended, and top products. Product details are populated via product feeds you host on your server. This guide shows you how to set up and configure a product feed using the NextRoll API. To better familiarize yourself with Dynamic Creative, you should also read the [getting started guide](https://help.adroll.com/hc/en-us/articles/216673657) on the Help Center. The API uses the following data model: - Each Advertisable has one Dynamic Configuration - Each Dynamic Configuration has one or more Feed Configurations - Each Feed Configuration has four or more Parser Configurations (i.e. one per field in the feed) Visually this looks like: ![Diagram of AdRoll product feed model](guides/img/product-feed-model.svg) To properly serve Dynamic Creative, there are two parts: 1. [Register product feeds](#register-product-feeds) 2. [Capture product views and actions](#capture-product-views) Additionally, we provide methods to [verify your product feeds](#verify-product-feeds). ## Register product feeds First, you must register one or more product feeds. Product feeds must be a public URL that we can periodically crawl. The feed can be in any of the following formats: CSV, JSON, or XML. At a minimum the feed must contain the following details for each product: - Product ID - Product title - Destination URL - Image URL If you already have a feed of your products, you shouldn’t need to create a feed just for us. If your feed is in a standard format you can use the [automatic setup](#auto-feed-setup). If your feed is a custom format, you should follow the [manual setup](#manual-feed-setup) instructions. #### NOTE If you have multiple product feeds, repeat the setup process for each feed. The products in the feed will be combined into one catalog. If you have multiple feeds with different purposes (i.e. product groups, language specific, region specific), [send us a message](../support.md#support) and we should be able to accommodate you. ### Automatic Setup If your product feed uses the Google Products Feed (aka Google Base) format, you can use the [`POST /api/v1/product_feeds/autoconfigure`](../crud-api/reference.md#post--api-v1-product_feeds-autoconfigure) method to automatically set up and configure your feed. ### Manual Setup If you can’t use the [automatic setup](auto-feed-setup) for your feed, then you’ll need to manually configure a feed. #### Add your first feed configuration To enable your Advertisable’s dynamic configuration and add your first product feed, make a call to [`POST /api/v1/dynamic_configuration/enable`](../crud-api/reference.md#post--api-v1-dynamic_configuration-enable). **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -d advertisable=8597013E81481B0FE28772 \ -d "url=https://example.com/feed.json" \ https://services.adroll.com/api/v1/dynamic_configuration/enable?apikey=MYAPIKEY ``` **Response**: ```javascript { "results": { "feedconfig_eid": "AD45655AFE435A6C46F696" } } ``` #### Edit your feed configuration Once you’ve added your first feed configuration you can configure its values using [`PUT /api/v1/product_feeds/edit_feed_config`](../crud-api/reference.md#put--api-v1-product_feeds-edit_feed_config). See [`PUT /api/v1/product_feeds/add_feed_config`](../crud-api/reference.md#put--api-v1-product_feeds-add_feed_config) for the list of fields you can edit. For example, if your CSV file uses a special delimiter or escape character, you can update the setting: **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -d feed_config=AD45655AFE435A6C46F696 \ -d "delimiter=," \ https://services.adroll.com/api/v1/product_feeds/edit_feed_config?apikey=MYAPIKEY ``` **Response**: ```javascript { "results": { "escapechar": null, "encoding": null, "locale": "en_US", "parser_configs": [], "id": "AD45655AFE435A6C46F696", "skipfirstrow": null, "feedtype": null, "feed_url": "https://example.com/feed.json", "tag_name": "product", "quotechar": null, "product_group": null, "schedule": null, "follow_next_links": false, "feed_url_request_params": null, "feed_url_request_type": null, "skipinitialspace": null, "prices_in_locale_format": false, "feed_last_uploaded": null, "delimiter": ",", "last_feed_parse_eid": "", "parent_feed_id": null, "max_requests_per_second": null } } ``` #### Add Parser Configurations Once you’ve registered a product feed, you need to tell us which fields to parse. This is done with the [`POST /api/v1/product_feeds/set_parser_configs`](../crud-api/reference.md#post--api-v1-product_feeds-set_parser_configs) method. You’ll need to specify a parser configuration for each field. Since we require a minimum number of fields, you’ll have to configure at least four parser configurations. Depending on the Dynamic Creative template you’re using, you may need to configure additional fields. The required fields are: `id`, `title`, `image`, `url`, and `price`. - `feed_config` (string) - EID of the Feed Configuration object - `parser_configs` (string) - Stringified JSON object defining configuration for each field The `parser_configs` parameter consists of an object of fields names as keys and field specification objects consisting of the following attributes: - `is_required` (boolean) - True if this field is required for the parsed product to be valid - `path` (string) - Column number (CSV), field name (JSON), or tag name (XML) for the field - `attribute` (string) - Attribute on the tag to use (i.e. text) - `regular_expression` (string) - Regular expression to search the field - `regular_expression_replace` (string) - Replacement string to apply to the field - `type` (string) - How to parse the field. Either: `text`, `image`, `price` Example `parser_configs` object: ```javascript { "id": { "path": "id", "type": "text", "attribute": "text", "is_required": "true" }, "title": { "path": "title", "type": "text", "attribute": "text", "is_required": "true" }, "image": { "path": "image", "type": "image", "attribute": "text", "is_required": "true" }, "url": { "path": "url", "type": "text", "attribute": "text", "is_required": "true" }, "price": { "path": "price", "type": "price", "attribute": "text", "is_required": "true" } } ``` **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ -d feed_config=AD45655AFE435A6C46F696 \ -d "parser_configs={}" \ https://services.adroll.com/api/v1/product_feeds/set_parser_configs?apikey=MYAPIKEY ``` **Response**: ```javascript { "results": true } ``` ## Capture product views and actions When users browse your site, you must tell us which products they are viewing and what actions they perform. This is done by [passing product IDs and actions to the pixel](https://help.adroll.com/hc/en-us/articles/360024510552). For example, to specify that a product was viewed set the `product_id` property in the `adroll_custom_data` global variable: ```javascript adroll_custom_data = { "product_id":"YOUR_PRODUCT_ID" }; ``` You can specify product actions by setting the `product_action` property in `adroll_custom_data` to either `AddToCart` or `Purchased`. For example, to specify that a product was added to a cart: ```javascript adroll_custom_data = { "product_id":"YOUR_PRODUCT_ID", "product_action": "AddToCart" }; ``` ## Verify product feed set up There are several API methods you can use to validate your configuration: [`GET /api/v1/product_feeds/feed_status`](../crud-api/reference.md#get--api-v1-product_feeds-feed_status) : Check the current parse status of your feeds [`GET /api/v1/product_feeds/match_rate`](../crud-api/reference.md#get--api-v1-product_feeds-match_rate) : Check the match rate of your product page views to products in your feed [`GET /api/v1/product_feeds/feed_downloadable`](../crud-api/reference.md#get--api-v1-product_feeds-feed_downloadable) : Check if we are able to fetch and download a product feed URL [`GET /api/v1/product_feeds/parse_preview`](../crud-api/reference.md#get--api-v1-product_feeds-parse_preview) : Preview the results of a given parser configuration to the content of a feed # product-sets.html.md # Manage Product Sets Product Sets enable you to target a subset of your [product catalog](https://help.adroll.com/hc/en-us/articles/216673657-Set-Up-Your-Product-Feed) in web campaigns. To use Product Sets, you’ll first need to: - Set up a product feed - Create a product set with a subset of the products in your catalog - Attach a product set to your campaign’s AdGroup ## Product Sets ### Create a Product Set To create a product set, you’ll need to upload a CSV file containing one product ID per line. The file should be compressed using gzip. The product IDs must be available in the product feed. ```text PRODUCT_1 PRODUCT_4 PRODUCT_6 PRODUCT_3 ``` Once you have the file to upload, you can make a request to `POST /api/v1/product_sets/create`. You must specify the Advertisable EID that will own the product set and a name for the product set. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --form 'name="Name of the Product Set"' \ --form 'file=@"/Users/user/Desktop/gzipped-file.csv.gz"' \ 'https://services.adroll.com/api/v1/product_sets/create?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID' ``` ### Edit a Product Set You can update the name and the file for the product set by calling `PUT /api/v1/product_sets/edit`. When you upload a new file, the file replaces the current list of product IDs in the product set. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --form 'name="Name of the Product Set"' \ --form 'file=@"/Users/user/Desktop/gzipped-file.csv.gz"' \ 'https://services.adroll.com/api/v1/product_sets/edit?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID&product_set=YOUR_PRODUCT_SET_EID' ``` ### List Product Sets for an Advertisable You can retrieve the Product Sets that the provided Advertisable EID owns by calling `GET /api/v1/product_sets/list`. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ 'https://services.adroll.com/api/v1/product_sets/list?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID' ``` ### Get a Product Set You can retrieve a specific Product Set that an Advertisable owns by calling `GET /api/v1/product_sets/get`. You must specify both the product set and the Advertisable EID. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ 'https://services.adroll.com/api/v1/product_sets/get?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID&product_set=YOUR_PRODUCT_SET_EID' ``` ### Delete a Product Set You can delete a product set by calling `DELETE /api/v1/product_sets/delete`. You must specify both the product set and the Advertisable EID. The request returns `true` on success. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --request DELETE \ 'https://services.adroll.com/api/v1/product_sets/delete?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID&product_set=YOUR_PRODUCT_SET_EID' ``` ## Use Product Sets with Web Retargeting campaigns To use Product Sets with web retargeting campaigns, you attach the product set to the campaign’s AdGroup. Either when creating the AdGroup or editing it after creation. An AdGroup can only have one Product Set attached. ### Attach Product Sets to an AdGroup If you don’t have an AdGroup yet, you can attach a product set when creating the AdGroup when calling [`POST /api/v1/adgroup/create`](../crud-api/reference.md#post--api-v1-adgroup-create). Specify the Product Set’s EID in the `product_set` parameter. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --form 'campaign="YOUR_CAMPAIGN"' \ --form 'product_set="YOUR_PRODUCT_SET_EID"' \ --form 'name="Name of the AdGroup"' 'https://services.adroll.com/api/v1/adgroup/create?apikey=MYAPIKEY' ``` ### Edit an AdGroup with a Product Set attached If you already have an AdGroup that you want to use your Product Set with, you can use the `PUT /api/v1/adgroup/edit` endpoint to attach the product set. Specify the Product Set’s EID in the `product_set` parameter. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --form 'product_set="YOUR_PRODUCT_SET_EID"' \ 'https://services.adroll.com/api/v1/adgroup/edit?apikey=MYAPIKEY&adgroup=YOUR_ADGROUP' ``` ### Remove a Product Set from an AdGroup You can remove a Product Set from an AdGroup by calling `PUT /api/v1/adgroup/edit` and setting product_set to an empty string. ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ --form 'product_set=""' \ 'https://services.adroll.com/api/v1/adgroup/edit?apikey=MYAPIKEY&adgroup=YOUR_ADGROUP' ``` # publishers.html.md # Publishers Guide This guide is intended for publishers that have significant amount of audience data and are interested in a scalable way to activate their audiences. In this guide, you’ll learn how to use the NextRoll API to easily create audiences and enable your customers to use them in their own campaigns. ## Getting to know the NextRoll API Before you start building your integration, it helps to have a basic understanding of the NextRoll API: [Get Started with the NextRoll API](get-started.md#guide-get-started) will help you make your first API call. [Get to know NextRoll](object-structure.md#guides-object-structure) provides an overview of the object structure and defines common terminology. ## Overview A single Organization contains all of your customer’s accounts, also known as Advertisables. When onboarding a customer, you will create a new Advertisable for them. To begin, you’ll start the initial setup: 1. [Organization Setup](#guides-publishers-create-org) 2. [Pixel Setup](#guides-publishers-pixel) After that, your customers will go through the following lifecycle: 1. [Onboarding a Customer](#guides-publishers-on-board) 2. [Campaign Management](#guides-publishers-manage) 3. [Offboarding a Customer](#guides-publishers-off-board) ## Organization Setup After you successfully [create a user account](https://app.adroll.com/onboarding/register) an Organization and Advertisable are automatically generated for you. To create accounts for your customers, therefore generate customer-specific Advertisables, you’ll need your Organization EID. This can be found in the `eid` field returned by [`GET /api/v1/organization/get`](../crud-api/reference.md#get--api-v1-organization-get). ## Pixel Setup The Pixel is a snippet of JavaScript that you place on all of your webpages and can be configured by setting JavaScript variables. You can retrieve the Pixel using the API call [`GET /api/v1/advertisable/get_pixel`](../crud-api/reference.md#get--api-v1-advertisable-get_pixel) and specify the `advertisable` parameter using the EID returned when creating the Advertisable. The JavaScript snippet should be placed right before the closing `` HTML tag. ### Enhanced Conversion Tracking **Optional** To enable revenue tracking or the tracking of custom values such as order IDs, user IDs, and more please review [Setting Up Enhanced Conversion Tracking](https://help.adroll.com/hc/en-us/articles/212629938-Setting-Up-Enhanced-Conversion-Tracking). For example: ```html ``` See also [setting up enhanced conversion tracking](https://help.adroll.com/hc/en-us/articles/212629938-Setting-Up-Enhanced-Conversion-Tracking). ### Cross-Device Targeting **Optional (Recommended)** To enhance cross-device targeting and attribution, set `adroll_email` and/or `adroll_user_identifier` when calling the Pixel. The value of `adroll_email` is the plaintext or MD5 hashed email address for the user (if you have one). The value of `adroll_user_identifier` is your custom identifier for the user (if you have one). For example: ```html ``` ## Onboarding a Customer The following steps are needed to onboard a new customer. ### Define Audiences Audiences or segments represent a set of people who will be targeted or excluded from Campaigns. There are many different types of Audiences, please review [Creating Audiences](create-audiences.md#guide-audiences) to learn more about creating them. The most common audience type is based on the URLs visited. These URL based audiences can be used to target visitors to specific pages such as a cart or conversion page. ### Creating an Advertisable First, you’ll create an Advertisable for the customer. This establishes an Advertisable EID that will be used for subsequent API calls. Call [`POST /api/v1/advertisable/create`](../crud-api/reference.md#post--api-v1-advertisable-create) with the following parameters: - `organization` — EID for your Organization - `name` — Name of the customer. This can be returned in the GraphQL Reporting API when generating reports - `country_code` - ISO-3166 2-Letter country code the Advertisable is registered in ### Create Ads Depending on where you’ll run campaigns, review these guides for how to create ads: - [Creating Web Ads](create-web-ads.md#guides-web-ads) When creating ads, be sure to keep track of the EIDs returned. You’ll need to specify them when launching the campaign. ### Launching a Campaign Once you’ve successfully created your ads and audiences, you can create a Campaign by calling [`POST /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#post--activate-api-v2-campaign). By default, it will start spending right away, but you can also specify a start date. For example, this campaign will create a campaign with one AdGroup containing a single ad and audience: ```javascript { "advertisable_eid": "MY_ADVERTISABLE_EID", "name": "My First Campaign", "objective": "convert", "budget_settings": { "budget_type": "daily", "goal": 200.0 }, "adgroups": [ { "name": "My AdGroup", "kpi_metric": "CPC", "kpi_goal": 5.0, "ad_type": "static", "ads": [ { "eid": "MY_AD_EID", "status": "live" } ], "targeting_features": { "positive_segment_eids": [ "MY_SEGMENT_EID" ] } } ] } ``` ## Campaign Management Below you can find the day to day operations of a live customer. ### Pause the Campaign Call [`PUT /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#put--activate-api-v2-campaign) to pause a campaign. The body of the request will look like: ```javascript { "status": "paused" } ``` ### Resume the Campaign Call [`PUT /activate/api/v2/campaign`](../universal-campaigns-api/reference.md#put--activate-api-v2-campaign) to resume a campaign. The body of the request will look like: ```javascript { "status": "live" } ``` ### Generate Reports You can use the [GraphQL Reporting API](../graphql-reporting-api/index.md#graphql-reporting-api-index) to retrieve campaign metrics. Example query: ```graphql query AllAdvertisables { advertisable { byEIDs(eids: ["MY_ADVERTISABLE_EID"]) { eid name metrics(start: "2019-12-09", end: "2019-12-10") { byDate { date cost impressions clicks } } } } } ``` ## Offboarding a Customer To offboard a customer, you can simply [Pause the Campaign](#guides-publishers-pause). # reference.html.md # Audience API Reference #### NOTE If you use the APIs provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api) #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description AdRoll Audience API 1.0 Manage your segments with the AdRoll Audience API ## Operations by Tag ### Target Account Lists - [`GET /audience/v1/target_accounts`](#get--audience-v1-target_accounts) - [`POST /audience/v1/target_accounts`](#post--audience-v1-target_accounts) - [`GET /audience/v1/target_accounts/names`](#get--audience-v1-target_accounts-names) - [`GET /audience/v1/target_accounts/(tal_eid)`](#get--audience-v1-target_accounts-(tal_eid)) - [`POST /audience/v1/target_accounts/(tal_eid)`](#post--audience-v1-target_accounts-(tal_eid)) - [`DELETE /audience/v1/target_accounts/(tal_eid)`](#delete--audience-v1-target_accounts-(tal_eid)) - [`GET /audience/v1/target_accounts/(tal_eid)/tiers`](#get--audience-v1-target_accounts-(tal_eid)-tiers) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers`](#post--audience-v1-target_accounts-(tal_eid)-tiers) - [`GET /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)`](#get--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)) - [`DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)`](#delete--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)) - [`GET /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#get--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`PUT /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#put--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#delete--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items/delete`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items-delete) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items/filter`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items-filter) ### Untagged - [`GET /audience/v1/advertisers`](#get--audience-v1-advertisers) - [`GET /audience/v1/crosschannel_lal_segments/valid-segments`](#get--audience-v1-crosschannel_lal_segments-valid-segments) - [`GET /audience/v1/ideal_customer_profile`](#get--audience-v1-ideal_customer_profile) - [`POST /audience/v1/ideal_customer_profile`](#post--audience-v1-ideal_customer_profile) - [`POST /audience/v1/ideal_customer_profile/accounts`](#post--audience-v1-ideal_customer_profile-accounts) - [`GET /audience/v1/ideal_customer_profile/all_scores`](#get--audience-v1-ideal_customer_profile-all_scores) - [`GET /audience/v1/ideal_customer_profile/(icp_eid)`](#get--audience-v1-ideal_customer_profile-(icp_eid)) - [`POST /audience/v1/ideal_customer_profile/(icp_eid)`](#post--audience-v1-ideal_customer_profile-(icp_eid)) - [`DELETE /audience/v1/ideal_customer_profile/(icp_eid)`](#delete--audience-v1-ideal_customer_profile-(icp_eid)) - [`GET /audience/v1/segments`](#get--audience-v1-segments) - [`POST /audience/v1/segments`](#post--audience-v1-segments) - [`POST /audience/v1/segments/bulk`](#post--audience-v1-segments-bulk) - [`GET /audience/v1/segments/general_exclusions`](#get--audience-v1-segments-general_exclusions) - [`GET /audience/v1/segments/tal_references`](#get--audience-v1-segments-tal_references) - [`PUT /audience/v1/segments/tal_references`](#put--audience-v1-segments-tal_references) - [`GET /audience/v1/segments/(segment_id)`](#get--audience-v1-segments-(segment_id)) - [`POST /audience/v1/segments/(segment_id)`](#post--audience-v1-segments-(segment_id)) - [`DELETE /audience/v1/segments/(segment_id)`](#delete--audience-v1-segments-(segment_id)) - [`POST /audience/v1/segments/(segment_id)/reactivate`](#post--audience-v1-segments-(segment_id)-reactivate) - [`POST /audience/v1/segments_bulk/put`](#post--audience-v1-segments_bulk-put) - [`GET /audience/v1/sharing/get_source_segment`](#get--audience-v1-sharing-get_source_segment) - [`GET /audience/v1/sharing/invitation`](#get--audience-v1-sharing-invitation) - [`POST /audience/v1/sharing/invitation`](#post--audience-v1-sharing-invitation) - [`DELETE /audience/v1/sharing/invitation`](#delete--audience-v1-sharing-invitation) - [`POST /audience/v1/sharing/segment`](#post--audience-v1-sharing-segment) - [`DELETE /audience/v1/sharing/segment`](#delete--audience-v1-sharing-segment) - [`GET /audience/v1/target_accounts`](#get--audience-v1-target_accounts) - [`POST /audience/v1/target_accounts`](#post--audience-v1-target_accounts) - [`POST /audience/v1/target_accounts/domain_references`](#post--audience-v1-target_accounts-domain_references) - [`GET /audience/v1/target_accounts/domains`](#get--audience-v1-target_accounts-domains) - [`GET /audience/v1/target_accounts/general_exclusions`](#get--audience-v1-target_accounts-general_exclusions) - [`GET /audience/v1/target_accounts/names`](#get--audience-v1-target_accounts-names) - [`GET /audience/v1/target_accounts/(tal_eid)`](#get--audience-v1-target_accounts-(tal_eid)) - [`POST /audience/v1/target_accounts/(tal_eid)`](#post--audience-v1-target_accounts-(tal_eid)) - [`DELETE /audience/v1/target_accounts/(tal_eid)`](#delete--audience-v1-target_accounts-(tal_eid)) - [`GET /audience/v1/target_accounts/(tal_eid)/tiers`](#get--audience-v1-target_accounts-(tal_eid)-tiers) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers`](#post--audience-v1-target_accounts-(tal_eid)-tiers) - [`GET /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)`](#get--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)) - [`DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)`](#delete--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)) - [`GET /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#get--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`PUT /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#put--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](#delete--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items/delete`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items-delete) - [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items/filter`](#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items-filter) - [`POST /audience/v1/user_attribute_counts`](#post--audience-v1-user_attribute_counts) - [`GET /audience/v1/user_attribute_names/(advertisable_eid)`](#get--audience-v1-user_attribute_names-(advertisable_eid)) ## Operations ### GET /audience/v1/advertisers Retrieve list of accessible advertisers Retrieve list of accessible advertisers **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : List of Advertiser IDs
Schema as JSON:
```json { "data": [ { "advertiser_id": "string" } ] } ```
### Schema
* **Type:** object
### data
List of Advertiser IDs
* **Required:** True * **Type:** array of object ### GET /audience/v1/crosschannel_lal_segments/valid-segments Retrieve a list of valid and invalid segments for crosschannel lal targeting **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertiser_id` | **True** | string | Advertisable eid to retrieve list of valid segments | **Responses**: 200 : List of valid/invalid segments for crosschannel targeting
Returns [`CrossChannelLalValidSegments`](#AdRoll Audience API CrossChannelLalValidSegments) ### GET /audience/v1/ideal_customer_profile Retrieves a list of ICP by advertisable EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID | **Responses**: 200 : Success
Returns [`ICPDetailsList`](#AdRoll Audience API ICPDetailsList) ### POST /audience/v1/ideal_customer_profile Creates an ICP by advertisable EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID | Schema for request body: [`ICPDetails`](#AdRoll Audience API ICPDetails) ```json { "advertisable_eid": "string", "attributes": [ { "country": [ "string" ], "industry": [ "string" ], "revenue": [ "string" ], "size": [ "string" ] } ], "created_at": "string", "created_by_user_eid": "string", "deleted_at": "string", "deleted_by_user_eid": "string", "domain_filter_settings": { "filterBlocks": [ { "dataTypeFilters": [ { "attributeFilters": [ { "attributeDisplayName": "string", "attributeName": "string", "comparator": "string", "from": "string", "to": "string", "type": "string", "uniqueKey": "string", "values": [ { "displayValue": "string", "value": "string" } ] } ], "key": "string", "object": "string", "source": "string", "type": "string" } ], "key": "string" } ] }, "eid": "string", "last_completed_model_uuid": "string", "model_status": "string", "model_updated_at": "string", "model_uuid": "string", "name": "string", "positive_domains": [ "string" ], "selected_picture_key": "string", "slot_number": "integer", "updated_at": "string", "updated_by_user_eid": "string" } ``` **Responses**: 200 : Success
Returns [`ICPDetails`](#AdRoll Audience API ICPDetails) ### POST /audience/v1/ideal_customer_profile/accounts Retrieves ICP Accounts by advertisable EID and optional filters. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID | Schema for request body: [`ICPAccountsRequest`](#AdRoll Audience API ICPAccountsRequest) ```json { "after": "string", "domains": { "exclude": "boolean", "values": [ "string" ] }, "icp_filters": [ { "comparator": "string", "eid": "string", "grades": "string" } ], "size": "integer" } ``` **Responses**: 200 : Success
Returns [`ICPAccountsResponse`](#AdRoll Audience API ICPAccountsResponse) ### GET /audience/v1/ideal_customer_profile/all_scores Retrieves scores by TAL EID, advertisable EID and optional ICP EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `tal_eid` | **True** | string | Target Account List EID | | `advertisable_eid` | **True** | string | Advertisable EID | | `icp_eid` | False | string | Optional ICP EID | **Responses**: 200 : Success
Returns [`ICPScoreList`](#AdRoll Audience API ICPScoreList) 400 : tal_eid is required ### GET /audience/v1/ideal_customer_profile/(icp_eid) Retrieves an ICP by ICP EID and advertisable EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------| | `icp_eid` | **True** | string | ICP EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID | **Responses**: 200 : Success
Returns [`ICPDetails`](#AdRoll Audience API ICPDetails) ### POST /audience/v1/ideal_customer_profile/(icp_eid) Updates an ICP by ICP EID and advertisable EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------| | `icp_eid` | **True** | string | ICP EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID | Schema for request body: [`ICPDetails`](#AdRoll Audience API ICPDetails) ```json { "advertisable_eid": "string", "attributes": [ { "country": [ "string" ], "industry": [ "string" ], "revenue": [ "string" ], "size": [ "string" ] } ], "created_at": "string", "created_by_user_eid": "string", "deleted_at": "string", "deleted_by_user_eid": "string", "domain_filter_settings": { "filterBlocks": [ { "dataTypeFilters": [ { "attributeFilters": [ { "attributeDisplayName": "string", "attributeName": "string", "comparator": "string", "from": "string", "to": "string", "type": "string", "uniqueKey": "string", "values": [ { "displayValue": "string", "value": "string" } ] } ], "key": "string", "object": "string", "source": "string", "type": "string" } ], "key": "string" } ] }, "eid": "string", "last_completed_model_uuid": "string", "model_status": "string", "model_updated_at": "string", "model_uuid": "string", "name": "string", "positive_domains": [ "string" ], "selected_picture_key": "string", "slot_number": "integer", "updated_at": "string", "updated_by_user_eid": "string" } ``` **Responses**: 200 : Success
Returns [`ICPDetails`](#AdRoll Audience API ICPDetails) 400 : Schema failure ### DELETE /audience/v1/ideal_customer_profile/(icp_eid) Deletes ICP details by ICP EID and advertisable EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------| | `icp_eid` | **True** | string | ICP EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID | **Responses**: 204 : No Content ### GET /audience/v1/segments Retrieve list of segments Retrieve list of segments **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertiser_id` | **True** | string | EID of the advertiser to retrieve segment list for | | `type` | False | string | Filter by specified segment type One of: `crm`, `custom`, `impression`, `user_events`, `user_attributes`. | | `omit_fields` | False | string | Omit specific fields from the result set | **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### POST /audience/v1/segments Create a new segment Create a new segment **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: [`SegmentCreate`](#AdRoll Audience API SegmentCreate) ```json { "advertiser_id": "string", "conversion_value": "number", "data": [ { "email": "string", "id": "string" } ], "duration": "integer", "general_exclusion_type": "string", "is_conversion": "boolean", "name": "string", "sfdc_company_list_id": "string", "type": "string" } ``` **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### POST /audience/v1/segments/bulk Bulk create/update segments. Differs from `POST audience/v1/segments` as that endpoint can only create/update one segment at a time. `POST /audience/v1/segments/bulk` and `POST /audience/v1/segments_bulk/put` are aliases (i.e. the same endpoint). Use `POST /audience/v1/segments_bulk/put`, as `POST /audience/v1/segments/bulk` will be deprecated in the future. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: [`SegmentCreate`](#AdRoll Audience API SegmentCreate) ```json { "advertiser_id": "string", "conversion_value": "number", "data": [ { "email": "string", "id": "string" } ], "duration": "integer", "general_exclusion_type": "string", "is_conversion": "boolean", "name": "string", "sfdc_company_list_id": "string", "type": "string" } ``` **Responses**: 200 : List of results. Follows the request order. (See segment create and update responses) ### GET /audience/v1/segments/general_exclusions Retrieve a list of segments with general exclusions **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable eid that owns the segments | | `general_exclusion_types` | False | string | A comma-separated list of general exclusions types One of: `customers`, `coworkers`, `competitors`. | **Responses**: 200 : The query was successful
Returns [`SegmentGeneralExclusionResponse`](#AdRoll Audience API SegmentGeneralExclusionResponse) ### GET /audience/v1/segments/tal_references Returns a list of User Attribute Segments (UAT) that references any TAL or a specific TAL/AG. Retrieve a list of User Attribute Segments (UAT) that references any TAL or a specific TAL/AG. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: ```json { "advertisable_eid": "string", "tal_eids": [ "string" ], "tal_tier_eids": [ "string" ] } ``` ### Schema * **Type:** object ### advertisable_eid The advertisable connected to the TAL reference. * **Required:** True * **Type:** string ### tal_eids The TAL EIDs connected to the TAL reference * **Type:** array of string ### tal_tier_eids The TAL Tier EIDs connected to the TAL reference * **Type:** array of string **Responses**: 200 : The query was successful
Returns [`SegmentTalReferencesResponse`](#AdRoll Audience API SegmentTalReferencesResponse) ### PUT /audience/v1/segments/tal_references Update or delete TAG/TAL references. Update/Delete TAL/TAG references **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: ```json { "advertisable_eid": "string", "deleted_tier_eids": {}, "domains_by_tier_eid": {}, "tal_eid": "string" } ``` ### Schema * **Type:** object ### advertisable_eid The advertisable connected to the TAL reference. * **Required:** True * **Type:** string ### tal_eid The TAL EID connected to the TAL reference * **Required:** True * **Type:** string ### domains_by_tier_eid A mapping of domains by tier eid * **Required:** True * **Type:** object ### deleted_tier_eids The TAL Tier EIDs to be deleted * **Required:** True * **Type:** object **Responses**: 204 : The update/delete was successful
Schema as JSON:
```json { "deleted_segments": [ { "attributes": [ { "comparator": "string", "display_name": "string", "name": "string", "source": "string", "values": [ "string" ] } ], "attributes_source": "string", "cdp_rule_eid": "string", "is_targeting_restricted_audience": "boolean", "tal_eid": "string", "tal_tier_eid": "string", "use_first_party_data": "boolean", "use_third_party_data": "boolean" } ], "updated_segments": [ { "name": "string" } ] } ```
### Schema
* **Type:** object
### updated_segments
* **Type:** array of [`AdvertisableAttributesDetail`](#AdRoll Audience API AdvertisableAttributesDetail)
### deleted_segments
* **Type:** array of [`UserAttributesSegmentResponse`](#AdRoll Audience API UserAttributesSegmentResponse) ### GET /audience/v1/segments/(segment_id) Retrieve segment information Retrieve segment information **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------------|------------|--------|--------------------| | `segment_id` | **True** | string | EID of the segment | #### Query Parameters | Name | Required | Type | Description | |-------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `include_ge_attributes` | False | boolean | whether to include general exclusions attributes | | `include_inactive` | False | boolean | whether to include inactive segments | **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### POST /audience/v1/segments/(segment_id) Update segment information and/or replace user list. Users can be appended to a segment by including a list of the appropriate [user record](https://apidocs.nextroll.com/audience-api/overview.html#user-record) objects in the payload **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------------|------------|--------|--------------------| | `segment_id` | **True** | string | EID of the segment | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: [`SegmentUpdate`](#AdRoll Audience API SegmentUpdate) ```json { "conversion_value": "number", "data": [ { "email": "string", "id": "string" } ], "duration": "integer", "general_exclusion_type": "string", "name": "string", "sfdc_company_list_id": "string" } ``` **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### DELETE /audience/v1/segments/(segment_id) Delete an existing segment Delete an existing segment **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------------|------------|--------|--------------------| | `segment_id` | **True** | string | EID of the segment | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### POST /audience/v1/segments/(segment_id)/reactivate Reactivate a deactivated segment Reactivate a deactivated segment **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------------|------------|--------|----------------------------------| | `segment_id` | **True** | string | EID of the segment to reactivate | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : Segment reactivated successfully
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### POST /audience/v1/segments_bulk/put Bulk create/update segments. Differs from `POST audience/v1/segments` as that endpoint can only create/update one segment at a time. `POST /audience/v1/segments/bulk` and `POST /audience/v1/segments_bulk/put` are aliases (i.e. the same endpoint). Use `POST /audience/v1/segments_bulk/put`, as `POST /audience/v1/segments/bulk` will be deprecated in the future. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: [`SegmentCreate`](#AdRoll Audience API SegmentCreate) ```json { "advertiser_id": "string", "conversion_value": "number", "data": [ { "email": "string", "id": "string" } ], "duration": "integer", "general_exclusion_type": "string", "is_conversion": "boolean", "name": "string", "sfdc_company_list_id": "string", "type": "string" } ``` **Responses**: 200 : List of results. Follows the request order. (See segment create and update responses) ### GET /audience/v1/sharing/get_source_segment Fetch details of the audience that wants to be shared with a sharing invitation **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `invitation_eid` | **True** | string | EID of the invitation | | `advertisable_eid` | **True** | boolean | EID of the advertisable receiving the invitation | **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### GET /audience/v1/sharing/invitation Fetch all Invitations sent by an Advertisable or an specific Invitation. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `invitation_eid` | False | string | EID of the invitation | | `source_advertisable_eid` | False | string | EID of the Advertisable sharing the segment | | `target_advertisable_eid` | False | string | EID of the Advertisable sharing the segment | | `include_accepted` | False | boolean | Include accepted Invitations in the response. Defaults to false. | **Responses**: 200 : A list of Invitations
Returns [`SharingSegmentInvitationListResponse`](#AdRoll Audience API SharingSegmentInvitationListResponse) ### POST /audience/v1/sharing/invitation Send a Segment Sharing invitation. With an invitation, you are granting the other party the ability to use this your Segment on their Campaigns. The other party still needs to accept the invitation. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `segment_eid` | **True** | string | EID of the Segment to share | | `advertisable_eid` | **True** | string | EID of the Advertisable to share the Segment with | **Responses**: 200 : An invitation
Returns [`SharingSegmentInvitationResponse`](#AdRoll Audience API SharingSegmentInvitationResponse) ### DELETE /audience/v1/sharing/invitation Revoke an invitation. The other party will lose access to the shared Segment **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `invitation_eid` | **True** | string | EID of the invitation | **Responses**: 200 : An invitation
Returns [`SharingSegmentInvitationResponse`](#AdRoll Audience API SharingSegmentInvitationResponse) ### POST /audience/v1/sharing/segment Accept a Segment Sharing Invitation and create a Mirror Segment. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `invitation_eid` | **True** | string | EID of the invitation | | `name` | False | string | Name of the Mirror Segment to be created. If omitted, the name of the source segment is used. | **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### DELETE /audience/v1/sharing/segment Delete a Mirror Segment. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `segment_eid` | **True** | string | EID of the Mirror Segment to delete. | **Responses**: 200 : A segment
Returns [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### GET /audience/v1/target_accounts Retrieve a all Target Accounts Lists **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | | `scoring_model_id` | False | string | The scoring model ID filter | | `include_deleted` | False | boolean | whether to include deleted TALs and TAGs | **Responses**: 200 : Target Accounts List results
Returns [`TargetAccountsListAllResponse`](#AdRoll Audience API TargetAccountsListAllResponse) 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts Create a new Target Accounts List **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsListCreate`](#AdRoll Audience API TargetAccountsListCreate) ```json { "advertisable_eid": "string", "domains": [ "string" ], "name": "string", "sfdc_company_list_name": "string", "sfdc_company_list_object_id": "string", "sfdc_sync_state": "string", "source": "string" } ``` **Responses**: 200 : The created Target Accounts List
Returns [`TargetAccountsList`](#AdRoll Audience API TargetAccountsList) 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts/domain_references Retrieve the references for a set of domains **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID who owns the entities to query | Schema for request body: [`DomainReferencesRequest`](#AdRoll Audience API DomainReferencesRequest) ```json { "domains": [ "string" ], "entities": [ "string" ], "verbose": "boolean" } ``` **Responses**: 200 : The query was successful
Returns [`DomainReferencesResponse`](#AdRoll Audience API DomainReferencesResponse) 400 : Bad request 404 : Resource not found or Unauthorized ### GET /audience/v1/target_accounts/domains Retrieve the list of domains that are present in any Target Account List **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID that owns the Target Account Lists | **Responses**: 200 : The query was successful
Schema as JSON:
```json { "domains": [ "string" ] } ```
### Schema
* **Type:** object
### domains
* **Type:** array of string 400 : Bad request 404 : Resource not found or Unauthorized ### GET /audience/v1/target_accounts/general_exclusions Retrieve a list of Target Accounts List with general exclusions **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable eid that owns the Target Accounts Lists | | `include_deleted` | False | boolean | Whether to include deleted Target Accounts Lists in the response | | `include_domain_filter_settings` | False | boolean | Whether to include domain filter settings in the response | **Responses**: 200 : The query was successful
Returns [`TargetAccountsList`](#AdRoll Audience API TargetAccountsList) ### GET /audience/v1/target_accounts/names Retrieve all Target Accounts List Names and Eids **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | **Responses**: 200 : Target Accounts List Name and Eid results
Returns [`TargetAccountsListAllNameEidResponse`](#AdRoll Audience API TargetAccountsListAllNameEidResponse) 400 : Bad request 404 : Resource not found or Unauthorized ### GET /audience/v1/target_accounts/(tal_eid) Get a Target Accounts List **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | **Responses**: 200 : The requested Target Accounts List
Returns [`TargetAccountsList`](#AdRoll Audience API TargetAccountsList) 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts/(tal_eid) Update a Target Accounts List **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsListUpdate`](#AdRoll Audience API TargetAccountsListUpdate) ```json { "eid": "string", "name": "string", "scoring_auc": "number", "scoring_grades": { "A": { "threshold": "integer" }, "B": { "threshold": "integer" }, "C": { "threshold": "integer" }, "D": { "threshold": "integer" }, "F": { "threshold": "integer" } }, "scoring_holdout1_status": "string", "scoring_holdout2_status": "string", "scoring_holdout3_status": "string", "scoring_holdout4_status": "string", "scoring_holdout5_status": "string", "scoring_items_pending": "boolean", "scoring_production_status": "string", "scoring_status": "string", "sfdc_sync_state": "string", "sfdc_synced_at": "string" } ``` **Responses**: 200 : The updated Target Accounts List
Returns [`TargetAccountsList`](#AdRoll Audience API TargetAccountsList) 400 : Bad request 404 : Resource not found or Unauthorized ### DELETE /audience/v1/target_accounts/(tal_eid) Delete a Target Accounts List **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | | `force` | False | boolean | Force the deletion even though there are audiences/campaigns associated with this TAL | **Responses**: 204 : The Target Accounts List have been deleted successfully 400 : Bad request 404 : Resource not found or Unauthorized ### GET /audience/v1/target_accounts/(tal_eid)/tiers Retrieve all Target Accounts Tiers **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | **Responses**: 200 : Target Accounts List results
Returns [`TargetAccountsTiersAllResponse`](#AdRoll Audience API TargetAccountsTiersAllResponse) 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts/(tal_eid)/tiers Create a new Target Accounts Tier **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsTierCreate`](#AdRoll Audience API TargetAccountsTierCreate) ```json { "domains": [ "string" ], "filters": { "grades": [ "string" ], "is_scored": "boolean", "score": { "from": "integer", "to": "integer" } }, "force": "boolean", "inverted_for_tier_eid": "string", "name": "string" } ``` **Responses**: 200 : The created Target Accounts Tier
Schema as JSON:
```json { "skipped_domains": "integer", "tier": { "created_at": "string", "eid": "string", "items_count": "integer", "name": "string", "tal_eid": "string" } } ```
### Schema
* **Type:** object
### tier
* **Type:** [`TargetAccountsTier`](#AdRoll Audience API TargetAccountsTier)
### skipped_domains
The number of skipped accounts that are tiered already
* **Type:** integer 400 : Bad request 404 : Resource not found or Unauthorized ### GET /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid) Retrieve a single Target Accounts Tier **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | **Responses**: 200 : Target Accounts List results
Returns [`TargetAccountsTier`](#AdRoll Audience API TargetAccountsTier) 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid) Update a Target Accounts Tier **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsTierUpdate`](#AdRoll Audience API TargetAccountsTierUpdate) ```json { "eid": "string", "name": "string" } ``` **Responses**: 200 : The updated Target Accounts Tier
Returns [`TargetAccountsTier`](#AdRoll Audience API TargetAccountsTier) 400 : Bad request 404 : Resource not found or Unauthorized ### DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid) Delete a single Target Accounts Tier **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | **Responses**: 204 : The Target Accounts Tier have been deleted successfully 400 : Bad request 404 : Resource not found or Unauthorized ### GET /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items Retrieve all Target Accounts Items **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | | `offset` | False | integer | The offset | | `limit` | False | integer | The max items to return | | `order` | False | string | The name of an attribute to order by | | `desc` | False | boolean | Flag to make the order descending/ascending | | `grades` | False | string | A comma-separated list of grades: A, B, C, D, F | **Responses**: 200 : Target Accounts List results
Returns [`TargetAccountsItemsAllResponse`](#AdRoll Audience API TargetAccountsItemsAllResponse) 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items Upsert Target Accounts List items **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsItemsListUpdate`](#AdRoll Audience API TargetAccountsItemsListUpdate) ```json { "items": [ { "domain": "string", "score": "number", "sfdc_synced_at": "string", "source": "string" } ] } ``` **Responses**: 200 : The domains inserted/updated
Schema as JSON:
```json { "existing_domains": [ "string" ], "new_domains": [ "string" ] } ```
### Schema
* **Type:** object
### existing_domains
The domains that have been inserted/updated
* **Type:** array of string
### new_domains
The new domains inserted
* **Type:** array of string 400 : Bad request 404 : Resource not found or Unauthorized ### PUT /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items Updates Target Accounts List items **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsItemsListUpdate`](#AdRoll Audience API TargetAccountsItemsListUpdate) ```json { "items": [ { "domain": "string", "score": "number", "sfdc_synced_at": "string", "source": "string" } ] } ``` **Responses**: 200 : The domains inserted/updated
Schema as JSON:
```json { "existing_domains": [ "string" ], "new_domains": [ "string" ] } ```
### Schema
* **Type:** object
### existing_domains
The domains that have been inserted/updated
* **Type:** array of string
### new_domains
The new domains inserted
* **Type:** array of string 400 : Bad request 404 : Resource not found or Unauthorized ### DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items Delete a list of Target Accounts List Items **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsItemsListDelete`](#AdRoll Audience API TargetAccountsItemsListDelete) ```json { "domains": [ "string" ], "filters": { "grades": [ "string" ], "is_scored": "boolean", "score": { "from": "integer", "to": "integer" } }, "force": "boolean", "inverted": "boolean" } ``` **Responses**: 204 : The Target Accounts List items have been deleted successfully 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items/delete Delete a list of Target Accounts List Items **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | Schema for request body: [`TargetAccountsItemsListDelete`](#AdRoll Audience API TargetAccountsItemsListDelete) ```json { "domains": [ "string" ], "filters": { "grades": [ "string" ], "is_scored": "boolean", "score": { "from": "integer", "to": "integer" } }, "force": "boolean", "inverted": "boolean" } ``` **Responses**: 204 : The Target Accounts List items have been deleted successfully 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items/filter Retrieve all Target Accounts Items filtered **Parameters**: #### Path Parameters | Name | Required | Type | Description | |---------------|------------|--------|------------------------------| | `tal_eid` | **True** | string | The Target Accounts List EID | | `ta_tier_eid` | **True** | string | The Target Accounts Tier EID | #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | The advertisable EID filter | | `grades` | False | string | A comma-separated list of grades: A, B, C, D, F | Schema for request body: [`TargetAccountsItemsSearch`](#AdRoll Audience API TargetAccountsItemsSearch) ```json { "domains": [ "string" ], "filters": { "grades": [ "string" ], "is_scored": "boolean", "score": { "from": "integer", "to": "integer" } }, "inverted": "boolean" } ``` **Responses**: 200 : Target Accounts List results
Returns [`TargetAccountsItemsAllResponse`](#AdRoll Audience API TargetAccountsItemsAllResponse) 400 : Bad request 404 : Resource not found or Unauthorized ### POST /audience/v1/user_attribute_counts Retrieve user attribute counts for a pair of attribute name and value **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: [`UserAttributeCountsRequest`](#AdRoll Audience API UserAttributeCountsRequest) ```json { "attributes": {} } ``` **Responses**: 200 : A map of attribute names to values to count of users with that pair of name/value
Returns [`UserAttributeCountsResponse`](#AdRoll Audience API UserAttributeCountsResponse) ### GET /audience/v1/user_attribute_names/(advertisable_eid) Retrieve user attributes associated with an advertisable **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------| | `advertisable_eid` | **True** | string | EID of the advertisable | #### Query Parameters | Name | Required | Type | Description | |---------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `first_party` | False | boolean | Include first party attributes | | `third_party` | False | boolean | Include third party denormalized attributes | | `source` | False | string | Source to retrieve. bombora (default) or rollworks-normalized | | `categorized` | False | boolean | Available only for the normalized source. Whether to output categorized attributes | **Responses**: 200 : List of user attributes associated with an advertisable
Returns [`AdvertisableAttributes`](#AdRoll Audience API AdvertisableAttributes) ## Definitions ### Duration Number of days (1 to 540) members are valid in a segment * **Type:** integer * **Maximum:** 540 * **Minimum:** 1 ### SegmentType Represents the segment type * **Type:** string * **Enum:** `crm`, `custom`, `impression`, `user_events`, `user_attributes`, `crosschannel_lal` ### SegmentGeneralExclusionType Represents the general exclusion type * **Type:** string * **Enum:** `customers`, `coworkers`, `competitors` ### SegmentSfdcCompanyListId Represents the salesforce company list id that this segment references * **Type:** string ### SegmentResponse * **Type:** object ### segment_id Identifier used to represent this segment * **Required:** True * **Type:** string ### type * **Required:** True * **Type:** [`SegmentType`](#AdRoll Audience API SegmentType) ### name Name given to the segment upon creation * **Required:** True * **Type:** string ### duration * **Type:** [`Duration`](#AdRoll Audience API Duration) ### emails Number of emails appended to a crm segment * **Type:** integer * **Format:** int64 ### ids Number of users appended to a custom segment * **Type:** integer * **Format:** int64 ### is_conversion true if a segment is a conversion segment else false * **Type:** boolean ### conversion_value conversion value associated with the conversion segment else null * **Type:** number * **Format:** float ### general_exclusion_type * **Type:** [`SegmentGeneralExclusionType`](#AdRoll Audience API SegmentGeneralExclusionType) ### sfdc_company_list_id * **Type:** [`SegmentSfdcCompanyListId`](#AdRoll Audience API SegmentSfdcCompanyListId) ### WarehouseResponse * **Type:** object ### id * **Type:** integer ### advertiser_id * **Type:** string ### db_username * **Type:** string ### db_password * **Type:** string * **Format:** binary ### db_name * **Type:** string ### db_port * **Type:** integer ### db_host * **Type:** string ### db_schema * **Type:** string ### db_type * **Type:** string ### is_active * **Type:** boolean ### created_date * **Type:** integer ### warehouse_eid * **Type:** string ### comments * **Type:** string ### email_opt_in * **Type:** boolean ### UserRecord * **Type:** object ### email Email RFC 5322 standard. Used with `crm` segments. * **Type:** string ### id Unique user identifier synced to AdRoll via Cookie Match. Used with `custom` segments. * **Type:** string ### SegmentCreate * **Type:** object ### advertiser_id ID of the advertiser to create a new segment for * **Required:** True * **Type:** string ### type * **Required:** True * **Type:** [`SegmentType`](#AdRoll Audience API SegmentType) ### name Name given to the segment upon creation * **Required:** True * **Type:** string ### duration * **Required:** True * **Type:** [`Duration`](#AdRoll Audience API Duration) ### data User records to add * **Required:** True * **Type:** array of [`UserRecord`](#AdRoll Audience API UserRecord) ### is_conversion true if a segment is a conversion segment * **Type:** boolean ### conversion_value new conversion value to be associated with the conversion segment * **Type:** number * **Format:** float ### general_exclusion_type * **Type:** [`SegmentGeneralExclusionType`](#AdRoll Audience API SegmentGeneralExclusionType) ### sfdc_company_list_id * **Type:** [`SegmentSfdcCompanyListId`](#AdRoll Audience API SegmentSfdcCompanyListId) ### SegmentUpdate * **Type:** object ### name Name shown on client’s dashboard * **Required:** True * **Type:** string ### duration * **Type:** [`Duration`](#AdRoll Audience API Duration) ### data User records to add * **Required:** True * **Type:** array of [`UserRecord`](#AdRoll Audience API UserRecord) ### conversion_value new conversion value to be associated with the existing conversion segment * **Type:** number * **Format:** float ### general_exclusion_type * **Type:** [`SegmentGeneralExclusionType`](#AdRoll Audience API SegmentGeneralExclusionType) ### sfdc_company_list_id * **Type:** [`SegmentSfdcCompanyListId`](#AdRoll Audience API SegmentSfdcCompanyListId) ### AdvertisableAttributes * **Type:** object ### attributes List or detailed list of user attributes from an advertisable * **Type:** array of [`AdvertisableAttributesDetail`](#AdRoll Audience API AdvertisableAttributesDetail) ### AdvertisableAttributesDetail * **Type:** object ### name * **Type:** string ### AdvertisableAttributeSourceNameList List of attribute source names the advertisable may use * **Type:** array ### AdvertisableAttributeSourceMap mapping from attribute source name to its definition * **Type:** object ### AdvertisableAttributeMap * **Type:** object ### is_internal if true, the source is managed/populated internally * **Type:** boolean ### description * **Type:** string ### attributes * **Type:** [`AdvertisableAttributeCategoryMap`](#AdRoll Audience API AdvertisableAttributeCategoryMap) ### AdvertisableAttributeCategoryMap mapping from attribute category name to its contents * **Type:** object ### AdvertisableAttributeOrderKey any value which can be sorted, representing an optional presentation ordering key * **Type:** object ### AdvertisableAttributeCategory a nested grouping of attribute values * **Type:** object ### singular if true, selection of enumerable member values should be exclusive * **Type:** boolean ### description * **Type:** string ### order_key * **Type:** [`AdvertisableAttributeOrderKey`](#AdRoll Audience API AdvertisableAttributeOrderKey) ### attributes * **Type:** [`AdvertisableAttributeCategoryMap`](#AdRoll Audience API AdvertisableAttributeCategoryMap) ### values ```default mapping from attribute values to metadata about them. keys may be user-facing. ``` * **Type:** object ### AdvertisableAttributeValueDetail metadata about a single attribute value * **Type:** object ### id unique integer or opaque string identifier of the attribute * **Type:** object ### order_key * **Type:** [`AdvertisableAttributeOrderKey`](#AdRoll Audience API AdvertisableAttributeOrderKey) ### description user-facing extended description of the attribute * **Type:** string ### non_enumerable if true, the attribute is non-enumerable (string-valued) * **Type:** boolean ### target ```default "name" value which should appear in targeting rules referencing this attribute ``` * **Type:** string ### UserAttributeCountsRequestAttributes * **Type:** object ### UserAttributeCountsRequest * **Type:** object ### attributes * **Type:** [`UserAttributeCountsRequestAttributes`](#AdRoll Audience API UserAttributeCountsRequestAttributes) ### UserAttributeCountsRequestResult * **Type:** object ### UserAttributeCountsResponse * **Type:** object ### results * **Type:** [`UserAttributeCountsRequestResult`](#AdRoll Audience API UserAttributeCountsRequestResult) ### SegmentGeneralExclusionResponse * **Type:** object ### results * **Type:** [`SegmentResponse`](#AdRoll Audience API SegmentResponse) ### SegmentsWithSizesResponse Represents a segment with their audience sizes (facebook and audiences) * **Type:** object ### total_visitors Number of total visitors * **Type:** integer * **Format:** int64 ### facebook_visitors Number of facebook visitors * **Type:** integer * **Format:** int64 ### CrossChannelLalValidSegments List of valid and invalid segments to be used as CrossChanel lal Segments * **Type:** object ### advertiser_id ID of the advertiser to create a new segment for * **Type:** string ### invalid_segments Segments of valid type but that doesn’t meet audience sizes requirements * **Type:** array of [`SegmentsWithSizesResponse`](#AdRoll Audience API SegmentsWithSizesResponse) ### valid_segments Segments of valid type and that meets audience sizes requirements * **Type:** array of [`SegmentsWithSizesResponse`](#AdRoll Audience API SegmentsWithSizesResponse) ### prospecting_only_valid_segments Segments of valid type and that meets audience sizes only for prospecting * **Type:** array of [`SegmentsWithSizesResponse`](#AdRoll Audience API SegmentsWithSizesResponse) ### TargetAccountsListAllResponse All Target Accounts Lists response * **Type:** object ### results An array of Target Accounts Lists * **Type:** array of [`TargetAccountsList`](#AdRoll Audience API TargetAccountsList) ### TargetAccountsListAllNameEidResponse All Target Accounts Lists Eids response * **Type:** object ### results An array of Target Accounts Lists * **Type:** array of [`TargetAccountsListNameEid`](#AdRoll Audience API TargetAccountsListNameEid) ### TargetAccountsListNameEid The Target Accounts Lists (TAL) * **Type:** object ### eid The Target Accounts List EID * **Type:** string ### name The Target Accounts List name * **Type:** string ### TargetAccountsList The Target Accounts Lists (TAL) * **Type:** object ### eid The Target Accounts List EID * **Type:** string ### name The Target Accounts List name * **Type:** string ### advertisable_eid The advertisable EID that owns this TAL * **Type:** string ### updated_at The last timestamp of when this TAL was updated * **Type:** string * **Format:** date-time ### updated_by_user_at The last timestamp of when this TAL was updated by some user * **Type:** string * **Format:** date-time ### updated_by_user_eid The last user that updated this TAL * **Type:** string ### scoring_model_id The production scoring model ID * **Type:** string ### scoring_status The current status of the entire scoring process * **Type:** string ### scoring_production_model_id The production scoring model ID * **Type:** string ### scoring_production_status The current status of the production scoring process * **Type:** string ### scoring_production_retries The number of retries for the production scoring model * **Type:** integer ### scoring_holdout1_model_id The holdout 1 scoring model ID * **Type:** string ### scoring_holdout1_status The current status of the holdout 1 scoring process * **Type:** string ### scoring_holdout1_retries The number of retries for the holdout 1 scoring model * **Type:** integer ### scoring_holdout2_model_id The holdout 2 scoring model ID * **Type:** string ### scoring_holdout2_status The current status of the holdout 2 scoring process * **Type:** string ### scoring_holdout2_retries The number of retries for the holdout 2 scoring model * **Type:** integer ### scoring_holdout3_model_id The holdout 3 scoring model ID * **Type:** string ### scoring_holdout3_status The current status of the holdout 3 scoring process * **Type:** string ### scoring_holdout3_retries The number of retries for the holdout 3 scoring model * **Type:** integer ### scoring_holdout4_model_id The holdout 4 scoring model ID * **Type:** string ### scoring_holdout4_status The current status of the holdout 4 scoring process * **Type:** string ### scoring_holdout4_retries The number of retries for the holdout 4 scoring model * **Type:** integer ### scoring_holdout5_model_id The holdout 5 scoring model ID * **Type:** string ### scoring_holdout5_status The current status of the holdout 5 scoring process * **Type:** string ### scoring_holdout5_retries The number of retries for the holdout 5 scoring model * **Type:** integer ### scoring_filename The filename that generated the scoring model * **Type:** string ### scoring_items_count The number of items used for the scoring process * **Type:** integer ### scoring_items_pending Flag that signals that there are pending items to be scored * **Type:** boolean ### scoring_at The timestamp of when the scoring process was started * **Type:** string * **Format:** date-time ### scoring_by_user_eid The user that started the scoring process * **Type:** string ### scoring_auc The raw number for the score AUC (Area Under the Curve) * **Type:** number ### scoring_grades * **Type:** [`TargetAccountsScoringGrades`](#AdRoll Audience API TargetAccountsScoringGrades) ### sfdc_sync_state The configuration for the Salesforce synchronization * **Type:** string * **Enum:** `none`, `push`, `bidirectional` ### sfdc_company_list_object_id The Salesforce Company List ID that syncs with this TAL * **Type:** string ### sfdc_company_list_name The Salesforce Company List name that syncs with this TAL * **Type:** string ### sfdc_scoring_company_list_object_id The Salesforce Company List ID used for scoring model * **Type:** string ### sfdc_scoring_company_list_name The Salesforce Company List name used for scoring model * **Type:** string ### sfdc_synced_at The last timestamp of the Salesforce synchronization * **Type:** string * **Format:** date-time ### items_count The number of items in the Target Accounts List * **Type:** integer ### suggestions_count (Deprecated) The number of suggestions in the Target Accounts List * **Type:** integer ### tiers An array of Target Accounts Tier * **Type:** array of [`TargetAccountsTier`](#AdRoll Audience API TargetAccountsTier) ### TargetAccountsScoringGrades The Target Accounts List grades scoring configuration * **Type:** object ### A * **Type:** [`TargetAccountsScoringGrade`](#AdRoll Audience API TargetAccountsScoringGrade) ### B * **Type:** [`TargetAccountsScoringGrade`](#AdRoll Audience API TargetAccountsScoringGrade) ### C * **Type:** [`TargetAccountsScoringGrade`](#AdRoll Audience API TargetAccountsScoringGrade) ### D * **Type:** [`TargetAccountsScoringGrade`](#AdRoll Audience API TargetAccountsScoringGrade) ### F * **Type:** [`TargetAccountsScoringGrade`](#AdRoll Audience API TargetAccountsScoringGrade) ### scored_count The number of scored items in the Target Accounts List * **Type:** integer ### unscored_count The number of unscored items in the Target Accounts List * **Type:** integer ### TargetAccountsScoringGrade The Target Accounts List grade definition * **Type:** object ### threshold * **Type:** integer ### min_item The Target Accounts List grade minimum item in this grade * **Type:** object ```json { "domain": string "score": number } ``` ### items_count The number of scored items in this grade * **Type:** integer ### TargetAccountsScoringGradesUpdate The Target Accounts List grades scoring configuration * **Type:** object ### A * **Type:** [`TargetAccountsScoringGradeUpdate`](#AdRoll Audience API TargetAccountsScoringGradeUpdate) ### B * **Type:** [`TargetAccountsScoringGradeUpdate`](#AdRoll Audience API TargetAccountsScoringGradeUpdate) ### C * **Type:** [`TargetAccountsScoringGradeUpdate`](#AdRoll Audience API TargetAccountsScoringGradeUpdate) ### D * **Type:** [`TargetAccountsScoringGradeUpdate`](#AdRoll Audience API TargetAccountsScoringGradeUpdate) ### F * **Type:** [`TargetAccountsScoringGradeUpdate`](#AdRoll Audience API TargetAccountsScoringGradeUpdate) ### TargetAccountsScoringGradeUpdate The Target Accounts List grade definition * **Type:** object ### threshold * **Type:** integer ### TargetAccountsTier The Target Accounts Tier * **Type:** object ### tal_eid The Target Accounts List EID this tier belongs to * **Type:** string ### eid The EID of the tier or one of the calculated tiers: `all` and `untiered` * **Type:** string ### name The name of the tier * **Type:** string ### items_count The number of items in this tier * **Type:** integer ### created_at The creation timestamp of the tier * **Type:** string * **Format:** date-time ### TargetAccountsTiersCreateBase The Target Accounts Tier * **Type:** object ### name The name of the tier * **Required:** True * **Type:** string ### domains * **Required:** True * **Type:** array of string ### TargetAccountsTierCreate ### TargetAccountsTierUpdate The Target Accounts Tier updatable fields * **Type:** object ### eid The tier EID * **Required:** True * **Type:** string ### name The name of the tier * **Required:** True * **Type:** string ### TargetAccountsListCreateBase Create a Target Accounts List * **Type:** object ### advertisable_eid * **Required:** True * **Type:** string ### name * **Required:** True * **Type:** string ### domains * **Type:** array of string ### source * **Type:** string * **Enum:** `user_uploaded`, `discover_accounts`, `suggestion`, `sfdc_synced`, `notification` ### TargetAccountsListCreate ### TargetAccountsListUpdate Update a Target Accounts List * **Type:** object ### eid The Target Accounts List EID * **Required:** True * **Type:** string ### name The Target Accounts List name * **Type:** string ### scoring_status * **Type:** string ### scoring_production_status * **Type:** string ### scoring_holdout1_status * **Type:** string ### scoring_holdout2_status * **Type:** string ### scoring_holdout3_status * **Type:** string ### scoring_holdout4_status * **Type:** string ### scoring_holdout5_status * **Type:** string ### scoring_auc * **Type:** number ### scoring_grades * **Type:** [`TargetAccountsScoringGradesUpdate`](#AdRoll Audience API TargetAccountsScoringGradesUpdate) ### scoring_items_pending * **Type:** boolean ### sfdc_sync_state The configuration for the Salesforce synchronization * **Type:** string * **Enum:** `none`, `push`, `bidirectional` ### sfdc_synced_at The last timestamp of the Salesforce synchronization * **Type:** string * **Format:** date-time ### NumericAttributeFilter Filter for Company Attributes numeric field * **Type:** object ### from * **Type:** integer ### to * **Type:** integer ### DomainReferencesRequest Options for domain references * **Type:** object ### domains Domains to query * **Required:** True * **Type:** array of string ### entities Entities to query * **Type:** array of enum [‘campaigns’, ‘playbooks’, ‘target_accounts’] ### verbose Whether to include extra entity information * **Type:** boolean ### DomainReferencesResponseVerboseEntity * **Type:** object ### eid * **Type:** string ### name * **Type:** string ### DomainReferencesResponseDomain * **Type:** object ### companies * **Type:** [`DomainReferencesResponseVerboseEntity`](#AdRoll Audience API DomainReferencesResponseVerboseEntity) ### target_accounts * **Type:** [`DomainReferencesResponseVerboseEntity`](#AdRoll Audience API DomainReferencesResponseVerboseEntity) ### playbooks * **Type:** [`DomainReferencesResponseVerboseEntity`](#AdRoll Audience API DomainReferencesResponseVerboseEntity) ### DomainReferencesResponse * **Type:** object ### results * **Type:** object ### TargetAccountsTiersAllResponse All Target Accounts Tiers response * **Type:** object ### results An array of Target Accounts Tier * **Type:** array of [`TargetAccountsTier`](#AdRoll Audience API TargetAccountsTier) ### TargetAccountItemsFilter Filter Target Accounts Items * **Type:** object ### is_scored Filter only items that are scored * **Type:** boolean ### score * **Type:** [`NumericAttributeFilter`](#AdRoll Audience API NumericAttributeFilter) ### grades Filter only items that are in the given grades * **Type:** array of enum [‘A’, ‘B’, ‘C’, ‘D’, ‘F’] ### TargetAccountsItemsAllResponse All Target Accounts Items response * **Type:** object ### results An array of Target Accounts Items * **Type:** array of [`TargetAccountsItemsReport`](#AdRoll Audience API TargetAccountsItemsReport) ### total_items * **Type:** integer ### TargetAccountsItems Target Accounts Item * **Type:** object ### domain * **Type:** string ### score * **Type:** number ### source * **Type:** string * **Enum:** `user_uploaded`, `discover_accounts`, `suggestion`, `sfdc_synced`, `notification` ### sfdc_synced_at The last timestamp of the Salesforce synchronization * **Type:** string * **Format:** date-time ### updated_at * **Type:** string * **Format:** date-time ### TargetAccountsItemsReport ### TargetAccountsItemsUpdate Target Accounts Item * **Type:** object ### domain * **Type:** string ### score * **Type:** number ### source * **Type:** string * **Enum:** `user_uploaded`, `discover_accounts`, `suggestion`, `sfdc_synced`, `notification` ### sfdc_synced_at The last timestamp of the Salesforce synchronization * **Type:** string * **Format:** date-time ### TargetAccountsItemsListUpdate A list of Target Accounts Items to update * **Type:** object ### items * **Type:** array of [`TargetAccountsItemsUpdate`](#AdRoll Audience API TargetAccountsItemsUpdate) ### TargetAccountsItemsListDelete A list of Target Accounts domains to delete * **Type:** object ### domains * **Type:** array of string ### inverted Tells if `domains` is the oposite selection in the current TAL/TAG * **Type:** boolean ### filters * **Type:** [`TargetAccountItemsFilter`](#AdRoll Audience API TargetAccountItemsFilter) ### force Force the deletion even though there are audiences associated with this item * **Type:** boolean ### TargetAccountsItemsSearch Search Target Accounts List items * **Type:** object ### domains * **Type:** array of string ### inverted Tells if `domains` is the oposite selection in the current TAL/TAG * **Type:** boolean ### filters * **Type:** [`TargetAccountItemsFilter`](#AdRoll Audience API TargetAccountItemsFilter) ### SegmentTalReferences A TAL segment reference * **Type:** object ### advertisable_eid * **Type:** string ### eid * **Type:** string ### type * **Type:** string ### name * **Type:** string ### tal_eid * **Type:** string ### tal_tier_eid * **Type:** string ### created_date * **Type:** string * **Format:** date-time ### last_modified_date * **Type:** string * **Format:** date-time ### rule_last_modified_date * **Type:** string * **Format:** date-time ### cdp_rule_eid * **Type:** string ### SegmentTalReferencesResponse All TAL references of a segment * **Type:** object ### results An array of TAL references * **Type:** array of [`SegmentTalReferences`](#AdRoll Audience API SegmentTalReferences) ### UserAttributeSegmentResponse Represents a user attribute segment * **Type:** object ### display_name * **Type:** string ### name * **Type:** string ### comparator * **Type:** string ### values * **Type:** array of string ### source * **Type:** string ### UserAttributesSegmentResponse Represents many user attributes * **Type:** object ### attributes * **Type:** array of [`UserAttributeSegmentResponse`](#AdRoll Audience API UserAttributeSegmentResponse) ### use_first_party_data * **Type:** boolean ### use_third_party_data * **Type:** boolean ### attributes_source * **Type:** string ### tal_eid * **Type:** string ### tal_tier_eid * **Type:** string ### cdp_rule_eid * **Type:** string ### is_targeting_restricted_audience * **Type:** boolean ### SharingSegmentMirrorSegmentResponse Represents a Mirror Segment * **Type:** object ### advertisable_eid The Advertisable owning the Segment. * **Type:** string ### eid The eid of the segment * **Type:** string ### name The name of the segment * **Type:** string ### source_segment_eid The EID of the Segment that was shared. * **Type:** string ### segment_source Where the source segment is stored. * **Type:** string ### SharingSegmentInvitationResponse Represents a Segment Invitation * **Type:** object ### source_user_eid The user than sent the invitation. * **Type:** string ### source_segment_eid The EID of the Segment that wants to be shared. * **Type:** string ### source_advertisable_eid The Advertisable sharing the Segment. * **Type:** string ### target_advertisable_eid The Advertisable receiving the Segment Share invitation. * **Type:** string ### accepted Has the invitation been accepted? * **Type:** boolean ### is_active Whether or not the invitation is still active. * **Type:** boolean ### segment_source * **Type:** string ### created_at When this invitation was sent. * **Type:** string * **Format:** date-time ### updated_at When this invitation was updated (accepted/deleted). * **Type:** string * **Format:** date-time ### SharingSegmentInvitationListResponse * **Type:** array ### SharingSegmentBulkSegmentCreateResponse Represents the results of a bulk creation * **Type:** object ### created_segments Successful creations count * **Type:** integer ### failed_creations failed creations count, usually due to invitation already being accepted * **Type:** integer ### ICPAttributeFilters * **Type:** array ### ICPDataTypeFilters * **Type:** array ### ICPFilterBlocks * **Type:** array ### ICPAttributes Attributes based on the most common third-party company attributes from the accounts in the `positive_domains` list. * **Type:** object ### country * **Type:** array of string ### industry * **Type:** array of string ### revenue * **Type:** array of string ### size * **Type:** array of string ### ICPDetails * **Type:** object ### updated_at * **Type:** string ### updated_by_user_eid * **Type:** string * **Format:** nullable ### attributes List or detailed list of user attributes from an advertisable * **Type:** array of [`ICPAttributes`](#AdRoll Audience API ICPAttributes) ### model_status * **Type:** string ### advertisable_eid * **Type:** string ### deleted_at * **Type:** string * **Format:** nullable ### eid * **Type:** string ### model_updated_at * **Type:** string ### created_by_user_eid * **Type:** string * **Format:** nullable ### deleted_by_user_eid * **Type:** string * **Format:** nullable ### model_uuid * **Type:** string ### positive_domains * **Type:** array of string ### last_completed_model_uuid * **Type:** string ### selected_picture_key * **Type:** string ### name * **Type:** string ### created_at * **Type:** string ### domain_filter_settings * **Type:** object ```json { "filterBlocks": :openapi:schema:`ICPFilterBlocks` } ``` ### slot_number * **Type:** integer ### ICPDetailsList * **Type:** object ### icps * **Type:** array of [`ICPDetails`](#AdRoll Audience API ICPDetails) ### ICPAccountsFilter * **Type:** object ### eid * **Type:** string ### comparator * **Type:** string * **Enum:** `exists`, `in`, `not_in` ### grades * **Type:** string * **Enum:** `A`, `B`, `C`, `D`, `F` ### ICPAccountsRequest * **Type:** object ### icp_filters * **Type:** array of [`ICPAccountsFilter`](#AdRoll Audience API ICPAccountsFilter) ### domains * **Type:** object ```json { "exclude": boolean "values": array of string } ``` ### after * **Type:** string ### size * **Type:** integer ### ICPAccountsResponse * **Type:** object ### page_info * **Type:** object ```json { "start_cursor": string "end_cursor": string } ``` ### results * **Type:** array of object ### total_count * **Type:** integer * **Format:** int32 ### ICPScoreList * **Type:** object ### results * **Type:** array of object # reference.html.md # Automated Campaigns API Reference #### WARNING The Automated Campaigns API will be retired April 2025. #### NOTE If you use the APIs provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api), and [Service Privacy Notice](https://www.nextroll.com/privacy) #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description AdRoll Automated Campaigns API (v1) 1.0 Create and edit AdRoll strategies with the AdRoll Automated Campaigns API ## List of Operations - [`GET /activate/api/v1/campaign`](#get--activate-api-v1-campaign) - [`PUT /activate/api/v1/campaign`](#put--activate-api-v1-campaign) - [`GET /activate/api/v1/strategy`](#get--activate-api-v1-strategy) - [`POST /activate/api/v1/strategy`](#post--activate-api-v1-strategy) - [`PUT /activate/api/v1/strategy`](#put--activate-api-v1-strategy) ## Operations ### GET /activate/api/v1/campaign Fetch campaigns for a given strategy **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID of requested strategy | | `strategy_eid` | **True** | string | Strategy EID of requested campaign | | `campaign_eid` | False | string | Campaign EID (if fetching a specific campaign) | **Responses**: 200 : A list of Campaign objects
Schema as JSON:
```json { "data": [ "" ] } ```
### Schema
* **Type:** object
### data
* **Type:** array of [`CampaignResponse`](#AdRoll Automated Campaigns API (v1) CampaignResponse) ### PUT /activate/api/v1/campaign Modify a specific campaign **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID of requested strategy | | `strategy_eid` | **True** | string | Strategy EID of requested campaign | | `campaign_eid` | **True** | string | Campaign EID to modify | Schema for request body: ```json { "status": "string" } ``` ### Schema * **Type:** object ### status Status to set the campaign to * **Type:** string * **Enum:** `live`, `paused` **Responses**: 200 : A Campaign object
Schema as JSON:
```json { "data": "" } ```
### Schema
* **Type:** object
### data
* **Type:** [`CampaignResponse`](#AdRoll Automated Campaigns API (v1) CampaignResponse) ### GET /activate/api/v1/strategy Fetch strategy **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID of requested strategy | | `strategy_eid` | False | string | Strategy EID of requested strategy | **Responses**: 200 : A list of Strategy objects
Schema as JSON:
```json { "data": [ { "advertisable_eid": "string", "budget": "number", "campaigns": [ "" ], "created_at": "string", "currency": "string", "eid": "string", "email": "", "end_date": "string", "kpi_goal": "number", "kpi_metric": "string", "name": "string", "products": [ "string" ], "spend_floor": "number", "start_date": "string", "status": "string" } ] } ```
### Schema
* **Type:** object
### data
* **Type:** array of [`StrategyResponse`](#AdRoll Automated Campaigns API (v1) StrategyResponse) ### POST /activate/api/v1/strategy Create a new strategy. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID of requested strategy | Schema for request body: [`StrategyCreate`](#AdRoll Automated Campaigns API (v1) StrategyCreate) ```json "" ``` **Responses**: 200 : The newly created strategy
Schema as JSON:
```json { "data": { "advertisable_eid": "string", "budget": "number", "campaigns": [ "" ], "created_at": "string", "currency": "string", "eid": "string", "email": "", "end_date": "string", "kpi_goal": "number", "kpi_metric": "string", "name": "string", "products": [ "string" ], "spend_floor": "number", "start_date": "string", "status": "string" } } ```
### Schema
* **Type:** object
### data
* **Type:** [`StrategyResponse`](#AdRoll Automated Campaigns API (v1) StrategyResponse) ### PUT /activate/api/v1/strategy Edit an existing strategy. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID of requested strategy | | `strategy_eid` | **True** | string | Strategy EID | Schema for request body: [`StrategyEdit`](#AdRoll Automated Campaigns API (v1) StrategyEdit) ```json "" ``` **Responses**: 200 : The updated strategy
Schema as JSON:
```json { "data": { "advertisable_eid": "string", "budget": "number", "campaigns": [ "" ], "created_at": "string", "currency": "string", "eid": "string", "email": "", "end_date": "string", "kpi_goal": "number", "kpi_metric": "string", "name": "string", "products": [ "string" ], "spend_floor": "number", "start_date": "string", "status": "string" } } ```
### Schema
* **Type:** object
### data
* **Type:** [`StrategyResponse`](#AdRoll Automated Campaigns API (v1) StrategyResponse) ## Definitions ### StrategyResponse * **Type:** object ### eid EID of strategy. 22 characters long. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### advertisable_eid EID of advertisable strategy is attached to. 22 Characters long. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### budget Daily budget of strategy in the currency specified by the currency field. * **Type:** number * **Format:** float ### name * **Type:** string * **MaxLength:** 64 ### start_date Start date/time of strategy in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of strategy in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### currency ISO-4217 currency code * **Type:** string ### status Status of strategy * **Type:** string * **Enum:** `paused`, `live` ### spend_floor Percentage representing how low the budget fulfillment can go to try to attain the user kpi. - 1 means our algorithm will always try to maximize budget fulfillment (recommended). - 0 means our algorithm might stop spending if that’s needed to reach the user KPI goal. You can use the numbers in between to tune our algorithm. * **Type:** number * **Format:** float * **Maximum:** 1 ### kpi_goal Value of KPI goal for specified KPI metric (in currency specified by `currency` parameter).It can be null to indicate that Adroll optimizes the KPI goal for the user. * **Type:** number * **Format:** float ### kpi_metric Metric used to measure KPI. * **Type:** string * **Enum:** `CPA`, `CPC`, `CPM` ### created_at Datetime of strategy creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### campaigns * **Type:** array of [`CampaignResponse`](#AdRoll Automated Campaigns API (v1) CampaignResponse) ### products Products in the strategy. * **Type:** array of enum [‘web’, ‘fb’, ‘email’] ### email * **Type:** [`Email`](#AdRoll Automated Campaigns API (v1) Email) ### CampaignResponse ### strategy_eid EID of the strategy the campaign is attached to. 22 characters long. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### eid EID of campaign. 22 characters long. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### campaign_eid EID of campaign. 22 characters long. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### adgroup_eid EID of the campaign adgroup. 22 characters long. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### budget Continuously optimized daily budget for campaign in currency specified by the strategy’s `currency` parameter. * **Type:** number * **Format:** float ### weekly_budget Weekly representation of the campaing’s budget in the currency specified by the strategies’s currency. It is equivalent to budget \* 7. * **Type:** number * **Format:** float ### product Product of campaign * **Type:** string * **Enum:** `web`, `fb`, `email` ### created_at Datetime of campaign creation in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### updated_at Datetime of last campaign update in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### StrategyCreate ### budget Daily Budget for strategy in currency specified by `currency` parameter. * **Required:** True * **Type:** number * **Format:** float ### currency The ISO-4217 currency code of the strategy budget. * **Required:** True * **Type:** string * **Enum:** `USD`, `EUR`, `AUD`, `GBP`, `NZD`, `JPY` ### start_date Date to start running the strategy on in ISO-8601 format If omitted, the current date will be used. If a timezone is not specified it will be assumed to be UTC. * **Type:** string * **Format:** ISO-8601 ### end_date Date to stop running the strategy on in ISO-8601 format If omitted, the strategy will run forever. If a timezone is not specified it will be assumed to be UTC. * **Type:** string * **Format:** date-time ### ad_eids List of EIDs of existing ads. * **Type:** array of string ### kpi_goal Value of KPI goal for specified KPI metric (in currency specified by `currency` parameter). Must be less than the budget. Set it to `null` to let Adroll optimize the KPI goal for you. * **Required:** True * **Type:** number * **Format:** float ### kpi_metric Metric used to measure KPI. * **Required:** True * **Type:** string * **Enum:** `CPA`, `CPC`, `CPM` ### products Products to initialize campaigns with on this strategy. Web is required. You have the option of also running on Facebook. * **Required:** True * **Type:** array of enum [‘web’, ‘fb’, ‘email’] ### positive_segments * **Type:** array of string ### negative_segments * **Type:** array of string ### email * **Type:** [`Email`](#AdRoll Automated Campaigns API (v1) Email) ### spend_floor Percentage representing how low the budget fulfillment can go to try to attain the user kpi. - 1 means our algorithm will always try to maximize budget fulfillment (recommended). - 0 means our algorithm might stop spending if that’s needed to reach the user KPI goal. You can use the numbers in between to tune our algorithm. * **Type:** number * **Format:** float * **Maximum:** 1 ### StrategyEdit ### budget Daily Budget for strategy in currency specified by `currency` parameter. * **Type:** number * **Format:** float ### status Status of strategy. By default all strategies are created in the `live` state and will begin spending immediately. Pausing a strategy will pause all underlying campaigns. Resuming a strategy will resume resume all underlying campaigns that were paused by the strategy. (Individual campaigns can be paused independently - resuming a strategy will not resume these manually paused campaigns.) * **Type:** string * **Enum:** `paused`, `live` ### start_date Date to start running the strategy on in ISO-8601 format Start date cannot be edited if the strategy is already running * **Type:** string * **Format:** ISO-8601 ### end_date Date to stop running the strategy on in ISO-8601 format If a timezone is not specified it will be assumed to be UTC. * **Type:** string * **Format:** date-time ### kpi_goal Value of KPI goal for specified KPI metric (in currency specified by `currency` parameter). Must be less than the budget. Set it to `null` to let Adroll optimize the KPI goal for you. * **Type:** number * **Format:** float ### kpi_metric Metric used to measure KPI. * **Type:** string * **Enum:** `CPA`, `CPC`, `CPM` ### spend_floor Percentage representing how low the budget fulfillment can go to try to attain the user kpi. - 1 means our algorithm will always try to maximize budget fulfillment (recommended). - 0 means our algorithm might stop spending if that’s needed to reach the user KPI goal. You can use the numbers in between to tune our algorithm. * **Type:** number * **Format:** float * **Maximum:** 1 ### Email ### optin Boolean indicating whether or not the user has opted in to use AdRoll Email. * **Type:** boolean ### optin_country Supported ISO-3166 country code for advertisable. * **Type:** string ### sender_name Name of sender for emails sent by AdRoll Email. * **Type:** string ### sender_address Email address to use as the sender email for emails sent by AdRoll Email. * **Type:** string ### footer_postal_address Postal address of business to place in the footer of emails sent by AdRoll Email. * **Type:** string ### emails * **Type:** array of object # reference.html.md # CRUD API Reference #### NOTE If you use the APIs provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api) #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description AdRoll CRUD API v1 by [AdRoll](mailto:apihelp@adroll.com) Manage AdRoll with the AdRoll CRUD API [External documentation](https://developers.adroll.com/) ## Operations by Tag ### Ad - [`POST /api/v1/ad/clone`](#post--api-v1-ad-clone) - [`POST /api/v1/ad/create`](#post--api-v1-ad-create) - [`POST /api/v1/ad/create_templated_web_ads`](#post--api-v1-ad-create_templated_web_ads) - [`PUT /api/v1/ad/edit`](#put--api-v1-ad-edit) - [`GET /api/v1/ad/get`](#get--api-v1-ad-get) ### Adgroup - [`POST /api/v1/adgroup/add_segments`](#post--api-v1-adgroup-add_segments) - [`POST /api/v1/adgroup/create`](#post--api-v1-adgroup-create) - [`POST /api/v1/adgroup/deselect_ads`](#post--api-v1-adgroup-deselect_ads) - [`POST /api/v1/adgroup/edit`](#post--api-v1-adgroup-edit) - [`GET /api/v1/adgroup/get`](#get--api-v1-adgroup-get) - [`GET /api/v1/adgroup/get_ads`](#get--api-v1-adgroup-get_ads) - [`POST /api/v1/adgroup/pause`](#post--api-v1-adgroup-pause) - [`POST /api/v1/adgroup/pause_ad`](#post--api-v1-adgroup-pause_ad) - [`POST /api/v1/adgroup/pause_ads`](#post--api-v1-adgroup-pause_ads) - [`POST /api/v1/adgroup/remove_segments`](#post--api-v1-adgroup-remove_segments) - [`POST /api/v1/adgroup/select_ads`](#post--api-v1-adgroup-select_ads) - [`POST /api/v1/adgroup/unpause`](#post--api-v1-adgroup-unpause) - [`POST /api/v1/adgroup/unpause_ad`](#post--api-v1-adgroup-unpause_ad) - [`POST /api/v1/adgroup/unpause_ads`](#post--api-v1-adgroup-unpause_ads) ### Advertisable - [`POST /api/v1/advertisable/create`](#post--api-v1-advertisable-create) - [`POST /api/v1/advertisable/edit`](#post--api-v1-advertisable-edit) - [`POST /api/v1/advertisable/enable_rollcrawl`](#post--api-v1-advertisable-enable_rollcrawl) - [`GET /api/v1/advertisable/get`](#get--api-v1-advertisable-get) - [`GET /api/v1/advertisable/get_adgroups`](#get--api-v1-advertisable-get_adgroups) - [`GET /api/v1/advertisable/get_adgroups_fast`](#get--api-v1-advertisable-get_adgroups_fast) - [`GET /api/v1/advertisable/get_ads`](#get--api-v1-advertisable-get_ads) - [`GET /api/v1/advertisable/get_ads_fast`](#get--api-v1-advertisable-get_ads_fast) - [`GET /api/v1/advertisable/get_campaigns`](#get--api-v1-advertisable-get_campaigns) - [`GET /api/v1/advertisable/get_campaigns_fast`](#get--api-v1-advertisable-get_campaigns_fast) - [`GET /api/v1/advertisable/get_pixel`](#get--api-v1-advertisable-get_pixel) - [`GET /api/v1/advertisable/get_segments`](#get--api-v1-advertisable-get_segments) - [`GET /api/v1/advertisable/get_suggested_country`](#get--api-v1-advertisable-get_suggested_country) ### Advertisable Logo - [`POST /api/v1/advertisable_logo/create`](#post--api-v1-advertisable_logo-create) ### Campaign - [`POST /api/v1/campaign/create`](#post--api-v1-campaign-create) - [`POST /api/v1/campaign/edit`](#post--api-v1-campaign-edit) - [`GET /api/v1/campaign/get`](#get--api-v1-campaign-get) - [`GET /api/v1/campaign/get_adgroups`](#get--api-v1-campaign-get_adgroups) - [`PUT /api/v1/campaign/pause`](#put--api-v1-campaign-pause) - [`PUT /api/v1/campaign/pause_ads`](#put--api-v1-campaign-pause_ads) - [`PUT /api/v1/campaign/unpause`](#put--api-v1-campaign-unpause) - [`PUT /api/v1/campaign/unpause_ads`](#put--api-v1-campaign-unpause_ads) ### Consent Banner - [`GET /api/v1/consent_banner/retrieve`](#get--api-v1-consent_banner-retrieve) - [`POST /api/v1/consent_banner/update`](#post--api-v1-consent_banner-update) ### Contextual Categories - [`GET /api/v1/contextual_categories/get_all_contextual_categories`](#get--api-v1-contextual_categories-get_all_contextual_categories) ### Dynamic Configuration - [`PUT /api/v1/dynamic_configuration/edit`](#put--api-v1-dynamic_configuration-edit) - [`POST /api/v1/dynamic_configuration/enable`](#post--api-v1-dynamic_configuration-enable) - [`GET /api/v1/dynamic_configuration/get`](#get--api-v1-dynamic_configuration-get) ### Dynamic Template - [`GET /api/v1/dynamic_template/get_all_for_advertisable`](#get--api-v1-dynamic_template-get_all_for_advertisable) ### Dynamic Template Capability Description - [`GET /api/v1/dynamic_template_capability_description/get_all`](#get--api-v1-dynamic_template_capability_description-get_all) ### Feed - [`POST /api/v1/feed/autoconfigure`](#post--api-v1-feed-autoconfigure) ### Invoice - [`GET /api/v1/invoice/get`](#get--api-v1-invoice-get) ### Marketplace - [`POST /api/v1/marketplace/create`](#post--api-v1-marketplace-create) - [`GET /api/v1/marketplace/get`](#get--api-v1-marketplace-get) ### Marketplace Deals - [`GET /api/v1/marketplace_deals/get`](#get--api-v1-marketplace_deals-get) - [`GET /api/v1/marketplace_deals/metadata`](#get--api-v1-marketplace_deals-metadata) ### Organization - [`GET /api/v1/organization/get`](#get--api-v1-organization-get) - [`GET /api/v1/organization/get_accounts`](#get--api-v1-organization-get_accounts) - [`GET /api/v1/organization/get_advertisables`](#get--api-v1-organization-get_advertisables) - [`GET /api/v1/organization/get_advertisables_paginated`](#get--api-v1-organization-get_advertisables_paginated) - [`GET /api/v1/organization/get_billing_methods`](#get--api-v1-organization-get_billing_methods) - [`GET /api/v1/organization/get_users`](#get--api-v1-organization-get_users) ### Pixel - [`GET /api/v1/pixel/get`](#get--api-v1-pixel-get) - [`GET /api/v1/pixel/get_rules`](#get--api-v1-pixel-get_rules) - [`GET /api/v1/pixel/get_segments`](#get--api-v1-pixel-get_segments) ### Policy - [`POST /api/v1/policy/send_email`](#post--api-v1-policy-send_email) ### Product Feeds - [`PUT /api/v1/product_feeds/add_feed_config`](#put--api-v1-product_feeds-add_feed_config) - [`POST /api/v1/product_feeds/autoconfigure`](#post--api-v1-product_feeds-autoconfigure) - [`GET /api/v1/product_feeds/delete_feed_config`](#get--api-v1-product_feeds-delete_feed_config) - [`GET /api/v1/product_feeds/delete_parser_config`](#get--api-v1-product_feeds-delete_parser_config) - [`PUT /api/v1/product_feeds/edit_feed_config`](#put--api-v1-product_feeds-edit_feed_config) - [`GET /api/v1/product_feeds/feed_downloadable`](#get--api-v1-product_feeds-feed_downloadable) - [`GET /api/v1/product_feeds/feed_status`](#get--api-v1-product_feeds-feed_status) - [`GET /api/v1/product_feeds/get_feed_config`](#get--api-v1-product_feeds-get_feed_config) - [`GET /api/v1/product_feeds/get_parser_config`](#get--api-v1-product_feeds-get_parser_config) - [`GET /api/v1/product_feeds/get_products`](#get--api-v1-product_feeds-get_products) - [`GET /api/v1/product_feeds/get_troubled_products`](#get--api-v1-product_feeds-get_troubled_products) - [`GET /api/v1/product_feeds/match_rate`](#get--api-v1-product_feeds-match_rate) - [`GET /api/v1/product_feeds/parse_preview`](#get--api-v1-product_feeds-parse_preview) - [`GET /api/v1/product_feeds/set_parser_config`](#get--api-v1-product_feeds-set_parser_config) - [`POST /api/v1/product_feeds/set_parser_configs`](#post--api-v1-product_feeds-set_parser_configs) ### Report - [`GET /api/v1/report/ad`](#get--api-v1-report-ad) - [`GET /api/v1/report/advertisable`](#get--api-v1-report-advertisable) - [`GET /api/v1/report/campaign`](#get--api-v1-report-campaign) ### Rule - [`POST /api/v1/rule/create`](#post--api-v1-rule-create) - [`GET /api/v1/rule/get`](#get--api-v1-rule-get) - [`GET /api/v1/rule/get_segments`](#get--api-v1-rule-get_segments) ### Segment - [`POST /api/v1/segment/edit`](#post--api-v1-segment-edit) - [`GET /api/v1/segment/get`](#get--api-v1-segment-get) ### Untagged - [`POST /api/v1/ad/clone`](#post--api-v1-ad-clone) - [`POST /api/v1/ad/create`](#post--api-v1-ad-create) - [`POST /api/v1/ad/create_templated_web_ads`](#post--api-v1-ad-create_templated_web_ads) - [`PUT /api/v1/ad/edit`](#put--api-v1-ad-edit) - [`GET /api/v1/ad/get`](#get--api-v1-ad-get) - [`POST /api/v1/adgroup/add_segments`](#post--api-v1-adgroup-add_segments) - [`POST /api/v1/adgroup/create`](#post--api-v1-adgroup-create) - [`POST /api/v1/adgroup/deselect_ads`](#post--api-v1-adgroup-deselect_ads) - [`POST /api/v1/adgroup/edit`](#post--api-v1-adgroup-edit) - [`GET /api/v1/adgroup/get`](#get--api-v1-adgroup-get) - [`GET /api/v1/adgroup/get_ads`](#get--api-v1-adgroup-get_ads) - [`POST /api/v1/adgroup/pause`](#post--api-v1-adgroup-pause) - [`POST /api/v1/adgroup/pause_ad`](#post--api-v1-adgroup-pause_ad) - [`POST /api/v1/adgroup/pause_ads`](#post--api-v1-adgroup-pause_ads) - [`POST /api/v1/adgroup/remove_segments`](#post--api-v1-adgroup-remove_segments) - [`POST /api/v1/adgroup/select_ads`](#post--api-v1-adgroup-select_ads) - [`POST /api/v1/adgroup/unpause`](#post--api-v1-adgroup-unpause) - [`POST /api/v1/adgroup/unpause_ad`](#post--api-v1-adgroup-unpause_ad) - [`POST /api/v1/adgroup/unpause_ads`](#post--api-v1-adgroup-unpause_ads) - [`POST /api/v1/advertisable/create`](#post--api-v1-advertisable-create) - [`POST /api/v1/advertisable/edit`](#post--api-v1-advertisable-edit) - [`POST /api/v1/advertisable/enable_rollcrawl`](#post--api-v1-advertisable-enable_rollcrawl) - [`GET /api/v1/advertisable/get`](#get--api-v1-advertisable-get) - [`GET /api/v1/advertisable/get_adgroups`](#get--api-v1-advertisable-get_adgroups) - [`GET /api/v1/advertisable/get_adgroups_fast`](#get--api-v1-advertisable-get_adgroups_fast) - [`GET /api/v1/advertisable/get_ads`](#get--api-v1-advertisable-get_ads) - [`GET /api/v1/advertisable/get_ads_fast`](#get--api-v1-advertisable-get_ads_fast) - [`GET /api/v1/advertisable/get_campaigns`](#get--api-v1-advertisable-get_campaigns) - [`GET /api/v1/advertisable/get_campaigns_fast`](#get--api-v1-advertisable-get_campaigns_fast) - [`GET /api/v1/advertisable/get_pixel`](#get--api-v1-advertisable-get_pixel) - [`GET /api/v1/advertisable/get_segments`](#get--api-v1-advertisable-get_segments) - [`GET /api/v1/advertisable/get_suggested_country`](#get--api-v1-advertisable-get_suggested_country) - [`POST /api/v1/advertisable_logo/create`](#post--api-v1-advertisable_logo-create) - [`POST /api/v1/campaign/create`](#post--api-v1-campaign-create) - [`POST /api/v1/campaign/edit`](#post--api-v1-campaign-edit) - [`GET /api/v1/campaign/get`](#get--api-v1-campaign-get) - [`GET /api/v1/campaign/get_adgroups`](#get--api-v1-campaign-get_adgroups) - [`PUT /api/v1/campaign/pause`](#put--api-v1-campaign-pause) - [`PUT /api/v1/campaign/pause_ads`](#put--api-v1-campaign-pause_ads) - [`PUT /api/v1/campaign/unpause`](#put--api-v1-campaign-unpause) - [`PUT /api/v1/campaign/unpause_ads`](#put--api-v1-campaign-unpause_ads) - [`GET /api/v1/consent_banner/retrieve`](#get--api-v1-consent_banner-retrieve) - [`POST /api/v1/consent_banner/update`](#post--api-v1-consent_banner-update) - [`GET /api/v1/contextual_categories/get_all_contextual_categories`](#get--api-v1-contextual_categories-get_all_contextual_categories) - [`PUT /api/v1/dynamic_configuration/edit`](#put--api-v1-dynamic_configuration-edit) - [`POST /api/v1/dynamic_configuration/enable`](#post--api-v1-dynamic_configuration-enable) - [`GET /api/v1/dynamic_configuration/get`](#get--api-v1-dynamic_configuration-get) - [`GET /api/v1/dynamic_template/get_all_for_advertisable`](#get--api-v1-dynamic_template-get_all_for_advertisable) - [`GET /api/v1/dynamic_template_capability_description/get_all`](#get--api-v1-dynamic_template_capability_description-get_all) - [`POST /api/v1/feed/autoconfigure`](#post--api-v1-feed-autoconfigure) - [`GET /api/v1/invoice/get`](#get--api-v1-invoice-get) - [`POST /api/v1/marketplace/create`](#post--api-v1-marketplace-create) - [`GET /api/v1/marketplace/get`](#get--api-v1-marketplace-get) - [`GET /api/v1/marketplace_deals/get`](#get--api-v1-marketplace_deals-get) - [`GET /api/v1/marketplace_deals/metadata`](#get--api-v1-marketplace_deals-metadata) - [`GET /api/v1/organization/get`](#get--api-v1-organization-get) - [`GET /api/v1/organization/get_accounts`](#get--api-v1-organization-get_accounts) - [`GET /api/v1/organization/get_advertisables`](#get--api-v1-organization-get_advertisables) - [`GET /api/v1/organization/get_advertisables_paginated`](#get--api-v1-organization-get_advertisables_paginated) - [`GET /api/v1/organization/get_billing_methods`](#get--api-v1-organization-get_billing_methods) - [`GET /api/v1/organization/get_users`](#get--api-v1-organization-get_users) - [`GET /api/v1/pixel/get`](#get--api-v1-pixel-get) - [`GET /api/v1/pixel/get_rules`](#get--api-v1-pixel-get_rules) - [`GET /api/v1/pixel/get_segments`](#get--api-v1-pixel-get_segments) - [`POST /api/v1/policy/send_email`](#post--api-v1-policy-send_email) - [`PUT /api/v1/product_feeds/add_feed_config`](#put--api-v1-product_feeds-add_feed_config) - [`POST /api/v1/product_feeds/autoconfigure`](#post--api-v1-product_feeds-autoconfigure) - [`GET /api/v1/product_feeds/delete_feed_config`](#get--api-v1-product_feeds-delete_feed_config) - [`GET /api/v1/product_feeds/delete_parser_config`](#get--api-v1-product_feeds-delete_parser_config) - [`PUT /api/v1/product_feeds/edit_feed_config`](#put--api-v1-product_feeds-edit_feed_config) - [`GET /api/v1/product_feeds/feed_downloadable`](#get--api-v1-product_feeds-feed_downloadable) - [`GET /api/v1/product_feeds/feed_status`](#get--api-v1-product_feeds-feed_status) - [`GET /api/v1/product_feeds/get_feed_config`](#get--api-v1-product_feeds-get_feed_config) - [`GET /api/v1/product_feeds/get_parser_config`](#get--api-v1-product_feeds-get_parser_config) - [`GET /api/v1/product_feeds/get_products`](#get--api-v1-product_feeds-get_products) - [`GET /api/v1/product_feeds/get_troubled_products`](#get--api-v1-product_feeds-get_troubled_products) - [`GET /api/v1/product_feeds/match_rate`](#get--api-v1-product_feeds-match_rate) - [`GET /api/v1/product_feeds/parse_preview`](#get--api-v1-product_feeds-parse_preview) - [`GET /api/v1/product_feeds/set_parser_config`](#get--api-v1-product_feeds-set_parser_config) - [`POST /api/v1/product_feeds/set_parser_configs`](#post--api-v1-product_feeds-set_parser_configs) - [`GET /api/v1/report/ad`](#get--api-v1-report-ad) - [`GET /api/v1/report/advertisable`](#get--api-v1-report-advertisable) - [`GET /api/v1/report/campaign`](#get--api-v1-report-campaign) - [`POST /api/v1/rule/create`](#post--api-v1-rule-create) - [`GET /api/v1/rule/get`](#get--api-v1-rule-get) - [`GET /api/v1/rule/get_segments`](#get--api-v1-rule-get_segments) - [`POST /api/v1/segment/edit`](#post--api-v1-segment-edit) - [`GET /api/v1/segment/get`](#get--api-v1-segment-get) - [`POST /api/v1/user/edit`](#post--api-v1-user-edit) - [`GET /api/v1/user/get`](#get--api-v1-user-get) - [`POST /api/v1/user/grant`](#post--api-v1-user-grant) - [`GET /api/v1/xdevice_opt_in/retrieve`](#get--api-v1-xdevice_opt_in-retrieve) - [`POST /api/v1/xdevice_opt_in/update`](#post--api-v1-xdevice_opt_in-update) ### User - [`POST /api/v1/user/edit`](#post--api-v1-user-edit) - [`GET /api/v1/user/get`](#get--api-v1-user-get) - [`POST /api/v1/user/grant`](#post--api-v1-user-grant) ### Xdevice Opt In - [`GET /api/v1/xdevice_opt_in/retrieve`](#get--api-v1-xdevice_opt_in-retrieve) - [`POST /api/v1/xdevice_opt_in/update`](#post--api-v1-xdevice_opt_in-update) ## Operations ### POST /api/v1/ad/clone Clones an ad. Any parameters given will override the corresponding field in the original ad. The fields below may be overridden. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-------------------|------------|--------|--------------------------------------------------------------------------------------------| | `destination_url` | False | string | The URL that the browser will navigate to when the ad is clicked (Optional; default: None) | | `name` | False | string | The name of the ad (Optional; default: None) | | `headline` | False | string | The headline text of the Facebook ad (Optional, only for Facebook ads; default: ‘’) | | `body` | False | string | The body text of the Facebook ad (Optional, only for Facebook ads; default: ‘’) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The new ad’s “get” representation > * **Type:** > object ### POST /api/v1/ad/create Creates a new ad. Ad will only be created as active if both the name and destination_url parameters are provided. The following ad formats are supported: | Format ID | Name | Description | |-------------|------------------------------------------|-----------------------| | 1 | Full Banner | 468 wide x 60 high | | 3 | Leaderboard | 728 wide x 90 high | | 4 | Small Rectangle | 180 wide x 150 high | | 5 | Medium Rectangle | 300 wide x 250 high | | 6 | Large Rectangle | 336 wide x 280 high | | 7 | Wide Skyscraper | 160 wide x 600 high | | 8 | Skyscraper | 120 wide x 600 high | | 9 | Vertical Banner | 120 wide x 240 high | | 10 | Square Button | 125 wide x 125 high | | 11 | Rectangular Button | 180 wide x 60 high | | 12 | Square | 250 wide x 250 high | | 13 | Tiny Rectangle | 120 wide x 60 high | | 14 | Mid Square | 200 wide x 200 high | | 16 | 3:1 Rectangle | 300 wide x 100 high | | 20 | Half Page | 300 wide x 600 high | | 21 | Mobile Leaderboard | 320 wide x 50 high | | 17 | Facebook Banner | 645 wide x 60 high | | 24 | Facebook Page Post Link Ad | 600 wide x 315 high | | 25 | Facebook App Install Mobile News Feed Ad | 1200 wide x 627 high | | 26 | Facebook Instagram Ad | 600 wide x 600 high | | 31 | Instagram Carousel Base | 0 wide x 1 high | | 27 | Billboard | 970 wide x 250 high | | 28 | Facebook Instagram Ad | 1200 wide x 1200 high | | 29 | Facebook Carousel Child | 460 wide x 460 high | | 30 | Facebook Carousel Base | 0 wide x 0 high | | 32 | Facebook Page Post Link Ad | 1200 wide x 628 high | | 33 | Native Ad Wide | 600 wide x 315 high | | 34 | Native Ad Square | 600 wide x 600 high | | 35 | Native Ad Taboola Min | 600 wide x 500 high | Files can be uploaded via either a base64 encoded string, or a [multipart HTTP request](http://code.activestate.com/recipes/146306-http-client-to-post-using-multipartform-data/). For Facebook ads, call_to_action is one of: - NO_BUTTON - BOOK_TRAVEL - BUY_NOW - DONATE_NOW - DOWNLOAD - GET_QUOTE - INSTALL_APP - INSTALL_MOBILE_APP - LEARN_MORE - LISTEN_MUSIC - MESSAGE_PAGE - OPEN_LINK - PLAY_GAME - SHOP_NOW - SIGN_UP - SUBSCRIBE **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-------------------------|------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | The EID of the advertisable to which this ad will belong | | `file` | **True** | string | The actual contents of the ad creative. Pass this in as a base64-encoded string or use a multi-part form request. | | `destination_url` | False | string | The URL that the browser will navigate to when the ad is clicked (Optional; default: ‘’) | | `name` | False | string | The name of the ad (Optional; default: ‘’) | | `headline` | False | string | The headline text of the Facebook ad (Optional, only for Facebook ads and limited to 25 characters; default: ‘’) | | `body` | False | string | The body text of the Facebook ad (Optional, only for Facebook ads and limited to 90 characters; default: ‘’) | | `message` | False | string | The message text of the Facebook ad (Optional, only for Facebook newsfeed ads and limited to 500 characters; default: ‘’) | | `product` | False | string | The SWF data of the product animation loop (Optional, only for liquid ads; default: ‘’) | | `logo` | False | string | The data of the logo image (Optional, only for liquid ads; default: ‘’) | | `headline_dynamic` | False | string | The headline text of the Facebook ad (Optional; default: ‘’) | | `body_dynamic` | False | string | The body text of the Facebook ad (Optional; default: ‘’) | | `message_dynamic` | False | string | The message text of the Facebook ad (Optional; default: ‘’) | | `is_fb_dynamic` | False | string | True to indicate that this is a dynamic Facebook ad (Optional; default: ‘’) | | `multiple_products` | False | integer | Number of products the Facebook ad should show. One of: 0, 3, 4, 5 (Optional; default: 0) | | `call_to_action` | False | string | Facebook call to action to use (Optional; default: ‘’) | | `lead_gen_form_id` | False | string | ID of the Facebook lead form for Lead Ads (Optional; default: ‘’) | | `multi_share_optimized` | False | string | True if Facebook should automatically select and order images for Carousel Ads (Optional; default: ‘’) | | `child_ads` | False | string | Comma separated list of child ads for Facebook Carousel Ads (Optional; default: ‘’) | | `app_id` | False | string | ID of application for Facebook App Ads (Optional; default: ‘’) | | `dynamic_template_id` | False | string | Dynamic Creative template to use (Optional; default: ‘’) | | `background` | False | string | Background color (hex value or name) or URL to an image for the Dynamic Creative ad (Optional; default: ‘white’) | | `ad_format` | False | string | Ad format ID. (Optional; default: ‘’) | | `prefix` | False | string | Product URLs will be prefixed with this when Dynamic Creative is clicked, used for redirect-style click trackers (Optional; default: ‘’) | | `tracking` | False | string | URL query parameters to add to product URLs when Dynamic Creative is clicked (Optional; default: ‘’) | | `display_url_override` | False | string | When the destination URL uses a redirect or click trackers, this value is required and should be equal to the final destination URL of the redirect. Some of our partner networks do not follow redirects when approving ads so this value must be provided to mitigate against ad disapprovals. (Optional; default: ‘’) | | `type` | False | string | Ad type (Optional; default: ‘image’) | | `brand_name` | False | string | The brand name for native ads (Optional for non-native ads; default: ‘’) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The new ad’s “get” representation > * **Type:** > object ### POST /api/v1/ad/create_templated_web_ads Creates a set of ads from a template. Assumes that you’ve already called the \`advertisable_logo/create\` api to upload a logo for the provided advertisable. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------------------|------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | The EID of the advertisable to which these ads will belong | | `name` | **True** | string | The name of the ad set. Appends to the following default naming convention as such ‘Dynamic_[ad size]_[date]_[ad set name]’. Properties such as theme name are recommended (limited to 30 characters) | | `theme_color` | **True** | string | Hexadecimal color code for the color of the CTA box, e.g. #FFFF00 | | `text_cta` | **True** | string | The call to action text shown on the cta box. Since the available space depends on the specific template you’re using, this field doesn’t have a limit. | | `dynamic_template_id` | **True** | integer | The ID of the template to be created | | `text_promo` | False | string | The call to action text shown on the cta box (Optional; default: ‘’) | | `sale_price_option` | False | integer | How price should be seen inside the Ad. 0 - don’t show the price, 1 - show the price normalized, 2 - show sale price, 3 - show original price with strikethrough, sale price, and discount percentage. (Optional; default: ‘’) | | `prefix` | False | string | Product URLs will be prefixed with this when Dynamic Creative is clicked, used for redirect-style click trackers (Optional; default: ‘’) | | `tracking` | False | string | URL query parameters to add to product URLs when Dynamic Creative is clicked (Optional; default: ‘’) | | `countdown_end` | False | string | The end date a countdown timer ticks down to in ISO 8601 timestamp format. Append with ‘Z’ for UTC time. (Optional; default: ‘’) | | `product_group` | False | string | A product group defined on a feed to be included in the recommendations endpoint call (Optional; default: ‘’) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > A list of the new ad’s “get” representation > * **Type:** > object ### PUT /api/v1/ad/edit Edits an ad. If a major data point is edited (i.e. destination_url), it will create a new ad and put it in an admin approval state. A new ad is created to allow your old ad to continue to run until the edited ad is approved. If innocuous data is entered, or the ad is not part of a campaign, it will just be edited in place. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `ad` | **True** | string | EID of the ad to edit | | `destination_url` | False | string | The new destination_url for the ad (Optional; default: None) | | `name` | False | string | The new name of the ad (Optional; default: None) | | `headline` | False | string | The headline text of the Facebook ad (Optional, only for Facebook ads; default: ‘’) | | `body` | False | string | The body text of the Facebook ad (Optional, only for Facebook ads; default: ‘’) | **Responses**: 200 > Schema as JSON: > ```json > { > "edit_mode": "string", > "original": {}, > "replacement": {} > } > ``` > ### Schema > * **Type:** > object > ### edit_mode > Either ‘edit’, if edits were made in place, or ‘clone’, if the edits > necessitated the creation of a new ad > * **Type:** > string > ### original > The original ad’s “get” representation > * **Type:** > object > ### replacement > The new ad’s “get” representation, if the edits necessitated the > creation of a new ad > * **Type:** > object ### GET /api/v1/ad/get Fetches an ad by its EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `ad` | **True** | string | The EID of the ad to fetch | **Responses**: 200 > Schema as JSON: > ```json > { > "ad_format": "string", > "ad_format_id": "integer", > "ad_format_name": "string", > "adgroups": [ > "" > ], > "advertisable": "string", > "body": "string", > "created_date": "string", > "destination_url": "string", > "display_url_override": "string", > "eid": "string", > "has_edits": "boolean", > "has_future_campaigns": "boolean", > "has_pending_edits": "boolean", > "headline": "string", > "height": "integer", > "is_active": "boolean", > "is_outlined": "boolean", > "message": "string", > "name": "string", > "original_ad": "string", > "outline_color": "string", > "src": "string", > "status": "string", > "type": "string", > "updated_date": "string", > "valid_clicktag": "boolean", > "width": "integer" > } > ``` > ### Schema > * **Type:** > object > ### eid > EID of the ad. > * **Type:** > string > ### ad_format_id > The id of the corresponding ad format in the AdRoll system > * **Type:** > integer > ### ad_format > Format string. i.e. ‘300 wide x 250 high’ > * **Type:** > string > ### ad_format_name > Format string. i.e. ‘300x250’ > * **Type:** > string > ### advertisable > The EID of the advertisable to which this ad belongs > * **Type:** > string > ### adgroups > The list of adgroup EIDs that this ad belongs to > * **Type:** > array of items > ### has_future_campaigns > Whether or not this ad has the possibility of serving based on the > adgroups and campaigns in which it inhabits > * **Type:** > boolean > ### destination_url > The URL that the browser will navigate to when this ad is clicked > * **Type:** > string > ### headline > For Facebook ads, the text to be displayed as the ad’s headline > * **Type:** > string > ### body > For Facebook ads, the text to be displayed as the ad’s body > * **Type:** > string > ### message > For Facebook Newsfeed ads, the text to be displayed as the ad’s message > * **Type:** > string > ### is_active > Whether or not this ad is currently active > * **Type:** > boolean > ### name > The name of this ad > * **Type:** > string > ### src > This ad’s creative’s source URL > * **Type:** > string > ### status > One of ‘approved’, ‘admin_review’, ‘paused’ > * **Type:** > string > ### type > The ad type: ‘image’ or ‘ad_network’ > * **Type:** > string > ### height > The height in pixels of this ad’s creative > * **Type:** > integer > ### width > The width in pixels of this ad’s creative > * **Type:** > integer > ### created_date > The date this ad was created > * **Type:** > string > ### updated_date > The date this ad was last updated > * **Type:** > string > ### has_edits > Whether or not this ad has been edited such that another ad has it’s > original ad parameter set to this ad’s EID > * **Type:** > boolean > ### has_pending_edits > Whether or not this ad has edits that must be reviewed by an AdRoll > administrator > * **Type:** > boolean > ### original_ad > The EID of the ad that was edited to create this ad > * **Type:** > string > ### is_outlined > Whether or not an outline has been applied to the ad to satisfy network > compliancy > * **Type:** > boolean > ### outline_color > Hexadecimal color code corresponding to the outline of an ad > * **Type:** > string > ### valid_clicktag > If the ad is in flash format, this is the flag showing whether or not > the clickTAG is compliant > * **Type:** > boolean > ### display_url_override > When the destination URL uses a redirect, this value is used as the > destination URL by our partner networks during ad reviews. > * **Type:** > string ### POST /api/v1/adgroup/add_segments Adds (associates) segments to an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |---------------|------------|---------|-------------------------------------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup to add the segments to | | `segments` | **True** | string | A comma-separated string of the EIDs of the segments to add to this adgroup | | `is_negative` | False | boolean | Whether or not this segment is negatively targeted (Optional; default: False) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": "boolean" > } > ``` > ### Schema > * **Type:** > object > ### results > Whether or not the segments were added > * **Type:** > boolean ### POST /api/v1/adgroup/create Creates a new adgroup on a campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |---------------------|------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `campaign` | **True** | string | EID of campaign to attach the adgroup to | | `name` | False | string | The name of the new adgroup (Optional; default: None) | | `status` | False | string | The status of the adgroup. One of [‘approved’, ‘draft’] (Optional; default: ‘approved’) | | `ads` | False | string | A comma-separated string of Ad EIDs to attach to the adgroup (Optional; default: None) | | `positive_segments` | False | string | A comma-separated string of Segment EIDs to attach to the adgroup as positive segments (Optional; default: None) | | `negative_segments` | False | string | A comma-separated string of Segment EIDs to attach to the adgroup as negative segments (Optional; default: None) | | `product_set` | False | string | The Product Set to attach to this adgroup (Optional; default: None) - DEPRECATED it will be discarded from the incoming payload | | `geo_targets` | False | string | JSON string of desired geo targets for the adgroup The parsed JSON should be an array of objects, each object should be like: {“country_id”:19, “eid”:”YD2QNVI2GVH4DP4TIO8GEO”, “is_negative”:false} The first ID should be one of: - “country_id” - “region_id” - “metro_id” - “city_id” - “postal_code_id” - “postal_code” “is_negative” is a boolean, defaulting to False. When is_negative is true, that means the geolocation is excluded. “eid” is the true identifier obtained from magellan about this geo_target. Example of JSON string: ‘[{“country_id”:19,”eid”:”YD2QNVI2GVH4DP4TIO8GEO”,”is_negative”:false}, {“region_id”:”USCA”,”eid”:”FPDT2YVTEZG3LNMQ5Q8GEO”,”is_negative”:false}]’ All existing geo targets will be removed before adding the new ones. If omitted, the adgroup will get the same geo targets as other adgroups in the same campaign.(Optional; default: None) | | `placement_targets` | **True** | array | A JSON list of placements targets for Facebook ads - DEPRECATED it will not be returned anymore | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The new adgroup’s “get” representation > * **Type:** > object ### POST /api/v1/adgroup/deselect_ads Detaches ads from an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|-----------------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup whose ads are to be detached | | `ads` | **True** | array | A list of the EIDs of the ads to detach from this adgroup | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list of compliancy dictionaries in the following format: {ad: ad_eid, > sites: [DEPRECATED], errors: [DEPRECATED]}. > * **Type:** > array of items ### POST /api/v1/adgroup/edit Edits an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |------------------------|------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `adgroup` | **True** | string | EID of the adgroup to edit | | `name` | False | string | The name of the adgroup (Optional; default: None) | | `status` | False | string | The status of the adgroup. One of [‘approved’, ‘paused’] (Optional; default: None) | | `ads` | False | string | A comma-separated string of Ad EIDs to attach to the adgroup (Optional; default: None) | | `positive_segments` | False | string | A comma-separated string of Segment EIDs to attach to the adgroup as positive segments. Will take the place of existing positive segments. (Optional; default: None) | | `negative_segments` | False | string | A comma-separated string of Segment EIDs to attach to the adgroup as negative segments. Will take the place of existing negative segments. (Optional; default: None) | | `product_set` | False | string | The Product Set to attach to this adgroup (Optional; default: None) - DEPRECATED it will be discarded from the incoming payload | | `geo_targets` | False | string | JSON string of desired geo targets for the adgroup The parsed JSON should be an array of objects, each object should be like: {“country_id”:19, “eid”:”YD2QNVI2GVH4DP4TIO8GEO”, “is_negative”:false} The first ID should be one of: - “country_id” - “region_id” - “metro_id” - “city_id” - “postal_code_id” - “postal_code” “is_negative” is a boolean, defaulting to False. When is_negative is true, that means the geolocation is excluded. “eid” is the true identifier obtained from magellan about this geo_target. Example of JSON string: ‘[{“country_id”:19,”eid”:”YD2QNVI2GVH4DP4TIO8GEO”,”is_negative”:false}, {“region_id”:”USCA”,”eid”:”FPDT2YVTEZG3LNMQ5Q8GEO”,”is_negative”:false}]’ All existing geo targets will be removed before adding the new ones. (Optional; default: None) | | `geo_target_worldwide` | **True** | boolean | If passed, all geo targets of the adgroup will be removed. (Optional) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The adgroup’s “get” representation after being edited > * **Type:** > object ### GET /api/v1/adgroup/get Fetches an adgroup by its EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `adgroup` | **True** | string | The EID of the adgroup to fetch | **Responses**: 200 > Schema as JSON: > ```json > { > "ad_optimization": "string", > "ads": [ > "" > ], > "allowed_targeting": "string", > "campaign": "string", > "created_date": "string", > "eid": "string", > "flight_timezone": "string", > "geo_targets": [ > "" > ], > "name": "string", > "placement_targets": [ > "" > ], > "platform_targets": [ > "" > ], > "product_set": {}, > "segments": [ > "" > ], > "site_exclusions": [ > "" > ], > "status": "string", > "updated_date": "string" > } > ``` > ### Schema > * **Type:** > object > ### ad_optimization > The strategy used to optimize ads when multiple ads fit a single ad > space > * **Type:** > string > ### campaign > The EID of the campaign that this adgroup is associated with > * **Type:** > string > ### eid > The EID of the adgroup > * **Type:** > string > ### name > The name of this adgroup > * **Type:** > string > ### status > This adgroup’s current status > * **Type:** > string > ### created_date > The date this adgroup was created > * **Type:** > string > ### updated_date > The date this adgroup was last updated > * **Type:** > string > ### geo_targets > Deprecated. See geo_targets field on AdGroups. > * **Type:** > array of items > ### ads > A list of dictionaries for the ads attached to the adgroup. Each entry > has two fields: ‘id’, which is the EID of the Ad; and ‘status’, which is > the status of the ad within this adgroup. > * **Type:** > array of items > ### segments > A list of dictionaries for the segments attached to the adgroup. Each > entry has ‘id’ and ‘is_negative’ fields. Each entry has two fields: > ‘id’, which is the EID of the segment; and ‘is_negative’, which defines > whether the segment is excluded ( > ``` > ` > ``` > is_negative\` == True) or included > ( > ``` > ` > ``` > is_negative\` == False) within this adgroup. > * **Type:** > array of items > ### site_exclusions > The list of excluded domains for the adgroup, with ad format > information, if any > * **Type:** > array of items > ### platform_targets > A list of dictionaries for the adgroup’s platform targets. - DEPRECATED > it will return an emptry list > * **Type:** > array of items > ### placement_targets > A list of strings for an adgroup’s placement targets. Each entry can > have a value of ‘all’, ‘newsfeed’, or ‘rightcolumn’ > * **Type:** > array of items > ### flight_timezone > The timezone preference of all flights of this adgroup > * **Type:** > string > ### allowed_targeting > Objective Led Campaigns setting indicating targeting classification > allowed > * **Type:** > string > ### product_set > The product_set object, if exists. - DEPRECATED it will not be returned > anymore > * **Type:** > object ### GET /api/v1/adgroup/get_ads Fetches the ads associated with this adgroup, based on the specified filter parameters. If a filter argument is not specified for a field, and the field does not have a default value, then no filtering will be done on that field. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `adgroup` | **True** | string | The EID of the advertisable whose ads are to be fetched | | `is_active` | False | boolean | If True, only active ads will be returned, and vice versa (Optional; default: True) | | `statuses` | False | array | Only ads that match one of these statuses will be returned (Optional; default: None) | | `types` | False | array | Only ads that match one of these types will be returned (Optional; default: None) | | `width` | False | integer | Only ads having one of the specified widths will be returned (Optional; default: None) | | `height` | False | integer | Only ads having one of the specified heights will be returned (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each ad’s “get” representation > * **Type:** > array of items ### POST /api/v1/adgroup/pause Pauses an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|-----------------------------| | `adgroup` | **True** | string | EID of the adgroup to pause | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > results.status is the adgroup’s new status > * **Type:** > object ### POST /api/v1/adgroup/pause_ad Pauses a running ad. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|-------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup on which to pause the ad | | `ad` | **True** | string | The EID of the ad to pause on the given adgroup | **Responses**: 200 > Schema as JSON: > ```json > { > "status": "string" > } > ``` > ### Schema > * **Type:** > object > ### status > The new status of the paused ad > * **Type:** > string ### POST /api/v1/adgroup/pause_ads Pauses a list of running ads in an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup on which to pause the ad | | `ads` | **True** | string | The EIDs of the ads to pause on the given adgroup | **Responses**: 200 > Schema as JSON: > ```json > { > "status": "string" > } > ``` > ### Schema > * **Type:** > object > ### status > The new status of the paused ad(s) > * **Type:** > string ### POST /api/v1/adgroup/remove_segments Removes (dissociates) segments from an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |------------|------------|--------|----------------------------------------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup from which to remove the segments | | `segments` | **True** | string | A comma-separated string of the EIDs of the segments to remove from this adgroup | **Responses**: 200 > Schema as JSON: > ```json > { > "results": "boolean" > } > ``` > ### Schema > * **Type:** > object > ### results > Whether or not the segments were removed > * **Type:** > boolean ### POST /api/v1/adgroup/select_ads Attach ads to an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|--------------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup to attach the ads to | | `ads` | **True** | array | A list of the EIDs of the ads to attach to the adgroup | **Responses**: 200 > Schema as JSON: > ```json > { > "comps": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### comps > A list of compliancy dictionaries in the following format: {ad: ad_eid, > sites: [DEPRECATED], errors: [DEPRECATED]}. > * **Type:** > array of items ### POST /api/v1/adgroup/unpause Unpauses an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|-------------------------------| | `adgroup` | **True** | string | EID of the adgroup to unpause | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > results.status is the adgroup’s new status > * **Type:** > object ### POST /api/v1/adgroup/unpause_ad Unpauses a paused ad. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup on which to unpause the ad | | `ad` | **True** | string | The EID of the ad to unpause on the given adgroup | **Responses**: 200 > Schema as JSON: > ```json > { > "advertiser_status": "string" > } > ``` > ### Schema > * **Type:** > object > ### advertiser_status > The new status of the unpaused ad > * **Type:** > string ### POST /api/v1/adgroup/unpause_ads Unpauses a list of running ads in an adgroup. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------------------------------------------| | `adgroup` | **True** | string | The EID of the adgroup on which to pause the ad | | `ads` | **True** | string | The EIDs of the ads to pause on the given adgroup | **Responses**: 200 > Schema as JSON: > ```json > { > "statuses": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### statuses > A list of dicts for each ad given, containing the ad’s EID and its new > status. > * **Type:** > array of items ### POST /api/v1/advertisable/create Creates a new advertisable. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |------------------|------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `name` | **True** | string | The name of the advertisable. | | `organization` | **True** | string | The EID of the organization who will own this advertisable. You need to own this organization. | | `set_as_default` | False | boolean | Whether or not the created advertisable should be your new default advertisable. (Optional; default: False) | | `url` | False | string | The advertisable’s URL. (Optional; default: None) | | `product_name` | False | string | The advertisable’s specified product or brand. (Optional; default: None) | | `country_code` | False | string | The ISO‌-3166 2-Letter country code the company is based in. This field is used to handle data collection policies in different countries. If left blank, we will apply our most conservative rules. (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The new advertisable’s “get” representation. > * **Type:** > object ### POST /api/v1/advertisable/edit Edits an advertisable. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------------------------------|------------|---------|----------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | EID of the advertisable to edit | | `click_through_conversion_window` | False | integer | Size of this advertisables’ click through conversion window in days (Optional; default: None) | | `name` | False | string | The name of the advertisable (Optional; default: None) | | `path_name` | False | string | A unique string used in all URLs referring to this advertisable (Optional; default: None) | | `url` | False | string | The advertisable’s URL (Optional; default: None) | | `product_name` | False | string | The advertisable’s specified product or brand (Optional; default: None) | | `view_through_conversion_window` | False | integer | Size of this advertisables’ view through conversion window in days (Optional; default: None) | | `is_twitter_syncing` | False | boolean | Whether this advertisable is actively syncing its cookie data to Twitter (Optional; default: None) | | `twitter_handle` | False | string | Twitter handle used by the advertisable (Optional; default: None) | | `country_code` | False | string | The ISO-3166 2-Letter country code the advertisable is registered in. (Optional; default: None) | | `is_coop_approved` | False | boolean | True if the advertisable should be opted-into prospecting (Optional; default: False) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The advertisable’s “get” representation after being edited > * **Type:** > object ### POST /api/v1/advertisable/enable_rollcrawl Enable RollCrawl on an advertisable and set the feed URL. This is an advanced feature that first must be enabled by AdRoll admins before use. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |--------------------------|------------|---------|----------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | The EID of the advertisable. | | `url` | **True** | string | The URL of the product feed. Must point to an XML, JSON or CSV resource or a zipped or gzipped version of such a resource. | | `crawl_interval_seconds` | False | integer | The interval to run the crawl. Must be between 720 and 43200. (Optional; default: 2880) | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/advertisable/get Fetches an advertisable by its EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | The EID of the advertisable to fetch | **Responses**: 200 > Schema as JSON: > ```json > { > "approval_state": "string", > "attached_users": [ > "" > ], > "blacklisted_sites": [ > "" > ], > "business_unit": "string", > "click_through_conversion_window": "integer", > "company_phone": "string", > "created_date": "string", > "ecomm_platform_plan": "string", > "eid": "string", > "enable_customer_multi_dur_segs": "boolean", > "has_approved_consent_solution": "boolean", > "has_privacy_policy": "boolean", > "iab1_category_id": "integer", > "iab1_category_name": "integer", > "iab2_category_id": "integer", > "iab2_category_name": "integer", > "is_active": "boolean", > "is_coop_approved": "boolean", > "is_publisher": "boolean", > "liquidads": "string", > "name": "string", > "ops": "string", > "optimizer": "string", > "organization": "string", > "product_name": "string", > "saleser": "string", > "status": "string", > "updated_date": "string", > "url": "string", > "view_through_conversion_window": "integer" > } > ``` > ### Schema > * **Type:** > object > ### eid > The EID of the advertisable > * **Type:** > string > ### is_active > Whether or not the advertisable is currently active > * **Type:** > boolean > ### name > The name of the advertisable > * **Type:** > string > ### organization > The EID of this advertisable’s organization > * **Type:** > string > ### status > The status of the advertisable. One of [‘admin_review’, ‘approved’, > ‘rejected’]. > * **Type:** > string > ### url > The advertisable’s URL > * **Type:** > string > ### product_name > The advertisable’s specified product or brand > * **Type:** > string > ### click_through_conversion_window > Duration of this advertisable’s click through conversion window in days > * **Type:** > integer > ### view_through_conversion_window > Duration of this advertisable’s view through conversion window in days > * **Type:** > integer > ### created_date > The date this advertisable was created (UTC). > * **Type:** > string > ### updated_date > The date this advertisable was last updated (UTC). > * **Type:** > string > ### attached_users > The IDs of additional users allowed to access the advertisable > * **Type:** > array of items > ### blacklisted_sites > The list of blacklisted domains for the advertisable > * **Type:** > array of items > ### enable_customer_multi_dur_segs > Whether or not the advertisable is allowed to create multiple duration > segments > * **Type:** > boolean > ### is_coop_approved > Whether or not the advertisable has approved the data co-op terms of use > * **Type:** > boolean > ### is_publisher > Whether or not this advertisable is a publisher > * **Type:** > boolean > ### iab1_category_id > IAB1 Category > * **Type:** > integer > ### iab1_category_name > IAB1 Category Name > * **Type:** > integer > ### iab2_category_id > IAB2 Category > * **Type:** > integer > ### iab2_category_name > IAB2 Category Name > * **Type:** > integer > ### approval_state > Auto approval state derived from url-categorizer service and/or manually > overridden > * **Type:** > string > ### has_privacy_policy > site has privacy policy > * **Type:** > boolean > ### ops > The EID of this advertisable’s ops > * **Type:** > string > ### optimizer > The EID of this advertisable’s optimizer > * **Type:** > string > ### saleser > The EID of this advertisable’s saleser > * **Type:** > string > ### liquidads > The EID of this advertisable’s liquidads > * **Type:** > string > ### has_approved_consent_solution > Whether or not advertisable has an approved Consent Banner solution > * **Type:** > boolean > ### business_unit > The Business Unit of the advertisable. > * **Type:** > string > ### company_phone > The Phone Number of the advertisable’s company. > * **Type:** > string > ### ecomm_platform_plan > The advertisable’s ecommerce platform plan –if applicable and known. > * **Type:** > string ### GET /api/v1/advertisable/get_adgroups Fetches the adgroups associated with an advertisable based on the given filters. There are two sets of filters, one for choosing which campaigns to select, and one for choosing which adgroups to select from those campaigns. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | The EID of the advertisable whose adgroups are to be fetched | | `camp_active` | False | boolean | If True, only active campaigns will be returned, and vice versa (Optional; default: True) | | `camp_statuses` | False | array | Only campaigns that match one of these statuses will be returned (Optional; default: None) | | `camp_blacklist_statuses` | False | array | Only campaigns whose status is not one of these will be returned (Optional; default: None) | | `camp_types` | False | array | Only campaigns that match one of these types will be returned (Optional; default: None) | | `statuses` | False | array | Only adgroups that match one of these statuses will be returned (Optional; default: [‘approved’, ‘admin_review’, ‘paused’, ‘admin_paused’]) | | `blacklist_statuses` | False | array | Only adgroups whose status is not one of these will be returned (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each adgroup’s “get” representation > * **Type:** > array of items ### GET /api/v1/advertisable/get_adgroups_fast Fetches the adgroups associated with an advertisable based on the given filters. There are two sets of filters, one for choosing which campaigns to select, and one for choosing which adgroups to select from those campaigns. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | The EID of the advertisable whose adgroups are to be fetched | | `camp_active` | False | boolean | If True, only active campaigns will be returned, and vice versa (Optional; default: True) | | `camp_eids` | False | array | Only campaigns that match one of these EIDs will be returned (Optional; default: None) | | `camp_statuses` | False | array | Only campaigns that match one of these statuses will be returned (Optional; default: None) | | `camp_blacklist_statuses` | False | array | Only campaigns whose status is not one of these will be returned (Optional; default: None) | | `camp_types` | False | array | Only campaigns that match one of these types will be returned (Optional; default: None) | | `statuses` | False | array | Only adgroups that match one of these statuses will be returned (Optional; default: [‘approved’, ‘admin_review’, ‘paused’, ‘admin_paused’]) | | `blacklist_statuses` | False | array | Only adgroups whose status is not one of these will be returned (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each adgroup’s “get” representation > * **Type:** > array of items ### GET /api/v1/advertisable/get_ads Fetches the ads associated with an advertisable based on the given filters. If a filter argument is not specified for a field, and the field does not have a default value, then no filtering will be done on that field. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | The EID of the advertisable whose ads are to be fetched | | `is_active` | False | boolean | If True, only active ads will be returned, and vice versa (Optional; default: True) | | `statuses` | False | array | Only ads that match one of these statuses will be returned (Optional; default: None) | | `types` | False | array | Only ads that match one of these types will be returned (Optional; default: None) | | `width` | False | integer | Only ads having the specified width will be returned (Optional; default: None) | | `height` | False | integer | Only ads having the specified height will be returned (Optional; default: None) | | `include_fb` | False | boolean | If True, Facebook ads will be included; if False, Facebook ads will be excluded (Optional; default: True) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each ad’s “get” representation > * **Type:** > array of items ### GET /api/v1/advertisable/get_ads_fast Fetches the ads associated with an advertisable based on the given filters. If a filter argument is not specified for a field, and the field does not have a default value, then no filtering will be done on that field. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | The EID of the advertisable whose ads are to be fetched | | `is_active` | False | boolean | If True, only active ads will be returned, and vice versa (Optional; default: True) | | `statuses` | False | array | Only ads that match one of these statuses will be returned (Optional; default: None) | | `types` | False | array | Only ads that match one of these types will be returned (Optional; default: None) | | `width` | False | integer | Only ads having the specified width will be returned (Optional; default: None) | | `height` | False | integer | Only ads having the specified height will be returned (Optional; default: None) | | `include_fb` | False | boolean | If True, ads with Facebook ad formats will be included (Optional; default: True) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each ad’s “get” representation > * **Type:** > array of items ### GET /api/v1/advertisable/get_campaigns Fetches the campaigns associated with an advertisable based on the given filters. If a filter argument is not specified for a field, and the field does not have a default value, then no filtering will be done on that field. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | The EID of the advertisable whose campaigns are to be fetched | | `is_active` | False | boolean | If True, only active campaigns will be returned, and vice versa (Optional; default: True) | | `statuses` | False | array | Only campaigns that match one of these statuses will be returned (Optional; default: None) | | `blacklist_statuses` | False | array | Only campaigns whose status is not one of these will be returned (Optional; default: None) | | `types` | False | array | Only campaigns that match one of these types will be returned (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each campaign’s “get” representation > * **Type:** > array of items ### GET /api/v1/advertisable/get_campaigns_fast Fetches the campaigns associated with an advertisable based on the given filters. If a filter argument is not specified for a field, and the field does not have a default value, then no filtering will be done on that field. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | The EID of the advertisable whose campaigns are to be fetched | | `is_active` | False | boolean | If True, only active campaigns will be returned, and vice versa (Optional; default: True) | | `statuses` | False | array | Only campaigns that match one of these statuses will be returned (Optional; default: None) | | `blacklist_statuses` | False | array | Only campaigns whose status is not one of these will be returned (Optional; default: None) | | `types` | False | array | Only campaigns that match one of these types will be returned (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each campaign’s “get” representation > * **Type:** > array of items ### GET /api/v1/advertisable/get_pixel Fetches the active pixel for a given advertisable **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the advertisable. :number pixel_version: pixel version requested, default to 2 | | `tag_source` | **True** | string | source of pixel tag code | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The pixel’s “get” representation > * **Type:** > object ### GET /api/v1/advertisable/get_segments Fetches the segments from the active pixel for a given advertisable **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the advertisable. :number page: Current page, defaults to 0. :number per_page: Number of results in each page, do not fill if you don’t want pagination. | | `sort` | **True** | string | Column to sort the data (rules.created_date, rules.duration_sec). | | `type` | **True** | string | Filter by the type. :number duration: Filter by the duration in days. | | `created_start` | **True** | string | Filter by segments created before this date. | | `created_end` | **True** | string | Filter by segments created after this date. | | `include_migration_data` | **True** | boolean | Wether to include CDP+ migration related data in the response. | **Responses**: 200 > Schema as JSON: > ```json > { > "pagination": {}, > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The list of segments in their “get” representation > * **Type:** > array of items > ### pagination > Pagination data with \`count\` and \`pages\` > * **Type:** > object ### GET /api/v1/advertisable/get_suggested_country Recommends a country for an advertiser based on other known data **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### POST /api/v1/advertisable_logo/create Upload a logo for an advertisable. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | The EID of the advertisable to which this logo will belong | | `logo_file` | **True** | string | The image file to be used as the advertisables logo. Pass this in as a base64-encoded string. Aspect ratio: Square or close to square is best. Very narrow images will not display properly. (Supported formats: jpeg, png; Max size limited to 10MB) | **Responses**: 200 > Schema as JSON: > ```json > { > "height": "integer", > "id": "string", > "s3_logo_path": "string", > "width": "integer" > } > ``` > ### Schema > * **Type:** > object > ### id > The ID of the advertisable that uses this logo > * **Type:** > string > ### s3_logo_path > Path to the file > * **Type:** > string > ### width > Width of the logo file in pixels > * **Type:** > integer > ### height > Height of the logo file in pixels > * **Type:** > integer ### POST /api/v1/campaign/create Creates a new campaign **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-------------------|------------|---------|----------------------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | EID of the advertisable to which this campaign will belong | | `budget` | **True** | number | The WEEKLY budget for the campaign | | `ui_budget_daily` | False | boolean | Whether or not this campaign should show a daily budget in the UI. (Optional; default: true) | | `is_retargeting` | False | boolean | Is this a retargeting campaign? Otherwise, false == geo campaign. (Optional; default: false) | | `is_fbx_newsfeed` | False | boolean | Is this a Facebook newsfeed campaign? Otherwise, false (Optional; default: false) | | `adgroups` | False | array | List of EIDs of adgroups to attach to this campaign (Optional; default: None) | | `cpc` | False | number | The CPC goal for the campaign (Optional; default: None) | | `cpm` | False | number | The CPM limit of the campaign, used in pricing model (Optional; default: None) | | `start_date` | False | string | The day the campaign will start (Optional; default: tomorrow) | | `end_date` | False | string | The day the campaign will end, exclusive. If None, then will run without end. (Optional; default: None) | | `name` | False | string | The name of the campaign (Optional; default: None) | | `status` | False | string | The status of the campaign. One of [‘admin_review’, ‘draft’] (Optional; default: admin_review) | | `max_cpm` | False | number | The CPM limit for the networks, used in bidding (Optional; default: None) | | `networks` | False | string | A string of letters representing which networks to set up initially. Currently only supports ‘f’ (Facebook). (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The new campaign’s “get” representation > * **Type:** > object ### POST /api/v1/campaign/edit Edits an existing campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-------------------|------------|---------|------------------------------------------------------------------------------------| | `campaign` | **True** | string | The EID of the campaign to edit | | `budget` | False | number | The new WEEKLY budget for the campaign (Optional; default: None) | | `ui_budget_daily` | **True** | boolean | Whether or not this campaign is configured with a daily budget in the UI | | `cpc` | False | number | The new CPC goal for the campaign (Optional; default: None) | | `cpm` | False | number | The new CPM limit of the campaign, to be used in bidding (Optional; default: None) | | `end_date` | False | string | The new end date of the campaign, exclusive (Optional; default: None) | | `is_retargeting` | False | boolean | Whether or not the campaign is a retargeting campaign (Optional; default: None) | | `name` | False | string | The new name of the campaign (Optional; default: None) | | `start_date` | False | string | The new start date of the campaign (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The campaign’s “get” representation after being edited > * **Type:** > object ### GET /api/v1/campaign/get Fetches a campaign by its EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaign` | **True** | string | The EID of the campaign to fetch | **Responses**: 200 > Schema as JSON: > ```json > { > "adgroups": [ > "" > ], > "advertisable": "string", > "bid_strategy": "string", > "bid_strategy_target": "string", > "billing_auth_status": "string", > "budget": "number", > "cpc": "number", > "cpm": "number", > "created_date": "string", > "eid": "string", > "end_date": "string", > "is_active": "boolean", > "is_apple": "boolean", > "is_contextual": "boolean", > "is_coop": "boolean", > "is_ctv": "boolean", > "is_demo_interest": "boolean", > "is_facebook": "boolean", > "is_fb_wca": "boolean", > "is_fbx_newsfeed": "boolean", > "is_lookalike": "boolean", > "is_pubgraph": "boolean", > "is_retargeting": "boolean", > "max_cpm": "number", > "name": "string", > "pricing_strategies": [ > "" > ], > "spend_limit_until": "string", > "start_date": "string", > "status": "string", > "ui_budget_daily": "boolean", > "updated_date": "string" > } > ``` > ### Schema > * **Type:** > object > ### adgroups > List of EIDs of the adgroups attached to this campaign > * **Type:** > array of items > ### advertisable > EID of the advertisable to which this campaign belongs > * **Type:** > string > ### budget > The WEEKLY budget of the campaign > * **Type:** > number > ### ui_budget_daily > Whether or not this campaign is configured with a daily budget in the UI > * **Type:** > boolean > ### created_date > The date this campaign was created (UTC). > * **Type:** > string > ### cpc > The CPC for this campaign > * **Type:** > number > ### cpm > The CPM for this campaign > * **Type:** > number > ### eid > EID of the campaign > * **Type:** > string > ### end_date > The date the campaign will end, exclusive (UTC). > * **Type:** > string > ### is_active > Whether or not this campaign is currently active > * **Type:** > boolean > ### is_facebook > Whether or not this campaign is configured for the Facebook network > * **Type:** > boolean > ### is_fbx_newsfeed > Whether or not this campaign is configured for the Facebook Newsfeed > * **Type:** > boolean > ### is_retargeting > Whether or not this campaign is a retargeting campaign > * **Type:** > boolean > ### is_fb_wca > Whether or not this campaign is a Facebook WCA campaign > * **Type:** > boolean > ### is_apple > Whether or not this campaign is an Apple iAd campaign > * **Type:** > boolean > ### is_ctv > Whether or not this campaign is a Connected TV campaign > * **Type:** > boolean > ### is_demo_interest > Whether this campaign is a Demographic&Interest campaign > * **Type:** > boolean > ### is_lookalike > Whether or not this campaign is a Lookalike campaign > * **Type:** > boolean > ### is_contextual > Whether or not this campaign is a Contextual campaign > * **Type:** > boolean > ### max_cpm > The maximum CPM for this campaign > * **Type:** > number > ### name > The name of this campaign > * **Type:** > string > ### pricing_strategies > DEPRECATED Information about pricing strategies for each of this > campaign’s active networks. > * **Type:** > array of items > ### start_date > The date the campaign will start (UTC). > * **Type:** > string > ### status > The status of the campaign. One of [“admin_review”, “approved”, > “rejected”, “cancelled”, “completed”]. > * **Type:** > string > ### billing_auth_status > billing status of the campaign. It can be null or one of [“launched”, > “failed”] > * **Type:** > string > ### updated_date > The date this campaign was last updated (UTC). > * **Type:** > string > ### is_coop > Whether or not this is a coop (data sharing) campaign. > * **Type:** > boolean > ### is_pubgraph > Whether or not this is a publisher graph campaign. > * **Type:** > boolean > ### spend_limit_until > The date the campaign can resume spending after being limited by > spendtracker (UTC). Can spend if none. > * **Type:** > string > ### bid_strategy > The Bid Strategy of the campaign. > * **Type:** > string > ### bid_strategy_target > The Bid Strategy target of the campaign. > * **Type:** > string ### GET /api/v1/campaign/get_adgroups Fetches the adgroups associated with a campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaign` | **True** | string | The EID of the campaign whose adgroups are to be fetched | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list containing each adgroup’s “get” representation > * **Type:** > array of items ### PUT /api/v1/campaign/pause Pauses a campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaign` | **True** | string | The EID of the campaign to pause | **Responses**: 200 > Schema as JSON: > ```json > { > "results": "string" > } > ``` > ### Schema > * **Type:** > object > ### results > The status of the campaign after being paused > * **Type:** > string ### PUT /api/v1/campaign/pause_ads Pauses a list of ads in a campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaign` | **True** | string | The EID of the campaign | | `ads` | **True** | string | The EIDs of the ads to pause | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The statuses of the ads after being paused > * **Type:** > array of items ### PUT /api/v1/campaign/unpause Unpauses a campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaign` | **True** | string | The EID of the campaign to unpause | **Responses**: 200 > Schema as JSON: > ```json > { > "results": "string" > } > ``` > ### Schema > * **Type:** > object > ### results > The status of the campaign after being unpaused > * **Type:** > string ### PUT /api/v1/campaign/unpause_ads Unpauses a list of ads in a campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaign` | **True** | string | The EID of the campaign | | `ads` | **True** | string | The EIDs of the ads to unpause | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The statuses of the ads after being unpaused > * **Type:** > array of items ### GET /api/v1/consent_banner/retrieve Fetch the consent banner configuration by Advertisable EID. consent_banner_state will be one of: - adroll: advertisable has selected AdRoll’s consent banner solution - custom_pending: advertisable has opted to use their own consent solution and it is pending AdRoll approval - custom_approved: advertisable’s own consent solution has been approved by AdRoll admins - custom_rejected: advertisable’s own consent solution was rejected by AdRoll admins - banner_declined: advertisable has selected not to use a consent solution and AdRoll will not track/serve ads to users in GDPR countries (available only to advertisables in countries not covered by GDPR) - null: no selection has been made by the advertisable **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of advertisable | **Responses**: 200 > Schema as JSON: > ```json > { > "config_state_change_date": "string", > "consent_banner_state": "string" > } > ``` > ### Schema > * **Type:** > object > ### consent_banner_state > Current banner configuration state. One of ‘adroll’, ‘custom_pending’, > ‘custom_approved’, ‘custom_pending’, ‘banner_declined’ or null > * **Type:** > string > ### config_state_change_date > Time current configuration was set. > * **Type:** > string ### POST /api/v1/consent_banner/update Update or create banner configuration for given advertisable **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |----------------|------------|--------|----------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | EID of advertisable | | `state` | **True** | string | new state for banner config. One of ‘adroll’, ‘custom_pending’, ‘banner_declined’ | | `feedback` | **True** | string | (optional) some context about a resubmission update (custom_rejected -> custom_pending transition only). | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The consent banner config’s “get” representation > * **Type:** > object ### GET /api/v1/contextual_categories/get_all_contextual_categories Provides a list of contextual categories that can be used for targeting in a Web Contextual campaign. You may specify one or more EIDs in the targeting criteria for adgroups under a Web Contextual campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list of contextual category objects, each containing EIDs and keyword > names. > * **Type:** > array of items ### PUT /api/v1/dynamic_configuration/edit Edit the Dynamic configuration. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the advertisable. | | `key` | **True** | string | Name of property being edited | | `value` | **True** | string | Value of property to set | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The Dynamic configuration’s “get” representation > * **Type:** > object ### POST /api/v1/dynamic_configuration/enable Enable feed parsing on an advertisable and create a feed configuration. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |----------------|------------|--------|----------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | The EID of the advertisable. | | `url` | **True** | string | The URL of the product feed. Must point to an XML, JSON or CSV resource or a zipped or gzipped version of such a resource. | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/dynamic_configuration/get Get the Dynamic configuration. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the advertisable. | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The Dynamic configuration’s “get” representation > * **Type:** > object ### GET /api/v1/dynamic_template/get_all_for_advertisable Retrieve a list of all the available \*dynamic_templates\* for an \*advertisable\*. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the \*advertisable\* | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The list of Dynamic Templates allowed_methods = [GET] > * **Type:** > array of items ### GET /api/v1/dynamic_template_capability_description/get_all Retrieve a list of all the available template capabilities **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The list of Dynamic template capabilities > * **Type:** > array of items ### POST /api/v1/feed/autoconfigure Automatically configure a product feed for an Advertisable. This feature must be enabled for your account before you can use it. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |----------------|------------|--------|------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | EID of the Advertisable | | `url` | **True** | string | URL of the product feed. Must point to an XML, JSON or CSV resource. The resource can be compressed using zip or gzip. | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/invoice/get Fetch an invoice by ID **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `invoice` | **True** | string | The ID of the invoice. | **Responses**: 200 > Schema as JSON: > ```json > { > "amount": "integer", > "end_date": "string", > "id": "string", > "organization": "string", > "start_date": "string", > "transactions": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### id > The invoice ID > * **Type:** > string > ### start_date > The start date of the requested invoice(s) > * **Type:** > string > ### end_date > The end date of the requested invoice(s) > * **Type:** > string > ### organization > The organization of the requested invoice(s) > * **Type:** > string > ### amount > The amount (in U.S. cents) billed by the requested invoice(s) > * **Type:** > integer > ### transactions > The list of account transactions associated with the invoice. > * **Type:** > array of items ### POST /api/v1/marketplace/create Create a marketplace mapping. Once setup, all Pixel views with a \`\`adroll_shop_id\`\` parameter that match \`\`shop_id\`\` will be attributed to \`\`dest_advertisable_id\`\` instead of \`\`source_advertisable_id\`\`. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-----------------------|------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------| | `source_advertisable` | **True** | string | EID of the \*marketplace\* (parent) Advertisable | | `dest_advertisable` | **True** | string | EID of the \*merchant\* (child) Advertisable | | `shop_id` | **True** | string | Unique identifier for the \*merchant\* within the \*marketplace\* | | `external_shop_id` | False | string | An identifier for the merchant that is used by the merchant. Must be unique within entries with the same source_advertisable (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "dest_advertisable_id": "string", > "id": "string", > "shop_id": "string", > "source_advertisable_id": "string" > } > ``` > ### Schema > * **Type:** > object > ### id > ID of the marketplace mapping > * **Type:** > string > ### source_advertisable_id > ID of the \*marketplace\* (parent) Advertisable > * **Type:** > string > ### dest_advertisable_id > ID of the \*merchant\* (child) Advertisable > * **Type:** > string > ### shop_id > Unique identifier for the \*merchant\* within the \*marketplace\* > * **Type:** > string ### GET /api/v1/marketplace/get Retrieve a list of marketplace mappings for a \*marketplace\* and \*merchant\*. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `source_advertisable` | **True** | string | EID of the \*marketplace\* (parent) Advertisable | | `dest_advertisable` | **True** | string | EID of the \*merchant\* (child) Advertisable | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The list of marketplace mappings containing feature id, > source_advertisable_eid, source_advertisable_id, dest_advertisable_eid, > dest_advertisable_id, external_shop_id and shop_id. > * **Type:** > array of items ### GET /api/v1/marketplace_deals/get List approved+active deals available to the given advertisable’s business unit. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the Advertisable browsing inventory | | `limit` | **True** | integer | Page size (default 50, max 200) | | `offset` | **True** | integer | Page offset (default 0) | | `sort_by` | **True** | string | One of \`\`newest\`\`, \`\`impressions\`\`, \`\`cpm\`\` (default \`\`newest\`\`) | | `order` | **True** | string | One of \`\`asc\`\`, \`\`desc\`\` (default \`\`desc\`\`) | | `q` | **True** | string | Optional keyword search across deal_id, internal name, external name | | `formats` | **True** | array | Optional list of inventory types (display, olv, mobile_app, ctv_ott, native) | | `exchanges` | **True** | array | Optional list of exchange IDs (e.g. adx, apn, pubmatic) | | `countries` | **True** | array | Optional list of 2-character ISO country codes; matches deals serving any of them | **Responses**: 200 > Schema as JSON: > ```json > { > "data": {}, > "limit": "integer", > "offset": "integer", > "total": "integer" > } > ``` > ### Schema > * **Type:** > object > ### data > List of serialized Deal objects > * **Type:** > object > ### total > Total deals matching the filters, ignoring pagination > * **Type:** > integer > ### limit > Echoed page size (clamped to MAX_LIMIT) > * **Type:** > integer > ### offset > Echoed offset > * **Type:** > integer ### GET /api/v1/marketplace_deals/metadata Filter-dropdown metadata for the Marketplace UI. Returns the set of exchanges, formats, and countries currently represented in the inventory visible to the given advertisable. Designed to be cached on the frontend for the session — the response carries a private \`Cache-Control: private, max-age=300\` header. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the Advertisable browsing inventory | **Responses**: 200 > Schema as JSON: > ```json > { > "countries": [ > "" > ], > "exchanges": [ > "" > ], > "formats": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### exchanges > \`\`[{id, name}]\`\` sorted by name; \`\`id\`\` is what callers pass back in > `marketplace_deals.get()`’s \`\`exchanges\`\`. > * **Type:** > array of items > ### formats > Distinct \`\`inventory_type\`\` enum values (display, olv, mobile_app, > ctv_ott, native). > * **Type:** > array of items > ### countries > \`\`[{code, name}]\`\` sorted by name; deals with no explicit countries > are expanded to SUPPORTED_COUNTRIES, matching the convention used by > publisher_apps / content_categories. > * **Type:** > array of items ### GET /api/v1/organization/get Fetch the details about a given organization. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `organization` | False | string | The EID of the organization to retrieve (optional; default: your organization). | **Responses**: 200 > Schema as JSON: > ```json > { > "created_date": "string", > "eid": "string", > "name": "string" > } > ``` > ### Schema > * **Type:** > object > ### eid > EID of the organization > * **Type:** > string > ### name > The name of this organization > * **Type:** > string > ### created_date > The date this organization was created > * **Type:** > string ### GET /api/v1/organization/get_accounts Fetch the accounts associated with an organization. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-------------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `organization` | False | string | The EID of the organization (optional; default: your organization). | | `exclude_statuses` | False | string | Comma-separated account statuses to exclude (optional; default: no statuses excluded). | | `include_balances` | False | boolean | Whether to include balance information for the accounts (optional; default: True). | | `include_advertisables` | False | boolean | Whether to include a list of advertisables associated to each account (optional; default: False). | | `include_advertisables_count` | False | boolean | Whether to include a count of advertisables associated to each account (optional; default: False). | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The [get](/docs/crud-api/reference.html#get--api-v1-accounts-get) > responses for each of the organization accounts. > * **Type:** > array of items ### GET /api/v1/organization/get_advertisables Fetch the advertisables associated with an organization. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `organization` | False | string | The EID of the organization (optional; default: your organization). | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The [get](/docs/crud-api/reference.html#get--api-v1-advertisable-get) > responses for each of your advertisables. > * **Type:** > array of items ### GET /api/v1/organization/get_advertisables_paginated Fetch the advertisables associated with an organization. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `organization` | False | string | The EID of the organization (optional; default: your organization). :number page: Current page (optional; default: 1) | | `per_page` | False | integer | How many advertisables to return (optional; default: 10) | **Responses**: 200 > Schema as JSON: > ```json > { > "meta": {}, > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The [get](/docs/crud-api/reference.html#get--api-v1-advertisable-get) > responses for each of your advertisables. > * **Type:** > array of items > ### meta > The current page and per_page attributes. > * **Type:** > object ### GET /api/v1/organization/get_billing_methods Fetch the billing methods associated with an organization. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `organization` | False | string | The EID of the organization (optional; default: your organization). | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list of your billing methods. > * **Type:** > array of items ### GET /api/v1/organization/get_users Fetch the users associated with an organization, their role within the organization and their associated advertisables. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `organization` | **True** | string | The EID of the organization (optional; default: your organization). :number page: Current page, defaults to 0. :number per_page: Number of results in each page, do not fill if you don’t want pagination. | | `email` | **True** | string | Filter by email. | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The viewable users for your organization, represented according to the > [get](/docs/crud-api/reference.html#get--api-v1-user-get) response > * **Type:** > array of items ### GET /api/v1/pixel/get Fetch the pixel by EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `pixel` | **True** | string | EID of the pixel | **Responses**: 200 > Schema as JSON: > ```json > { > "code": "string", > "dropped_code_date": "string", > "eid": "string", > "is_consistent": "boolean", > "placed_code_date": "string", > "status": "string", > "tag_source": "string" > } > ``` > ### Schema > * **Type:** > object > ### eid > EID of the pixel. > * **Type:** > string > ### status > The status of the pixel. > * **Type:** > string > ### code > The HTML/Javascript snippet an advertiser should place on their site. > * **Type:** > string > ### is_consistent > Whether or not the pixel is consistent. > * **Type:** > boolean > ### placed_code_date > Time the pixel was last placed. > * **Type:** > string > ### dropped_code_date > Time the pixel was last dropped. :number pixel_version: Version of the > pixel code. > * **Type:** > string > ### tag_source > Pixel tag source. > * **Type:** > string ### GET /api/v1/pixel/get_rules Fetch all the rules associated with a pixel. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `pixel` | **True** | string | The EID of the pixel in question. | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list of the pixel’s rules in their “get” representation > * **Type:** > array of items ### GET /api/v1/pixel/get_segments Fetch all the segments associated with a pixel. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `pixel` | **True** | string | The EID of the pixel in question. :number page: Current page, defaults to 0. :number per_page: Number of results in each page, do not fill if you don’t want pagination. | | `sort` | **True** | string | Column to sort the data (rules.created_date, rules.duration_sec). | | `type` | **True** | string | Filter by the type. :number duration: Filter by the duration in days. | | `created_start` | **True** | string | Filter by segments created before this date. | | `created_end` | **True** | string | Filter by segments created after this date. | **Responses**: 200 > Schema as JSON: > ```json > { > "pagination": {}, > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > A list of the pixel’s segments in their “get” representation > * **Type:** > array of items > ### pagination > Pagination data with \`count\` and \`pages\` > * **Type:** > object ### POST /api/v1/policy/send_email Send email using SendWithUs with optional template version support. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------| | `advertisable` | **True** | string | EID of the advertisable | | `template_name` | **True** | string | Name of the email template to use | | `email_data` | **True** | object | Data to be used in the email template | | `template_version` | **True** | string | Version of the template to use (Optional) | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### PUT /api/v1/product_feeds/add_feed_config Add a new feed configuration by registering a new product feed. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the Advertisable that the feed belongs to | | `feed_url` | **True** | string | URL of the feed | | `feedtype` | **True** | string | Data format used in the feed: auto, csv, xml, json | | `skipfirstrow` | **True** | boolean | True if the CSV contains a header row that should be skipped | | `delimiter` | **True** | string | Field delimiter used for CSV feeds | | `escapechar` | **True** | string | Escape character used for CSV feeds | | `quotechar` | **True** | string | Quote character used for CSV feeds | | `skipinitialspace` | **True** | boolean | True if the parser should ignore whitespace after the delimiter character in CSV feeds | | `encoding` | **True** | string | File encoding used by the feed | | `tag_name` | **True** | string | XML element containing product info | | `locale` | **True** | string | Cultural locale of the data defaults to en_US | | `prices_in_locale_format` | **True** | boolean | True if the price field contains a locale character (i.e. $) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The feed configuration’s “get” representation > * **Type:** > object ### POST /api/v1/product_feeds/autoconfigure Automatically configure a product feed for an Advertisable. This feature must be enabled for your account before you can use it. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |----------------|------------|--------|------------------------------------------------------------------------------------------------------------------------| | `advertisable` | **True** | string | EID of the Advertisable | | `url` | **True** | string | URL of the product feed. Must point to an XML, JSON or CSV resource. The resource can be compressed using zip or gzip. | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/product_feeds/delete_feed_config Delete a feed configuration **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `feed_config` | **True** | string | EID of the feed configuration to delete | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/product_feeds/delete_parser_config Delete a parser configuration. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `feed_config` | **True** | string | EID of the parent feed configuration | | `key` | **True** | string | Name of the field configuration to remove | **Responses**: 200 > Schema as JSON: > ```json > { > "results": "boolean" > } > ``` > ### Schema > * **Type:** > object > ### results > Whether the delete operation succeeded > * **Type:** > boolean ### PUT /api/v1/product_feeds/edit_feed_config Edit a feed configuration **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `feed_config` | **True** | string | EID of the feed configuration to edit | | `key` | **True** | string | Name of property being edited | | `value` | **True** | string | Value of property to set | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The feed configuration’s “get” representation > * **Type:** > object ### GET /api/v1/product_feeds/feed_downloadable Verify whether the config at the given feed is downloadable or not **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `feed_url` | **True** | string | URL to verify | **Responses**: 200 > Schema as JSON: > ```json > { > "downloadable": "boolean", > "errorCode": "integer", > "errorMessage": "string", > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > with the following fields > * **Type:** > object > ### downloadable > Whether or not feed is downloadable > * **Type:** > boolean > ### errorCode > Error code in case of failure > * **Type:** > integer > ### errorMessage > Error message > * **Type:** > string ### GET /api/v1/product_feeds/feed_status Get the parse status for the active feed configurations for the specified advertisable. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | Advertisable EID to check the parse status for | **Responses**: 200 > Schema as JSON: > ```json > { > "errors": "integer", > "feed_config_eid": "string", > "items": "integer", > "removed_items": "integer", > "results": [ > "" > ], > "skips": "integer", > "state": "string", > "timestamp": "string", > "total_products": "integer" > } > ``` > ### Schema > * **Type:** > object > ### results > List of objects representing the parse status for each active feed They > have the following attributes: > * **Type:** > array of items > ### feed_config_eid > EID of the feed configuration > * **Type:** > string > ### errors > Number of parse errors > * **Type:** > integer > ### items > Number of parsed items > * **Type:** > integer > ### skips > Number of skipped items > * **Type:** > integer > ### removed_items > Number of items removed > * **Type:** > integer > ### total_products > Total number of products in feed > * **Type:** > integer > ### timestamp > Time when parse task ran > * **Type:** > string > ### state > State of parse task > * **Type:** > string ### GET /api/v1/product_feeds/get_feed_config Fetch the feed configuration that matches the specified EID **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `feed_config` | **True** | string | EID of the feed configuration | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The feed configuration’s “get” representation > * **Type:** > object ### GET /api/v1/product_feeds/get_parser_config Get all parser configurations for the given feed configuration. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `feed_config` | **True** | string | EID of the feed configuration to retrieve | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > Contains all parser configurations. > * **Type:** > object ### GET /api/v1/product_feeds/get_products Get the parsed products for any or all of the feeds for an advertisable **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the Advertisable | | `query` | **True** | string | search string | | `size` | **True** | integer | number of records to fetch | | `page` | **True** | integer | chunk position by size | | `feed_selected` | **True** | string | EID of feed to fetch products from | | `any_word` | **True** | string | search for any word of query | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The products fetched > * **Type:** > array of items ### GET /api/v1/product_feeds/get_troubled_products Get the top 5 troubled products for an advertisable **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the Advertisable | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### results > The 5 troubled products > * **Type:** > array of items ### GET /api/v1/product_feeds/match_rate Get the all time match rate statistics for the given Advertisable. If a date is specified, get the match rate for that date as well. Note that statistics are maintained for a rolling window of the past six months. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | Advertisable EID to get match rate statistics for | | `date` | False | string | If specified, match rate for this date (PST) will also be retrieved. Recommended format \`YYYY-MM-DD\`. (Optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > { > "high_match_rate": "integer", > "high_match_rate_date": "string", > "low_match_rate": "integer", > "low_match_rate_date": "string", > "match_rate": "integer", > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > Contains the following attributes: > * **Type:** > object > ### high_match_rate > All time high match rate > * **Type:** > integer > ### high_match_rate_date > Date on which the all time high match rate happened > * **Type:** > string > ### low_match_rate > All time low match rate > * **Type:** > integer > ### low_match_rate_date > Date on which the all time low match rate happened > * **Type:** > string > ### match_rate > If a date was specified, the match rate for that date > * **Type:** > integer ### GET /api/v1/product_feeds/parse_preview Provides a preview of the given raw product data parsed using the given parse configuration. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of the Advertisable | | `parse_prices_in_locale_format` | **True** | boolean | Whether to parse prices based on the locale | | `language_tag` | **True** | string | Language tag | | `parser_configs` | **True** | string | Stringified JSON object defining configuration for each field | | `product_data` | **True** | string | Raw product data to be parsed as string | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > Parse preview output > * **Type:** > object ### GET /api/v1/product_feeds/set_parser_config Set parser configuration for the specified key. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `feed_config` | **True** | string | EID of the feed configuration | | `key` | **True** | string | Name of the field The following parameters set the parser configuration attributes: | | `is_required` | **True** | boolean | True if this field is required for the parsed product to be valid | | `path` | **True** | string | Column number (CSV), field name (JSON), or tag name (XML) for the field | | `attribute` | **True** | string | Attribute on the tag to use (i.e. text) | | `type` | **True** | string | Field type (either text, image, price) | | `regular_expression` | **True** | string | Regular expression to search the field | | `regular_expression_replace` | **True** | string | Replacement string to apply to the field | **Responses**: 200 > Schema as JSON: > ```json > { > "results": "boolean" > } > ``` > ### Schema > * **Type:** > object > ### results > Whether the set operation succeeded > * **Type:** > boolean ### POST /api/v1/product_feeds/set_parser_configs Set parser configs. You’ll need to specify a Parser Configuration for each field. Since we require a minimum number of fields, you’ll have at least four Parser Configurations. Any additional fields will depend on the Dynamic Creative template you’re using. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |------------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `feed_config` | **True** | string | EID of the feed configuration | | `parser_configs` | **True** | string | Stringified JSON object defining configuration for each field The parser_configs parameter consists of an object of fields names as keys and field specification objects consisting of the following attributes: | | `is_required` | **True** | boolean | True if this field is required for the parsed product to be valid | | `path` | **True** | string | Column number (CSV), field name (JSON), or tag name (XML) for the field | | `attribute` | **True** | string | Attribute on the tag to use (i.e. text) | | `regular_expression` | **True** | string | Regular expression to search the field | | `regular_expression_replace` | **True** | string | Replacement string to apply to the field | | `type` | **True** | string | Field type (either text, image, price) Example parser_configs object: :: { “id”: { “path”: “id”, “type”: “text”, “attribute”: “text”, “is_required”: “true” }, “title”: { “path”: “title”, “type”: “text”, “attribute”: “text”, “is_required”: “true” }, “image”: { “path”: “image”, “type”: “image”, “attribute”: “text”, “is_required”: “true” }, “url”: { “path”: “url”, “type”: “text”, “attribute”: “text”, “is_required”: “true” }, “price”: { “path”: “price”, “type”: “price”, “attribute”: “text”, “is_required”: “true” } } | **Responses**: 200 > Schema as JSON: > ```json > { > "results": "boolean" > } > ``` > ### Schema > * **Type:** > object > ### results > Whether the set operation succeeded > * **Type:** > boolean ### GET /api/v1/report/ad Pull reports for your ads. The entity data_format returns: ```default { results: [{ ad: 'My Ad', eid: 'CYTQSJ3EIVDDRAG3MPDLEU', status: 'approved', ad_size: '300x250', created_date: '2010-02-23', cpc: 1.0, ctr: 0.234, cpm: 2.34, cost: 500.00, impressions: 213675, clicks: 500, prospects: 6983 }] } ``` **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaigns` | False | array | List of campaign EIDs (optional; default: None) | | `adgroups` | False | array | List of ad group EIDs (optional; default: None) | | `ads` | False | array | List of ad EIDs (optional; default: None) | | `advertisables` | False | array | List of advertisable EIDs (optional; default: None) | | `data_format` | **True** | string | ‘summary’, ‘date’, or ‘entity’ (required) | | `currency` | False | string | the currency code to use for the report (optional; default: ‘USD’) | | `past_days` | False | integer | Run the report for the last n days (optional; default: None) | | `start_date` | False | string | start date of report (optional; default: None) | | `end_date` | False | string | end date of report (optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/report/advertisable Pull reports for one or more advertisables. The entity data_format returns an object in the following format, for each advertisable EID given: ```default { results: [{ advertisable: 'My Advertisable', eid: 'CYTQSJ3EIVDDRAG3MPDLEU', status: 'approved', created_date: '2010-02-23', cpc: 1.0, ctr: 0.234, cpm: 2.34, cost: 500.00, impressions: 213675, clicks: 500, prospects: 6983 }] } ``` **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaigns` | **True** | array | List of campaign EIDs (optional; default: None). If campaign EIDs are passed, only data from these campaigns will be returned. | | `adgroups` | **True** | array | List of ad group EIDs (optional; default: None). If adgroup EIDs are passed, only data from these adgroups will be returned. | | `ads` | **True** | array | List of ad EIDs (optional; default: None). If ad EIDs are passed, only data from these ads will be returned. | | `advertisables` | **True** | array | List of advertisable EIDs (at least one is required) | | `data_format` | **True** | string | ‘summary’, ‘date’, or ‘entity’ (required) | | `currency` | False | string | the currency code to use for the report (optional; default: ‘USD’) | | `past_days` | False | integer | Run the report for the last n days (optional; default: None) | | `start_date` | False | string | start date of report (optional; default: None) | | `end_date` | False | string | end date of report (optional; default: None) | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/report/campaign Pull reports for campaigns. **Note**: Prospecting and new-style Facebook campaigns are not available in this endpoint. We recommend using the GraphQL Reporting API if you need to retrieve data for all campaign types. The entity data_format returns: ```default { results: [{ campaign: 'My campaign 1', eid: 'CYTQSJ3EIVDDRAG3MPDLEU', advertiser: 'My Advertisable', type: 'Retargeting', status: 'approved', created_date: '2010-02-23', start_date: '2010-02-23', end_date: null, budget: 3234.0, cpc: 1.0, ctr: 0.234, cpm: 2.34, cost: 500.00, impressions: 213675, clicks: 500, prospects: 6983 }] } ``` **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaigns` | False | array | List of campaign EIDs (optional; default: None) | | `adgroups` | False | array | List of ad group EIDs (optional; default: None) | | `ads` | False | array | List of ad EIDs (optional; default: None) | | `advertisables` | False | array | List of advertisable EIDs (optional; default: None) | | `data_format` | **True** | string | ‘summary’, ‘date’, or ‘entity’ (required) | | `currency` | False | string | the currency code to use for the report (optional; default: ‘USD’) | | `past_days` | False | integer | Run the report for the last n days (optional; default: None) | | `start_date` | False | string | start date of report (optional; default: None) | | `end_date` | False | string | end date of report (optional; default: None) | | `attributions` | False | boolean | include attribution data (optional; default: False) | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### POST /api/v1/rule/create Create a new rule on a given pixel. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |----------------|------------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | `pixel` | **True** | string | The EID of the pixel in which we want to create a new rule | | `type` | **True** | string | The type of the rule being created. One of [c, s, p, b] (c=Conversion, s=Segment, p=Prospect, b=Cart). You can’t change this later. | | `order` | **True** | integer | The priority order in which this rule needs to be applied among the others. Must be unique in the Pixel. The lower the number, the higher the priority. | | `name` | False | string | The arbitrary name of the rule (Optional; default: None). | | `display_name` | False | string | The display name of the rule (Optional; default: None). | | `pattern` | **True** | string | The regexp-like expression that matches a URL, if creating a URL rule. | | `duration` | **True** | integer | The duration of inactivity that can elapse before a user is dropped from this rule. | | `source` | **True** | string | one of [c, d, m] (c=cookie, d=crm_data, m=mobile) | | `csv_file` | **True** | string | A CSV file with the emails to generate the rule from, if creating a CRM rule. Use a multi-part form request. Must contain at least 100 emails. | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The new rule’s “get” representation > * **Type:** > object ### GET /api/v1/rule/get Fetch a rule object by EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `rule` | **True** | string | The EID of the rule. | **Responses**: 200 > Schema as JSON: > ```json > { > "display_name": "string", > "eid": "string", > "name": "string", > "order": "integer", > "pattern": "string", > "segments": [ > "" > ], > "source": "string", > "type": "string" > } > ``` > ### Schema > * **Type:** > object > ### eid > The rule’s EID > * **Type:** > string > ### name > The rule’s name > * **Type:** > string > ### display_name > The rule’s display name > * **Type:** > string > ### pattern > The rule’s url pattern to match > * **Type:** > string > ### type > Type of the rule. One of [c, s, p, b] (c=Conversion, s=Segment, > p=Prospect, b=Cart). > * **Type:** > string > ### source > The source of users (js pixel, mobile, crm_data) > * **Type:** > string > ### order > The priority order in which this rule needs to be applied among the > others. The lower the number, the higher the priority. > * **Type:** > integer > ### segments > A list of segments objects attached to this rule in the segment’s “get” > representation > * **Type:** > array of items ### GET /api/v1/rule/get_segments Fetch the segments on a specific rule. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `rule` | **True** | string | The EID of the rule. | **Responses**: 200 > Schema as JSON: > ```json > { > "segments": [ > "" > ] > } > ``` > ### Schema > * **Type:** > object > ### segments > A list of segments objects attached to this rule in the segment’s “get” > representation > * **Type:** > array of items ### POST /api/v1/segment/edit Edit an existing segment. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |--------------------|------------|---------|----------------------------------------------------------------------------------------| | `conversion_value` | **True** | number | The value of a conversion from this segment (in USD). | | `duration` | **True** | integer | The duration of inactivity that can elapse before a user is dropped from this segment. | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The edited segment’s “get” representation > * **Type:** > object ### GET /api/v1/segment/get Get an existing segment by its EID. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------------|------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `segment` | **True** | string | The EID of the segment. | | `include_int_id` | **True** | boolean | whether the response should include segment integer id or not. | | `include_lookalike` | **True** | boolean | Whether to include lookalike data. | | `include_migration_data` | **True** | boolean | Wether to include CDP+ migration related data in the response. :LookalikeSegment lookalike_parent: (Optional) The preloaded LookalikeSegment for the segment, to avoid extra database queries. :FacebookCustomAudience facebook_custom_audience: (Optional) The preloaded FacebookCustomAudience for the segment, to avoid extra database queries. | **Responses**: 200 > Schema as JSON: > ```json > { > "conversion_value": "number", > "display_name": "string", > "duration": "integer", > "eid": "string", > "group": "integer", > "match_method": "string", > "mobile": {}, > "name": "string", > "pattern": "string", > "product": "string", > "threshold": "integer", > "type": "string" > } > ``` > ### Schema > * **Type:** > object > ### eid > The EID of the segment. > * **Type:** > string > ### display_name > Optional name of the segment used for display purposes. > * **Type:** > string > ### name > The name of the segment, for use internally and for JS segment matching. > * **Type:** > string > ### type > The type of the segment. One of [s, u, c, p, b, e, g, x, l, q] (s = > Segment, u = Single product, c = Conversion, p = Low-intent, b = > Shopping cart, e = Email, g = Prospecting, x = External, l = Product > list, q = Coop). > * **Type:** > string > ### match_method > The match method used for the segment. > * **Type:** > string > ### pattern > The URL pattern used for matching users. > * **Type:** > string > ### threshold > The threshold used for match methods with a numerical limit. > * **Type:** > integer > ### duration > The duration of the segment, in days. > * **Type:** > integer > ### conversion_value > The value of a conversion from this segment (in USD). > * **Type:** > number > ### group > The group that the segment belongs to. > * **Type:** > integer > ### mobile > The mobile extension data as in the mobile_rule “get” representation > * **Type:** > object > ### product > The product that the segment belongs to. > * **Type:** > string ### POST /api/v1/user/edit Edit an existing User with given parameters. ```default {'u' : user.id, 'username' : "deliboard", 'first_name': 'Deli', 'last_name': 'Board', 'email_preference_general': 'true', 'email_preference_payment': 'false', 'email_preference_campaign_notifications': 'true', 'email_preference_help_and_suggestions': 'true'} ``` **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |-------------------------------------------|------------|--------|----------------------------------------------------------------------------------------------------| | `u` | **True** | string | The ID of the user you want to modify | | `username` | **True** | string | The arbitrary username of the user. | | `first_name` | **True** | string | The arbitrary first name of the user. | | `last_name` | **True** | string | The arbitrary last name of the user. | | `email_preference_general` | **True** | string | The general email preference as key value pair with boolean designating desired emails to receive. | | `email_preference_payment` | **True** | string | The payment email preference as key value pair with boolean designating desired emails to receive. | | `email_preference_campaign_notifications` | **True** | string | The general email preference as key value pair with boolean designating desired emails to receive. | **Responses**: 200 > Schema as JSON: > ```json > { > "results": {} > } > ``` > ### Schema > * **Type:** > object > ### results > The get representation of the user object. > * **Type:** > object ### GET /api/v1/user/get Fetch the currently logged in user **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `load_advertisables` | **True** | boolean | Should we fetch advertisables from db? | | `active_advertisables` | **True** | array | List of active advertisables for this user, will be used if load_advertisables is false. | **Responses**: 200 > Schema as JSON: > ```json > { > "advertisables": [ > "" > ], > "created_date": "string", > "default_profile": "string", > "default_timezone": "string", > "eid": "string", > "email": "string", > "email_verified": "boolean", > "first_name": "string", > "id": "string", > "last_name": "string", > "locale": "string", > "name": "string", > "organization": "string", > "organization_role": "string", > "role": "string", > "username": "string" > } > ``` > ### Schema > * **Type:** > object > ### eid > The user’s EID > * **Type:** > string > ### id > The user’s ID (deprecated: use EID instead) > * **Type:** > string > ### username > The user’s username > * **Type:** > string > ### email > The user’s email address > * **Type:** > string > ### email_verified > Whether the user’s email address is verified or not > * **Type:** > boolean > ### name > The user’s name > * **Type:** > string > ### first_name > The user’s first name > * **Type:** > string > ### last_name > The user’s first name > * **Type:** > string > ### organization_role > The user’s role within their organization (admin or user) > * **Type:** > string > ### locale > Language/locale preference > * **Type:** > string > ### default_timezone > The user’s specified timezone for reporting and billing use > * **Type:** > string > ### role > Exact user type, as known to AdRoll (typically “user”) > * **Type:** > string > ### organization > The EID of the Organization to which the user belongs > * **Type:** > string > ### default_profile > The EID of the user’s default advertisable > * **Type:** > string > ### created_date > Date that the user was created > * **Type:** > string > ### advertisables > List of advertisable EIDs that this user has access to > * **Type:** > array of items ### POST /api/v1/user/grant Grant a user in your organization additional privileges. This action may not be conducted by any non-admin user and may not be performed on one’s own user. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |---------------------|------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `u` | **True** | string | ID of the user to deactivate. | | `advertisables` | **True** | string | comma-separated string of EIDs for the advertisables you wish to grant a non-admin user access to (admin users have implicit access to every advertisables in an organization. Optional. | | `organization_role` | **True** | string | pass either ‘user’ or ‘admin’ to designate a role within your organization for the specified user. Optional | **Responses**: 200 > Schema as JSON: > ```json > {} > ``` > ### Schema > * **Type:** > object ### GET /api/v1/xdevice_opt_in/retrieve Retrieve cross-device opt-in setting **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable` | **True** | string | EID of advertisable | **Responses**: 200 > Schema as JSON: > ```json > { > "accepted": "boolean" > } > ``` > ### Schema > * **Type:** > object > ### accepted > True if the advertisable is opted-into the cross-device graph > * **Type:** > boolean ### POST /api/v1/xdevice_opt_in/update Update the cross-device opt-in setting **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | #### Form Parameters | Name | Required | Type | Description | |----------------|------------|---------|----------------------------------------------------------------------| | `advertisable` | **True** | string | EID of advertisable | | `value` | **True** | boolean | True if the advertisable should be opted-into the cross-device graph | **Responses**: 200 > Schema as JSON: > ```json > { > "accepted": "boolean" > } > ``` > ### Schema > * **Type:** > object > ### accepted > True if the advertisable is opted-into the cross-device graph > * **Type:** > boolean # reference.html.md # Geotargeting API Reference #### NOTE If you use the APIs provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api), and [Service Privacy Notice](https://www.nextroll.com/privacy) #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description NextRoll Geotargeting API 1.0 by [https://developers.nextroll.com/](https://developers.nextroll.com/) API for fetching, creating, and editing NextRoll geotargets [External documentation](https://developers.nextroll.com/) NextRoll API Documentation ## List of Operations - [`GET /geo/api/search/v2/geo`](#get--geo-api-search-v2-geo) ## Operations ### GET /geo/api/search/v2/geo Searching through Geotargets **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `geo_types` | False | string | Comma-delimited list of types of geotargeting types to return One of: `country`, `metro`, `region`, `city`, `postal_code`. | | `starts_with` | False | string | Search text of the beginning of the geotarget location name | | `count` | False | integer | Number of geotargets to limit results to | | `page` | False | integer | Page to request for paginated results when the number of results are greater than the count | **Responses**: 200 : A list of matching geotargets. Use `count` and `page` to iterate through the results until you receive an empty `results` list.
Returns [`GeoResponse`](#NextRoll Geotargeting API GeoResponse) ## Definitions ### GeoResponse * **Type:** object ### boundaries List of metro boundaries. * **Type:** array of string ### country Country that the metro belongs to * **Type:** object ```json { "iso2": string "name": string } ``` ### eid EID of geotarget * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 * **Pattern:** [A-Z0-9]{22} ### iso2 ISO 3166 Alpha-2 country code * **Type:** string * **MaxLength:** 2 * **MinLength:** 2 * **Pattern:** [A-Z]{2} ### iso3 ISO 3166 Alpha-3 country code * **Type:** string * **MaxLength:** 3 * **MinLength:** 3 * **Pattern:** [A-Z]{3} ### name Name of geotarget * **Type:** string ### name_localized Localized name of geotarget * **Type:** string ### type Type of geotarget * **Type:** string * **Enum:** `country`, `metro`, `region`, `city`, `postalcode` # reference.html.md # GraphQL Reporting API Reference #### NOTE If you use the APIs provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api) #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description AdRoll GraphQL Reporting API 1 Access your data with the AdRoll GraphQL Reporting API. See the GraphQL Schema documentation in [https://app.adroll.com/reporting/graphiql](https://app.adroll.com/reporting/graphiql) [External documentation](https://developers.adroll.com/) AdRoll API Documentation ## List of Operations - [`POST /reporting/api/v1/query`](#post--reporting-api-v1-query) ## Operations ### POST /reporting/api/v1/query Execute GraphQL queries **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: [`GraphQLDocument`](#AdRoll GraphQL Reporting API GraphQLDocument) ```json { "operationName": "string", "query": "string", "variables": {} } ``` **Responses**: 200 : The query was successfully performed.
Returns [`GraphQLResponse`](#AdRoll GraphQL Reporting API GraphQLResponse) ## Definitions ### GraphQLDocument * **Type:** object ### query GraphQL query * **Required:** True * **Type:** string ### operationName Required if multiple operations are present in the query * **Type:** string ### variables Query variables * **Type:** object ### GraphQLResponse * **Type:** object ### data Result of your query * **Type:** object ### errors List of errors that occurred * **Type:** array of [`GraphQLError`](#AdRoll GraphQL Reporting API GraphQLError) ### GraphQLError * **Type:** object ### message Description of the error * **Required:** True * **Type:** string ### locations Location of the error * **Type:** array of [`ErrorLocation`](#AdRoll GraphQL Reporting API ErrorLocation) ### path List of path segments starting at the root of the response and ending with the field associated with the error * **Type:** array of string ### ErrorLocation * **Type:** object ### line Line number of the source of the error * **Type:** integer ### column Column number of the source of the error * **Type:** integer # reference.html.md # Prospecting API Reference #### NOTE If you use the API provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api). To be able to create prospecting objects your advertisable(s) must be opted-in to the [Prospecting Services Addendum](https://www.nextroll.com/terms/prospecting). #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description Prospecting API v2 ## Operations by Tag ### Adgroups - [`GET /prospecting/api/v2/adgroups/(adgroup)`](#get--prospecting-api-v2-adgroups-(adgroup)) - [`POST /prospecting/api/v2/adgroups/(adgroup)`](#post--prospecting-api-v2-adgroups-(adgroup)) - [`GET /prospecting/api/v2/adgroups/(adgroup)/audience`](#get--prospecting-api-v2-adgroups-(adgroup)-audience) - [`POST /prospecting/api/v2/adgroups/(adgroup)/audience`](#post--prospecting-api-v2-adgroups-(adgroup)-audience) - [`GET /prospecting/api/v2/adgroups/(adgroup)/flights`](#get--prospecting-api-v2-adgroups-(adgroup)-flights) - [`POST /prospecting/api/v2/adgroups/(adgroup)/flights`](#post--prospecting-api-v2-adgroups-(adgroup)-flights) - [`GET /prospecting/api/v2/adgroups/(adgroup)/geo-targets`](#get--prospecting-api-v2-adgroups-(adgroup)-geo-targets) - [`POST /prospecting/api/v2/adgroups/(adgroup)/geo-targets`](#post--prospecting-api-v2-adgroups-(adgroup)-geo-targets) ### Advertisables - [`GET /prospecting/api/v2/advertisables/(adv)/campaigns`](#get--prospecting-api-v2-advertisables-(adv)-campaigns) - [`POST /prospecting/api/v2/advertisables/(adv)/campaigns`](#post--prospecting-api-v2-advertisables-(adv)-campaigns) - [`PATCH /prospecting/api/v2/advertisables/(adv)/campaigns`](#patch--prospecting-api-v2-advertisables-(adv)-campaigns) - [`GET /prospecting/api/v2/advertisables/(adv)/settings`](#get--prospecting-api-v2-advertisables-(adv)-settings) - [`POST /prospecting/api/v2/advertisables/(adv)/settings`](#post--prospecting-api-v2-advertisables-(adv)-settings) - [`GET /prospecting/api/v2/attribute_names/(adv)`](#get--prospecting-api-v2-attribute_names-(adv)) - [`GET /prospecting/api/v2/attribute_names/(adv)/sources`](#get--prospecting-api-v2-attribute_names-(adv)-sources) - [`GET /prospecting/api/v2/attribute_names/(adv)/(name)`](#get--prospecting-api-v2-attribute_names-(adv)-(name)) ### Audiences - [`GET /prospecting/api/v2/audiences/(audience)`](#get--prospecting-api-v2-audiences-(audience)) - [`POST /prospecting/api/v2/audiences/(audience)`](#post--prospecting-api-v2-audiences-(audience)) ### Campaigns - [`GET /prospecting/api/v2/campaigns/(campaign)`](#get--prospecting-api-v2-campaigns-(campaign)) - [`POST /prospecting/api/v2/campaigns/(campaign)`](#post--prospecting-api-v2-campaigns-(campaign)) - [`GET /prospecting/api/v2/campaigns/(campaign)/adgroups`](#get--prospecting-api-v2-campaigns-(campaign)-adgroups) - [`POST /prospecting/api/v2/campaigns/(campaign)/adgroups`](#post--prospecting-api-v2-campaigns-(campaign)-adgroups) - [`GET /prospecting/api/v2/campaigns/(campaign)/geo-targets`](#get--prospecting-api-v2-campaigns-(campaign)-geo-targets) ### Flights - [`PUT /prospecting/api/v2/flights/(flight)`](#put--prospecting-api-v2-flights-(flight)) - [`DELETE /prospecting/api/v2/flights/(flight)`](#delete--prospecting-api-v2-flights-(flight)) ### Untagged - [`GET /prospecting/api/v2/adgroups/(adgroup)`](#get--prospecting-api-v2-adgroups-(adgroup)) - [`POST /prospecting/api/v2/adgroups/(adgroup)`](#post--prospecting-api-v2-adgroups-(adgroup)) - [`GET /prospecting/api/v2/adgroups/(adgroup)/audience`](#get--prospecting-api-v2-adgroups-(adgroup)-audience) - [`POST /prospecting/api/v2/adgroups/(adgroup)/audience`](#post--prospecting-api-v2-adgroups-(adgroup)-audience) - [`GET /prospecting/api/v2/adgroups/(adgroup)/flights`](#get--prospecting-api-v2-adgroups-(adgroup)-flights) - [`POST /prospecting/api/v2/adgroups/(adgroup)/flights`](#post--prospecting-api-v2-adgroups-(adgroup)-flights) - [`GET /prospecting/api/v2/adgroups/(adgroup)/geo-targets`](#get--prospecting-api-v2-adgroups-(adgroup)-geo-targets) - [`POST /prospecting/api/v2/adgroups/(adgroup)/geo-targets`](#post--prospecting-api-v2-adgroups-(adgroup)-geo-targets) - [`GET /prospecting/api/v2/advertisables/(adv)/campaigns`](#get--prospecting-api-v2-advertisables-(adv)-campaigns) - [`POST /prospecting/api/v2/advertisables/(adv)/campaigns`](#post--prospecting-api-v2-advertisables-(adv)-campaigns) - [`PATCH /prospecting/api/v2/advertisables/(adv)/campaigns`](#patch--prospecting-api-v2-advertisables-(adv)-campaigns) - [`GET /prospecting/api/v2/advertisables/(adv)/settings`](#get--prospecting-api-v2-advertisables-(adv)-settings) - [`POST /prospecting/api/v2/advertisables/(adv)/settings`](#post--prospecting-api-v2-advertisables-(adv)-settings) - [`GET /prospecting/api/v2/attribute_names/(adv)`](#get--prospecting-api-v2-attribute_names-(adv)) - [`GET /prospecting/api/v2/attribute_names/(adv)/sources`](#get--prospecting-api-v2-attribute_names-(adv)-sources) - [`GET /prospecting/api/v2/attribute_names/(adv)/(name)`](#get--prospecting-api-v2-attribute_names-(adv)-(name)) - [`GET /prospecting/api/v2/audiences/(audience)`](#get--prospecting-api-v2-audiences-(audience)) - [`POST /prospecting/api/v2/audiences/(audience)`](#post--prospecting-api-v2-audiences-(audience)) - [`GET /prospecting/api/v2/campaigns/(campaign)`](#get--prospecting-api-v2-campaigns-(campaign)) - [`POST /prospecting/api/v2/campaigns/(campaign)`](#post--prospecting-api-v2-campaigns-(campaign)) - [`GET /prospecting/api/v2/campaigns/(campaign)/adgroups`](#get--prospecting-api-v2-campaigns-(campaign)-adgroups) - [`POST /prospecting/api/v2/campaigns/(campaign)/adgroups`](#post--prospecting-api-v2-campaigns-(campaign)-adgroups) - [`GET /prospecting/api/v2/campaigns/(campaign)/geo-targets`](#get--prospecting-api-v2-campaigns-(campaign)-geo-targets) - [`PUT /prospecting/api/v2/flights/(flight)`](#put--prospecting-api-v2-flights-(flight)) - [`DELETE /prospecting/api/v2/flights/(flight)`](#delete--prospecting-api-v2-flights-(flight)) ## Operations ### GET /prospecting/api/v2/adgroups/(adgroup) Get AdGroup by its EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------------| | `adgroup` | **True** | string | AdGroup EID to get. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "ads": array of object > "advertisable_eid": string > "attribute_targets": array of object > "attribute_targets_segment": string > "audience": object > "auto_audience": boolean > "auto_geo_targets": boolean > "campaign_eid": string > "contextual_targets": array of object > "contextual_targets_segment": string > "created_at": string > "device_targets": object > "eid": string > "geo_targets": array of object > "is_active": boolean > "name": string > "status": string > "updated_at": string > } > ``` ### POST /prospecting/api/v2/adgroups/(adgroup) Edit an AdGroup by its EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|----------------------| | `adgroup` | **True** | string | AdGroup EID to edit. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "ads": array of object > "advertisable_eid": string > "attribute_targets": array of object > "attribute_targets_segment": string > "audience": object > "auto_audience": boolean > "auto_geo_targets": boolean > "campaign_eid": string > "contextual_targets": array of object > "contextual_targets_segment": string > "created_at": string > "device_targets": object > "eid": string > "geo_targets": array of object > "is_active": boolean > "name": string > "status": string > "updated_at": string > } > ``` ### GET /prospecting/api/v2/adgroups/(adgroup)/audience Retrieve the audience for the specified AdGroup. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|-----------------------------------| | `adgroup` | **True** | string | AdGroup EID to get audience from. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroup_eid": string > "created_at": string > "eid": string > "size": integer > "source_segment_eid": string > "target_segment_eid": string > "updated_at": string > } > ``` ### POST /prospecting/api/v2/adgroups/(adgroup)/audience Create an audience for the specified AdGroup. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|----------------------------------------| | `adgroup` | **True** | string | AdGroup EID to create an audience for. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroup_eid": string > "created_at": string > "eid": string > "size": integer > "source_segment_eid": string > "target_segment_eid": string > "updated_at": string > } > ``` ### GET /prospecting/api/v2/adgroups/(adgroup)/flights Get all Flights associated with an AdGroup. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|----------------------------------| | `adgroup` | **True** | string | AdGroup EID to get Flights from. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "end_date": "string", > "start_date": "string", > "updated_at": "string" > } > ] > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > array of object ### POST /prospecting/api/v2/adgroups/(adgroup)/flights Create a new Flight for an AdGroup. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|---------------------------------------------------| | `adgroup` | **True** | string | AdGroup EID that the new Flight is being added to | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : Flight created successfully.
Schema as JSON:
```json { "results": { "adgroup_eid": "string", "created_at": "string", "eid": "string", "end_date": "string", "start_date": "string", "updated_at": "string" } } ```
### Schema
* **Type:** object
### results
* **Type:** object ```json {
"adgroup_eid": string

"created_at": string

"eid": string

"end_date": string

"start_date": string

"updated_at": string
} ``` 400 : The Flight was not created.
- Your Flight might be missing start/end dates. - The start date might be greater than the end date. - Your Flight might be overlapping with another of the adgroup’s Flights.
Schema as JSON:
```json { "code": "integer", "message": "" } ```
### Schema
* **Type:** object
### code
HTTP error code.
* **Type:** integer
### message
`String`, `list`, or `dictionary` of error messages. If a `dictionary`, the keys will be field names and the values will be lists of messages. ### GET /prospecting/api/v2/adgroups/(adgroup)/geo-targets Retrieve GeoTargets for the specified AdGroup. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|-------------------------------------| | `adgroup` | **True** | string | AdGroup EID to get GeoTargets from. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "data": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "eid": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "data": array of object > "eid": string > } > ``` ### POST /prospecting/api/v2/adgroups/(adgroup)/geo-targets Edit GeoTargets for the specified AdGroup. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |-----------|------------|--------|-----------------------------------| | `adgroup` | **True** | string | AdGroup EID to add GeoTargets to. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: ```json [ { "eid": "string", "operation": "string" } ] ``` ### Schema * **Type:** array **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "data": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "eid": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "data": array of object > "eid": string > } > ``` ### GET /prospecting/api/v2/advertisables/(adv)/campaigns Get campaigns for the given advertisable. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|-----------------------------------------| | `adv` | **True** | string | Advertisable EID to get campaigns from. | #### Query Parameters | Name | Required | Type | Description | |-------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `is_active` | False | boolean | | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > { > "adgroups": [ > { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > ], > "admin_notes": "string", > "admin_status": "string", > "advertisable_eid": "string", > "billing_auth_status": "string", > "content_categories": [ > { > "name": "string" > } > ], > "created_at": "string", > "currency_code": "string", > "eid": "string", > "end_date": "string", > "frequency_cap": "integer", > "is_active": "boolean", > "is_ctv": "boolean", > "is_frozen": "boolean", > "kpi_goal": "number", > "kpi_metric": "string", > "name": "string", > "source": "string", > "start_date": "string", > "status": "string", > "targeting_type": "string", > "updated_at": "string", > "user_status": "string", > "vcpc": "number", > "vcpx": "number", > "weekly_budget": "number" > } > ] > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > array of object ### POST /prospecting/api/v2/advertisables/(adv)/campaigns Create a campaign for the specified advertisable. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|----------------------------------------------| | `adv` | **True** | string | Advertisable EID to create the campaign for. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroups": [ > { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > ], > "admin_notes": "string", > "admin_status": "string", > "advertisable_eid": "string", > "billing_auth_status": "string", > "content_categories": [ > { > "name": "string" > } > ], > "created_at": "string", > "currency_code": "string", > "eid": "string", > "end_date": "string", > "frequency_cap": "integer", > "is_active": "boolean", > "is_ctv": "boolean", > "is_frozen": "boolean", > "kpi_goal": "number", > "kpi_metric": "string", > "name": "string", > "source": "string", > "start_date": "string", > "status": "string", > "targeting_type": "string", > "updated_at": "string", > "user_status": "string", > "vcpc": "number", > "vcpx": "number", > "weekly_budget": "number" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroups": array of object > "admin_notes": string > "admin_status": string > "advertisable_eid": string > "billing_auth_status": string > "content_categories": array of object > "created_at": string > "currency_code": string > "eid": string > "end_date": string > "frequency_cap": integer > "is_active": boolean > "is_ctv": boolean > "is_frozen": boolean > "kpi_goal": number > "kpi_metric": string > "name": string > "source": string > "start_date": string > "status": string > "targeting_type": string > "updated_at": string > "user_status": string > "vcpc": number > "vcpx": number > "weekly_budget": number > } > ``` ### PATCH /prospecting/api/v2/advertisables/(adv)/campaigns Change either user_status or currency_code (not both) for all campaigns belonging to the given advertisable. Completed or inactive campaigns won’t be affected when changing the user_status.`budget` and `kpi_goal` fields will be updated accordingly on each campaign when `currency_code` is changed. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|---------------------------------------------------------| | `adv` | **True** | string | Advertisable EID associated with the patched campaigns. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > { > "adgroups": [ > { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > ], > "admin_notes": "string", > "admin_status": "string", > "advertisable_eid": "string", > "billing_auth_status": "string", > "content_categories": [ > { > "name": "string" > } > ], > "created_at": "string", > "currency_code": "string", > "eid": "string", > "end_date": "string", > "frequency_cap": "integer", > "is_active": "boolean", > "is_ctv": "boolean", > "is_frozen": "boolean", > "kpi_goal": "number", > "kpi_metric": "string", > "name": "string", > "source": "string", > "start_date": "string", > "status": "string", > "targeting_type": "string", > "updated_at": "string", > "user_status": "string", > "vcpc": "number", > "vcpx": "number", > "weekly_budget": "number" > } > ] > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > array of object ### GET /prospecting/api/v2/advertisables/(adv)/settings Get advertisable settings. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|---------------------------------------| | `adv` | **True** | string | Advertisable EID to get settings for. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "advertisable": "string", > "ctc_weight": "number", > "ctc_window": "integer", > "vtc_weight": "number", > "vtc_window": "integer" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "advertisable": string > "ctc_weight": number > "ctc_window": integer > "vtc_weight": number > "vtc_window": integer > } > ``` ### POST /prospecting/api/v2/advertisables/(adv)/settings Edit advertisable settings. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|----------------------------------------| | `adv` | **True** | string | Advertisable EID to edit settings for. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "advertisable": "string", > "ctc_weight": "number", > "ctc_window": "integer", > "vtc_weight": "number", > "vtc_window": "integer" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "advertisable": string > "ctc_weight": number > "ctc_window": integer > "vtc_weight": number > "vtc_window": integer > } > ``` ### GET /prospecting/api/v2/attribute_names/(adv) Returns the full set of available per-source attribute data **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|------------------| | `adv` | **True** | string | Advertisable EID | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : List of sources for the advertisable,where every key is a source
Schema as JSON:
```json { "[source]": { "attributes": { "[attribute_name]": { "values": { "[value]": { "id": "number" } } } } } } ```
### Schema
List of sources for the advertisable,where every key is a source
* **Type:** object
### [source]
All attributes for the source
* **Type:** object ```json {
"attributes": object
} ``` ### GET /prospecting/api/v2/attribute_names/(adv)/sources Returns a list of strings containing the NAMEs of theattribute sources **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|------------------| | `adv` | **True** | string | Advertisable EID | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : List of sources availablefor the advertisable
Schema as JSON:
```json [ "string" ] ```
### Schema
* **Type:** array ### GET /prospecting/api/v2/attribute_names/(adv)/(name) Returns all information about the NAME’d attribute source, if the advertisable may access it. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |--------|------------|--------|------------------| | `name` | **True** | string | | | `adv` | **True** | string | Advertisable EID | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : All attributes for the source
Schema as JSON:
```json { "attributes": { "[attribute_name]": { "values": { "[value]": { "id": "number" } } } } } ```
### Schema
All attributes for the source
* **Type:** object
### attributes
List of attributes for the source, where every key is an attribute
* **Type:** object ```json {
"[attribute_name]": object
} ``` ### GET /prospecting/api/v2/audiences/(audience) Retrieve an audience with the specified EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |------------|------------|--------|----------------------| | `audience` | **True** | string | Audience EID to get. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroup_eid": string > "created_at": string > "eid": string > "size": integer > "source_segment_eid": string > "target_segment_eid": string > "updated_at": string > } > ``` ### POST /prospecting/api/v2/audiences/(audience) Edit audience by its EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |------------|------------|--------|-----------------------| | `audience` | **True** | string | Audience EID to edit. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroup_eid": string > "created_at": string > "eid": string > "size": integer > "source_segment_eid": string > "target_segment_eid": string > "updated_at": string > } > ``` ### GET /prospecting/api/v2/campaigns/(campaign) Retrieve a campaign with the specified EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |------------|------------|--------|----------------------| | `campaign` | **True** | string | Campaign EID to get. | #### Query Parameters | Name | Required | Type | Description | |------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `event_source` | False | string | Default: `fortyniner-ui`. | | `active_adgroups_only` | False | boolean | | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroups": [ > { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > ], > "admin_notes": "string", > "admin_status": "string", > "advertisable_eid": "string", > "billing_auth_status": "string", > "content_categories": [ > { > "name": "string" > } > ], > "created_at": "string", > "currency_code": "string", > "eid": "string", > "end_date": "string", > "frequency_cap": "integer", > "is_active": "boolean", > "is_ctv": "boolean", > "is_frozen": "boolean", > "kpi_goal": "number", > "kpi_metric": "string", > "name": "string", > "source": "string", > "start_date": "string", > "status": "string", > "targeting_type": "string", > "updated_at": "string", > "user_status": "string", > "vcpc": "number", > "vcpx": "number", > "weekly_budget": "number" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroups": array of object > "admin_notes": string > "admin_status": string > "advertisable_eid": string > "billing_auth_status": string > "content_categories": array of object > "created_at": string > "currency_code": string > "eid": string > "end_date": string > "frequency_cap": integer > "is_active": boolean > "is_ctv": boolean > "is_frozen": boolean > "kpi_goal": number > "kpi_metric": string > "name": string > "source": string > "start_date": string > "status": string > "targeting_type": string > "updated_at": string > "user_status": string > "vcpc": number > "vcpx": number > "weekly_budget": number > } > ``` ### POST /prospecting/api/v2/campaigns/(campaign) Edit a campaign with the specified EID. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |------------|------------|--------|-----------------------| | `campaign` | **True** | string | Campaign EID to edit. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroups": [ > { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > ], > "admin_notes": "string", > "admin_status": "string", > "advertisable_eid": "string", > "billing_auth_status": "string", > "content_categories": [ > { > "name": "string" > } > ], > "created_at": "string", > "currency_code": "string", > "eid": "string", > "end_date": "string", > "frequency_cap": "integer", > "is_active": "boolean", > "is_ctv": "boolean", > "is_frozen": "boolean", > "kpi_goal": "number", > "kpi_metric": "string", > "name": "string", > "source": "string", > "start_date": "string", > "status": "string", > "targeting_type": "string", > "updated_at": "string", > "user_status": "string", > "vcpc": "number", > "vcpx": "number", > "weekly_budget": "number" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroups": array of object > "admin_notes": string > "admin_status": string > "advertisable_eid": string > "billing_auth_status": string > "content_categories": array of object > "created_at": string > "currency_code": string > "eid": string > "end_date": string > "frequency_cap": integer > "is_active": boolean > "is_ctv": boolean > "is_frozen": boolean > "kpi_goal": number > "kpi_metric": string > "name": string > "source": string > "start_date": string > "status": string > "targeting_type": string > "updated_at": string > "user_status": string > "vcpc": number > "vcpx": number > "weekly_budget": number > } > ``` ### GET /prospecting/api/v2/campaigns/(campaign)/adgroups Get AdGroups that belong to given campaign. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |------------|------------|--------|------------------------------------| | `campaign` | **True** | string | Campaign EID to get AdGroups from. | #### Query Parameters | Name | Required | Type | Description | |-------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `is_active` | False | boolean | | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > ] > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > array of object ### POST /prospecting/api/v2/campaigns/(campaign)/adgroups Create an AdGroup for the given campaign. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |------------|------------|--------|---------------------------------| | `campaign` | **True** | string | Campaign EID to add AdGroup to. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "ads": [ > { > "ad_eid": "string", > "ad_eids": "string", > "adgroup_eid": "string", > "admin_status": "string", > "advertisable_eid": "string", > "campaign_eid": "string", > "campaign_name": "string", > "eid": "string", > "is_active": "boolean", > "status": "string", > "user_status": "string" > } > ], > "advertisable_eid": "string", > "attribute_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ] > } > ], > "attribute_targets_segment": "string", > "audience": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "size": "integer", > "source_segment_eid": "string", > "target_segment_eid": "string", > "updated_at": "string" > }, > "auto_audience": "boolean", > "auto_geo_targets": "boolean", > "campaign_eid": "string", > "contextual_targets": [ > { > "name": "string", > "options": [ > { > "name": "string", > "target": "boolean" > } > ], > "source": "string" > } > ], > "contextual_targets_segment": "string", > "created_at": "string", > "device_targets": {}, > "eid": "string", > "geo_targets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ], > "is_active": "boolean", > "name": "string", > "status": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "ads": array of object > "advertisable_eid": string > "attribute_targets": array of object > "attribute_targets_segment": string > "audience": object > "auto_audience": boolean > "auto_geo_targets": boolean > "campaign_eid": string > "contextual_targets": array of object > "contextual_targets_segment": string > "created_at": string > "device_targets": object > "eid": string > "geo_targets": array of object > "is_active": boolean > "name": string > "status": string > "updated_at": string > } > ``` ### GET /prospecting/api/v2/campaigns/(campaign)/geo-targets Retrieve GeoTargets for the specified Campaign. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |------------|------------|--------|--------------------------------------| | `campaign` | **True** | string | Campaign EID to get GeoTargets from. | #### Query Parameters | Name | Required | Type | Description | |------------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `active_adgroups_only` | False | boolean | | **Responses**: 200 > Schema as JSON: > ```json > { > "results": [ > { > "adgroup": "string", > "geotargets": [ > { > "city": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region_code": "string", > "type": "string" > }, > "country": { > "code": "string", > "country": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "geo_eid": "string", > "is_excluded": "boolean", > "metro": { > "boundaries": "string", > "country": "string", > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "server_id": "integer", > "type": "string" > }, > "name": "string", > "operation": "string", > "postal_code": { > "country_code": "string", > "eid": "string", > "id": "integer", > "is_facebook_target": "boolean", > "name": "string", > "type": "string" > }, > "region": { > "country": "string", > "eid": "string", > "id": "string", > "is_facebook_target": "boolean", > "name": "string", > "name_localized": "string", > "region": "string", > "type": "string" > }, > "type": "string" > } > ] > } > ] > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > array of object ### PUT /prospecting/api/v2/flights/(flight) Edit a Flight. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |----------|------------|--------|---------------------| | `flight` | **True** | string | Flight EID to edit. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : Flight edited successfully.
Schema as JSON:
```json { "results": { "adgroup_eid": "string", "created_at": "string", "eid": "string", "end_date": "string", "start_date": "string", "updated_at": "string" } } ```
### Schema
* **Type:** object
### results
* **Type:** object ```json {
"adgroup_eid": string

"created_at": string

"eid": string

"end_date": string

"start_date": string

"updated_at": string
} ``` 400 : The Flight was not edited.
- Your Flight might be missing start/end dates. - The start date might be greater than the end date. - Your Flight might be overlapping with another of the adgroup’s Flights.
Schema as JSON:
```json { "code": "integer", "message": "" } ```
### Schema
* **Type:** object
### code
HTTP error code.
* **Type:** integer
### message
`String`, `list`, or `dictionary` of error messages. If a `dictionary`, the keys will be field names and the values will be lists of messages. ### DELETE /prospecting/api/v2/flights/(flight) Delete a Flight. **Parameters**: #### Path Parameters | Name | Required | Type | Description | |----------|------------|--------|-----------------------| | `flight` | **True** | string | Flight EID to delete. | #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 > Schema as JSON: > ```json > { > "results": { > "adgroup_eid": "string", > "created_at": "string", > "eid": "string", > "end_date": "string", > "start_date": "string", > "updated_at": "string" > } > } > ``` > ### Schema > * **Type:** > object > ### results > * **Type:** > object > ```json > { > "adgroup_eid": string > "created_at": string > "eid": string > "end_date": string > "start_date": string > "updated_at": string > } > ``` # reference.html.md # Server-to-Server (S2S) API Reference #### NOTE The S2S event API is under active development. Although the API is generally stable, it may change. Event processing is not yet fully complete. [Send us a message](../support.md#support) if you have questions. ## API endpoint To send events, make a `POST` request to the `https://srv.adroll.com/api` endpoint. The endpoint requires a single query parameter, `advertisable`, which should be the EID of the advertisable you are sending the event to. You can optionally specify the `dry_run` parameter with a value of `true`. When used, the payload is validated and logged, but doesn’t impact your audiences or attribution. You can reduce the request size by utilizing HTTP compression (i.e., gzip). ```default POST https://srv.adroll.com/api?advertisable= ``` ## Authentication You’ll need to contact your account manager to access the Server Access Tokens (SATs) required for the S2S API. We will use 1Password to share the necessary credentials with you securely. While [1Password is the tool for this secure sharing process](https://support.1password.com/share-items/#view-a-shared-item), you won’t need to create your own 1Password account. The share link expires after seven days, and the item can only be accessed once. The Server Access Token is sent via the `Authorization` header with the `Token` scheme. For example: ```default Authorization: Token MYTOKEN ``` ## Request Body The JSON payload used to send events is structured below. A single request can send more than one event. The [event format section](events.md#s2s-api-event-format) provides details on the fields. Each event must include at least one of `first_party_cookie` or `adct` in `identifiers`. ```json [{ "advertisable_eid": "", "pixel_eid": "", "event_name": "", "event_attributes": "", "external_data": "", "ip": "", "user_agent": "", "conversion_value": "", "currency": "", "page_location": "", "device_os": "", "device_type": "", "package_app_name": "", "package_app_version": "", "timestamp": "", "identifiers": { "adct": "", "email": "", "email_sha256": "", "email_md5": "", "device_id": "", "first_party_cookie": "", "user_id": "" } }] ``` # reference.html.md # Universal Campaigns API Reference #### WARNING The Universal Campaigns API will be retired April 2025. #### NOTE If you use the APIs provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api), and [Service Privacy Notice](https://www.nextroll.com/privacy) #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description AdRoll Universal Campaigns API (v2) 2.0 Create and edit AdRoll strategies with the AdRoll Universal Campaigns API ## List of Operations - [`GET /activate/api/v2/adgroup`](#get--activate-api-v2-adgroup) - [`POST /activate/api/v2/adgroup`](#post--activate-api-v2-adgroup) - [`PUT /activate/api/v2/adgroup`](#put--activate-api-v2-adgroup) - [`PUT /activate/api/v2/adgroup_ad`](#put--activate-api-v2-adgroup_ad) - [`GET /activate/api/v2/campaign`](#get--activate-api-v2-campaign) - [`POST /activate/api/v2/campaign`](#post--activate-api-v2-campaign) - [`PUT /activate/api/v2/campaign`](#put--activate-api-v2-campaign) - [`GET /activate/api/v2/playbooks`](#get--activate-api-v2-playbooks) - [`POST /activate/api/v2/playbooks`](#post--activate-api-v2-playbooks) - [`PUT /activate/api/v2/playbooks`](#put--activate-api-v2-playbooks) - [`GET /activate/api/v2/playbooks/simple`](#get--activate-api-v2-playbooks-simple) ## Operations ### GET /activate/api/v2/adgroup Fetch adgroup **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `eid` | False | string | EID of requested adgroup | | `campaign_eid` | False | string | Campaign EID of underlying adgroups | **Responses**: 200 : A list of adgroups
Schema as JSON:
```json { "data": [ { "ad_type": "string", "ads": [ { "eid": "string", "status": "string" } ], "campaign_eid": "string", "created_at": "string", "eid": "string", "end_date": "string", "fb_placements": [ "string" ], "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "start_date": "string", "status": "string", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ] } ```
### Schema
* **Type:** object
### data
* **Type:** array of [`AdGroupResponse`](#AdRoll Universal Campaigns API (v2) AdGroupResponse) ### POST /activate/api/v2/adgroup Create a new adgroup **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `campaign_eid` | **True** | string | EID of campaign to attach adgroup to | Schema for request body: [`AdGroupCreate`](#AdRoll Universal Campaigns API (v2) AdGroupCreate) ```json { "ad_type": "string", "ads": [ { "eid": "string", "status": "string" } ], "campaign_eid": "string", "created_at": "string", "eid": "string", "end_date": "string", "fb_placements": [ "string" ], "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "start_date": "string", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ``` **Responses**: 200 : The newly created adgroup
Schema as JSON:
```json { "data": { "ad_type": "string", "ads": [ { "eid": "string", "status": "string" } ], "campaign_eid": "string", "created_at": "string", "eid": "string", "end_date": "string", "fb_placements": [ "string" ], "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "start_date": "string", "status": "string", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } } ```
### Schema
* **Type:** object
### data
* **Type:** [`AdGroupResponse`](#AdRoll Universal Campaigns API (v2) AdGroupResponse) ### PUT /activate/api/v2/adgroup Edit an existing adgroup **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `eid` | **True** | string | EID of adgroup to edit | Schema for request body: [`AdGroupEdit`](#AdRoll Universal Campaigns API (v2) AdGroupEdit) ```json { "ads": [ { "eid": "string", "status": "string" } ], "campaign_eid": "string", "created_at": "string", "eid": "string", "end_date": "string", "fb_placements": [ "string" ], "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "start_date": "string", "status": "string", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ``` **Responses**: 200 : The edited adgroup
Schema as JSON:
```json { "data": { "ad_type": "string", "ads": [ { "eid": "string", "status": "string" } ], "campaign_eid": "string", "created_at": "string", "eid": "string", "end_date": "string", "fb_placements": [ "string" ], "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "start_date": "string", "status": "string", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } } ```
### Schema
* **Type:** object
### data
* **Type:** [`AdGroupResponse`](#AdRoll Universal Campaigns API (v2) AdGroupResponse) ### PUT /activate/api/v2/adgroup_ad Edit an adgroup ad **Parameters**: #### Query Parameters | Name | Required | Type | Description | |---------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `adgroup_eid` | **True** | string | EID of adgroup | | `ad_eid` | **True** | string | EID of the ad to pause | Schema for request body: [`AdgroupAd`](#AdRoll Universal Campaigns API (v2) AdgroupAd) ```json { "eid": "string", "status": "string" } ``` **Responses**: 200 : The edited adgroup ad
Schema as JSON:
```json { "data": { "eid": "string", "status": "string" } } ```
### Schema
* **Type:** object
### data
* **Type:** [`AdgroupAd`](#AdRoll Universal Campaigns API (v2) AdgroupAd) ### GET /activate/api/v2/campaign Fetch campaign **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | False | string | Advertisable EID of requested campaign | | `eid` | False | string | EID of requested campaign | | `is_draft` | False | boolean | Flag indicating whether to pull drafts. true: will return only draft(s). false: will return only non-draft(s). If left out, both draft and non-draft can be returned. | | `paginate` | False | boolean | Flag indicating whether Campaigns will be paginated. If pagination is used, all drafts are returned with the first page of results. | | `cursor` | False | string | Cursor used for paginating results. | **Responses**: 200 : A list of Campaign objects
Schema as JSON:
```json { "data": [ { "advertisable_eid": "string", "budget": "number", "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "spend": "number" }, "created_at": "string", "currency": "string", "draft_eid": "string", "eid": "string", "end_date": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "start_date": "string", "status": "string" } ] } ```
### Schema
* **Type:** object
### data
* **Type:** array of [`CampaignResponse`](#AdRoll Universal Campaigns API (v2) CampaignResponse) ### POST /activate/api/v2/campaign Create a new campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID to create campaign under | Schema for request body: [`CampaignCreate`](#AdRoll Universal Campaigns API (v2) CampaignCreate) ```json { "advertisable_eid": "string", "budget": "number", "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "spend": "number" }, "created_at": "string", "currency": "string", "draft_eid": "string", "eid": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string" } ``` **Responses**: 200 : The newly created campaign
Schema as JSON:
```json { "data": { "advertisable_eid": "string", "budget": "number", "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "spend": "number" }, "created_at": "string", "currency": "string", "draft_eid": "string", "eid": "string", "end_date": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "start_date": "string", "status": "string" } } ```
### Schema
* **Type:** object
### data
* **Type:** [`CampaignResponse`](#AdRoll Universal Campaigns API (v2) CampaignResponse) ### PUT /activate/api/v2/campaign Edit an existing campaign. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `eid` | **True** | string | Campaign EID | Schema for request body: [`CampaignEdit`](#AdRoll Universal Campaigns API (v2) CampaignEdit) ```json { "advertisable_eid": "string", "budget": "number", "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "spend": "number" }, "created_at": "string", "eid": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "status": "string" } ``` **Responses**: 200 : The edited campaign
Schema as JSON:
```json { "data": { "advertisable_eid": "string", "budget": "number", "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "spend": "number" }, "created_at": "string", "currency": "string", "draft_eid": "string", "eid": "string", "end_date": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "start_date": "string", "status": "string" } } ```
### Schema
* **Type:** object
### data
* **Type:** [`CampaignResponse`](#AdRoll Universal Campaigns API (v2) CampaignResponse) ### GET /activate/api/v2/playbooks Fetch a Playbook **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | False | string | Advertisable EID of requested Playbook | | `eid` | False | string | EID of requested Playbook | | `verbose` | False | boolean | Include all details of each campaign in the Playbook(s) | | `is_draft` | False | boolean | Flag indicating whether to pull drafts. true: will return only draft(s). false: will return only non-draft(s). If left out, both draft and non-draft can be returned. | | `paginate` | False | boolean | Flag indicating whether Playbooks will be paginated. If pagination is used, all drafts are returned with the first page of results. | | `cursor` | False | string | Cursor used for paginating results. | **Responses**: 200 : A list of Playbook objects
Schema as JSON:
```json { "data": [ { "advertisable_eid": "string", "audience_attributes": {}, "budget": { "budget_type": "string", "currency": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "budget_balancing_automated": "boolean", "bulk_campaigns": [ { "adgroups": [ { "ad_type": "string", "ads": [ { "added_on": "string", "eid": "string", "status": "string" } ], "adwizard_ticket_id": "integer", "campaign_eid": "string", "created_at": "string", "eid": "string", "fb_placements": [ "string" ], "high_intent": "boolean", "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "status": "string", "sync_strategy_name": "boolean", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ], "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "created_at": "string", "dayparting": {}, "domain_frequency_cap": "number", "domain_frequency_cap_enabled": "boolean", "draft_eid": "string", "eid": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "rw_excluded_lead_type": "string", "rw_manage_domain_frequency_cap": "boolean", "status": "string", "tactic_type": "string", "template": "string", "use_case": "string", "user_frequency_cap": "integer" } ], "campaigns": [ { "budget": "number", "eid": "string" } ], "effective_status": "string", "eid": "string", "end_date": "string", "general_exclusions": [ { "eid": "string", "general_exclusion_type": "string" } ], "name": "string", "playbook_type": "string", "start_date": "string", "status": "string", "tag_eid": "string", "tal_eid": "string" } ] } ```
### Schema
* **Type:** object
### data
* **Type:** array of [`PlaybookResponseGeneric`](#AdRoll Universal Campaigns API (v2) PlaybookResponseGeneric) ### POST /activate/api/v2/playbooks Create a new Playbook. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID to create Playbook under | Schema for request body: [`PlaybookCreate`](#AdRoll Universal Campaigns API (v2) PlaybookCreate) ```json { "advertisable_eid": "string", "audience_attributes": {}, "budget": { "budget_type": "string", "currency": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "budget_balancing_automated": "boolean", "bulk_campaigns": [ { "adgroups": [ { "ad_type": "string", "ads": [ { "added_on": "string", "eid": "string", "status": "string" } ], "adwizard_ticket_id": "integer", "campaign_eid": "string", "created_at": "string", "eid": "string", "fb_placements": [ "string" ], "high_intent": "boolean", "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "status": "string", "sync_strategy_name": "boolean", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ], "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "created_at": "string", "dayparting": {}, "domain_frequency_cap": "number", "domain_frequency_cap_enabled": "boolean", "draft_eid": "string", "eid": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "rw_excluded_lead_type": "string", "rw_manage_domain_frequency_cap": "boolean", "status": "string", "tactic_type": "string", "template": "string", "use_case": "string", "user_frequency_cap": "integer" } ], "campaigns": [ { "budget": "number", "eid": "string" } ], "effective_status": "string", "eid": "string", "end_date": "string", "general_exclusions": [ { "eid": "string", "general_exclusion_type": "string" } ], "name": "string", "playbook_type": "string", "start_date": "string", "status": "string", "tag_eid": "string", "tal_eid": "string" } ``` **Responses**: 200 : The newly created Playbook
Schema as JSON:
```json { "data": { "advertisable_eid": "string", "audience_attributes": {}, "budget": { "budget_type": "string", "currency": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "budget_balancing_automated": "boolean", "bulk_campaigns": [ { "adgroups": [ { "ad_type": "string", "ads": [ { "added_on": "string", "eid": "string", "status": "string" } ], "adwizard_ticket_id": "integer", "campaign_eid": "string", "created_at": "string", "eid": "string", "fb_placements": [ "string" ], "high_intent": "boolean", "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "status": "string", "sync_strategy_name": "boolean", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ], "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "created_at": "string", "dayparting": {}, "domain_frequency_cap": "number", "domain_frequency_cap_enabled": "boolean", "draft_eid": "string", "eid": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "rw_excluded_lead_type": "string", "rw_manage_domain_frequency_cap": "boolean", "status": "string", "tactic_type": "string", "template": "string", "use_case": "string", "user_frequency_cap": "integer" } ], "campaigns": [ { "budget": "number", "eid": "string" } ], "effective_status": "string", "eid": "string", "end_date": "string", "general_exclusions": [ { "eid": "string", "general_exclusion_type": "string" } ], "name": "string", "playbook_type": "string", "start_date": "string", "status": "string", "tag_eid": "string", "tal_eid": "string" } } ```
### Schema
* **Type:** object
### data
* **Type:** [`PlaybookResponseGeneric`](#AdRoll Universal Campaigns API (v2) PlaybookResponseGeneric) ### PUT /activate/api/v2/playbooks Edit an existing Playbook. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `eid` | **True** | string | Playbook EID | Schema for request body: [`PlaybookEdit`](#AdRoll Universal Campaigns API (v2) PlaybookEdit) ```json { "advertisable_eid": "string", "audience_attributes": {}, "budget": { "budget_type": "string", "currency": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "budget_balancing_automated": "boolean", "bulk_campaigns": [ { "adgroups": [ { "ad_type": "string", "ads": [ { "added_on": "string", "eid": "string", "status": "string" } ], "adwizard_ticket_id": "integer", "campaign_eid": "string", "created_at": "string", "eid": "string", "fb_placements": [ "string" ], "high_intent": "boolean", "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "status": "string", "sync_strategy_name": "boolean", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ], "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "created_at": "string", "dayparting": {}, "domain_frequency_cap": "number", "domain_frequency_cap_enabled": "boolean", "draft_eid": "string", "eid": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "rw_excluded_lead_type": "string", "rw_manage_domain_frequency_cap": "boolean", "status": "string", "tactic_type": "string", "template": "string", "use_case": "string", "user_frequency_cap": "integer" } ], "campaigns": [ { "budget": "number", "eid": "string" } ], "effective_status": "string", "eid": "string", "end_date": "string", "general_exclusions": [ { "eid": "string", "general_exclusion_type": "string" } ], "name": "string", "start_date": "string", "status": "string", "tag_eid": "string", "tal_eid": "string" } ``` **Responses**: 200 : The edited Playbook
Schema as JSON:
```json { "data": { "advertisable_eid": "string", "audience_attributes": {}, "budget": { "budget_type": "string", "currency": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "budget_balancing_automated": "boolean", "bulk_campaigns": [ { "adgroups": [ { "ad_type": "string", "ads": [ { "added_on": "string", "eid": "string", "status": "string" } ], "adwizard_ticket_id": "integer", "campaign_eid": "string", "created_at": "string", "eid": "string", "fb_placements": [ "string" ], "high_intent": "boolean", "kpi_goal": "number", "kpi_metric": "string", "li_audience_network_enabled": "boolean", "name": "string", "objective": "string", "status": "string", "sync_strategy_name": "boolean", "targeting_features": { "negative_segment_eids": [ "string" ], "positive_segment_eids": [ "string" ] } } ], "budget_settings": { "budget_type": "string", "current_month_spend": "number", "goal": "number", "is_prorated": "boolean", "prorated_goal": "number", "spend": "number" }, "created_at": "string", "dayparting": {}, "domain_frequency_cap": "number", "domain_frequency_cap_enabled": "boolean", "draft_eid": "string", "eid": "string", "has_special_ad_category": "boolean", "is_draft": "boolean", "is_frozen": "boolean", "name": "string", "objective": "string", "rw_excluded_lead_type": "string", "rw_manage_domain_frequency_cap": "boolean", "status": "string", "tactic_type": "string", "template": "string", "use_case": "string", "user_frequency_cap": "integer" } ], "campaigns": [ { "budget": "number", "eid": "string" } ], "effective_status": "string", "eid": "string", "end_date": "string", "general_exclusions": [ { "eid": "string", "general_exclusion_type": "string" } ], "name": "string", "playbook_type": "string", "start_date": "string", "status": "string", "tag_eid": "string", "tal_eid": "string" } } ```
### Schema
* **Type:** object
### data
* **Type:** [`PlaybookResponseGeneric`](#AdRoll Universal Campaigns API (v2) PlaybookResponseGeneric) ### GET /activate/api/v2/playbooks/simple Fetch playbooks with only simple data response **Parameters**: #### Query Parameters | Name | Required | Type | Description | |--------------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `advertisable_eid` | **True** | string | Advertisable EID of requested Playbook | | `eid` | False | string | EID of requested Playbook | **Responses**: 200 : A list of Playbook objects
Schema as JSON:
```json { "data": [ { "audience_attributes": {}, "effective_status": "string", "eid": "string", "end_date": "string", "general_exclusions": [ { "eid": "string", "general_exclusion_type": "string" } ], "name": "string", "playbook_type": "string", "start_date": "string", "status": "string", "tag_eid": "string", "tal_eid": "string" } ] } ```
### Schema
* **Type:** object
### data
* **Type:** array of [`PlaybookResponseSimple`](#AdRoll Universal Campaigns API (v2) PlaybookResponseSimple) ## Definitions ### BudgetSettings * **Type:** object ### budget_type Type of budget * **Required:** True * **Type:** string * **Enum:** `daily`, `monthly`, `lifetime` ### goal Budget of campaign in the currency specified by the currency field. * **Required:** True * **Type:** number ### spend Amount spent by this campaign till now, if a lifetime or monthly budget is used. * **Type:** number ### current_month_spend Amount spent by this Campaign this month, if a monthly budget is used * **Type:** number ### AdgroupAd * **Type:** object ### eid Ad eid. * **Required:** True * **Type:** string ### status Adgroup ad status * **Required:** True * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### AdgroupTargeting * **Type:** object ### positive_segment_eids List of segment EIDs being positively targeted by this adgroup. * **Type:** array of string ### negative_segment_eids List of segment EIDs being negatively targeted by this adgroup. * **Type:** array of string ### AdGroupResponse * **Type:** object ### name Name of adgroup. * **Type:** string ### eid EID of adgroup. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### campaign_eid EID of campaign this adgroup is in. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### ad_type The type of ads supported by this adgroup. The ad_eids passed in should be of this type. * **Required:** True * **Type:** string * **Enum:** `dynamic`, `static` ### ads * **Type:** array of [`AdgroupAd`](#AdRoll Universal Campaigns API (v2) AdgroupAd) ### start_date Start date/time of adgroup in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of adgroup in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### status Status of adgroup * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### kpi_goal Value of KPI goal for specified KPI metric (in currency specified by campaign’s `currency` parameter).This must be number greater than 0 or NULL to set an automatic goal. * **Type:** number ### kpi_metric Metric used to measure KPI. * **Type:** string * **Enum:** `CPA`, `CPC`, `CPM` ### created_at Datetime of adgroup creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### targeting_features * **Type:** [`AdgroupTargeting`](#AdRoll Universal Campaigns API (v2) AdgroupTargeting) ### objective AdGroup-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### fb_placements List of FB page_types * **Type:** array of enum [‘desktopfeed’, ‘mobilefeed’, ‘rightcolumn’, ‘mobileexternal’, ‘instagramstream’] ### li_audience_network_enabled True if the LinkedIn Audience Network should be enabled for the AdGroup. False otherwise * **Type:** boolean ### AdGroupEdit * **Type:** object ### name Name of adgroup. * **Type:** string ### eid EID of adgroup. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### campaign_eid EID of campaign this adgroup is in. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### ads * **Type:** array of [`AdgroupAd`](#AdRoll Universal Campaigns API (v2) AdgroupAd) ### start_date Start date/time of adgroup in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of adgroup in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### status Status of adgroup * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### kpi_goal Value of KPI goal for specified KPI metric (in currency specified by campaign’s `currency` parameter).This must be number greater than 0 or NULL to set an automatic goal. * **Type:** number ### kpi_metric Metric used to measure KPI. * **Type:** string * **Enum:** `CPA`, `CPC`, `CPM` ### created_at Datetime of adgroup creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### targeting_features * **Type:** [`AdgroupTargeting`](#AdRoll Universal Campaigns API (v2) AdgroupTargeting) ### objective AdGroup-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### fb_placements List of FB page_types * **Type:** array of enum [‘desktopfeed’, ‘mobilefeed’, ‘rightcolumn’, ‘mobileexternal’, ‘instagramstream’] ### li_audience_network_enabled True if the LinkedIn Audience Network should be enabled for the AdGroup. False otherwise * **Type:** boolean ### AdGroupCreate * **Type:** object ### name Name of adgroup. * **Type:** string ### eid EID of adgroup. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### campaign_eid EID of campaign this adgroup is in. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### ad_type The type of ads supported by this adgroup. The ad_eids passed in should be of this type. * **Required:** True * **Type:** string * **Enum:** `dynamic`, `static` ### ads * **Type:** array of [`AdgroupAd`](#AdRoll Universal Campaigns API (v2) AdgroupAd) ### start_date Start date/time of adgroup in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of adgroup in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### kpi_goal Value of KPI goal for specified KPI metric (in currency specified by campaign’s `currency` parameter).This must be number greater than 0 or NULL to set an automatic goal. * **Type:** number ### kpi_metric Metric used to measure KPI. * **Type:** string * **Enum:** `CPA`, `CPC`, `CPM` ### created_at Datetime of adgroup creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### targeting_features * **Type:** [`AdgroupTargeting`](#AdRoll Universal Campaigns API (v2) AdgroupTargeting) ### objective AdGroup-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### fb_placements List of FB page_types * **Type:** array of enum [‘desktopfeed’, ‘mobilefeed’, ‘rightcolumn’, ‘mobileexternal’, ‘instagramstream’] ### li_audience_network_enabled True if the LinkedIn Audience Network should be enabled for the AdGroup. False otherwise * **Type:** boolean ### CampaignResponse * **Type:** object ### eid EID of campaign. 22 characters long. * **Type:** string ### draft_eid EID of draft campaign to publish. 22 characters long. * **Type:** string ### is_draft Field indicating whether this is a draft campaign. * **Type:** boolean ### advertisable_eid EID of advertisable campaign is attached to. 22 Characters long. * **Type:** string ### budget Daily budget of campaign in the currency specified by the currency field. * **Type:** number ### budget_settings * **Type:** [`BudgetSettings`](#AdRoll Universal Campaigns API (v2) BudgetSettings) ### currency ISO-4217 currency code for budget. This value must match the currency set on the Advertisable’s billing account. * **Required:** True * **Type:** string * **Enum:** `USD`, `EUR`, `AUD`, `GBP`, `NZD`, `JPY` ### name Campaign Name * **Type:** string * **MaxLength:** 100 ### start_date Start date/time of campaign in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of campaign in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### status Status of campaign * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### objective Campaign-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### created_at Datetime of campaign creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### has_special_ad_category Boolean indicating whether or not the campaign has special ad category. * **Type:** boolean ### is_frozen Boolean indicating whether or not the campaign is frozen. * **Type:** boolean ### CampaignCreate * **Type:** object ### eid EID of campaign. 22 characters long. * **Type:** string ### draft_eid EID of draft campaign to publish. 22 characters long. * **Type:** string ### is_draft Field indicating whether this is a draft campaign. * **Type:** boolean ### advertisable_eid EID of advertisable campaign is attached to. 22 Characters long. * **Type:** string ### budget Daily budget of campaign in the currency specified by the currency field. * **Type:** number ### budget_settings * **Type:** [`BudgetSettings`](#AdRoll Universal Campaigns API (v2) BudgetSettings) ### currency ISO-4217 currency code for budget. This value must match the currency set on the Advertisable’s billing account. * **Required:** True * **Type:** string * **Enum:** `USD`, `EUR`, `AUD`, `GBP`, `NZD`, `JPY` ### name Campaign Name * **Type:** string * **MaxLength:** 100 ### objective Campaign-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### created_at Datetime of campaign creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### has_special_ad_category Boolean indicating whether or not the campaign has special ad category. * **Type:** boolean ### is_frozen Boolean indicating whether or not the campaign is frozen. * **Type:** boolean ### CampaignEdit * **Type:** object ### eid EID of campaign. 22 characters long. * **Type:** string ### is_draft Field indicating whether this is a draft campaign. * **Type:** boolean ### advertisable_eid EID of advertisable campaign is attached to. 22 Characters long. * **Type:** string ### budget Daily budget of campaign in the currency specified by the currency field. * **Type:** number ### budget_settings * **Type:** [`BudgetSettings`](#AdRoll Universal Campaigns API (v2) BudgetSettings) ### name Campaign Name * **Type:** string * **MaxLength:** 100 ### status Status of campaign * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### objective Campaign-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### created_at Datetime of campaign creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### has_special_ad_category Boolean indicating whether or not the campaign has special ad category. * **Type:** boolean ### is_frozen Boolean indicating whether or not the campaign is frozen. * **Type:** boolean ### PlaybookBudget * **Type:** object ### budget_type Type of budget * **Required:** True * **Type:** string * **Enum:** `monthly`, `lifetime` ### is_prorated When using monthly budgets, this flag will enable prorating if the start date is not the first of the month. Defaults to True. * **Type:** boolean ### currency ISO-4217 currency code for budget. This value must match the currency set on the Advertisable’s billing account. * **Required:** True * **Type:** string * **Enum:** `USD`, `EUR`, `AUD`, `GBP`, `NZD`, `JPY` ### goal Budget of Playbook in the currency specified by the currency field. * **Required:** True * **Type:** number ### prorated_goal Budget to be used for the first month of a monthly budget type Playbook. is_prorated must be true * **Type:** number ### spend Amount spent by this Playbook till now, if a lifetime or monthly budget is used. * **Type:** number ### current_month_spend Amount spent by this Playbook this month, if a monthly budget is used * **Type:** number ### PlaybookCampaign * **Type:** object ### eid Campaign eid. * **Required:** True * **Type:** string ### budget Budget to assign to the campaign. Set only when budget_balancing_automated is False. * **Type:** number ### PlaybookGeneralExclusion * **Type:** object ### eid The segment eid for the exclusion. * **Required:** True * **Type:** string ### general_exclusion_type The general exclusion type of the exclusion. * **Required:** True * **Type:** string * **Enum:** `competitors`, `coworkers`, `customers` ### PlaybookResponse * **Type:** object ### eid Playbook eid. * **Required:** True * **Type:** string ### advertisable_eid EID of advertisable the Playbook is attached to. 22 Characters long. * **Type:** string ### status Playbook status. * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### effective_status Playbook effective status. * **Type:** string ### budget * **Required:** True * **Type:** [`PlaybookBudget`](#AdRoll Universal Campaigns API (v2) PlaybookBudget) ### name Playbook Name. * **Type:** string * **MaxLength:** 100 ### start_date Start date/time of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### playbook_type Type of the Playbook * **Required:** True * **Type:** string * **Enum:** `pre_opportunity_funnel`, `pre_opportunity_funnel_intent`, `website_retargeting_basic`, `website_retargeting_intermediate`, `website_retargeting_advanced` ### budget_balancing_automated Allow our system to smartly allocate your budget among the Playbook’s campaigns to optimize the Playbook performance. If you have this setting turned off, you’ll have to manually set the budget split of the Playbook’s configured campaigns. * **Type:** boolean * **Default:** True ### campaigns List of Campaigns to attach to the Playbook. * **Type:** array of [`PlaybookCampaign`](#AdRoll Universal Campaigns API (v2) PlaybookCampaign) ### tal_eid Target Account List eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### tag_eid Target Account Group eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### general_exclusions General exclusions list. This is a cached value. Changes here do not impact the Playbook. * **Type:** array of [`PlaybookGeneralExclusion`](#AdRoll Universal Campaigns API (v2) PlaybookGeneralExclusion) ### audience_attributes Audience attributes. This is a cached value. Changes here do not impact the Playbook. * **Type:** object ### PlaybookCampaignBudget * **Type:** object ### budget_type Type of budget * **Required:** True * **Type:** string * **Enum:** `daily`, `monthly`, `lifetime` ### is_prorated When using monthly budgets, this flag will enable prorating if the start date is not the first of the month. Defaults to True. * **Type:** boolean ### prorated_goal Budget to be used for the first month of a monthly budget type campaign. is_prorated must be true * **Type:** number ### goal Budget of campaign in the currency specified by the currency field. * **Required:** True * **Type:** number ### spend Amount spent by this campaign till now, if a lifetime or monthly budget is used. * **Type:** number ### current_month_spend Amount spent by this Campaign this month, if a monthly budget is used * **Type:** number ### PlaybookCampaignAdgroupAd * **Type:** object ### eid Ad eid. * **Required:** True * **Type:** string ### status Adgroup ad status * **Required:** True * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### added_on Added on Playbook date/time of adgroup in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### PlaybookCampaignAdgroup * **Type:** object ### name Name of adgroup. * **Type:** string ### eid EID of adgroup. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### campaign_eid EID of campaign this adgroup is in. * **Type:** string * **MaxLength:** 22 * **MinLength:** 22 ### ad_type The type of ads supported by this adgroup. The ad_eids passed in should be of this type. * **Required:** True * **Type:** string * **Enum:** `dynamic`, `static` ### ads Optional list of Ads to create with the Campaign * **Type:** array of [`PlaybookCampaignAdgroupAd`](#AdRoll Universal Campaigns API (v2) PlaybookCampaignAdgroupAd) ### status Status of adgroup * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### kpi_goal Value of KPI goal for specified KPI metric (in currency specified by campaign’s `currency` parameter).This must be number greater than 0 or NULL to set an automatic goal. * **Type:** number ### kpi_metric Metric used to measure KPI. * **Type:** string * **Enum:** `CPA`, `CPC`, `CPM` ### created_at Datetime of adgroup creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### targeting_features * **Type:** [`AdgroupTargeting`](#AdRoll Universal Campaigns API (v2) AdgroupTargeting) ### high_intent For an adgroup on a campaign with a configured template, use high intent targeting segments. * **Type:** boolean ### sync_strategy_name will flush the strategy name to the Inventory campaigns * **Type:** boolean ### adwizard_ticket_id ID of the adwizard ticket to associate with this adgroup. * **Type:** integer ### objective AdGroup-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### fb_placements List of FB page_types * **Type:** array of enum [‘desktopfeed’, ‘mobilefeed’, ‘rightcolumn’, ‘mobileexternal’, ‘instagramstream’] ### li_audience_network_enabled True if the LinkedIn Audience Network should be enabled for the AdGroup. False otherwise * **Type:** boolean ### PlaybookCampaignFull * **Type:** object ### eid EID of campaign. 22 characters long. * **Type:** string ### draft_eid EID of draft campaign to publish. 22 characters long. * **Type:** string ### is_draft Field indicating whether this is a draft campaign. * **Type:** boolean ### budget_settings * **Type:** [`PlaybookCampaignBudget`](#AdRoll Universal Campaigns API (v2) PlaybookCampaignBudget) ### domain_frequency_cap_enabled Boolean indicating whether or not to apply account-based frequency cap. * **Type:** boolean ### domain_frequency_cap Account-based frequency cap to apply to each campaign group under this strategywith web retargeting ads, for RollWorks. Optional, will not appear in dump if null. * **Type:** number * **Maximum:** 10000 ### dayparting Dayparting schedule to apply to each campaign group under this strategywith web retargeting ads, for RollWorks. Optional, will not appear in dump if null. * **Type:** object ### name Campaign Name * **Type:** string * **MaxLength:** 100 ### status Status of campaign * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### objective Campaign-level objective: attract_lookalike, attract_attribute, convert, rw_linkedin, rw_account_targeting, rw_retargeting. Defaults to convert. * **Type:** string * **Default:** convert * **Enum:** `attract_lookalike`, `attract_attribute`, `convert`, `rw_linkedin`, `rw_account_targeting`, `rw_retargeting` ### adgroups Optional list of Adgroups to create with the Campaign * **Type:** array of [`PlaybookCampaignAdgroup`](#AdRoll Universal Campaigns API (v2) PlaybookCampaignAdgroup) ### created_at Datetime of campaign creation in ISO-8601 in UTC. * **Type:** string * **Format:** date-time ### template Template definition to use when creating adgroups for this campaign. * **Type:** string * **Default:** universal * **Enum:** `universal`, `blackops_uc`, `shopify_uc`, `magento_uc`, `magento2_uc`, `woocommerce_uc`, `prestashop_uc`, `bigcommerce_uc`, `squarespace_uc` ### use_case Campaign use case. * **Type:** string * **Enum:** `mixed`, `brand_awareness`, `browse_abandonment`, `cart_abandonment`, `loyalty` ### has_special_ad_category Boolean indicating whether or not the campaign has special ad category. * **Type:** boolean ### is_frozen Boolean indicating whether or not the campaign is frozen. * **Type:** boolean ### rw_excluded_lead_type RollWorks only - Which lead type should be excluded from the targeted audience * **Type:** string * **Enum:** `all`, `manual`, `content_download`, `demo_request`, `signup`, `other`, `contact_us`, `webinar_registration` ### rw_manage_domain_frequency_cap RollWorks only - Boolean indicating whether or not frequency cap should be managed by RollWorks * **Type:** boolean ### tactic_type Campaign Tactic Type * **Required:** True * **Type:** string ### user_frequency_cap User frequency cap to apply to each campaign group under this strategywith web retargeting/prospecting ads. * **Type:** integer * **Maximum:** 100 * **Minimum:** 1 ### PlaybookResponseGeneric * **Type:** object ### eid Playbook eid. * **Required:** True * **Type:** string ### advertisable_eid EID of advertisable the Playbook is attached to. 22 Characters long. * **Type:** string ### status Playbook status. * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### effective_status Playbook effective status. * **Type:** string ### budget * **Required:** True * **Type:** [`PlaybookBudget`](#AdRoll Universal Campaigns API (v2) PlaybookBudget) ### name Playbook Name. * **Type:** string * **MaxLength:** 100 ### start_date Start date/time of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### playbook_type Type of the Playbook * **Required:** True * **Type:** string * **Enum:** `pre_opportunity_funnel`, `pre_opportunity_funnel_intent`, `website_retargeting_basic`, `website_retargeting_intermediate`, `website_retargeting_advanced` ### budget_balancing_automated Allow our system to smartly allocate your budget among the Playbook’s campaigns to optimize the Playbook performance. If you have this setting turned off, you’ll have to manually set the budget split of the Playbook’s configured campaigns. * **Type:** boolean * **Default:** True ### campaigns List of Campaigns to attach to the Playbook. * **Type:** array of [`PlaybookCampaign`](#AdRoll Universal Campaigns API (v2) PlaybookCampaign) ### bulk_campaigns List of Campaigns with detailed information to create or edit within the Playbook. * **Type:** array of [`PlaybookCampaignFull`](#AdRoll Universal Campaigns API (v2) PlaybookCampaignFull) ### tal_eid Target Account List eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### tag_eid Target Account Group eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### general_exclusions General exclusions list. This is a cached value. Changes here do not impact the Playbook. * **Type:** array of [`PlaybookGeneralExclusion`](#AdRoll Universal Campaigns API (v2) PlaybookGeneralExclusion) ### audience_attributes Audience attributes. This is a cached value. Changes here do not impact the Playbook. * **Type:** object ### PlaybookResponseSimple * **Type:** object ### audience_attributes Audience attributes. This is a cached value. Changes here do not impact the Playbook. * **Type:** object ### effective_status Playbook effective status. * **Type:** string ### eid Playbook eid. * **Required:** True * **Type:** string ### end_date End date of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### general_exclusions General exclusions list. This is a cached value. Changes here do not impact the Playbook. * **Type:** array of [`PlaybookGeneralExclusion`](#AdRoll Universal Campaigns API (v2) PlaybookGeneralExclusion) ### name Playbook Name. * **Type:** string * **MaxLength:** 100 ### playbook_type Type of the Playbook * **Required:** True * **Type:** string * **Enum:** `pre_opportunity_funnel`, `pre_opportunity_funnel_intent`, `website_retargeting_basic`, `website_retargeting_intermediate`, `website_retargeting_advanced` ### start_date Start date/time of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### tag_eid Target Account Group eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### tal_eid Target Account List eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### status Status of adgroup * **Type:** string * **Enum:** `live`, `paused` ### PlaybookCreate * **Type:** object ### eid Playbook eid. * **Required:** True * **Type:** string ### advertisable_eid EID of advertisable the Playbook is attached to. 22 Characters long. * **Type:** string ### status Playbook status. * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### effective_status Playbook effective status. * **Type:** string ### budget * **Required:** True * **Type:** [`PlaybookBudget`](#AdRoll Universal Campaigns API (v2) PlaybookBudget) ### name Playbook Name. * **Type:** string * **MaxLength:** 100 ### start_date Start date/time of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### playbook_type Type of the Playbook * **Required:** True * **Type:** string * **Enum:** `pre_opportunity_funnel`, `pre_opportunity_funnel_intent`, `website_retargeting_basic`, `website_retargeting_intermediate`, `website_retargeting_advanced` ### budget_balancing_automated Allow our system to smartly allocate your budget among the Playbook’s campaigns to optimize the Playbook performance. If you have this setting turned off, you’ll have to manually set the budget split of the Playbook’s configured campaigns. * **Type:** boolean * **Default:** True ### campaigns List of Campaigns to attach to the Playbook. * **Type:** array of [`PlaybookCampaign`](#AdRoll Universal Campaigns API (v2) PlaybookCampaign) ### bulk_campaigns List of Campaigns with detailed information to create or edit within the Playbook. * **Type:** array of [`PlaybookCampaignFull`](#AdRoll Universal Campaigns API (v2) PlaybookCampaignFull) ### tal_eid Target Account List eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### tag_eid Target Account Group eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### general_exclusions General exclusions list. This is a cached value. Changes here do not impact the Playbook. * **Type:** array of [`PlaybookGeneralExclusion`](#AdRoll Universal Campaigns API (v2) PlaybookGeneralExclusion) ### audience_attributes Audience attributes. This is a cached value. Changes here do not impact the Playbook. * **Type:** object ### PlaybookEdit * **Type:** object ### eid Playbook eid. * **Required:** True * **Type:** string ### advertisable_eid EID of advertisable the Playbook is attached to. 22 Characters long. * **Type:** string ### status Playbook status. * **Type:** string * **Enum:** `live`, `paused`, `deleted` ### effective_status Playbook effective status. * **Type:** string ### budget * **Type:** [`PlaybookBudget`](#AdRoll Universal Campaigns API (v2) PlaybookBudget) ### name Playbook Name. * **Type:** string * **MaxLength:** 100 ### start_date Start date/time of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### end_date End date of playbook in ISO-8601 format in UTC. * **Type:** string * **Format:** date-time ### budget_balancing_automated Allow our system to smartly allocate your budget among the Playbook’s campaigns to optimize the Playbook performance. If you have this setting turned off, you’ll have to manually set the budget split of the Playbook’s configured campaigns. * **Type:** boolean * **Default:** True ### campaigns List of Campaigns to attach to the Playbook. * **Type:** array of [`PlaybookCampaign`](#AdRoll Universal Campaigns API (v2) PlaybookCampaign) ### bulk_campaigns List of Campaigns with detailed information to create or edit within the Playbook. * **Type:** array of [`PlaybookCampaignFull`](#AdRoll Universal Campaigns API (v2) PlaybookCampaignFull) ### tal_eid Target Account List eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### tag_eid Target Account Group eid. This is a cached value. Changes here do not impact the Playbook. * **Type:** string ### general_exclusions General exclusions list. This is a cached value. Changes here do not impact the Playbook. * **Type:** array of [`PlaybookGeneralExclusion`](#AdRoll Universal Campaigns API (v2) PlaybookGeneralExclusion) ### audience_attributes Audience attributes. This is a cached value. Changes here do not impact the Playbook. * **Type:** object # reference.html.md # User Lists API Reference #### NOTE If you use the APIs provided here, you are subject to the [API Terms of Use](https://www.nextroll.com/terms/api), and [Service Privacy Notice](https://www.nextroll.com/privacy) #### NOTE We’ve introduced API keys, please read [Migrating to API Keys](../guides/api-key-migration.md#api-key-migration) ## Description AdRoll User List API 1.0 Access your user list data with Adroll User List API ## List of Operations - [`GET /user-lists/api/v1/userlists/ad`](#get--user-lists-api-v1-userlists-ad) - [`GET /user-lists/api/v1/userlists/adgroup`](#get--user-lists-api-v1-userlists-adgroup) - [`GET /user-lists/api/v1/userlists/advertisable`](#get--user-lists-api-v1-userlists-advertisable) - [`GET /user-lists/api/v1/userlists/audience_preview`](#get--user-lists-api-v1-userlists-audience_preview) - [`GET /user-lists/api/v1/userlists/segment`](#get--user-lists-api-v1-userlists-segment) - [`POST /user-lists/api/v1/userlists/segment`](#post--user-lists-api-v1-userlists-segment) - [`GET /user-lists/api/v1/userlists/segment/cdp_plus`](#get--user-lists-api-v1-userlists-segment-cdp_plus) - [`GET /user-lists/api/v1/userlists/segment/exact`](#get--user-lists-api-v1-userlists-segment-exact) ## Operations ### GET /user-lists/api/v1/userlists/ad Provides user list sizes broken down by ad and date Provides user list sizes broken down by ad and date **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : Successful operation
Returns [`UserList-Metrics-Response`](#AdRoll User List API UserList-Metrics-Response) ### GET /user-lists/api/v1/userlists/adgroup Provides user list sizes broken down by AdGroup and date Provides user list sizes broken down by AdGroup and date **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `adgroup_eids` | **True** | string | No description | **Responses**: 200 : Successful operation
Returns [`UserList-Metrics-Response`](#AdRoll User List API UserList-Metrics-Response) ### GET /user-lists/api/v1/userlists/advertisable Provides user list sizes broken down by advertisable and date Provides user list sizes broken down by advertisable and date **Parameters**: #### Query Parameters | Name | Required | Type | Description | |------------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `duration` | **True** | string | No description | **Responses**: 200 : Successful operation
Returns [`UserList-Metrics-Response`](#AdRoll User List API UserList-Metrics-Response) ### GET /user-lists/api/v1/userlists/audience_preview Estimates the size of composite segments based on their components Estimates the size of composite segments based on their components **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : Successful operation
Returns [`Audience-Preview-Response`](#AdRoll User List API Audience-Preview-Response) ### GET /user-lists/api/v1/userlists/segment Provides user list sizes broken down by segment and date, as well as a summary for counts across all specified segments. If a particular segment has multiple durations associated with it, then the summary section will be computed with the segment’s largest duration. This endpoint also allows the specification of excluded segments, which are segments to not consider in generating the user list sizes. The excluded segments and their durations are combined together across the entire specified date range when they are being applied against the summary and entity breakdowns, but they are applied on a corresponding day-by-day basis when applied to the date breakdown. Provides user list sizes broken down by segment and date, as well as a summary for counts across all specified segments. If a particular segment has multiple durations associated with it, then the summary section will be computed with the segment’s largest duration. This endpoint also allows the specification of excluded segments, which are segments to not consider in generating the user list sizes. The excluded segments and their durations are combined together across the entire specified date range when they are being applied against the summary and entity breakdowns, but they are applied on a corresponding day-by-day basis when applied to the date breakdown. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : Successful operation
Returns [`UserList-Metrics-Response`](#AdRoll User List API UserList-Metrics-Response) ### POST /user-lists/api/v1/userlists/segment This is identical to the GET endpoint, but is presented as a POST endpoint in order to submit large input sets. The POST body is a JSON-encoded string whose format follows from the GET endpoint’s query parameters. This is identical to the GET endpoint, but is presented as a POST endpoint in order to submit large input sets. The POST body is a JSON-encoded string whose format follows from the GET endpoint’s query parameters. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | Schema for request body: ```json { "advertisable_eid": "string", "breakdowns": "string", "durations": "string", "email": "boolean", "end_date": "string", "excluded_durations": "string", "excluded_segment_eids": "string", "past_days": "integer", "segment_eids": "string", "start_date": "string", "use_uhura": "boolean" } ``` ### Schema Parameters when sending a POST request to the segment user list endpoint * **Type:** object ### breakdowns Comma-separated list of breakdowns. Must be at least one of entity, date, summary * **Required:** True * **Type:** string ### use_uhura Explicitly ask the API to use the Uhura Backend for hll calculations * **Type:** boolean ### end_date End of the date range in yyyy-MM-dd or MM-dd-yyyy format (exclusive) * **Type:** string ### past_days Equivalent to setting `end_date` to today (exclusive) and `start_date` to (today - `past_days`). Takes precedence over `start_date` and `end_date` * **Type:** integer * **Format:** int32 ### excluded_segment_eids Comma-separated list of segment EIDs to exclude from the count * **Type:** string ### excluded_durations Comma-separated list of durations corresponding to the segments to exclude from the count. Must be the same length as excluded_segment_eids. Each excluded segment must have exactly one duration associated with it. * **Type:** string ### advertisable_eid A single advertisable EID * **Required:** True * **Type:** string ### durations Comma-separated list of ad durations. Must be the same length as ad_eids * **Type:** string ### email Ask the API to retrieve the segment email hll counts instead of segment hll counts. * **Type:** boolean ### start_date Start of the date range in yyyy-MM-dd or MM-dd-yyyy format (inclusive) * **Type:** string ### segment_eids Comma-separated list of segment EIDs * **Required:** True * **Type:** string **Responses**: 200 : Successful operation
Returns [`UserList-Metrics-Response`](#AdRoll User List API UserList-Metrics-Response) ### GET /user-lists/api/v1/userlists/segment/cdp_plus Provides user list sizes broken down by segment and date Provides user list sizes broken down by segment and date, as well as a summary for counts across all specified segments. If a particular segment has multiple durations associated with it, then the summary section will be computed with the segment’s largest duration. This endpoint also allows the specification of excluded segments, which are segments to not consider in generating the user list sizes. The excluded segments and their durations are combined together across the entire specified date range when they are being applied against the summary and entity breakdowns, but they are applied on a corresponding day-by-day basis when applied to the date breakdown. **Parameters**: #### Query Parameters | Name | Required | Type | Description | |-----------|------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | | `use_hll` | **True** | boolean | No description | **Responses**: 200 : Successful operation
Returns [`UserList-Metrics-Response`](#AdRoll User List API UserList-Metrics-Response) ### GET /user-lists/api/v1/userlists/segment/exact Provides exact user counts by date and metric Provides exact counts for the amount of users that exist in a segment on a daily basis, this membership is historic and will not change after the day has ended **Parameters**: #### Query Parameters | Name | Required | Type | Description | |----------|------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `apikey` | False | string | Required if using Personal Access Tokens (PAT). The value is the Client ID you received when you registered your application on the [NextRoll Developer site](https://developers.nextroll.com/) | **Responses**: 200 : Successful operation
Returns [`Exact-Metrics-Response`](#AdRoll User List API Exact-Metrics-Response) ## Definitions ### Audience-Preview-Response Responds to requests regarding estimating composite segment sizes * **Type:** object ### count Count of total unique membership size of given segments * **Type:** integer ### Exact-Metrics-Response An object for responding to requests with UserList metrics * **Type:** object ### results * **Type:** [`Exact-Metrics`](#AdRoll User List API Exact-Metrics) ### Exact-Metrics An object for the different ways UserList metrics are broken down and exposed * **Type:** object ### segment_eid * **Type:** object ```json { "metric": :openapi:schema:`Exact-Date-Metrics-Response` } ``` ### Exact-Date-Metrics-Response A JSON encoded wrapper for UserList Metrics broken down by each day * **Type:** object ### date * **Type:** string * **Format:** date-time ### size Count of total membership size of segment on a particular day * **Type:** integer * **Format:** int64 ### UserList-Metrics-Response An object for responding to requests with UserList metrics * **Type:** object ### results * **Type:** [`UserList-Metrics`](#AdRoll User List API UserList-Metrics) ### UserList-Metrics An object for the different ways UserList metrics are broken down and exposed * **Type:** object ### summary * **Type:** [`UserList-Summary-Metrics-Response`](#AdRoll User List API UserList-Summary-Metrics-Response) ### entity * **Type:** array of [`User-List-Entity-Metrics-Response`](#AdRoll User List API User-List-Entity-Metrics-Response) ### date * **Type:** array of [`UserList-Date-Metrics-Response`](#AdRoll User List API UserList-Date-Metrics-Response) ### UserList-Summary-Metrics-Response A JSON encoded wrapper for UserList Metrics * **Type:** object ### new_visitors Count of unique new visitors who visited the entities between the specified date range. DEPRECATED. * **Type:** integer * **Format:** int64 ### total_visitors Total number of unique visitors between the specified start_date (inclusive) and end_date (exclusive) ignoring duration i.e. [START_DATE, END_DATE) * **Type:** integer * **Format:** int64 ### current_visitors Total number of unique visitors within the duration of the entity i.e. [$TODAY - $DURATION, $TODAY) * **Type:** integer * **Format:** int64 ### current_visitors_in_date_range Total number of unique visitors within the duration of the entity with the specified date range i.e. [$END_DATE - $DURATION, $END_DATE) * **Type:** integer * **Format:** int64 ### excluded_total_visitors Count of total visitors who did not visit entities because of a exclusion segment. * **Type:** integer * **Format:** int64 ### excluded_current_visitors Count of current visitors at the time of query who did not visit entities because of a exclusion segment. * **Type:** integer * **Format:** int64 ### excluded_current_visitors_in_date_range Count of current visitors during the end_date who did not visit entities because of a exclusion segment. * **Type:** integer * **Format:** int64 ### User-List-Entity-Metrics-Response Response of userlist metrics broken down by a specified entity type * **Type:** object ### entity The EID of a specified entity type that belongs to the advertisable * **Type:** string ### XX_days * **Type:** [`User-List-Entity-Duration-Metrics-Response`](#AdRoll User List API User-List-Entity-Duration-Metrics-Response) ### User-List-Entity-Duration-Metrics-Response * **Type:** object ### new_visitors Count of unique new visitors who visited the entities between the specified date range. DEPRECATED. * **Type:** integer * **Format:** int64 ### total_visitors Total number of unique visitors between the specified start_date (inclusive) and end_date (exclusive) ignoring duration i.e. [START_DATE, END_DATE) * **Type:** integer * **Format:** int64 ### current_visitors Total number of unique visitors within the duration of the entity i.e. [$TODAY - $DURATION, $TODAY) * **Type:** integer * **Format:** int64 ### current_visitors_in_date_range Total number of unique visitors within the duration of the entity with the specified date range i.e. [$END_DATE - $DURATION, $END_DATE) * **Type:** integer * **Format:** int64 ### UserList-Date-Metrics-Response A JSON encoded wrapper for UserList Metrics broken down by each day * **Type:** object ### date * **Type:** string * **Format:** date-time ### new_visitors Count of unique new visitors who visited the entities between the specified date range. DEPRECATED. * **Type:** integer * **Format:** int64 ### total_visitors Total number of unique visitors between the specified start_date (inclusive) and end_date (exclusive) ignoring duration i.e. [START_DATE, END_DATE) * **Type:** integer * **Format:** int64 ### excluded_total_visitors Count of total visitors who did not visit entities because of a exclusion segment. * **Type:** integer * **Format:** int64 ### Segment-UserList-Post-Input Parameters when sending a POST request to the segment user list endpoint * **Type:** object ### breakdowns List of breakdowns. Must be at least one of entity, date, summary * **Required:** True * **Type:** array of string ### advertisable_eid A single advertisable EID * **Required:** True * **Type:** string ### segment_eids List of segment eids * **Required:** True * **Type:** array of string ### durations List of segment durations. Must be the same length as segment_eids * **Type:** array of integer ### excluded_segment_eids List of segment eids to exclude from the count * **Type:** array of string ### excluded_durations List of durations corresponding to the segments to exclude from the count. Must be the same length as excluded_segment_eids. Each excluded segment must have exactly one duration associated with it. * **Type:** array of integer ### start_date Start of the date range in yyyy-MM-dd or MM-dd-yyyy format (inclusive) * **Type:** string ### end_date End of the date range in yyyy-MM-dd or MM-dd-yyyy format (exclusive) * **Type:** string ### past_days Equivalent to setting `end_date` to today (exclusive) and `start_date` to (today - `past_days`). Takes precedence over `start_date` and `end_date` * **Type:** integer * **Format:** int32 ### Bulk-UserList-Post-Input Parameters when sending a POST request to the bulk user list endpoint * **Type:** object ### entities * **Required:** True * **Type:** [`Bulk-Entity-Input`](#AdRoll User List API Bulk-Entity-Input) ### start_date Start of the date range in yyyy-MM-dd or MM-dd-yyyy format (inclusive) * **Type:** string ### end_date End of the date range in yyyy-MM-dd or MM-dd-yyyy format (exclusive) * **Type:** string ### past_days Equivalent to setting `end_date` to today (exclusive) and `start_date` to (today - `past_days`). Takes precedence over `start_date` and `end_date` * **Type:** integer * **Format:** int32 ### Bulk-Entity-Input * **Type:** object ### advertisable_eid A single advertisable EID * **Required:** True * **Type:** string ### segment_eids List of segment eids * **Type:** array of string ### adgroup_eids List of adgroup eids * **Type:** array of string ### ad_eids List of ad eids * **Type:** array of string ### durations List of segment durations. Must be the same length as segment_eids * **Type:** array of integer ### Query-Response An object for responding to requests with the metadata for reporting audience insights cookie attribute distribution by segment * **Type:** object ### id ID of the query metadata * **Type:** integer ### advertisable_eid A single advertisable EID * **Type:** string ### attribute_name Name of the attribute selected * **Type:** string ### top_number Number of attribute values to display * **Type:** integer ### last_modified_date Last time this set of metadata was modified, currently equates to creation date * **Type:** string ### Results-Line A single result line from the query * **Type:** object ### id ID of the query metadata * **Type:** integer ### segment_eid A single segment EID * **Type:** string ### attribute_category Value of the attribute selected * **Type:** string ### date_analyzed Date that this data pertains to * **Type:** string ### cookies_matched Number of cookies with a matched attribute value for this attribute * **Type:** integer ### segment_size Number of cookies in this segment * **Type:** integer ### unique_cookies Number of cookies with this attribute value * **Type:** integer ### last_modified_date Creation date of result data * **Type:** string ### Results-Response * **Type:** object ### results List of result lines * **Type:** array of [`Results-Line`](#AdRoll User List API Results-Line) ### Results-Empty-Dates-Response * **Type:** object ### results List of dates ISO format * **Type:** array of string # reporting-api-migration.html.md # Migrate from the Reporting API The [GraphQL Reporting API](overview.md#graphql-reporting-api-overview) is the best way to easily fetch all the metrics for your accounts. If you’re still using the Reporting API, you can use this guide to upgrade your integration. Benefits: - Fetch delivery and attribution data in a single call - Get details about the objects you’re reporting on such, as the name or campaign types - Retrieve metrics for nested objects If you’re unfamiliar with the GraphQL Reporting API, you should [check out the introduction first](overview.md#graphql-reporting-api-overview). ## Helpful tips The sample queries make use of two GraphQL features that may be new to you: - [GraphQL fragments](https://graphql.org/learn/queries/#fragments) are used to reduce duplicate code in queries - [GraphQL variables](https://graphql.org/learn/queries/#variables) are used to parameterize EIDs and dates in queries for easy reuse When querying objects, you can query the object by EID or through its parent object (i.e., fetch all Campaigns in an Advertisable) The following are the vital GraphQL types in our schema that contain reporting data. They can be accessed through a variety of queries. - [`Metric`](schema.md#Metric) - [`MetricForCampaign`](schema.md#MetricForCampaign) - [`MetricForAdvertisable`](schema.md#MetricForAdvertisable) - [`AudienceMetric`](schema.md#AudienceMetric) - [`FieldAccountMetrics`](schema.md#FieldAccountMetrics) GraphQL makes it easy to query for a lot of data in a single request. However, be mindful of how many subject objects you’re querying and how many days of data you’re fetching. We recommend you paginate your requests using [GraphQL variables](https://graphql.org/learn/queries/#variables) for the list of EIDs and date ranges you’re retrieving. You can experiment with building queries using [GraphiQL](https://app.adroll.com/reporting/graphiql). ## Replacement GraphQL queries To help you migrate your application, the following tables give you a sample replacement query for each Reporting API endpoint. You can find additional examples in [GraphQL Reporting API Examples](examples.md#graphql-reporting-api-examples). #### Reporting API endpoints with a direct replacement | Category | Endpoint | Example GraphQL queries | |-------------|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Attribution | `/uhura/v1/attributions/ad` | [Metrics by Ad](#guide-reporting-api-migration-example-by-ad) | | Attribution | `/uhura/v1/attributions/adgroup` | [Metrics by AdGroup](#guide-reporting-api-migration-example-by-adgroup) | | Attribution | `/uhura/v1/attributions/advertisable` | [Metrics by Advertisable](#guide-reporting-api-migration-example-by-advertisable) | | Attribution | `/uhura/v1/attributions/campaign` | [Metrics by Campaign](#guide-reporting-api-migration-example-by-campaign) | | Attribution | `/uhura/v1/attributions/export` | - [Metrics by Ad](#guide-reporting-api-migration-example-by-ad)
- [Metrics by AdGroup](#guide-reporting-api-migration-example-by-adgroup)
- [Metrics by Advertisable](#guide-reporting-api-migration-example-by-advertisable)
- [Metrics by Campaign](#guide-reporting-api-migration-example-by-campaign) | | Attribution | `/uhura/v1/combined-granular-attributions` | [Granular Conversions](#guide-reporting-api-migration-example-granular-conversions) | | Deliveries | `/uhura/v1/deliveries/ad` | [Metrics by Ad](#guide-reporting-api-migration-example-by-ad) | | Deliveries | `/uhura/v1/deliveries/adgroup` | [Metrics by AdGroup](#guide-reporting-api-migration-example-by-adgroup) | | Deliveries | `/uhura/v1/deliveries/advertisable` | [Metrics by Advertisable](#guide-reporting-api-migration-example-by-advertisable) | | Deliveries | `/uhura/v1/deliveries/campaign` | [Metrics by Campaign](#guide-reporting-api-migration-example-by-campaign) | | Deliveries | `/uhura/v1/deliveries/export` | - [Metrics by Ad](#guide-reporting-api-migration-example-by-ad)
- [Metrics by AdGroup](#guide-reporting-api-migration-example-by-adgroup)
- [Metrics by Advertisable](#guide-reporting-api-migration-example-by-advertisable)
- [Metrics by Campaign](#guide-reporting-api-migration-example-by-campaign) | The following Reporting API endpoints don’t have a direct replacement, but in the notes column you’ll find suggested workarounds. #### Reporting API endpoints without a replacement | Category | Endpoint | Notes | |-------------------------|---------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Attribution | `/uhura/v1/attributions/segment` | Instead of retrieving by segment, fetch attribution metrics by [AdGroup](#guide-reporting-api-migration-example-by-adgroup), [Campaign](#guide-reporting-api-migration-example-by-campaign), or [Advertisable](#guide-reporting-api-migration-example-by-advertisable) | | Attribution, Deliveries | `/uhura/v1/email-domain-metrics/export` | No replacement available, this metric only applies to campaigns targeting CRM audiences on the Web | | Attribute | `/uhura/v1/retargeting-attributes/advertisable` | See the [create attribute audiences guide](../guides/create-audiences.md#guide-audiences-attribute) | | Attribute | `/uhura/v1/segment-attributes/advertisable` | See the [create attribute audiences guide](../guides/create-audiences.md#guide-audiences-attribute) | | Deliveries | `/uhura/v1/segment-deliveries/advertisable` | Fetch delivery metrics by [Advertisable](#guide-reporting-api-migration-example-by-advertisable) | | Deliveries | `/uhura/v1/segment-deliveries/export` | Fetch delivery metrics by [AdGroup](#guide-reporting-api-migration-example-by-adgroup), [Campaign](#guide-reporting-api-migration-example-by-campaign), or [Advertisable](#guide-reporting-api-migration-example-by-advertisable) | | Deliveries | `/uhura/v1/segment-deliveries/segment` | Fetch delivery metrics by [AdGroup](#guide-reporting-api-migration-example-by-adgroup), [Campaign](#guide-reporting-api-migration-example-by-campaign), or [Advertisable](#guide-reporting-api-migration-example-by-advertisable) | | Deliveries | `/uhura/v1/segmentation-event-deliveries/segment` | Fetch delivery metrics by [AdGroup](#guide-reporting-api-migration-example-by-adgroup), [Campaign](#guide-reporting-api-migration-example-by-campaign), or [Advertisable](#guide-reporting-api-migration-example-by-advertisable) | | Deliveries | `/uhura/v1/deliveries/domain/ad` | AdRoll ABM customers can fetch delivery metrics by [Account for campaign](#guide-reporting-api-migration-example-by-delivery-account) | | Deliveries | `/uhura/v1/deliveries/domain/adgroup` | AdRoll ABM customers can fetch delivery metrics by [Account for campaign](#guide-reporting-api-migration-example-by-delivery-account) | | Deliveries | `/uhura/v1/deliveries/domain` | AdRoll ABM customers can fetch delivery metrics by [Account for campaign](#guide-reporting-api-migration-example-by-delivery-account) | Index of sample queries by object types - [Metrics by Advertisable](#guide-reporting-api-migration-example-by-advertisable) - [Metrics by Campaign](#guide-reporting-api-migration-example-by-campaign) - [Metrics by AdGroup](#guide-reporting-api-migration-example-by-adgroup) - [Metrics by Ad](#guide-reporting-api-migration-example-by-ad) - [Metrics by Delivery Account](#guide-reporting-api-migration-example-by-delivery-account) - [Granular Conversions](#guide-reporting-api-migration-example-granular-conversions) ### Metrics by Advertisable Replaces - `/uhura/v1/attributions/advertisable` - `/uhura/v1/attributions/export` - `/uhura/v1/deliveries/advertisable` - `/uhura/v1/deliveries/export` ```graphql query AdvertisableMetricsQuery($advertisables: [String], $startDate: Date, $endDate: Date) { advertisable { byEIDs(eids: $advertisables) { eid name metrics(start: $startDate, end: $endDate) { summary { ...performanceMetrics ...conversionMetrics } byDate { date ...performanceMetrics ...conversionMetrics } } } } } fragment performanceMetrics on MetricForAdvertisable { cost impressions clicks ctr cpm cpc } fragment conversionMetrics on MetricForAdvertisable { conversions cpa clickThroughs clickCPA viewThroughs viewCPA } ``` ### Metrics by Campaign Replaces - `/uhura/v1/attributions/campaign` - `/uhura/v1/attributions/export` - `/uhura/v1/deliveries/campaign` - `/uhura/v1/deliveries/export` ```graphql query CampaignMetricsQuery($campaigns: [String], $startDate: Date, $endDate: Date) { campaign { byEIDs(eids: $campaigns) { eid name metrics(start: $startDate, end: $endDate) { summary { ...performanceMetricsSummary ...conversionMetricsSummary } byDate { date ...performanceMetrics ...conversionMetrics } } } } } fragment performanceMetricsSummary on Metric { cost impressions clicks ctr cpm cpc } fragment conversionMetricsSummary on Metric { conversions cpa clickThroughs clickCPA viewThroughs viewCPA } fragment performanceMetrics on MetricForCampaign { cost impressions clicks ctr cpm cpc } fragment conversionMetrics on MetricForCampaign { conversions cpa clickThroughs clickCPA viewThroughs viewCPA } ``` ### Metrics by AdGroup Replaces - `/uhura/v1/attributions/adgroup` - `/uhura/v1/attributions/export` - `/uhura/v1/deliveries/adgroup` - `/uhura/v1/deliveries/export` ```graphql query AdGroupMetricsQuery($adgroups: [String], $startDate: Date, $endDate: Date) { adgroup { byEIDs(eids: $adgroups) { eid name metrics(start: $startDate, end: $endDate) { summary { ...performanceMetrics ...conversionMetrics } byDate { date ...performanceMetrics ...conversionMetrics } } } } } fragment performanceMetrics on Metric { cost impressions clicks ctr cpm cpc } fragment conversionMetrics on Metric { conversions cpa clickThroughs clickCPA viewThroughs viewCPA } ``` ### Metrics by Ad Replaces - `/uhura/v1/attributions/ad` - `/uhura/v1/attributions/export` - `/uhura/v1/deliveries/ad` - `/uhura/v1/deliveries/export` ```graphql query AdMetricsQuery($ads: [String], $startDate: Date, $endDate: Date) { ad { byEIDs(eids: $ads) { eid name metrics(start: $startDate, end: $endDate) { summary { ...performanceMetrics ...conversionMetrics } byDate { date ...performanceMetrics ...conversionMetrics } } } } } fragment performanceMetrics on Metric { cost impressions clicks ctr cpm cpc } fragment conversionMetrics on Metric { conversions cpa clickThroughs clickCPA viewThroughs viewCPA } ``` ### Metrics by Delivery Account Replaces - `/uhura/v1/deliveries/domain` - `/uhura/v1/deliveries/domain/ad` - `/uhura/v1/deliveries/domain/adgroup` AdRoll ABM customers can query for delivery metrics for Accounts targeted by their campaigns. ```graphql query AccountMetrics($advertisable: String, $campaigns: [String], $startDate: Date, $endDate: Date) { accountMetrics { summary(advertisableEID: $advertisable, campaignEIDs: $campaigns, start: $startDate, end: $endDate) { domain cost impressions clicks adjustedClickThroughs adjustedViewThroughs } } } ``` ### Granular Conversions Replaces - `/uhura/v1/combined-granular-attributions` ```graphql query GranularConversionsQuery($advertisables: [String], $startDate: Date, $endDate: Date) { advertisable { byEIDs(eids: $advertisables) { granularConversions(start: $startDate, end: $endDate) { time type attributionCredit adrollConversionId touchpointTimestamp attributedConversions lastTouchAttribution channel campaignEID campaignType campaignName adgroupEID adgroupName adEID adName adSize segmentEID segmentName attributedRevenue externalData device campaignEID } } } } ``` # reporting-platforms.html.md # Reporting Platforms Guide If you’re an analytics platform interested in supporting AdRoll and AdRoll ABM customers, this is the guide for you. If you’re interested in partnering with us, send the [partnerships team an email](mailto:partners@rollworks.com). If you have any API questions, you can [contact the API team](../support.md#support). > * [Get to know the NextRoll API](#get-to-know-the-nextroll-api) > * [AdRoll and AdRoll ABM similarities](#adroll-and-adroll-abm-similarities) > * [AdRoll ABM differences](#adroll-abm-differences) > * [Authentication](#authentication) > * [Retrieve Metrics](#retrieve-metrics) > * [Advertisables for user](#advertisables-for-user) > * [Metrics for Advertisables](#metrics-for-advertisables) > * [Metrics for Campaigns](#metrics-for-campaigns) > * [AdGroup metrics for a campaign](#adgroup-metrics-for-a-campaign) > * [Ad metrics for a campaign](#ad-metrics-for-a-campaign) > * [Account metrics for a campaign](#account-metrics-for-a-campaign) > * [Optimizing queries](#optimizing-queries) > * [Paginate your queries](#paginate-your-queries) > * [Reusable queries](#reusable-queries) ## Get to know the NextRoll API Before you start building your integration, it helps to have a basic understanding of the NextRoll API. [Get Started with the NextRoll API](get-started.md#guide-get-started) will help you make your first API call. [Get to know NextRoll](object-structure.md#guides-object-structure) provides an overview of the object structure and defines common terminology. ### AdRoll and AdRoll ABM similarities You can use the NextRoll API for both AdRoll and AdRoll ABM customers. When building an integration to support both customer types, there are more similarities than differences. Most metrics customers are interested in relate to campaigns and their components: AdGroups, Ads, and Audiences. Campaigns can run on the Web and LinkedIn. Both AdRoll and AdRoll ABM customers run campaigns on the Web. RollWork customers often run LinkedIn campaigns. Both AdRoll and AdRoll ABM customers can run [Universal Campaigns](../universal-campaigns-api/overview.md#universal-campaigns-overview). Universal Campaigns are a particular campaign type that abstracts multiple inventory campaigns (i.e., Web) under a single budget. You can retrieve reporting data aggregated by Universal Campaign or retrieve metrics for the inventory campaigns within the Universal Campaign. By default, the GraphQL Reporting API will not return the aggregated Universal Campaign metrics. It will return the inventory campaigns. We recommended setting the query flag “enableUniversalCampaigns “to “true “so that queries for campaigns return Universal Campaign objects. ### AdRoll ABM differences AdRoll ABM customers can run [Playbooks](rollworks-playbooks.md#guide-playbooks), a simple user experience for running B2B advertising campaigns that typically consist of two Universal Campaigns. In the AdRoll ABM dashboard, we show aggregate metrics for a Playbook and the Universal Campaigns within the Playbook. The GraphQL Reporting API doesn’t support querying for a Playbook directly. You’ll first need to query for all campaigns in an Advertisable. Then you’ll aggregate the campaign metrics in your application. You can use the “playbookEID “and “playbookName “fields to see which campaigns are associated with a Playbook. AdRoll and AdRoll ABM customers will also use different Audience (aka Segment) types. AdRoll customers primarily use URL Audiences. AdRoll ABM customers primarily use [Target Account Lists](target-account-lists.md#guide-target-account-lists). The Web domain represents an Account for the targeted company. AdRoll ABM customers will look for metrics aggregated at the Account level. For example, a AdRoll ABM customer would want to know, “how many impressions have I served to each account I’ve targeted?” ## Authentication Use [OAuth 2.0](oauth.md#guide-oauth) to gain access to a user’s account. Our OAuth 2.0 implementation is compatible with standard libraries. You should be able to plug in our token and authorization URLs into your favorite library. The flow is identical for both AdRoll and AdRoll ABM customers. #### NOTE OAuth refresh tokens expire after use. You’ll receive a new refresh token along with your new access token. See also: - [Get Started with OAuth 2.0](oauth.md#guide-oauth) ## Retrieve Metrics To retrieve reporting data, you use the [GraphQL Reporting API](../graphql-reporting-api/overview.md#graphql-reporting-api-overview). You can browse the schema and experiment with building queries using the [GraphQL Reporting API console](https://app.adroll.com/reporting/graphiql). The primary metrics customers are interested are delivery and attribution metrics. We offer this data at multiple levels of granularity: - [Advertisable](#guides-reporting-platforms-advertisable-metrics) - [Campaign](#guides-reporting-platforms-campaign-metrics) - [AdGroup](#guides-reporting-platforms-adgroup-metrics) - [Ad](#guides-reporting-platforms-ad-metrics) - [Account](#guides-reporting-platforms-account-metrics) #### NOTE For readability and reuse, our examples use GraphQL’s [variables](https://graphql.org/learn/queries/#variables) and [fragments](https://graphql.org/learn/queries/#fragments) features. See [Reusable queries](#guides-reporting-platforms-reusable-queries) for an example of how to use these features. See also: - [GraphQL Reporting API Overview](../graphql-reporting-api/overview.md#graphql-reporting-api-overview) - [GraphQL Reporting API Schema](../graphql-reporting-api/schema.md#graphql-reporting-api-schema) ### Advertisables for user Before you start retrieving metrics, you’ll need to query for the list of [`Advertisables`](../graphql-reporting-api/schema.md#Advertisable) the user has access to this can be done with this query: ```graphql query AdvertisablesForUser { organization { current { advertisables { eid name } } } } ``` Related types: [`Organization`](../graphql-reporting-api/schema.md#Organization), [`Advertisable`](../graphql-reporting-api/schema.md#Advertisable) ### Metrics for Advertisables For a subset of customers that deal with many Advertisables, it may be helpful to query for metrics at the Advertisable level. For example, an agency may want to see top-level metrics across their clients. ```graphql query MetricsForAdvertisables($advertisables: [String!]!, $startDate: Date, $endDate: Date) { flags(enableUniversalCampaigns: true) advertisable { byEIDs(eids: $advertisables) { eid name metrics(start: $startDate, end: $endDate) { byDate { date # Deliveries cost impressions clicks ctr cpm cpc # Attribution conversions cpa clickThroughs clickCPA viewThroughs viewCPA } } } } } ``` Related types: [`Advertisable`](../graphql-reporting-api/schema.md#Advertisable), [`MetricForAdvertisable`](../graphql-reporting-api/schema.md#MetricForAdvertisable) ### Metrics for Campaigns An Advertisable can contain many [`campaigns`](../graphql-reporting-api/schema.md#Campaign), so we recommended fetching the list of campaigns for the Advertisable first. Then you can query [`campaign metrics`](../graphql-reporting-api/schema.md#MetricForCampaign) in batches. ```graphql query CampaignsForAdvertisable($advertisable: String!) { flags(enableUniversalCampaigns: true) advertisable { byEID(advertisable: $advertisable) { campaigns { eid name type channel # AdRoll ABM Playbooks playbookEID playbookName playbookType } } } } ``` The following query fetches campaign-level metrics for a list of Campaign EIDs for the specified date range. ```graphql query MetricsForCampaigns($campaigns: [String!]!, $startDate: Date, $endDate: Date) { flags(enableUniversalCampaigns: true) campaign { byEIDs(eids: $campaigns) { eid name # AdRoll ABM Playbooks playbookEID playbookName playbookType metrics(start: $startDate, end: $endDate) { byDate { date # Deliveries cost impressions clicks ctr cpm cpc # Attribution conversions cpa clickThroughs clickCPA viewThroughs viewCPA } } } } } ``` Related types: [`Advertisable`](../graphql-reporting-api/schema.md#Advertisable), [`Campaign`](../graphql-reporting-api/schema.md#Campaign), [`MetricForCampaign`](../graphql-reporting-api/schema.md#MetricForCampaign) ### AdGroup metrics for a campaign Campaigns can contain one or more [`AdGroups`](../graphql-reporting-api/schema.md#Adgroup). The following query fetches metrics for all AdGroups in the specified Campaign EIDs. If the number of AdGroups in the campaign is large, you should fetch all AdGroups in the Campaign and then query AdGroup metrics in batches. ```graphql query MetricsForAdGroups($campaigns: [String!]!, $startDate: Date, $endDate: Date) { flags(enableUniversalCampaigns: true) campaign { byEIDs(eids: $campaigns) { eid name adgroups { eid name metrics(start: $startDate, end: $endDate) { byDate { date # Deliveries cost impressions clicks ctr cpm cpc # Attribution conversions cpa clickThroughs clickCPA viewThroughs viewCPA } } } } } } ``` Related types: [`Campaign`](../graphql-reporting-api/schema.md#Campaign), [`Adgroup`](../graphql-reporting-api/schema.md#Adgroup), [`Metric`](../graphql-reporting-api/schema.md#Metric) ### Ad metrics for a campaign [`Ad`](../graphql-reporting-api/schema.md#Ad) metrics exist within the [`Adgroup`](../graphql-reporting-api/schema.md#Adgroup) object. Campaigns can have many AdGroups, and each AdGroup can have many Ads. If the number of Ads or AdGroups is small, you can query for everything in a single API call. If the number of AdGroups or Ads in the campaign is large, you should fetch all AdGroups in the Campaign and then query Ad metrics in batches. ```graphql query MetricsForAds($campaigns: [String!]!, $startDate: Date, $endDate: Date) { flags(enableUniversalCampaigns: true) campaign { byEIDs(eids: $campaigns) { eid name adgroups { eid name ads { eid name adFormatName channel metrics(start: $startDate, end: $endDate) { byDate { date # Deliveries cost impressions clicks ctr cpm cpc # Attribution conversions cpa clickThroughs clickCPA viewThroughs viewCPA } } } } } } } ``` Related types: [`Campaign`](../graphql-reporting-api/schema.md#Campaign), [`Adgroup`](../graphql-reporting-api/schema.md#Adgroup), [`Ad`](../graphql-reporting-api/schema.md#Ad), [`Metric`](../graphql-reporting-api/schema.md#Metric) ### Account metrics for a campaign For AdRoll ABM customers, their campaigns target Account Lists. Account Lists are represented as Web domains for the companies the campaign is targeting. You can fetch delivery and attribution data aggregated by the targeted Account (aka domain). ```graphql query MetricsForAccount($advertisable: String!, $campaigns: [String!]!, $startDate: Date!, $endDate: Date!) { accountMetrics { summary(advertisableEID: $advertisable, campaignEIDs: $campaigns, start: $startDate, end: $endDate) { domain # Deliveries cost impressions clicks # Attribution adjustedClickThroughs adjustedViewThroughs } } } ``` Related types: [`FieldAccountMetrics`](../graphql-reporting-api/schema.md#FieldAccountMetrics) ## Optimizing queries ### Paginate your queries Due to the ability to query child objects and large date ranges, it’s easy to query many fields in a single request. These queries can cause timeouts or other issues. Here are a few suggestions on how to avoid fetching too much data in a single request. Here are pitfalls to avoid: - Don’t query multiple levels of nested objects. For example, don’t fetch all Advertisables, their Campaigns, and their AdGroups in a single request. - For Campaigns, don’t fetch metrics for all AdGroups in a single request - For AdGroups, don’t fetch metrics for all Ads in a single request To improve query performances, you can use the following pagination approaches: Paginate by querying a subset of objects. First, query for a list of EIDs and then query the objects directly. For example, query for all Campaigns in an Advertisable, then query for Campaign metrics in batches. Paginate by querying a subset of dates. For example, instead of querying for six months of daily reports in a single request, make six requests that query for a month at a time. ### Reusable queries GraphQL has convenience features that enable you to reduce code and reuse queries. You can - Parameterize queries using [variables](https://graphql.org/learn/queries/#variables) - Create reusable blocks using [fragments](https://graphql.org/learn/queries/#fragments) In this example query, we retrieve the metrics most users want. #### WARNING This query will only work for customers with a small number of objects. ```graphql query AllAdvertisables($startDate: String, $endDate: String) { advertisable { forUser { eid name campaigns { eid name type metrics(start: $startDate, end: $endDate) { byDate { date ...campaignPerfMetrics ...campaignConversionMetrics } } } adgroups { eid name metrics(start: $startDate, end: $endDate) { byDate { date ...performanceMetrics ...conversionMetrics } } audiences { eid name type metrics(start: $startDate, end: $endDate) { summary { ...audienceMetrics } } } } ads { eid name metrics(start: $startDate, end: $endDate) { byDate { date ...performanceMetrics ...conversionMetrics } } } } } } fragment campaignPerfMetrics on MetricForCampaign { cost impressions clicks ctr cpm cpc } fragment campaignConversionMetrics on MetricForCampaign { conversions cpa clickThroughs clickCPA viewThroughs viewCPA } fragment performanceMetrics on Metric { cost impressions clicks ctr cpm cpc } fragment conversionMetrics on Metric { conversions cpa clickThroughs clickCPA viewThroughs viewCPA } fragment audienceMetrics on AudienceMetric { audienceSizeTotal audienceSizeCurrent audienceSizeInDateRange } ``` Example variables: ```JavaScript { "startDate": "2017-12-09", "endDate":"2017-12-10" } ``` You combine the above query and variables into a JSON POST request: ```http POST /reporting/api/v1/query HTTP/1.1 Host: services.adroll.com Authorization: Bearer YOUR_ACCESS_TOKEN Content-Type: application/json { "query": "....", "operationName": "AllAdvertisables", "variables": { "startDate": "2017-12-09", "endDate":"2017-12-10" } } ``` The response with be a JSON object that mirrors the structure of the input query: ```default { "data": { "advertisable": { "forUser": [ { "eid": "C5355E63986CA41AA7207F", "name": "Test Advertisable", "adgroups": [], "ads": [ { "eid": "7588D18F396772CED83501", "name": "160x600", "metrics": { "byDate": [ { "clickCPA": null, "clickThroughs": null, "clicks": null, "conversions": null, "cost": null, "cpa": null, "cpc": null, "cpm": null, "ctr": null, "date": "2017-12-09", "impressions": null, "viewCPA": null, "viewThroughs": null } ] } } ], "campaigns": [ { "eid": "A48AAB0081005DDB968258", "name": "My Facebook Retargeting Campaign", "type": "retargeting", "metrics": { "byDate": [ { "clickCPA": null, "clickThroughs": null, "clicks": null, "conversions": null, "cost": null, "cpa": null, "cpc": null, "cpm": null, "ctr": null, "date": "2017-12-09", "impressions": null, "viewCPA": null, "viewThroughs": null } ] } } ] } ] } }, "(~˘▾˘)~": "2017.12.11-1/req160053", "request": "req160053", "version": "2017.12.11-1" } ``` # rollworks-playbooks.html.md # Working with AdRoll ABM Playbooks AdRoll ABM customers can utilize the NextRoll API to manage their Playbooks. For example: - Fetch your list of Playbooks and their metadata - Fetch Target Account Lists and Groups associated with a Playbook - Fetch performance data for Playbooks and their campaigns #### NOTE Currently, the public APIs work best for customers with up to 500 Playbooks and up to 10,000 Accounts targeted per Playbook. The following is a diagram of the API objects used in managing Playbooks and Target Account Lists. This is an extension of the basic [NextRoll object model](object-structure.md#guides-object-structure). ![Diagram of Playbooks object structure](guides/img/playbooks-model-hierarchy.svg) ## Playbook reporting You can fetch Playbook reporting data using the [GraphQL Reporting API](../graphql-reporting-api/overview.md#graphql-reporting-api-overview). You’ll want to query for the [`Campaign`](../graphql-reporting-api/schema.md#Campaign) node. A Playbook consists of multiple [Universal Campaigns](../universal-campaigns-api/overview.md#universal-campaigns-overview). In the AdRoll ABM dashboard, we show aggregate metrics for a Playbook and metrics for the individual campaigns within the Playbook. The GraphQL Reporting API doesn’t support querying for a Playbook directly. You’ll first need to query for all campaigns in an Advertisable. Then you’ll aggregate the campaign metrics in your application. For example, the following query fetches metrics for all campaigns for an Advertisable. You can use the `playbookEID` node to see which inventory campaigns are associated with a Playbook. #### NOTE The `flags(enableUniversalCampaigns: true)` snippet is important when querying metrics, or we’ll return the inventory campaigns within the Universal Campaign rather than aggregate Universal Campaign objects. ```graphql query PlaybookCampaignsExample{ flags(enableUniversalCampaigns: true) advertisable { byEID(advertisable: "MY_ADVERTISABLE_EID") { eid name campaigns(isActive: true, statuses: ["running"]) { eid name status playbookEID playbookName playbookType metrics(start: "2021-08-01", end: "2021-08-30", currency: "USD") { summary { cost impressions clicks } } } } } } ``` ## Retrieve Playbook objects To manipulate Playbooks, you’ll first need to fetch the list of Playbooks for your Advertisable. The [`GET /activate/api/v2/playbooks/simple`](../universal-campaigns-api/reference.md#get--activate-api-v2-playbooks-simple) endpoint can be used to retrieve the list of playbooks for an Advertisable. Only the essential metadata for a Playbook is in the response, such as the name, EID, status, type, and Target Account List. Once you have the Playbooks for an Advertisable, the most common action is to view and manipulate the Playbook’s Target Account Lists. In the response, you’ll find a `tal_eid` field. This EID is used to query [`GET /audience/v1/target_accounts/(tal_eid)`](../audience-api/reference.md#get--audience-v1-target_accounts-(tal_eid)) to get details for the Target Account List. For details on working with Target Account lists, see [Manage Target Account Lists](target-account-lists.md#guide-target-account-lists). # schema.html.md # GraphQL Reporting API Schema #### NOTE You can browse the schema and experiment with building queries using the [GraphQL Reporting API console](https://app.adroll.com/reporting/graphiql). ## Objects Objects represent a set of fields. ### List - [`Ad`](#Ad) - [`AdGroupData`](#AdGroupData) - [`AdLabel`](#AdLabel) - [`AdQuery`](#AdQuery) - [`Adgroup`](#Adgroup) - [`AdgroupGroupData`](#AdgroupGroupData) - [`AdgroupQuery`](#AdgroupQuery) - [`Advertisable`](#Advertisable) - [`AdvertisableGroupData`](#AdvertisableGroupData) - [`AdvertisableMetricResult`](#AdvertisableMetricResult) - [`AdvertisableQuery`](#AdvertisableQuery) - [`Audience`](#Audience) - [`AudienceGroupData`](#AudienceGroupData) - [`AudienceMetric`](#AudienceMetric) - [`AudienceMetricResult`](#AudienceMetricResult) - [`Automation`](#Automation) - [`AutomationNode`](#AutomationNode) - [`AutomationQuery`](#AutomationQuery) - [`CTVPlacement`](#CTVPlacement) - [`CTVPlacementResult`](#CTVPlacementResult) - [`Campaign`](#Campaign) - [`CampaignGroupData`](#CampaignGroupData) - [`CampaignMetricResult`](#CampaignMetricResult) - [`CampaignQuery`](#CampaignQuery) - [`ContextualKeywordTargetingMetrics`](#ContextualKeywordTargetingMetrics) - [`ContextualTargetingResult`](#ContextualTargetingResult) - [`ContextualTopicTargetingMetrics`](#ContextualTopicTargetingMetrics) - [`ConversionResult`](#ConversionResult) - [`Conversions`](#Conversions) - [`ConversionsByDate`](#ConversionsByDate) - [`ConversionsSummary`](#ConversionsSummary) - [`Email`](#Email) - [`EmailGroupData`](#EmailGroupData) - [`EmailQuery`](#EmailQuery) - [`FieldAccountMetrics`](#FieldAccountMetrics) - [`FieldAccountMetricsSummary`](#FieldAccountMetricsSummary) - [`FieldConversions`](#FieldConversions) - [`FieldGranularConversions`](#FieldGranularConversions) - [`FieldMetrics`](#FieldMetrics) - [`FieldMetricsForAdvertisable`](#FieldMetricsForAdvertisable) - [`FieldMetricsForCampaign`](#FieldMetricsForCampaign) - [`FieldMetricsTotal`](#FieldMetricsTotal) - [`FieldUtmBasedConversionsForAdvertisable`](#FieldUtmBasedConversionsForAdvertisable) - [`FieldsAd`](#FieldsAd) - [`FieldsAdMetrics`](#FieldsAdMetrics) - [`FieldsAdgroup`](#FieldsAdgroup) - [`FieldsAdvertisable`](#FieldsAdvertisable) - [`FieldsAudience`](#FieldsAudience) - [`FieldsAudienceMetrics`](#FieldsAudienceMetrics) - [`FieldsBrandAwarenessForAdvertisables`](#FieldsBrandAwarenessForAdvertisables) - [`FieldsBrandAwarenessForCampaigns`](#FieldsBrandAwarenessForCampaigns) - [`FieldsCTVHouseholdMetrics`](#FieldsCTVHouseholdMetrics) - [`FieldsCampaign`](#FieldsCampaign) - [`FieldsCustomMetrics`](#FieldsCustomMetrics) - [`FieldsEmail`](#FieldsEmail) - [`FieldsEmailMetrics`](#FieldsEmailMetrics) - [`FieldsForUtmBasedConversions`](#FieldsForUtmBasedConversions) - [`FieldsInfluencedAttributionMetrics`](#FieldsInfluencedAttributionMetrics) - [`FieldsOrganization`](#FieldsOrganization) - [`FieldsProspectingMetrics`](#FieldsProspectingMetrics) - [`FieldsReachFrequencyMetrics`](#FieldsReachFrequencyMetrics) - [`FieldsReachMetrics`](#FieldsReachMetrics) - [`FieldsSMSMetrics`](#FieldsSMSMetrics) - [`FieldsSegment`](#FieldsSegment) - [`FieldsVideoMetrics`](#FieldsVideoMetrics) - [`GranularConversion`](#GranularConversion) - [`GroupListRow`](#GroupListRow) - [`GroupQuery`](#GroupQuery) - [`GroupResult`](#GroupResult) - [`InventoryCampaign`](#InventoryCampaign) - [`Keyword`](#Keyword) - [`KeywordResult`](#KeywordResult) - [`LogEvent`](#LogEvent) - [`LogItem`](#LogItem) - [`LogItemData`](#LogItemData) - [`LogRoot`](#LogRoot) - [`Metric`](#Metric) - [`MetricAggregateResult`](#MetricAggregateResult) - [`MetricCountry`](#MetricCountry) - [`MetricCountryResult`](#MetricCountryResult) - [`MetricDomain`](#MetricDomain) - [`MetricDomainResult`](#MetricDomainResult) - [`MetricForAdvertisable`](#MetricForAdvertisable) - [`MetricForCampaign`](#MetricForCampaign) - [`MetricResult`](#MetricResult) - [`Organization`](#Organization) - [`OrganizationGroupData`](#OrganizationGroupData) - [`OrganizationQuery`](#OrganizationQuery) - [`PerformanceTarget`](#PerformanceTarget) - [`Placement`](#Placement) - [`PlacementResult`](#PlacementResult) - [`Query`](#Query) - [`Segment`](#Segment) - [`SegmentGroupData`](#SegmentGroupData) - [`SegmentQuery`](#SegmentQuery) - [`User`](#User) - [`UtmBasedConversionsForAdvertisable`](#UtmBasedConversionsForAdvertisable) - [`UtmBasedConversionsForCampaign`](#UtmBasedConversionsForCampaign) ### Descriptions ### Ad **Fields**: ### eid: ! EID of the ad. ### adFormatID: ! The id of the corresponding ad format in the AdRoll system. ### adFormat: ! Format string. i.e. ‘300 wide x 250 high’. ### adFormatName: ! Format string. i.e. ‘300x250’. ### advertisable: ! The EID of the advertisable to which this ad belongs. ### hasFutureCampaigns: ! Whether or not this ad has the possibility of serving based on the adgroups and campaigns in which it inhabits. DEPRECATED: this field will stop being supported in the near future. ### destinationURL: ! The URL that the browser will navigate to when this ad is clicked. ### headline: ! For Facebook ads, the text to be displayed as the ad’s headline. ### body: ! For Facebook ads, the text to be displayed as the ad’s body. ### message: ! For Facebook Newsfeed ads, the text to be displayed as the ad’s message. ### callToAction: ! Facebook call to action constant. ### isActive: ! Whether or not this ad is currently active. ### name: ! The name of this ad. ### src: ! This ad’s creative’s source URL. ### previewURL: ! The preview URL for dynamic ads like HTML5. ### status: ! One of ‘running’, ‘paused’, ‘review’, ‘draft’, ‘rejected’, ‘suspended’ or ‘deleted’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### type: ! The ad type: ‘liquid’, ‘image’, ‘flash’ or ‘ad_network’. ### height: ! The height in pixels of this ad’s creative. ### width: ! The width in pixels of this ad’s creative. ### createdDate: The date this ad was created. ### updatedDate: The date this ad was last updated. ### hasEdits: ! Whether or not this ad has been edited such that another ad has it’s original ad parameter set to this ad’s EID. ### hasPendingEdits: ! Whether or not this ad has edits that must be reviewed by an AdRoll administrator. ### originalAd: ! The EID of the ad that was edited to create this ad. ### isDynamic: ! Whether or not this is an ad that is dynamically composed when it is served to the user. ### isOutlined: ! Whether or not an outline has been applied to the ad to satisfy network compliancy. ### outlineColor: ! Hexadecimal color code corresponding to the outline of an ad. ### validClicktag: ! If the ad is in flash format, this is the flag showing whether or not the clickTAG is compliant. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the ad if it has been externally connected. ### facebookPermalink: ! Facebook permalink if applicable. ### instagramPermalink: ! Instagram permalink if applicable. ### linkedInPermalink: ! LinkedIn permalink if applicable. ### syncStatus: ! Only for Connected Campaigns’ ads, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns’ ads, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### remoteStatus: ! The status of the Ad on the inventory network NextRoll has sync’ed it to (ex: Facebook) ### disapprovalReason: ! The reason why an Ad has been rejected on the inventory network NextRoll has sync’ed it to (ex: Facebook) ### utmSource: ! UTM Source Parameter from this Ad’s destination. ### utmMedium: ! UTM Medium Parameter from this Ad’s destination. ### utmCampaign: ! UTM Campaign Parameter from this Ad’s destination. ### utmTerm: ! UTM Term Parameter from this Ad’s destination. ### utmContent: ! UTM Content Parameter from this Ad’s destination. ### channel: ! The channel for the campaign this ad belongs to. This is only available when loading the ads through a campaign. ### campaignType: ! The type for the campaign this ad belongs to. This is only available when loading the ads through a campaign. ### adrollEID: ! The adroll EID for prospecting ads. ### adcrabEID: ! The AdCrab ad EID for this ad (ending in 8ADS). ### inAdgroupEID: ! The AdGroup’s EID in the AdGroupAd relationship, if listed inside an AdGroup. ### inAdgroupIsActive: ! True of the AdGroupAd relationship is active, if listed inside an AdGroup. ### inAdgroupStatus: ! The status of the AdGroupAd relationship, if listed inside an AdGroup. ### inAdgroupRelationshipEID: ! The the internal EID of the AdGroupAd relationship, if such a EID exists and if the ad is listed inside an AdGroup. ### labels: []! The list of custom labels to organize and filter the ad. ### labelsString: ! The list of custom labels as String. e.g.: “label1, label2” ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the entity. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### AdGroupData **Fields**: ### eid: ! EID of the ad. ### adFormatID: ! The id of the corresponding ad format in the AdRoll system. ### adFormat: ! Format string. i.e. ‘300 wide x 250 high’. ### adFormatName: ! Format string. i.e. ‘300x250’. ### advertisable: ! The EID of the advertisable to which this ad belongs. ### hasFutureCampaigns: ! Whether or not this ad has the possibility of serving based on the adgroups and campaigns in which it inhabits. DEPRECATED: this field will stop being supported in the near future. ### destinationURL: ! The URL that the browser will navigate to when this ad is clicked. ### headline: ! For Facebook ads, the text to be displayed as the ad’s headline. ### body: ! For Facebook ads, the text to be displayed as the ad’s body. ### message: ! For Facebook Newsfeed ads, the text to be displayed as the ad’s message. ### callToAction: ! Facebook call to action constant. ### isActive: ! Whether or not this ad is currently active. ### name: ! The name of this ad. ### src: ! This ad’s creative’s source URL. ### previewURL: ! The preview URL for dynamic ads like HTML5. ### status: ! One of ‘running’, ‘paused’, ‘review’, ‘draft’, ‘rejected’, ‘suspended’ or ‘deleted’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### type: ! The ad type: ‘liquid’, ‘image’, ‘flash’ or ‘ad_network’. ### height: ! The height in pixels of this ad’s creative. ### width: ! The width in pixels of this ad’s creative. ### createdDate: The date this ad was created. ### updatedDate: The date this ad was last updated. ### hasEdits: ! Whether or not this ad has been edited such that another ad has it’s original ad parameter set to this ad’s EID. ### hasPendingEdits: ! Whether or not this ad has edits that must be reviewed by an AdRoll administrator. ### originalAd: ! The EID of the ad that was edited to create this ad. ### isDynamic: ! Whether or not this is an ad that is dynamically composed when it is served to the user. ### isOutlined: ! Whether or not an outline has been applied to the ad to satisfy network compliancy. ### outlineColor: ! Hexadecimal color code corresponding to the outline of an ad. ### validClicktag: ! If the ad is in flash format, this is the flag showing whether or not the clickTAG is compliant. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the ad if it has been externally connected. ### facebookPermalink: ! Facebook permalink if applicable. ### instagramPermalink: ! Instagram permalink if applicable. ### linkedInPermalink: ! LinkedIn permalink if applicable. ### syncStatus: ! Only for Connected Campaigns’ ads, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns’ ads, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### remoteStatus: ! The status of the Ad on the inventory network NextRoll has sync’ed it to (ex: Facebook) ### disapprovalReason: ! The reason why an Ad has been rejected on the inventory network NextRoll has sync’ed it to (ex: Facebook) ### utmSource: ! UTM Source Parameter from this Ad’s destination. ### utmMedium: ! UTM Medium Parameter from this Ad’s destination. ### utmCampaign: ! UTM Campaign Parameter from this Ad’s destination. ### utmTerm: ! UTM Term Parameter from this Ad’s destination. ### utmContent: ! UTM Content Parameter from this Ad’s destination. ### channel: ! The channel for the campaign this ad belongs to. This is only available when loading the ads through a campaign. ### campaignType: ! The type for the campaign this ad belongs to. This is only available when loading the ads through a campaign. ### adrollEID: ! The adroll EID for prospecting ads. ### adcrabEID: ! The AdCrab ad EID for this ad (ending in 8ADS). ### inAdgroupEID: ! The AdGroup’s EID in the AdGroupAd relationship, if listed inside an AdGroup. ### inAdgroupIsActive: ! True of the AdGroupAd relationship is active, if listed inside an AdGroup. ### inAdgroupStatus: ! The status of the AdGroupAd relationship, if listed inside an AdGroup. ### inAdgroupRelationshipEID: ! The the internal EID of the AdGroupAd relationship, if such a EID exists and if the ad is listed inside an AdGroup. ### labels: []! The list of custom labels to organize and filter the ad. ### labelsString: ! The list of custom labels as String. e.g.: “label1, label2” ### AdLabel **Fields**: ### eid: ! Label EID. ### name: ! Label name. ### AdQuery **Fields**: ### byEID(ad: !): Resolves an Ad by its EID. [WARNING] Fetching Ads directly through this operation will ignore the overrides and state provided by its relationship to an AdGroup. For a complete state fetch ads as children of Adgroups. **Arguments**: ### ad: ! EID of the Ad. ### byEIDs(eids: [!]!): []! Resolves Ads by their EIDs. [WARNING] Fetching Ads directly through this operation will ignore the overrides and state provided by its relationship to an AdGroup. For a complete state fetch ads as children of Adgroups. **Arguments**: ### eids: [!]! List of Ad EIDs. ### byAdvertisable(advertisable: !, isActive: , statuses: [!], types: [!], width: , height: , createdDateAfterOrOn: , createdDateBefore: , updatedDateAfterOrOn: , updatedDateBefore:) : []! Resolves all Ads for an Advertisable. [WARNING] Fetching Ads directly through this operation will ignore the overrides and state provided by its relationship to an AdGroup. For a complete state fetch ads as children of Adgroups. **Arguments**: ### advertisable: ! The EID of the advertisable whose ads are to be fetched ### isActive: If True, only active ads will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only ads that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### types: [!] Only ads that match one of these types will be returned (Optional; default: None) * **Default:** [ ] ### width: Only ads having the specified width will be returned (Optional; default: None) * **Default:** 0 ### height: Only ads having the specified height will be returned (Optional; default: None) * **Default:** 0 ### createdDateAfterOrOn: Only ads that were created after on on the given date. String in ISO Date + Time format. (Optional; default: None) * **Default:** “” ### createdDateBefore: Only ads that were created before on on the given date. It will do a less than or equal to string comparison. Reminder that startDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### updatedDateAfterOrOn: Only ads that were updated after on on the given date. String in ISO Date + Time format. (Optional; default: None) * **Default:** “” ### updatedDateBefore: Only ads that were updated before on on the given date. It will do a less than or equal to string comparison. Reminder that updatedDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### byAdgroup(adgroup: !, isActive: , statuses: [!], types: [!], width: , height: , createdDateAfterOrOn: , createdDateBefore: , updatedDateAfterOrOn: , updatedDateBefore:) : []! Resolves all Ads for an AdGroup. **Arguments**: ### adgroup: ! The EID of the Adgroup whose ads are to be fetched ### isActive: If True, only active ads will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only ads that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### types: [!] Only ads that match one of these types will be returned (Optional; default: None) * **Default:** [ ] ### width: Only ads having the specified width will be returned (Optional; default: None) * **Default:** 0 ### height: Only ads having the specified height will be returned (Optional; default: None) * **Default:** 0 ### createdDateAfterOrOn: Only ads that were created after on on the given date string. It will do a greater than or equal to string comparison. Reminder that startDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### createdDateBefore: Only ads that were created before on on the given date string. It will do a less than or equal to string comparison. Reminder that startDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### updatedDateAfterOrOn: Only ads that were updated after on on the given date. String in ISO Date + Time format. (Optional; default: None) * **Default:** “” ### updatedDateBefore: Only ads that were updated before on on the given date. It will do a less than or equal to string comparison. Reminder that updatedDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### Adgroup **Fields**: ### eid: ! The EID of the adgroup. ### adOptimization: ! The strategy used to optimize ads when multiple ads fit a single ad space. ### campaign: ! The EID of the campaign that this adgroup is associated with. ### isActive: ! Whether or not this adgroup is currently active. ### name: ! The name of this adgroup. ### status: ! One of ‘approved’, ‘paused’, ‘draft’, ‘rejected’ or ‘deleted’. ### actualStatus: The effective status of the adgroup. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### createdDate: The date this adgroup was created. ### updatedDate: The date this adgroup was last updated. ### flightTimezone: ! The timezone preference of all flights of this adgroup. ### flights: Scheduled flight periods when ads will be served. Null if there is no limitation. ### processingStatus: ! The processing status of the campaign inside the AdRoll. It may have a transient value other than “created” while the AdGroup is being processed by an internal job. ### significantFlightStartDate: Start date for the active or most recent flight period in the adgroup. ### significantFlightEndDate: End date for the active or most recent flight period in the adgroup. ### advertisable: ! Advertisable for this Adgroup. NOTE/FIXME: the advertisable information is not usually available, so querying this will cause an additional request to be made. ### kpiGoal: Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic. ### kpiCurrency: ! ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level. ### kpiMetric: ! Metric being targeted by the campaign’s bid strategy. ### adType: ! Ad type restriction for this adgroup. Empty if there is no explicit restriction. Currently one of “static”or “dynamic. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the adgroup if it has been externally connected. ### syncStatus: ! Only for Connected Campaigns’ adgroups, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns’ adgroups, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### allowedTargeting: ! The allowed targeting type configured for this adgroup. ### ads(isActive: , statuses: [!], types: [!], width: , height: , createdDateAfterOrOn: , createdDateBefore: , updatedDateAfterOrOn: , updatedDateBefore:) : []! Ads for this Adgroup. **Arguments**: ### isActive: If True, only active ads will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only ads that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### types: [!] Only ads that match one of these types will be returned (Optional; default: None) * **Default:** [ ] ### width: Only ads having the specified width will be returned (Optional; default: None) * **Default:** 0 ### height: Only ads having the specified height will be returned (Optional; default: None) * **Default:** 0 ### createdDateAfterOrOn: Only ads that were created after on on the given date string. It will do a greater than or equal to string comparison. Reminder that startDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### createdDateBefore: Only ads that were created before on on the given date string. It will do a less than or equal to string comparison. Reminder that startDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### updatedDateAfterOrOn: Only ads that were updated after on on the given date. String in ISO Date + Time format. (Optional; default: None) * **Default:** “” ### updatedDateBefore: Only ads that were updated before on on the given date. It will do a less than or equal to string comparison. Reminder that updatedDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### audiences(includeInactive:) : []! Audiences for this Adgroup **Arguments**: ### includeInactive: True to return also inactive audiences (those that have been deleted). By default only active audiences are included. * **Default:** false ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the entity. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### placements(start: , end: , pastDays: , currency:) : ! Metrics for the AdGroup broken down by conversion audiences. This breakdown will only be provided for Facebook campaigns. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### ctvPlacements(start: , end: , pastDays: , breakdown: !, currency:) : ! CTV Metrics for the AdGroup. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### breakdown: ! The breakdown value used for ctv placement metrics. One of [‘app_name’, ‘publisher’, ‘device_make’]. ### currency: Currency to load the metrics in. * **Default:** “USD” ### contextualTargeting(start: , end: , pastDays: , currency:) : ! [ALPHA] This GraphQL field is currently under development and QA Contextual Targeting Metrics for the AdGroup. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### keywords(start: , end: , pastDays: , currency:) : ! [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Currently Fetching Keywords and keyword metrics without also requesting metrics for parent adgroup or campaign will return empty result. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### AdgroupGroupData **Fields**: ### eid: ! The EID of the adgroup. ### adOptimization: ! The strategy used to optimize ads when multiple ads fit a single ad space. ### campaign: ! The EID of the campaign that this adgroup is associated with. ### isActive: ! Whether or not this adgroup is currently active. ### name: ! The name of this adgroup. ### status: ! One of ‘approved’, ‘paused’, ‘draft’, ‘rejected’ or ‘deleted’. ### actualStatus: The effective status of the adgroup. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### createdDate: The date this adgroup was created. ### updatedDate: The date this adgroup was last updated. ### flightTimezone: ! The timezone preference of all flights of this adgroup. ### flights: Scheduled flight periods when ads will be served. Null if there is no limitation. ### processingStatus: ! The processing status of the campaign inside the AdRoll. It may have a transient value other than “created” while the AdGroup is being processed by an internal job. ### significantFlightStartDate: Start date for the active or most recent flight period in the adgroup. ### significantFlightEndDate: End date for the active or most recent flight period in the adgroup. ### advertisable: ! Advertisable for this Adgroup. NOTE/FIXME: the advertisable information is not usually available, so querying this will cause an additional request to be made. ### kpiGoal: Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic. ### kpiCurrency: ! ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level. ### kpiMetric: ! Metric being targeted by the campaign’s bid strategy. ### adType: ! Ad type restriction for this adgroup. Empty if there is no explicit restriction. Currently one of “static”or “dynamic. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the adgroup if it has been externally connected. ### syncStatus: ! Only for Connected Campaigns’ adgroups, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns’ adgroups, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### allowedTargeting: ! The allowed targeting type configured for this adgroup. ### AdgroupQuery **Fields**: ### byEID(adgroup: !): Resolves an Adgroup by its EID. **Arguments**: ### adgroup: ! EID of the Adgroup. ### byEIDs(eids: [!]!): []! Resolves a Adgroups by their EIDs. **Arguments**: ### eids: [!]! List of Campaign EIDs. ### byAdvertisable(advertisable: !, isActive: , statuses: [!], excludeStatuses: [!]): []! Resolves all Adgroups for a Advertisable. **Arguments**: ### advertisable: ! The EID of the advertisable whose adgroups are to be fetched ### isActive: If True, only active adgroups will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only adgroups that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### excludeStatuses: [!] Only adgroups whose status is not one of these will be returned (Optional; default: None) * **Default:** [ ] ### byCampaign(campaign: !, isActive: , statuses: [!], excludeStatuses: [!]): []! Resolves all Adgroups for a Campaign. **Arguments**: ### campaign: ! EID of the campaign. ### isActive: If True, only active adgroups will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only adgroups that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### excludeStatuses: [!] Only adgroups whose status is not one of these will be returned (Optional; default: None) * **Default:** [ ] ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### Advertisable **Fields**: ### eid: ! EID of the advertisable. ### isActive: ! Whether or not the advertisable is currently active. ### isB2B: ! Whether or not the advertisable is a B2B customer. Deprecated field: use businessUnit instead. ### businessUnit: ! The business unit this Advertisable has signed up for. ### isAbmCustomer: ! Whether or not the advertisable is an ABM customer. ### name: ! The name of the advertisable. ### organization: ! The EID of this advertisable’s organization. ### status: ! The status of the advertisable. One of [‘admin_review’, ‘approved’, ‘rejected’, ‘suspended’]. ### url: ! The advertisable’s URL. ### currency: ! The currency code (ISO-4217) use by the advertisable’s account. ### clickThroughConversionWindow: ! Duration of this advertisable’s click through conversion window in days. ### viewThroughConversionWindow: ! Duration of this advertisable’s view through conversion window in days. ### createdDate: The date this advertisable was created. ### revshareViewPercent: ! ### revshareClickPercent: ! ### campaigns(isActive: , statuses: [!], excludeStatuses: [!], blacklistStatuses: [!], useCases: [!], types: [!], targetingTypes: [!], abmTypes: [!], channels: [!], sources: [!], funnelStages: [!], objectives: [!], excludeUseCases: [!], excludeTypes: [!], excludeTargetingTypes: [!], excludeABMTypes: [!], excludeChannels: [!], excludeSources: [!], excludeFunnelStages: [!], tagPrefixes: [!]): []! Campaigns for this Advertisable. **Arguments**: ### isActive: If True, only active campaigns will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only campaigns that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### excludeStatuses: [!] Only campaigns whose status is not one of these will be returned (Optional; default: None) * **Default:** [ ] ### blacklistStatuses: [!] DEPRECATED: please use instead argument excludeStatuses * **Default:** [ ] ### useCases: [!] Only campaigns that match one of these use cases will be returned (Optional; default: None) * **Default:** [ ] ### types: [!] Only campaigns that match one of these types will be returned (Optional; default: None) * **Default:** [ ] ### targetingTypes: [!] Only campaigns that match one of these targeting types will be returned (Optional; default: None) * **Default:** [ ] ### abmTypes: [!] Only campaigns that match one of these ABM types will be returned. Options: ‘lead_locator’ for Account Targeting, ‘pipeline_accelerator’ for Contact-based. (Optional; default: None) * **Default:** [ ] ### channels: [!] Only campaigns that match one of these channels will be returned (Optional; default: None) * **Default:** [ ] ### sources: [!] Only campaigns that match one of these sources will be returned (Optional; default: None) * **Default:** [ ] ### funnelStages: [!] Only campaigns that match one of these funnel stages will be returned (Optional; default: None) * **Default:** [ ] ### objectives: [!] Only campaigns that match one of these objectives will be returned (Optional; default: None) * **Default:** [ ] ### excludeUseCases: [!] Exclude campaigns that match one of the given use cases (Optional; default: None) * **Default:** [ ] ### excludeTypes: [!] Exclude campaigns that match one of the given types. (Optional; default: None) * **Default:** [ ] ### excludeTargetingTypes: [!] Exclude campaigns that match one of the given targeting types. (Optional; default: None) * **Default:** [ ] ### excludeABMTypes: [!] Exclude campaigns that match one of the given ABM types. (Optional; default: None) * **Default:** [ ] ### excludeChannels: [!] Exclude campaigns that match one of the given channels. (Optional; default: None) * **Default:** [ ] ### excludeSources: [!] Exclude campaigns that match one of the given sources. (Optional; default: None) * **Default:** [ ] ### excludeFunnelStages: [!] Exclude campaigns that match one of the given funnel stages. (Optional; default: None) * **Default:** [ ] ### tagPrefixes: [!] > Only campaigns that have tags that start with one of the given prefixes. (Optional; default: None) * **Default:** [ ] ### automations: []! Automations for this Advertisable. ### adgroups(isActive: , statuses: [!], excludeStatuses: [!]): []! Adgroups for this Advertisable. **Arguments**: ### isActive: If True, only active adgroups will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only adgroups that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### excludeStatuses: [!] Only adgroups whose status is not one of these will be returned (Optional; default: None) * **Default:** [ ] ### emails: []! Emails for this Advertisable. ### ads(isActive: , statuses: [!], types: [!], width: , height: , createdDateAfterOrOn: , createdDateBefore: , updatedDateAfterOrOn: , updatedDateBefore:) : []! Ads for this Advertisable. **Arguments**: ### isActive: If True, only active ads will be returned, and vice versa (Optional; default: False) ### statuses: [!] Only ads that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### types: [!] Only ads that match one of these types will be returned (Optional; default: None) * **Default:** [ ] ### width: Only ads having the specified width will be returned (Optional; default: None) * **Default:** 0 ### height: Only ads having the specified height will be returned (Optional; default: None) * **Default:** 0 ### createdDateAfterOrOn: Only ads that were created after on on the given date string. It will do a greater than or equal to string comparison. Reminder that startDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### createdDateBefore: Only ads that were created before on on the given date string. It will do a less than or equal to string comparison. Reminder that startDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### updatedDateAfterOrOn: Only ads that were updated after on on the given date. String in ISO Date + Time format. (Optional; default: None) * **Default:** “” ### updatedDateBefore: Only ads that were updated before on on the given date. It will do a less than or equal to string comparison. Reminder that updatedDate is a ISO timestamp. (Optional; default: None) * **Default:** “” ### segments(isActive: , isConversion:) : []! Segments for this Advertisable. **Arguments**: ### isActive: If True, only active segments will be returned, and vice versa (Optional; default: False) ### isConversion: If True, only conversion segments will be returned (Optional; default: False). ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the Advertisable. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### granularConversions(start: , end: , pastDays: , currency:) : [!]! The granular conversions help understand the channels, campaigns, and ads that influence conversions. Lists the details about a conversion and the data points that determined the decision about its attribution. Limited to 90 days. **Arguments**: ### start: The start date for the conversions period (inclusive). The date range will be: [start, end) ### end: The end date for the conversions period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the conversions in. * **Default:** “USD” ### utmBasedConversions(start: , end: , pastDays: , currency: , model: !): [!]! UTM based conversions for the Advertisable. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### model: ! Model can be one of the following: [utm_firsttouch, utm_lastclick, utm_lasttouch, utm_linear, utm_positional, utm_timedecay] ### AdvertisableGroupData **Fields**: ### eid: ! EID of the advertisable. ### isActive: ! Whether or not the advertisable is currently active. ### isB2B: ! Whether or not the advertisable is a B2B customer. Deprecated field: use businessUnit instead. ### businessUnit: ! The business unit this Advertisable has signed up for. ### isAbmCustomer: ! Whether or not the advertisable is an ABM customer. ### name: ! The name of the advertisable. ### organization: ! The EID of this advertisable’s organization. ### status: ! The status of the advertisable. One of [‘admin_review’, ‘approved’, ‘rejected’, ‘suspended’]. ### url: ! The advertisable’s URL. ### currency: ! The currency code (ISO-4217) use by the advertisable’s account. ### clickThroughConversionWindow: ! Duration of this advertisable’s click through conversion window in days. ### viewThroughConversionWindow: ! Duration of this advertisable’s view through conversion window in days. ### createdDate: The date this advertisable was created. ### revshareViewPercent: ! ### revshareClickPercent: ! ### AdvertisableMetricResult Groups reporting metric data in summary, by date and by domain format. **Fields**: ### summary: ! Summarizes the reporting data for the given date range. ### byDate: [!]! Reporting data by date in the given range. ### byDomain: [!]! Reporting data by domain. ### AdvertisableQuery **Fields**: ### byEID(advertisable: !): Obtain an Advertisable by its unique identifier (EID). **Arguments**: ### advertisable: ! Advertisable EID. ### byEIDs(eids: [!]!): []! Obtain a list of Advertisables by their unique identifiers (EID). **Arguments**: ### eids: [!]! List of Advertisable EIDs. ### byOrganization(organization: !): []! Obtain a list Advertisables owned by an Organization. **Arguments**: ### organization: ! Organization EID. ### forUser: []! All the advertisables for the current user. ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### Audience **Fields**: ### eid: ! The EID of the audience in use. ### segmentEID: ! The EID of the segment describing this audience. ### advertisable: ! The Advertisable for the segment. ### campaign: ! The Campaign for the segment. ### name: ! The Audience Name. ### type: ! The type of the segment. One of: - “url”: URL - “crm”: crm - “pages_viewed”: Pages Viewed - “products_viewed”: Products Viewed - “arbitrary_data”: External Data - “app_install”: App Install - “facebook_prospecting”: Facebook Prospecting - “custom”: Partner - “intent”: Intent - “impression”: Impression - “user_attributes”: Attributes - “user_events”: Events - “lead_generation”: Lead Generation - “composite”: Composite - “event_match”: Event JS Match - “js_match”: Explicit JS Match - “ipixel_match”: IPixel Match - “css_selector”: CSS Selector - “email_list”: Email List in AdRoll Email. - “email_domain”: Email Address Domain Match. ### tags: ! Tags explicitly assigned to the segment. ### description: ! Pieces to build the Audience’s description formatted following the type. ### duration: ! The duration of the Audience, in days. ### isActive: ! False if this is segment has been deleted. ### inclusion: ! Is the segment an inclusion segment. ### isConversion: ! True if this is a conversion audience. ### conversionValue: ! The value of a conversion from this segment. ### currency: ! The value of a conversion from this segment. Default to the Advertisable’s currency. ### createdDate: Date of creation. ### product: Product the segment belongs to. ### metrics(start: , end: , pastDays:) : ! Metrics for the audience visitors. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### AudienceGroupData **Fields**: ### eid: ! The EID of the audience in use. ### segmentEID: ! The EID of the segment describing this audience. ### advertisable: ! The Advertisable for the segment. ### campaign: ! The Campaign for the segment. ### name: ! The Audience Name. ### type: ! The type of the segment. One of: - “url”: URL - “crm”: crm - “pages_viewed”: Pages Viewed - “products_viewed”: Products Viewed - “arbitrary_data”: External Data - “app_install”: App Install - “facebook_prospecting”: Facebook Prospecting - “custom”: Partner - “intent”: Intent - “impression”: Impression - “user_attributes”: Attributes - “user_events”: Events - “lead_generation”: Lead Generation - “composite”: Composite - “event_match”: Event JS Match - “js_match”: Explicit JS Match - “ipixel_match”: IPixel Match - “css_selector”: CSS Selector - “email_list”: Email List in AdRoll Email. - “email_domain”: Email Address Domain Match. ### tags: ! Tags explicitly assigned to the segment. ### description: ! Pieces to build the Audience’s description formatted following the type. ### duration: ! The duration of the Audience, in days. ### isActive: ! False if this is segment has been deleted. ### inclusion: ! Is the segment an inclusion segment. ### isConversion: ! True if this is a conversion audience. ### conversionValue: ! The value of a conversion from this segment. ### currency: ! The value of a conversion from this segment. Default to the Advertisable’s currency. ### createdDate: Date of creation. ### product: Product the segment belongs to. ### AudienceMetric Groups reporting metric audience data in summary and by date format. **Fields**: ### audienceSizeCurrent: ! Total number of unique visitors within the duration of the segment. i.e. [TODAY - DURATION, TODAY). This is the total number of visitors who can be retargeted using this segment. ### audienceSizeNew: ! [DEPRECATED] Please use the other metrics in this node instead. Count of unique new visitors who visited the entities between the specified date range. ### audienceSizeTotal: ! Total number of unique visitors between the specified start date (inclusive) and end date (exclusive) ignoring the segment’s own duration. i.e. [START_DATE, END_DATE) ### audienceSizeInDateRange: ! Total number of unique visitors within the duration of the entity with the specified date range. i.e. [$END_DATE - $DURATION, $END_DATE) ### AudienceMetricResult Groups reporting metric audience data in summary and by date format. **Fields**: ### summary: ! Summarizes the reporting data for the given date range and duration. ### Automation **Fields**: ### eid: ! EID of the automation. ### name: ! Name of the automation. ### advertisable: ! EID of the advertisable to which this automation belongs to. ### isActive: ! False if the automation has been marked as deleted. ### createdDate: The timestamp for when this automation was created. ### updatedDate: The timestamp for when this automation was last modified. ### firstLaunchDate: The timestamp for the first time that a node was successfully launched from this automation ### entrySegmentEID: ! EID of the base internal segment that includes contacts in the automation. ### exitSegmentEID: ! EID of the base internal segment that removes contacts in the automation. ### templateEID: EID of the template originally used to create this automation. ### triggerRules: ! ### exclusionRules: ! ### classification: ! Classification for the automation. A non-localized constant identifying the automation’s type. ### funnelStage: ! Funnel stage for the automation. One of ‘awareness’, ‘consideration’, ‘conversion’, or ‘other’. ### actualStatus: Actual status derived from the actual statuses of the child Campaigns ### actualStatusString: ! Minimal string representation of the actual status. ### emailCampaignEID: EID of the email campaign that backs the emails in this automation. ### emailCampaign: ### smsCampaignEID: [DEPRECATED] The SMS API backing this field has been retired. This field always returns null. ### smsCampaign: [DEPRECATED] The SMS API backing this field has been retired. This field always returns null. ### entryAudiences: ### exitAudiences: ### nodes: []! ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the Campaign. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### AutomationNode **Fields**: ### eid: ! EID of the automation node. ### name: ! Name of the automation node. ### advertisable: ! EID of the advertisable to which this automation belongs to. ### automation: ! EID of the automation. ### isRoot: ! True if this node is one of the tree’s roots. If this is false and parentNodeEID is null, the node is considered detached. ### parentNodeEID: EID of the parent node that places this node in the tree structure. ### isActive: ! False if the automation has been marked as deleted. ### status: ! Status of the automation node itself, independent from the campaign. ### nodeType: ! One of conditional, campaign_ad, campaign_email, or campaign_sms. ### delayHours: ! Additional time to wait—since the completion of the previous node—before the contact reaches this node. ### trackOrder: ! Relative order between nodes at the same level. ### createdDate: The timestamp for when this automation node was created. ### updatedDate: The timestamp for when this automation node was last modified. ### condition: ! ### conditionOperator: ### conditionValue: ### audienceAdditionalRules: Additional rules to be layered on top of the baseline established by the Automation’s trigger & exclusion plus the node position on the flow. ### durationHours: For Ad campaigns, maximum time that the user would be served this campaign. For delay nodes, the time before the flow can continue. ### entrySegmentEID: EID of the targeted audience for the node. ### exitSegmentEID: EID of the excluded audience for the node. ### extensionEntrySegmentEIDs: Additional segment EIDs that extend the reach of the campaign;’s entry audience ### extensionExitSegmentEIDs: Additional segment EIDs that extend the reach of the campaign;’s exit audience ### campaignEID: ### campaign: ### emailEID: ### email: ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the Campaign. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### AutomationQuery **Fields**: ### byEID(automation: !): **Arguments**: ### automation: ! EID of the automation. ### byEIDs(eids: [!]!): [!]! **Arguments**: ### eids: [!]! EIDs of the automations. ### byAdvertisable(advertisable: !, isActive:) : [!]! **Arguments**: ### advertisable: ! The EID of the advertisable whose campaigns are to be fetched ### isActive: If True only non-delted automations are included. Default to False ### CTVPlacement **Fields**: ### placement: ! Placement of the Ad in Connected TV. Depending on the breakdown arg it can be by App name, seller of device make ### impressions: ! The sum of the number of ad impressions. ### clicks: ! The sum of clicks of ads. ### cost: ! Cost associated to ads. ### cpm: ! Cost per mille. Cost per one thousand ad serves on the domain. CPM ($) = Spend / Impressions \* 1000 ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### CTVPlacementResult Groups reporting metric data in summary and by date format. **Fields**: ### byPlacement: [!]! Summarizes by placement the reporting data for the given date range. ### Campaign **Fields**: ### eid: ! EID of the campaign. ### advertisable: ! EID of the advertisable to which this campaign belongs. ### budget: ! The daily budget of the campaign. Note that this can be an approximation, for example when budgetType = “lifetime” it is: budget = budgetGoal / numberOfDays(budgetStartDate, budgetEndDate) ### budgetGoal: ! The budget of the campaign, considered for the whole extent of its budgetType. When budgetType = “lifetime”, it will be applied in the period since budgetStartDate until budgetEndDate. ### budgetType: ! The type of budget of the campaign (daily, lifetime…). If this includes -auto (i.e. daily-auto), then it is the inventory campaign of a proxy strategy that is auto-balancing the budget for this campaign ### budgetStartDate: The start date of a lifetime budget. ### budgetEndDate: The end date of a lifetime budget. ### budgetSettingsString: ! Serialized budget settings as a string. “budgetType,budgetStartDate,budgetEndDate,budgetGoal” ### createdDate: The date this campaign was created. ### cpc: ! The CPC for this campaign. ### cpm: ! The CPM for this campaign. ### maxCpm: ! The maximum CPM for this campaign. ### name: ! The name of this campaign. ### startDate: The day the campaign will start. ### endDate: The day the campaign will end, exclusive. ### status: ! The status of the campaign. One of ‘running’, ‘ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. Result is ‘billingFailedPermanent’ or ‘billingFailedRecoverable’ when BillingAuthStatus is ‘failed’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### updatedDate: The date this campaign was last updated. ### channel: ! Campaign channel: one of ‘email’, ‘social’ or ‘web’ ### isConnectedChannel: ! True if the campaign is run by a third party. ### source: ! The service responsible for the creation of this campaign. ### currency: ! ISO-4217 currency code for the given amount. ### type: ! Type for the campaign. One of “prospecting”, “blended”r “retargeting”. ### abmType: ! Type of ABM campaign. Empty string if this is not an ABM campaign. ### targetingType: ! The type of targeting that is used to pick which customers will be reached by this campaign. ### kpiGoal: ! Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic. ### kpiCurrency: ! ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level. ### kpiMetric: ! Metric being targeted by the campaign’s bid strategy. ### spendLimitUntil: SpendLimitUntil ### spendLimitUntilReason: ! SpendLimitUntilReason ### processingStatus: ! The processing status of the campaign inside the AdRoll. It may have a transient value other than “created” while the campaign is being processed by an internal job. ### billingAuthStatus: The billing auth status of the campaign inside the AdRoll. Will default to empty string when API BillingAuthStatus not present. Result is “failed” when the billing authorization did not complete. ### playbookEID: ! The parent Playbook’s EID for the campaign, only if it exists. ### playbookName: ! The parent Playbook’s Name for the campaign, only if it exists. ### playbookType: ! The parent Playbook’s Type for the campaign, only if it exists. ### inVoltronStrategyEID: ! The EID of this campaign as referenced from its Voltron strategy. Only available for inventory campaigns of Universal Campaigns. ### proxyStrategyEID: ! The eid of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyIsFrozen: ! The isFrozen value of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyStatus: ! The status of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyName: ! The name of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### newsletterScheduled: ! If this is an Email Newsletter campaign, the number of potential recipients. ### newsletterSends: ! If this is an Email Newsletter campaign, the number of emails sent. ### newsletterScheduledDate: If this is an Email Newsletter campaign, the scheduled date for delivery. Only if the delivery is scheduled to happen or of it has already occurred. Omitted if in draft, paused or cancelled. ### isBillable: ! True if the campaign is run by NextRoll and will be directly billed to the advertisable’s account. False if it is run by a third party. ### isFrozen: ! True if the strategy is frozen, and no changes can be made to it. ### isFrozenLegacySource: ! True if the campaign is frozen because it was created from a legacy source. Only provided for AdRoll campaigns, false for campaigns from other sources. ### syncStatus: ! Only for Connected Campaigns, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the campaign if it has been externally connected. ### isIntegrated: ! ### useCase: ! ### objective: ! The campaign marketing objective returned by AdRoll API. ### funnelStage: Funnel stage for the campaign. One of “awareness”, “consideration”, “conversion”, or “other”. ### isBudgetBalancingAutomated: ! Indicates if this campaign is a strategy that balances the budget automatically across its inventory campaigns. False means that inventory campaign budgets are manually set. ### possibleStatusChanges: [!] Available status changes for the current campaign. BETA. ### performanceTargets: [] PerformanceTargets ### tags: [!] Internal tags set on creation. ### automationEID: If managed by an Automation, the EID of the Automation. ### automationNodeEID: If managed by an Automation, the EID of the Automation Node that references this entity. ### automationName: If managed by an Automation, the name of the Automation. ### disabled: ! Indicates if the campaign is disabled. Currently applies only to Automation-managed campaigns that have been disabled by subscription downgrade action. ### klaviyoFlowEID: If managed by a Klaviyo Flow, the EID of the Flow. ### klaviyoFlowName: If managed by a Klaviyo Flow, the name of the Flow. ### campaignGroupEID: ! EID for the parent Universal/Proxy campaign group for an inventory campaign. This is only available if Universal or Proxy campaign are enabled in the query. ### campaignGroupName: ! Name for the parent Universal/Proxy campaign group for an inventory campaign. This is only available if Universal or Proxy campaign are enabled in the query. ### adgroups(isActive: , statuses: [!], excludeStatuses: [!]): []! Adgroups for this Campaign. **Arguments**: ### isActive: If True, only active adgroups will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only adgroups that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### excludeStatuses: [!] Only adgroups whose status is not one of these will be returned (Optional; default: None) * **Default:** [ ] ### emails: []! Emails for this Campaign ### audiences(includeInactive:) : []! Audiences for this Campaign. **Arguments**: ### includeInactive: True to return also inactive audiences (those that have been deleted). By default only active audiences are included. * **Default:** false ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the Campaign. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### inventoryCampaigns: []! Inventory Campaigns that compose this campaign in the case of Proxy Campaigns. ### CampaignGroupData **Fields**: ### eid: ! EID of the campaign. ### advertisable: ! EID of the advertisable to which this campaign belongs. ### budget: ! The daily budget of the campaign. Note that this can be an approximation, for example when budgetType = “lifetime” it is: budget = budgetGoal / numberOfDays(budgetStartDate, budgetEndDate) ### budgetGoal: ! The budget of the campaign, considered for the whole extent of its budgetType. When budgetType = “lifetime”, it will be applied in the period since budgetStartDate until budgetEndDate. ### budgetType: ! The type of budget of the campaign (daily, lifetime…). If this includes -auto (i.e. daily-auto), then it is the inventory campaign of a proxy strategy that is auto-balancing the budget for this campaign ### budgetStartDate: The start date of a lifetime budget. ### budgetEndDate: The end date of a lifetime budget. ### budgetSettingsString: ! Serialized budget settings as a string. “budgetType,budgetStartDate,budgetEndDate,budgetGoal” ### createdDate: The date this campaign was created. ### cpc: ! The CPC for this campaign. ### cpm: ! The CPM for this campaign. ### maxCpm: ! The maximum CPM for this campaign. ### name: ! The name of this campaign. ### startDate: The day the campaign will start. ### endDate: The day the campaign will end, exclusive. ### status: ! The status of the campaign. One of ‘running’, ‘ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. Result is ‘billingFailedPermanent’ or ‘billingFailedRecoverable’ when BillingAuthStatus is ‘failed’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### updatedDate: The date this campaign was last updated. ### channel: ! Campaign channel: one of ‘email’, ‘social’ or ‘web’ ### isConnectedChannel: ! True if the campaign is run by a third party. ### source: ! The service responsible for the creation of this campaign. ### currency: ! ISO-4217 currency code for the given amount. ### type: ! Type for the campaign. One of “prospecting”, “blended”r “retargeting”. ### abmType: ! Type of ABM campaign. Empty string if this is not an ABM campaign. ### targetingType: ! The type of targeting that is used to pick which customers will be reached by this campaign. ### kpiGoal: ! Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic. ### kpiCurrency: ! ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level. ### kpiMetric: ! Metric being targeted by the campaign’s bid strategy. ### spendLimitUntil: SpendLimitUntil ### spendLimitUntilReason: ! SpendLimitUntilReason ### processingStatus: ! The processing status of the campaign inside the AdRoll. It may have a transient value other than “created” while the campaign is being processed by an internal job. ### billingAuthStatus: The billing auth status of the campaign inside the AdRoll. Will default to empty string when API BillingAuthStatus not present. Result is “failed” when the billing authorization did not complete. ### playbookEID: ! The parent Playbook’s EID for the campaign, only if it exists. ### playbookName: ! The parent Playbook’s Name for the campaign, only if it exists. ### playbookType: ! The parent Playbook’s Type for the campaign, only if it exists. ### inVoltronStrategyEID: ! The EID of this campaign as referenced from its Voltron strategy. Only available for inventory campaigns of Universal Campaigns. ### proxyStrategyEID: ! The eid of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyIsFrozen: ! The isFrozen value of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyStatus: ! The status of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyName: ! The name of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### newsletterScheduled: ! If this is an Email Newsletter campaign, the number of potential recipients. ### newsletterSends: ! If this is an Email Newsletter campaign, the number of emails sent. ### newsletterScheduledDate: If this is an Email Newsletter campaign, the scheduled date for delivery. Only if the delivery is scheduled to happen or of it has already occurred. Omitted if in draft, paused or cancelled. ### isBillable: ! True if the campaign is run by NextRoll and will be directly billed to the advertisable’s account. False if it is run by a third party. ### isFrozen: ! True if the strategy is frozen, and no changes can be made to it. ### isFrozenLegacySource: ! True if the campaign is frozen because it was created from a legacy source. Only provided for AdRoll campaigns, false for campaigns from other sources. ### syncStatus: ! Only for Connected Campaigns, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the campaign if it has been externally connected. ### isIntegrated: ! ### useCase: ! ### objective: ! The campaign marketing objective returned by AdRoll API. ### funnelStage: Funnel stage for the campaign. One of “awareness”, “consideration”, “conversion”, or “other”. ### isBudgetBalancingAutomated: ! Indicates if this campaign is a strategy that balances the budget automatically across its inventory campaigns. False means that inventory campaign budgets are manually set. ### possibleStatusChanges: [!] Available status changes for the current campaign. BETA. ### performanceTargets: [] PerformanceTargets ### tags: [!] Internal tags set on creation. ### automationEID: If managed by an Automation, the EID of the Automation. ### automationNodeEID: If managed by an Automation, the EID of the Automation Node that references this entity. ### automationName: If managed by an Automation, the name of the Automation. ### disabled: ! Indicates if the campaign is disabled. Currently applies only to Automation-managed campaigns that have been disabled by subscription downgrade action. ### klaviyoFlowEID: If managed by a Klaviyo Flow, the EID of the Flow. ### klaviyoFlowName: If managed by a Klaviyo Flow, the name of the Flow. ### CampaignMetricResult Groups reporting metric data in summary and by date. **Fields**: ### summary: ! Summarizes the reporting data for the given date range. ### byDate: [!]! Reporting data by date in the given range. ### byCountry: [!]! Reporting data by country. ### CampaignQuery **Fields**: ### byEID(campaign: !): Obtain a campaign by its unique identifier (EID). **Arguments**: ### campaign: ! EID of the campaign. ### byEIDs(eids: [!]!): []! Obtain a list of campaigns by their unique identifiers (EID). **Arguments**: ### eids: [!]! List of campaign EIDs. ### byAdvertisable(advertisable: !, isActive: , statuses: [!], excludeStatuses: [!], blacklistStatuses: [!], useCases: [!], types: [!], targetingTypes: [!], abmTypes: [!], channels: [!], sources: [!], funnelStages: [!], objectives: [!], excludeUseCases: [!], excludeTypes: [!], excludeTargetingTypes: [!], excludeABMTypes: [!], excludeChannels: [!], excludeSources: [!], excludeFunnelStages: [!], tagPrefixes: [!]): []! Obtain a list advertisables owned by an Advertisable. **Arguments**: ### advertisable: ! The EID of the advertisable whose campaigns are to be fetched ### isActive: If True, only active campaigns will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only campaigns that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### excludeStatuses: [!] Only campaigns whose status is not one of these will be returned (Optional; default: None) * **Default:** [ ] ### blacklistStatuses: [!] DEPRECATED: please use instead argument excludeStatuses * **Default:** [ ] ### useCases: [!] Only campaigns that match one of these use cases will be returned (Optional; default: None) * **Default:** [ ] ### types: [!] Only campaigns that match one of these types will be returned (Optional; default: None) * **Default:** [ ] ### targetingTypes: [!] Only campaigns that match one of these targeting types will be returned (Optional; default: None) * **Default:** [ ] ### abmTypes: [!] Only campaigns that match one of these ABM types will be returned. Options: ‘lead_locator’ for Account Targeting, ‘pipeline_accelerator’ for Contact-based. (Optional; default: None) * **Default:** [ ] ### channels: [!] Only campaigns that match one of these channels will be returned (Optional; default: None) * **Default:** [ ] ### sources: [!] Only campaigns that match one of these sources will be returned (Optional; default: None) * **Default:** [ ] ### funnelStages: [!] Only campaigns that match one of these funnel stages will be returned (Optional; default: None) * **Default:** [ ] ### objectives: [!] Only campaigns that match one of these objectives will be returned (Optional; default: None) * **Default:** [ ] ### excludeUseCases: [!] Exclude campaigns that match one of the given use cases (Optional; default: None) * **Default:** [ ] ### excludeTypes: [!] Exclude campaigns that match one of the given types. (Optional; default: None) * **Default:** [ ] ### excludeTargetingTypes: [!] Exclude campaigns that match one of the given targeting types. (Optional; default: None) * **Default:** [ ] ### excludeABMTypes: [!] Exclude campaigns that match one of the given ABM types. (Optional; default: None) * **Default:** [ ] ### excludeChannels: [!] Exclude campaigns that match one of the given channels. (Optional; default: None) * **Default:** [ ] ### excludeSources: [!] Exclude campaigns that match one of the given sources. (Optional; default: None) * **Default:** [ ] ### excludeFunnelStages: [!] Exclude campaigns that match one of the given funnel stages. (Optional; default: None) * **Default:** [ ] ### tagPrefixes: [!] > Only campaigns that have tags that start with one of the given prefixes. (Optional; default: None) * **Default:** [ ] ### byOrganization(organization: !, isActive: , statuses: [!], excludeStatuses: [!], blacklistStatuses: [!], useCases: [!], types: [!], targetingTypes: [!], abmTypes: [!], channels: [!], sources: [!], excludeUseCases: [!], excludeTypes: [!], excludeTargetingTypes: [!], excludeABMTypes: [!], excludeChannels: [!], excludeSources: [!], tagPrefixes: [!]): []! Obtain a list advertisables owned by an Organization. **Arguments**: ### organization: ! The EID of the organization whose campaigns are to be fetched ### isActive: If True, only active campaigns will be returned, and vice versa (Optional; default: True) ### statuses: [!] Only campaigns that match one of these statuses will be returned (Optional; default: None) * **Default:** [ ] ### excludeStatuses: [!] Only campaigns whose status is not one of these will be returned (Optional; default: None) * **Default:** [ ] ### blacklistStatuses: [!] DEPRECATED: please use instead argument excludeStatuses * **Default:** [ ] ### useCases: [!] Only campaigns that match one of these use cases will be returned (Optional; default: None) * **Default:** [ ] ### types: [!] Only campaigns that match one of these types will be returned (Optional; default: None) * **Default:** [ ] ### targetingTypes: [!] Only campaigns that match one of these targeting types will be returned (Optional; default: None) * **Default:** [ ] ### abmTypes: [!] Only campaigns that match one of these ABM types will be returned. Options: ‘lead_locator’ for Account Targeting, ‘pipeline_accelerator’ for Contact-based. (Optional; default: None) * **Default:** [ ] ### channels: [!] Only campaigns that match one of these channels will be returned (Optional; default: None) * **Default:** [ ] ### sources: [!] Only campaigns that match one of these sources will be returned (Optional; default: None) * **Default:** [ ] ### excludeUseCases: [!] Exclude campaigns that match one of the given use cases (Optional; default: None) * **Default:** [ ] ### excludeTypes: [!] Exclude campaigns that match one of the given types. (Optional; default: None) * **Default:** [ ] ### excludeTargetingTypes: [!] Exclude campaigns that match one of the given targeting types. (Optional; default: None) * **Default:** [ ] ### excludeABMTypes: [!] Exclude campaigns that match one of the given ABM types. (Optional; default: None) * **Default:** [ ] ### excludeChannels: [!] Exclude campaigns that match one of the given channels. (Optional; default: None) * **Default:** [ ] ### excludeSources: [!] Exclude campaigns that match one of the given sources. (Optional; default: None) * **Default:** [ ] ### tagPrefixes: [!] > Only campaigns that have tags that start with one of the given prefixes. (Optional; default: None) * **Default:** [ ] ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### ContextualKeywordTargetingMetrics **Fields**: ### keywords: [!]! Labels of the keywords that were targeted. ### impressions: ! The sum of the number of ad impressions. ### clicks: ! The sum of clicks of ads. ### cost: ! Cost associated to ads. ### ctr: ! Click-through rate: The percentage of ad serves that were clicked. CTR = Clicks / Impressions ### cpm: ! Cost per mille. Cost per one thousand ad serves on the domain. CPM ($) = Spend / Impressions \* 1000 ### cpc: ! Cost per click: Your average spend for one click. CPC ($) = Spend / Clicks ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### ContextualTargetingResult Groups reporting metric data in summary and by date format. **Fields**: ### byKeywords: [!]! Summarizes by keyword the reporting data for the given date range. ### byTopics: [!]! Summarizes by topic the reporting data for the given date range. ### ContextualTopicTargetingMetrics **Fields**: ### topics: [!]! Labels of the contextual topics that were targeted. ### impressions: ! The sum of the number of ad impressions. ### clicks: ! The sum of clicks of ads. ### cost: ! Cost associated to ads. ### ctr: ! Click-through rate: The percentage of ad serves that were clicked. CTR = Clicks / Impressions ### cpm: ! Cost per mille. Cost per one thousand ad serves on the domain. CPM ($) = Spend / Impressions \* 1000 ### cpc: ! Cost per click: Your average spend for one click. CPC ($) = Spend / Clicks ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### ConversionResult Groups reporting metric data for conversions. **Fields**: ### byAudience(isActive:) : [!]! Summarizes by conversion the reporting data for the given date range. **Arguments**: ### isActive: If True, only active segments will be returned, and vice versa (Optional; default: False) ### Conversions Contains reporting metric data for attributions, deliveries by audience conversion. **Fields**: ### audienceEID: ! The unique identifier of the audience. ### audienceName: ! The name of the audience. ### audienceDuration: ! The duration in days of the audience. ### audienceIsActive: ! True if the audience is active. ### summary: ! Summarizes the reporting data for the given date range. ### byDate: [!]! Reporting data by date in the given range. ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### ConversionsByDate **Fields**: ### date: Reporting data by date in the given range. ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### ConversionsSummary **Fields**: ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### Email **Fields**: ### eid: ! The SendRoll email EID. ### campaign: ! The EID of the AdRoll email campaign who owns this email. ### sequencePosition: ! The position of this email in the campaign’s sequence. (0 for the first email). ### subject: ! The email’s subject. ### name: ! The email’s name. ### status: ! One of ‘running’, ‘scheduled’, ‘ended’, ‘paused’, ‘draft’ or ‘deleted’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘draft’ or ‘deleted’. ### delayHours: ! Delay in hours between the previous event in the drip sequence and when this email is scheduled to be sent. ### createdDate: The date this email was created. ### advertisable: ! Advertisable for this Email. [WARNING] The advertisable information is not usually available, so querying this will cause an additional request to be made. ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the entity. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### EmailGroupData **Fields**: ### eid: ! The SendRoll email EID. ### campaign: ! The EID of the AdRoll email campaign who owns this email. ### sequencePosition: ! The position of this email in the campaign’s sequence. (0 for the first email). ### subject: ! The email’s subject. ### name: ! The email’s name. ### status: ! One of ‘running’, ‘scheduled’, ‘ended’, ‘paused’, ‘draft’ or ‘deleted’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘draft’ or ‘deleted’. ### delayHours: ! Delay in hours between the previous event in the drip sequence and when this email is scheduled to be sent. ### createdDate: The date this email was created. ### advertisable: ! Advertisable for this Email. [WARNING] The advertisable information is not usually available, so querying this will cause an additional request to be made. ### EmailQuery **Fields**: ### byEID(email: !): Resolves an Email by its EID. **Arguments**: ### email: ! EID of the Email. ### byEIDs(eids: [!]!): []! Resolves multiple Emails by their EID. **Arguments**: ### eids: [!]! List of Email EIDs. ### byAdvertisable(advertisable: !): []! Resolves all Emails for an Advertisable. **Arguments**: ### advertisable: ! The EID of the advertisable whose emails are to be fetched ### byCampaign(campaign: !): []! Resolves all Emails for a Campaign. **Arguments**: ### campaign: ! EID of the campaign. ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### FieldAccountMetrics **Fields**: ### domain: The domain we show metrics for. ### impressions: The number of impressions from cookies attached to the domain. ### cost: Spend against cookies belonging to then domain. ### clicks: The number of clicks from cookies attached to the domain. ### adjustedViewThroughs: A goal completion that happens after someone views your ad, but does not click. ### adjustedClickThroughs: A goal completion that happens after someone clicks your ad. ### adjustedViewRevenue: Total earnings when someone views your ad and converts. ### adjustedClickRevenue: Total earnings when someone clicks your ad and converts. ### pageViews: The number of page views on your site from cookie attached to the domain (at the advertisable level, not campaigns level) ### engagedVisitors: The number of unique engaged visitors to your site from cookie attached to the domain (at the advertisable level, not campaigns level) ### uniqueVisitors: The number of unique visitors to your site from cookie attached to the domain (at the advertisable level, not campaigns level) ### lastActivityDate: Most recent date within the last 30 days for which a cookie attached to the domain visited your site. ### FieldAccountMetricsSummary **Fields**: ### summary(start: !, end: !, campaignEIDs: []!, advertisableEID: !, currency:) : [] **Arguments**: ### start: ! ### end: ! ### campaignEIDs: []! ### advertisableEID: ! ### currency: ### FieldConversions **Fields**: ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### FieldGranularConversions **Fields**: ### granularConversions(start: , end: , pastDays: , currency:) : [!]! The granular conversions help understand the channels, campaigns, and ads that influence conversions. Lists the details about a conversion and the data points that determined the decision about its attribution. Limited to 90 days. **Arguments**: ### start: The start date for the conversions period (inclusive). The date range will be: [start, end) ### end: The end date for the conversions period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the conversions in. * **Default:** “USD” ### FieldMetrics **Fields**: ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the entity. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### FieldMetricsForAdvertisable **Fields**: ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the Advertisable. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### FieldMetricsForCampaign **Fields**: ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the Campaign. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### FieldMetricsTotal **Fields**: ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### FieldUtmBasedConversionsForAdvertisable **Fields**: ### utmBasedConversions(start: , end: , pastDays: , currency: , model: !): [!]! UTM based conversions for the Advertisable. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### model: ! Model can be one of the following: [utm_firsttouch, utm_lastclick, utm_lasttouch, utm_linear, utm_positional, utm_timedecay] ### FieldsAd **Fields**: ### eid: ! EID of the ad. ### adFormatID: ! The id of the corresponding ad format in the AdRoll system. ### adFormat: ! Format string. i.e. ‘300 wide x 250 high’. ### adFormatName: ! Format string. i.e. ‘300x250’. ### advertisable: ! The EID of the advertisable to which this ad belongs. ### hasFutureCampaigns: ! Whether or not this ad has the possibility of serving based on the adgroups and campaigns in which it inhabits. DEPRECATED: this field will stop being supported in the near future. ### destinationURL: ! The URL that the browser will navigate to when this ad is clicked. ### headline: ! For Facebook ads, the text to be displayed as the ad’s headline. ### body: ! For Facebook ads, the text to be displayed as the ad’s body. ### message: ! For Facebook Newsfeed ads, the text to be displayed as the ad’s message. ### callToAction: ! Facebook call to action constant. ### isActive: ! Whether or not this ad is currently active. ### name: ! The name of this ad. ### src: ! This ad’s creative’s source URL. ### previewURL: ! The preview URL for dynamic ads like HTML5. ### status: ! One of ‘running’, ‘paused’, ‘review’, ‘draft’, ‘rejected’, ‘suspended’ or ‘deleted’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### type: ! The ad type: ‘liquid’, ‘image’, ‘flash’ or ‘ad_network’. ### height: ! The height in pixels of this ad’s creative. ### width: ! The width in pixels of this ad’s creative. ### createdDate: The date this ad was created. ### updatedDate: The date this ad was last updated. ### hasEdits: ! Whether or not this ad has been edited such that another ad has it’s original ad parameter set to this ad’s EID. ### hasPendingEdits: ! Whether or not this ad has edits that must be reviewed by an AdRoll administrator. ### originalAd: ! The EID of the ad that was edited to create this ad. ### isDynamic: ! Whether or not this is an ad that is dynamically composed when it is served to the user. ### isOutlined: ! Whether or not an outline has been applied to the ad to satisfy network compliancy. ### outlineColor: ! Hexadecimal color code corresponding to the outline of an ad. ### validClicktag: ! If the ad is in flash format, this is the flag showing whether or not the clickTAG is compliant. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the ad if it has been externally connected. ### facebookPermalink: ! Facebook permalink if applicable. ### instagramPermalink: ! Instagram permalink if applicable. ### linkedInPermalink: ! LinkedIn permalink if applicable. ### syncStatus: ! Only for Connected Campaigns’ ads, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns’ ads, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### remoteStatus: ! The status of the Ad on the inventory network NextRoll has sync’ed it to (ex: Facebook) ### disapprovalReason: ! The reason why an Ad has been rejected on the inventory network NextRoll has sync’ed it to (ex: Facebook) ### utmSource: ! UTM Source Parameter from this Ad’s destination. ### utmMedium: ! UTM Medium Parameter from this Ad’s destination. ### utmCampaign: ! UTM Campaign Parameter from this Ad’s destination. ### utmTerm: ! UTM Term Parameter from this Ad’s destination. ### utmContent: ! UTM Content Parameter from this Ad’s destination. ### channel: ! The channel for the campaign this ad belongs to. This is only available when loading the ads through a campaign. ### campaignType: ! The type for the campaign this ad belongs to. This is only available when loading the ads through a campaign. ### adrollEID: ! The adroll EID for prospecting ads. ### adcrabEID: ! The AdCrab ad EID for this ad (ending in 8ADS). ### inAdgroupEID: ! The AdGroup’s EID in the AdGroupAd relationship, if listed inside an AdGroup. ### inAdgroupIsActive: ! True of the AdGroupAd relationship is active, if listed inside an AdGroup. ### inAdgroupStatus: ! The status of the AdGroupAd relationship, if listed inside an AdGroup. ### inAdgroupRelationshipEID: ! The the internal EID of the AdGroupAd relationship, if such a EID exists and if the ad is listed inside an AdGroup. ### labels: []! The list of custom labels to organize and filter the ad. ### labelsString: ! The list of custom labels as String. e.g.: “label1, label2” ### FieldsAdMetrics **Fields**: ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### FieldsAdgroup **Fields**: ### eid: ! The EID of the adgroup. ### adOptimization: ! The strategy used to optimize ads when multiple ads fit a single ad space. ### campaign: ! The EID of the campaign that this adgroup is associated with. ### isActive: ! Whether or not this adgroup is currently active. ### name: ! The name of this adgroup. ### status: ! One of ‘approved’, ‘paused’, ‘draft’, ‘rejected’ or ‘deleted’. ### actualStatus: The effective status of the adgroup. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### createdDate: The date this adgroup was created. ### updatedDate: The date this adgroup was last updated. ### flightTimezone: ! The timezone preference of all flights of this adgroup. ### flights: Scheduled flight periods when ads will be served. Null if there is no limitation. ### processingStatus: ! The processing status of the campaign inside the AdRoll. It may have a transient value other than “created” while the AdGroup is being processed by an internal job. ### significantFlightStartDate: Start date for the active or most recent flight period in the adgroup. ### significantFlightEndDate: End date for the active or most recent flight period in the adgroup. ### advertisable: ! Advertisable for this Adgroup. NOTE/FIXME: the advertisable information is not usually available, so querying this will cause an additional request to be made. ### kpiGoal: Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic. ### kpiCurrency: ! ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level. ### kpiMetric: ! Metric being targeted by the campaign’s bid strategy. ### adType: ! Ad type restriction for this adgroup. Empty if there is no explicit restriction. Currently one of “static”or “dynamic. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the adgroup if it has been externally connected. ### syncStatus: ! Only for Connected Campaigns’ adgroups, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns’ adgroups, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### allowedTargeting: ! The allowed targeting type configured for this adgroup. ### FieldsAdvertisable **Fields**: ### eid: ! EID of the advertisable. ### isActive: ! Whether or not the advertisable is currently active. ### isB2B: ! Whether or not the advertisable is a B2B customer. Deprecated field: use businessUnit instead. ### businessUnit: ! The business unit this Advertisable has signed up for. ### isAbmCustomer: ! Whether or not the advertisable is an ABM customer. ### name: ! The name of the advertisable. ### organization: ! The EID of this advertisable’s organization. ### status: ! The status of the advertisable. One of [‘admin_review’, ‘approved’, ‘rejected’, ‘suspended’]. ### url: ! The advertisable’s URL. ### currency: ! The currency code (ISO-4217) use by the advertisable’s account. ### clickThroughConversionWindow: ! Duration of this advertisable’s click through conversion window in days. ### viewThroughConversionWindow: ! Duration of this advertisable’s view through conversion window in days. ### createdDate: The date this advertisable was created. ### revshareViewPercent: ! ### revshareClickPercent: ! ### FieldsAudience **Fields**: ### eid: ! The EID of the audience in use. ### segmentEID: ! The EID of the segment describing this audience. ### advertisable: ! The Advertisable for the segment. ### campaign: ! The Campaign for the segment. ### name: ! The Audience Name. ### type: ! The type of the segment. One of: - “url”: URL - “crm”: crm - “pages_viewed”: Pages Viewed - “products_viewed”: Products Viewed - “arbitrary_data”: External Data - “app_install”: App Install - “facebook_prospecting”: Facebook Prospecting - “custom”: Partner - “intent”: Intent - “impression”: Impression - “user_attributes”: Attributes - “user_events”: Events - “lead_generation”: Lead Generation - “composite”: Composite - “event_match”: Event JS Match - “js_match”: Explicit JS Match - “ipixel_match”: IPixel Match - “css_selector”: CSS Selector - “email_list”: Email List in AdRoll Email. - “email_domain”: Email Address Domain Match. ### tags: ! Tags explicitly assigned to the segment. ### description: ! Pieces to build the Audience’s description formatted following the type. ### duration: ! The duration of the Audience, in days. ### isActive: ! False if this is segment has been deleted. ### inclusion: ! Is the segment an inclusion segment. ### isConversion: ! True if this is a conversion audience. ### conversionValue: ! The value of a conversion from this segment. ### currency: ! The value of a conversion from this segment. Default to the Advertisable’s currency. ### createdDate: Date of creation. ### product: Product the segment belongs to. ### FieldsAudienceMetrics **Fields**: ### audienceSizeNew: ### audienceSizeTotal: ### FieldsBrandAwarenessForAdvertisables **Fields**: ### siteBounceRate: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngaged: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCart: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCartNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteConverters: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteConvertersNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteReturningVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteReturningVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### FieldsBrandAwarenessForCampaigns **Fields**: ### siteBounceRate: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngaged: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCart: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### FieldsCTVHouseholdMetrics **Fields**: ### totalUniqueHHsReached: Number of distinct households that received CTV impressions on a given day ### uniqueHHSiteVisits: Number of distinct households that visited the site, after viewing an ad ### FieldsCampaign **Fields**: ### eid: ! EID of the campaign. ### advertisable: ! EID of the advertisable to which this campaign belongs. ### budget: ! The daily budget of the campaign. Note that this can be an approximation, for example when budgetType = “lifetime” it is: budget = budgetGoal / numberOfDays(budgetStartDate, budgetEndDate) ### budgetGoal: ! The budget of the campaign, considered for the whole extent of its budgetType. When budgetType = “lifetime”, it will be applied in the period since budgetStartDate until budgetEndDate. ### budgetType: ! The type of budget of the campaign (daily, lifetime…). If this includes -auto (i.e. daily-auto), then it is the inventory campaign of a proxy strategy that is auto-balancing the budget for this campaign ### budgetStartDate: The start date of a lifetime budget. ### budgetEndDate: The end date of a lifetime budget. ### budgetSettingsString: ! Serialized budget settings as a string. “budgetType,budgetStartDate,budgetEndDate,budgetGoal” ### createdDate: The date this campaign was created. ### cpc: ! The CPC for this campaign. ### cpm: ! The CPM for this campaign. ### maxCpm: ! The maximum CPM for this campaign. ### name: ! The name of this campaign. ### startDate: The day the campaign will start. ### endDate: The day the campaign will end, exclusive. ### status: ! The status of the campaign. One of ‘running’, ‘ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. Result is ‘billingFailedPermanent’ or ‘billingFailedRecoverable’ when BillingAuthStatus is ‘failed’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### updatedDate: The date this campaign was last updated. ### channel: ! Campaign channel: one of ‘email’, ‘social’ or ‘web’ ### isConnectedChannel: ! True if the campaign is run by a third party. ### source: ! The service responsible for the creation of this campaign. ### currency: ! ISO-4217 currency code for the given amount. ### type: ! Type for the campaign. One of “prospecting”, “blended”r “retargeting”. ### abmType: ! Type of ABM campaign. Empty string if this is not an ABM campaign. ### targetingType: ! The type of targeting that is used to pick which customers will be reached by this campaign. ### kpiGoal: ! Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic. ### kpiCurrency: ! ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level. ### kpiMetric: ! Metric being targeted by the campaign’s bid strategy. ### spendLimitUntil: SpendLimitUntil ### spendLimitUntilReason: ! SpendLimitUntilReason ### processingStatus: ! The processing status of the campaign inside the AdRoll. It may have a transient value other than “created” while the campaign is being processed by an internal job. ### billingAuthStatus: The billing auth status of the campaign inside the AdRoll. Will default to empty string when API BillingAuthStatus not present. Result is “failed” when the billing authorization did not complete. ### playbookEID: ! The parent Playbook’s EID for the campaign, only if it exists. ### playbookName: ! The parent Playbook’s Name for the campaign, only if it exists. ### playbookType: ! The parent Playbook’s Type for the campaign, only if it exists. ### inVoltronStrategyEID: ! The EID of this campaign as referenced from its Voltron strategy. Only available for inventory campaigns of Universal Campaigns. ### proxyStrategyEID: ! The eid of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyIsFrozen: ! The isFrozen value of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyStatus: ! The status of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyName: ! The name of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### newsletterScheduled: ! If this is an Email Newsletter campaign, the number of potential recipients. ### newsletterSends: ! If this is an Email Newsletter campaign, the number of emails sent. ### newsletterScheduledDate: If this is an Email Newsletter campaign, the scheduled date for delivery. Only if the delivery is scheduled to happen or of it has already occurred. Omitted if in draft, paused or cancelled. ### isBillable: ! True if the campaign is run by NextRoll and will be directly billed to the advertisable’s account. False if it is run by a third party. ### isFrozen: ! True if the strategy is frozen, and no changes can be made to it. ### isFrozenLegacySource: ! True if the campaign is frozen because it was created from a legacy source. Only provided for AdRoll campaigns, false for campaigns from other sources. ### syncStatus: ! Only for Connected Campaigns, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the campaign if it has been externally connected. ### isIntegrated: ! ### useCase: ! ### objective: ! The campaign marketing objective returned by AdRoll API. ### funnelStage: Funnel stage for the campaign. One of “awareness”, “consideration”, “conversion”, or “other”. ### isBudgetBalancingAutomated: ! Indicates if this campaign is a strategy that balances the budget automatically across its inventory campaigns. False means that inventory campaign budgets are manually set. ### possibleStatusChanges: [!] Available status changes for the current campaign. BETA. ### performanceTargets: [] PerformanceTargets ### tags: [!] Internal tags set on creation. ### automationEID: If managed by an Automation, the EID of the Automation. ### automationNodeEID: If managed by an Automation, the EID of the Automation Node that references this entity. ### automationName: If managed by an Automation, the name of the Automation. ### disabled: ! Indicates if the campaign is disabled. Currently applies only to Automation-managed campaigns that have been disabled by subscription downgrade action. ### klaviyoFlowEID: If managed by a Klaviyo Flow, the EID of the Flow. ### klaviyoFlowName: If managed by a Klaviyo Flow, the name of the Flow. ### FieldsCustomMetrics **Fields**: ### customMetric(formula:) : ! [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Usage: - Operators: ‘+’, ‘-’, ‘\*’, ‘/’ and parentheses () are valid Requires formula to have space-seperated operand and operators. e.g. costPerImpression: customMetric(formula: “cost / impressions”) **Arguments**: ### formula: ### FieldsEmail **Fields**: ### eid: ! The SendRoll email EID. ### campaign: ! The EID of the AdRoll email campaign who owns this email. ### sequencePosition: ! The position of this email in the campaign’s sequence. (0 for the first email). ### subject: ! The email’s subject. ### name: ! The email’s name. ### status: ! One of ‘running’, ‘scheduled’, ‘ended’, ‘paused’, ‘draft’ or ‘deleted’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘draft’ or ‘deleted’. ### delayHours: ! Delay in hours between the previous event in the drip sequence and when this email is scheduled to be sent. ### createdDate: The date this email was created. ### advertisable: ! Advertisable for this Email. [WARNING] The advertisable information is not usually available, so querying this will cause an additional request to be made. ### FieldsEmailMetrics **Fields**: ### sends: Number of emails sent by a campaign. ### opens: Number of unique-by-session email opens collected for a campaign. WARNING: this field is deprecated, please use “emailUniqueOpen” instead. To ease up the transition this field will still be available, but always return null. ### openRate: WARNING: this field is deprecated, please use “emailUniqueOpenRate”. To ease up the transition this field will still be available, but always return null. ### emailScheduled: ! Total emails scheduled to be sent as part if this campaign. ### emailSentUnconfirmed: ! Total emails attempted to be sent. ### emailBounced: ! Deliveries that were rejected by the recipient's email service provider. ### emailSentConfirmed: ! Total emails confirmed to have been sent by the Email Service Provider. ### emailDeliveryRate: ! The percent of emails that have been confirmed to be delivered, over the send attempts. ### emailMarkedSpam: ! Recipients who report your emails as spam. ### emailUniqueMarkedSpam: ! Recipients who report your emails as spam, uniqued. ### emailUniqueOpen: ! When an email is opened by a user in its lifetime. ### emailUniqueOpenRate: ! The percent of sent emails that are opened once in a user's lifetime. ### emailUniqueClick: ! The number of times a link in an email was clicked once in a user's lifetime. ### emailUniqueClickRate: ! The percentage of emails opened that were clicked once in a user's lifetime. ### emailUniqueUnsubscribers: ! Recipients that unsubscribe from the email list, uniqued. ### emailUniqueUnsubscribeRate: ! The percent of recipients that have unsubscribers (unique) over the number of confirmed to be deliveries. ### emailUnsubscribers: ! Recipients that unsubscribe from the email list ### emailUniqueClicksByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email was clicked once in a user's lifetime broken out by ISO-2 country code ### emailUniqueOpensByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by ISO-2 country code ### emailUniqueClicksByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times a link in an email was clicked once in a user's lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueOpensByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueClicksByXpathUrl: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Unique clicks by xpath;url present in an email message The key ; consists in 2 parts: 1. A XPath locator to the individual element that was clicked in the email message, based on a HTML5-compliant tree. 2. URL or macro: either a static URL that was clicked present in the email template or, the macro used to generate the URL. Eg.: {{product.url}}. Useful to identify links generated for the same intent, but it might show differently for emailed contacts. In the future we may break this out to seperate metrics ### FieldsForUtmBasedConversions **Fields**: ### utm: ! ### aov: ! ### assistConversions: ! ### assistRevenue: ! ### assistAov: ! ### conversions: ! ### revenue: ! ### FieldsInfluencedAttributionMetrics **Fields**: ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### FieldsOrganization **Fields**: ### eid: ! EID of the organization. ### name: ! Name of the organization. ### createdDate: Created date for the organization. ### FieldsProspectingMetrics **Fields**: ### newVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitors instead. The number of unique new visitors who came to your site after viewing a prospecting ad. ### engagedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitors instead. The number of unique new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### bouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed one page and left your site after viewing a prospecting ad. ### nonBouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed more than one page after viewing a prospecting ad. ### newVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitorCost instead. The cost for each unique new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / newVisitors ### engagedVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitorCost instead. The cost for each unique new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / engagedVisitors ### bounceRate: This field has been deprecated as metrics for it are no longer available and it will always be NULL. The percentage of new visitors who have only viewed one page and left your site after viewing a prospecting ad. Bounce Rate (%) = bouncedVisitors / newVisitors \* 100. ### dailyNewVisitors: The number of daily new visitors who came to your site after viewing a prospecting ad. ### dailyReturnVisitors: The number of daily new visitors who return to your site after viewing a prospecting ad. ### dailyEngagedVisitors: The number of daily new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### dailyBounceRate: The percentage of daily new visitors who have only viewed one page and left your site after viewing a prospecting ad. ### dailyNewVisitorCost: The cost for each daily new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / dailyNewVisitors ### dailyEngagedVisitorCost: The cost for each daily new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / dailyEngagedVisitors ### FieldsReachFrequencyMetrics **Fields**: ### convCountImpRate01: ! Number of converters who saw an average of 0-1 ads/day in the last 30 days. ### convCountImpRate12: ! Number of converters who saw an average of 1-2 ads/day in the last 30 days. ### convCountImpRate23: ! Number of converters who saw an average of 2-3 ads/day in the last 30 days. ### convCountImpRate34: ! Number of converters who saw an average of 3-4 ads/day in the last 30 days. ### convCountImpRate4: ! Number of converters who saw an average of 4+ ads/day in the last 30 days. ### nonConvCountImpRate01: ! Number of non-converters who saw an average of 0-1 ads/day in the last 30 days. ### nonConvCountImpRate12: ! Number of non-converters who saw an average of 1-2 ads/day in the last 30 days. ### nonConvCountImpRate23: ! Number of non-converters who saw an average of 2-3 ads/day in the last 30 days. ### nonConvCountImpRate34: ! Number of non-converters who saw an average of 3-4 ads/day in the last 30 days. ### nonConvCountImpRate4: ! Number of non-converters who saw an average of 4+ ads/day in the last 30 days. ### FieldsReachMetrics **Fields**: ### frequency: ! Number of ads seen per day by reached users (only applies to WEB campaigns) Frequency = total impressions/reached users ### deviceFrequency: ! Number of ads seen per day by reached devices (only applies to CTV campaigns) Device Frequency = total impressions/reached devices ### FieldsSMSMetrics **Fields**: ### smsSentDelivered: ! Total number of SMS messages that were delivered (and confirmed by the recipient) ### smsClicks: ! Total number of times that a link in the SMS message was clicked. ### FieldsSegment **Fields**: ### eid: ! The Segment EID. ### name: ! The Segment Name. ### duration: ! The Segment’s duration in days. ### isActive: ! False if the segment has been deleted. ### isConversion: ! True if this is a conversion segment. ### type: ! Segment type. ### tags: ! Tags explicitly assigned to the segment. ### conversionValue: ! The value of a conversion from this segment. ### currency: ! The value of a conversion from this segment. Default to the Advertisable’s currency. ### description: ! Pieces to build the Segment’s description formatted following the type. ### product: Product the segment belongs to. ### FieldsVideoMetrics **Fields**: ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### GranularConversion A row describing a granular conversion. **Fields**: ### time: When the conversion happened. ### type: ! There are two types of conversions: “Click through” (CTC), “View through” (VTC) or “Influenced”. ### attributionModel: ! The attribution model applied at the time of conversion. ### attributionCredit: ! The type of credit assigned: “attributed” or “influenced”. ### adrollConversionId: ! The unique identifier for the attributed or influenced conversion. ### touchpointTimestamp: The last preceding AdRoll touchpoint, such as an impression or click. ### attributedConversions: ! The number of conversions attributed to your AdRoll ads based on your selected attribution model. If the impression or click is attributed the conversion, the value will be 1. If the impression or click influenced the conversion, the value will be 0. ### lastTouchAttribution: ! True if it has been attributed as last touch. ### channel: ! The channel that served the converting ad (Web, Facebook, Email). ### campaignEID: ! The EID of the campaign that served the converting ad. ### campaignType: ! The type of the campaign that served the converting ad. (Deprecated) ### campaignAbmType: ! The type for RollWorks ABM campaigns. ### campaignTargetingType: ! The targeting type of the campaign that served the converting ad. ### campaignName: ! The name of the campaign that served the converting ad. ### adgroupEID: ! The EID of the AdGroup that served the converting ad. ### adgroupName: ! The name of the AdGroup that served the converting ad. ### adEID: ! The EID of the ad that resulted in a conversion. ### adName: ! The name of the ad that resulted in a conversion. ### adSize: ! Size of the converting ad. ### segmentEID: ! The EID of the associated conversion audience. ### segmentName: ! The name of the associated conversion audience. ### playbookEID: ! The associated Playbook’s EID or empty string if not applicable. ### playbookName: ! The associated Playbook’s Name or empty string if not applicable. ### playbookType: ! The associated Playbook’s Type or empty string if not applicable. ### attributedRevenue: ! Revenue for the attributed conversions (only populates if you either specify a fixed conversion value or have [enhanced conversion tracking]([https://help.adroll.com/hc/en-us/articles/212629938](https://help.adroll.com/hc/en-us/articles/212629938)) set up). ### externalData: Data recorded by the AdRoll Pixel on the conversion event. ### device: ! If available the device where the conversion happened. ### country: ! If available (provided by the network, unavailable on Facebook): the country where the conversion happened. ### city: ! If available (provided by the network, unavailable on Facebook): the city where the conversion happened. ### firstTouchTimestamp: When the first AdRoll touch occurred. ### lastTouchTimestamp: When the final AdRoll touch occurred. ### daysToConversionFirstTouch: ! Time from first AdRoll touch to conversion (days). ### daysToConversionLastTouch: ! Time from last AdRoll touch to conversion (days). ### referrerURL: ! URL preceding the conversion. ### cookie: ! The AdRoll cookie that was used to track this conversion’s journey. This field is for internal use only, it will always return an empty string for external users. ### GroupListRow [BETA] This GraphQL node is currently under development. Avoid its use in production until it has passed some thorough QA. Row returned for each row in a group by query from ‘group.loadByList’. The available data depends on the arguments to the group by: - Entity data is only available when grouping by entity and only for the entity being grouped by. - Date is only available when grouping by date. - Only columns specified in the group by are available for a particular group. Groups are returned as a flat list but should be interpret as a hierarchy: - There is always one ‘root’ group that has no entity data. The metrics in this root group are the total aggregate. - Children groups have a ‘parentId’ field that is the ‘id’ of their parent (e.g. children of the root group will have a parentId of ‘root’). - The final level of groups in the query have the ‘leaf’ field as true. This is made for easy filtering when only the leaf nodes are required. - Each group in the ‘groups’ parameter for the query creates a level of sub-groups in order. So the first group parameter will correspond to children of the ‘root’ group, while the last group parameter will correspond to the ‘leaf’ groups. **Fields**: ### id: ! Unique ID for this group. ### parentId: ! The unique ID of the parent group. Empty for the root group. ### leaf: ! Leaf is true for the leaf groups (groups with no children). This corresponds to the last ‘groups’ parameter in the GroupBy. ### date: ! When grouping by date, this is the metric date for this group. The format depends on the ‘date’ argument of the GroupBy: - day: “2018-12-30” - week: “2018-W52” - month: “2018-12” - year: “2018” - dayofweek: “sun” ### dateKey: ! This is a sortable value for the ‘date’ argument. It is equal to ‘date’ except for when using ‘dayofweek’ when it is the number corresponding to the week day order. ### domain: ! When grouping by domain, this returns the domain for the current group. ### columns: ! When grouping by columns, this will return a JSON object whose keys are the group column names (as specified in the GroupBy argument) and the values are the column values for the current group. ### organization: Organization data for the group. This is only available when grouping by organizations (e.g. ‘entity’ = ‘organization’). ### advertisable: Advertisable data for the group. This is only available when grouping by advertisables (e.g. ‘entity’ = ‘advertisable’). ### campaign: Campaign data for the group. This is only available when grouping by campaigns (e.g. ‘entity’ = ‘campaign’). ### adgroup: Adgroup data for the group. This is only available when grouping by adgroups (e.g. ‘entity’ = ‘adgroup’). ### ad: Ad data for the group. This is only available when grouping by ads (e.g. ‘entity’ = ‘ad’). ### segment: Segment data for the group. This is only available when grouping by segments (e.g. ‘entity’ = ‘segment’). ### email: Email data for the group. This is only available when grouping by emails (e.g. ‘entity’ = ‘email’). ### audience: Audience data for the group. This is only available when grouping by audiences (e.g. ‘entity’ = ‘audience’). ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### audienceSizeNew: ### audienceSizeTotal: ### newVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitors instead. The number of unique new visitors who came to your site after viewing a prospecting ad. ### engagedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitors instead. The number of unique new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### bouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed one page and left your site after viewing a prospecting ad. ### nonBouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed more than one page after viewing a prospecting ad. ### newVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitorCost instead. The cost for each unique new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / newVisitors ### engagedVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitorCost instead. The cost for each unique new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / engagedVisitors ### bounceRate: This field has been deprecated as metrics for it are no longer available and it will always be NULL. The percentage of new visitors who have only viewed one page and left your site after viewing a prospecting ad. Bounce Rate (%) = bouncedVisitors / newVisitors \* 100. ### dailyNewVisitors: The number of daily new visitors who came to your site after viewing a prospecting ad. ### dailyReturnVisitors: The number of daily new visitors who return to your site after viewing a prospecting ad. ### dailyEngagedVisitors: The number of daily new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### dailyBounceRate: The percentage of daily new visitors who have only viewed one page and left your site after viewing a prospecting ad. ### dailyNewVisitorCost: The cost for each daily new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / dailyNewVisitors ### dailyEngagedVisitorCost: The cost for each daily new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / dailyEngagedVisitors ### sends: Number of emails sent by a campaign. ### opens: Number of unique-by-session email opens collected for a campaign. WARNING: this field is deprecated, please use “emailUniqueOpen” instead. To ease up the transition this field will still be available, but always return null. ### openRate: WARNING: this field is deprecated, please use “emailUniqueOpenRate”. To ease up the transition this field will still be available, but always return null. ### emailScheduled: ! Total emails scheduled to be sent as part if this campaign. ### emailSentUnconfirmed: ! Total emails attempted to be sent. ### emailBounced: ! Deliveries that were rejected by the recipient's email service provider. ### emailSentConfirmed: ! Total emails confirmed to have been sent by the Email Service Provider. ### emailDeliveryRate: ! The percent of emails that have been confirmed to be delivered, over the send attempts. ### emailMarkedSpam: ! Recipients who report your emails as spam. ### emailUniqueMarkedSpam: ! Recipients who report your emails as spam, uniqued. ### emailUniqueOpen: ! When an email is opened by a user in its lifetime. ### emailUniqueOpenRate: ! The percent of sent emails that are opened once in a user's lifetime. ### emailUniqueClick: ! The number of times a link in an email was clicked once in a user's lifetime. ### emailUniqueClickRate: ! The percentage of emails opened that were clicked once in a user's lifetime. ### emailUniqueUnsubscribers: ! Recipients that unsubscribe from the email list, uniqued. ### emailUniqueUnsubscribeRate: ! The percent of recipients that have unsubscribers (unique) over the number of confirmed to be deliveries. ### emailUnsubscribers: ! Recipients that unsubscribe from the email list ### emailUniqueClicksByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email was clicked once in a user's lifetime broken out by ISO-2 country code ### emailUniqueOpensByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by ISO-2 country code ### emailUniqueClicksByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times a link in an email was clicked once in a user's lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueOpensByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueClicksByXpathUrl: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Unique clicks by xpath;url present in an email message The key ; consists in 2 parts: 1. A XPath locator to the individual element that was clicked in the email message, based on a HTML5-compliant tree. 2. URL or macro: either a static URL that was clicked present in the email template or, the macro used to generate the URL. Eg.: {{product.url}}. Useful to identify links generated for the same intent, but it might show differently for emailed contacts. In the future we may break this out to seperate metrics ### smsSentDelivered: ! Total number of SMS messages that were delivered (and confirmed by the recipient) ### smsClicks: ! Total number of times that a link in the SMS message was clicked. ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### siteBounceRate: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngaged: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCart: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCartNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteConverters: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteConvertersNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteReturningVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteReturningVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### GroupQuery [BETA] This GraphQL node is currently under development. Avoid its use in production until it has passed some thorough QA. Provides arbitrary grouping for queries. **Fields**: ### loadBy(eids: [!]!, by: !, start: , end: , pastDays: , currency: , groups: [!]!): Loads entities and metrics providing for arbitrary grouping. Each group in the ‘groups’ argument will create a group level in the hierarchy. The first root group will always be empty and can be used as an aggregate for all the metrics. **Arguments**: ### eids: [!]! List of EIDs to load by. The kind of entity being loaded by is specified with the ‘by’ argument. ### by: ! Kind of entity to load by. The EIDs of the entities to load by are specified in the ‘eids’ argument. ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### groups: [!]! List of groups to group by. * **Default:** [ ] ### loadByList(eids: [!]!, by: !, start: , end: , pastDays: , currency: , groups: [!]!): [!]! Loads entities and metrics providing for arbitrary grouping. This differs from loadBy in that the group hierarchy is returned as a flat list that must be reconstructed as a tree by the client. For details on how the group hierarchy is returned, see the documentation for GroupListRow. **Arguments**: ### eids: [!]! List of EIDs to load by. The kind of entity being loaded by is specified with the ‘by’ argument. ### by: ! Kind of entity to load by. The EIDs of the entities to load by are specified in the ‘eids’ argument. ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### groups: [!]! List of groups to group by. * **Default:** [ ] ### GroupResult [BETA] This GraphQL node is currently under development. Avoid its use in production until it has passed some thorough QA. Result for the ‘groups.loadBy’ field. **Fields**: ### id: ! Unique ID for this group. ### groups: [!]! Return children groups if available. ### date: ! When grouping by date, this is the metric date for this group. The format depends on the ‘date’ argument of the GroupBy: - day: “2018-12-30” - week: “2018-W52” - month: “2018-12” - year: “2018” - dayofweek: “sun” ### dateKey: ! This is a sortable value for the ‘date’ argument. It is equal to ‘date’ except for when using ‘dayofweek’ when it is the number corresponding to the week day order. ### domain: ! When grouping by domain, this returns the domain for the current group. ### columns: ! When grouping by columns, this will return a JSON object whose keys are the group column names (as specified in the GroupBy argument) and the values are the column values for the current group. ### organization: Organization data for the group. This is only available when grouping by organizations (e.g. ‘entity’ = ‘organization’). ### advertisable: Advertisable data for the group. This is only available when grouping by advertisables (e.g. ‘entity’ = ‘advertisable’). ### campaign: Campaign data for the group. This is only available when grouping by campaigns (e.g. ‘entity’ = ‘campaign’). ### adgroup: Adgroup data for the group. This is only available when grouping by adgroups (e.g. ‘entity’ = ‘adgroup’). ### ad: Ad data for the group. This is only available when grouping by ads (e.g. ‘entity’ = ‘ad’). ### segment: Segment data for the group. This is only available when grouping by segments (e.g. ‘entity’ = ‘segment’). ### email: Email data for the group. This is only available when grouping by emails (e.g. ‘entity’ = ‘email’). ### audience: Audience data for the group. This is only available when grouping by audiences (e.g. ‘entity’ = ‘audience’). ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### audienceSizeNew: ### audienceSizeTotal: ### newVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitors instead. The number of unique new visitors who came to your site after viewing a prospecting ad. ### engagedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitors instead. The number of unique new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### bouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed one page and left your site after viewing a prospecting ad. ### nonBouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed more than one page after viewing a prospecting ad. ### newVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitorCost instead. The cost for each unique new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / newVisitors ### engagedVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitorCost instead. The cost for each unique new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / engagedVisitors ### bounceRate: This field has been deprecated as metrics for it are no longer available and it will always be NULL. The percentage of new visitors who have only viewed one page and left your site after viewing a prospecting ad. Bounce Rate (%) = bouncedVisitors / newVisitors \* 100. ### dailyNewVisitors: The number of daily new visitors who came to your site after viewing a prospecting ad. ### dailyReturnVisitors: The number of daily new visitors who return to your site after viewing a prospecting ad. ### dailyEngagedVisitors: The number of daily new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### dailyBounceRate: The percentage of daily new visitors who have only viewed one page and left your site after viewing a prospecting ad. ### dailyNewVisitorCost: The cost for each daily new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / dailyNewVisitors ### dailyEngagedVisitorCost: The cost for each daily new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / dailyEngagedVisitors ### sends: Number of emails sent by a campaign. ### opens: Number of unique-by-session email opens collected for a campaign. WARNING: this field is deprecated, please use “emailUniqueOpen” instead. To ease up the transition this field will still be available, but always return null. ### openRate: WARNING: this field is deprecated, please use “emailUniqueOpenRate”. To ease up the transition this field will still be available, but always return null. ### emailScheduled: ! Total emails scheduled to be sent as part if this campaign. ### emailSentUnconfirmed: ! Total emails attempted to be sent. ### emailBounced: ! Deliveries that were rejected by the recipient's email service provider. ### emailSentConfirmed: ! Total emails confirmed to have been sent by the Email Service Provider. ### emailDeliveryRate: ! The percent of emails that have been confirmed to be delivered, over the send attempts. ### emailMarkedSpam: ! Recipients who report your emails as spam. ### emailUniqueMarkedSpam: ! Recipients who report your emails as spam, uniqued. ### emailUniqueOpen: ! When an email is opened by a user in its lifetime. ### emailUniqueOpenRate: ! The percent of sent emails that are opened once in a user's lifetime. ### emailUniqueClick: ! The number of times a link in an email was clicked once in a user's lifetime. ### emailUniqueClickRate: ! The percentage of emails opened that were clicked once in a user's lifetime. ### emailUniqueUnsubscribers: ! Recipients that unsubscribe from the email list, uniqued. ### emailUniqueUnsubscribeRate: ! The percent of recipients that have unsubscribers (unique) over the number of confirmed to be deliveries. ### emailUnsubscribers: ! Recipients that unsubscribe from the email list ### emailUniqueClicksByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email was clicked once in a user's lifetime broken out by ISO-2 country code ### emailUniqueOpensByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by ISO-2 country code ### emailUniqueClicksByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times a link in an email was clicked once in a user's lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueOpensByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueClicksByXpathUrl: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Unique clicks by xpath;url present in an email message The key ; consists in 2 parts: 1. A XPath locator to the individual element that was clicked in the email message, based on a HTML5-compliant tree. 2. URL or macro: either a static URL that was clicked present in the email template or, the macro used to generate the URL. Eg.: {{product.url}}. Useful to identify links generated for the same intent, but it might show differently for emailed contacts. In the future we may break this out to seperate metrics ### smsSentDelivered: ! Total number of SMS messages that were delivered (and confirmed by the recipient) ### smsClicks: ! Total number of times that a link in the SMS message was clicked. ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### InventoryCampaign **Fields**: ### eid: ! EID of the campaign. ### advertisable: ! EID of the advertisable to which this campaign belongs. ### budget: ! The daily budget of the campaign. Note that this can be an approximation, for example when budgetType = “lifetime” it is: budget = budgetGoal / numberOfDays(budgetStartDate, budgetEndDate) ### budgetGoal: ! The budget of the campaign, considered for the whole extent of its budgetType. When budgetType = “lifetime”, it will be applied in the period since budgetStartDate until budgetEndDate. ### budgetType: ! The type of budget of the campaign (daily, lifetime…). If this includes -auto (i.e. daily-auto), then it is the inventory campaign of a proxy strategy that is auto-balancing the budget for this campaign ### budgetStartDate: The start date of a lifetime budget. ### budgetEndDate: The end date of a lifetime budget. ### budgetSettingsString: ! Serialized budget settings as a string. “budgetType,budgetStartDate,budgetEndDate,budgetGoal” ### createdDate: The date this campaign was created. ### cpc: ! The CPC for this campaign. ### cpm: ! The CPM for this campaign. ### maxCpm: ! The maximum CPM for this campaign. ### name: ! The name of this campaign. ### startDate: The day the campaign will start. ### endDate: The day the campaign will end, exclusive. ### status: ! The status of the campaign. One of ‘running’, ‘ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. Result is ‘billingFailedPermanent’ or ‘billingFailedRecoverable’ when BillingAuthStatus is ‘failed’. ### actualStatus: The effective status of the campaign. Details the reasons why it is not running, if applicable. ### actualStatusString: ! Minimal string representation of the actual status. One of ‘running’, ‘notRunning’ ,’ended’, ‘paused’, ‘review’, ‘draft’, ‘rejected’ or ‘deleted’. ### updatedDate: The date this campaign was last updated. ### channel: ! Campaign channel: one of ‘email’, ‘social’ or ‘web’ ### isConnectedChannel: ! True if the campaign is run by a third party. ### source: ! The service responsible for the creation of this campaign. ### currency: ! ISO-4217 currency code for the given amount. ### type: ! Type for the campaign. One of “prospecting”, “blended”r “retargeting”. ### abmType: ! Type of ABM campaign. Empty string if this is not an ABM campaign. ### targetingType: ! The type of targeting that is used to pick which customers will be reached by this campaign. ### kpiGoal: ! Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic. ### kpiCurrency: ! ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level. ### kpiMetric: ! Metric being targeted by the campaign’s bid strategy. ### spendLimitUntil: SpendLimitUntil ### spendLimitUntilReason: ! SpendLimitUntilReason ### processingStatus: ! The processing status of the campaign inside the AdRoll. It may have a transient value other than “created” while the campaign is being processed by an internal job. ### billingAuthStatus: The billing auth status of the campaign inside the AdRoll. Will default to empty string when API BillingAuthStatus not present. Result is “failed” when the billing authorization did not complete. ### playbookEID: ! The parent Playbook’s EID for the campaign, only if it exists. ### playbookName: ! The parent Playbook’s Name for the campaign, only if it exists. ### playbookType: ! The parent Playbook’s Type for the campaign, only if it exists. ### inVoltronStrategyEID: ! The EID of this campaign as referenced from its Voltron strategy. Only available for inventory campaigns of Universal Campaigns. ### proxyStrategyEID: ! The eid of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyIsFrozen: ! The isFrozen value of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyStatus: ! The status of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### proxyStrategyName: ! The name of the Proxy Strategy that contains this campaign. Only for Inventory campaigns. ### newsletterScheduled: ! If this is an Email Newsletter campaign, the number of potential recipients. ### newsletterSends: ! If this is an Email Newsletter campaign, the number of emails sent. ### newsletterScheduledDate: If this is an Email Newsletter campaign, the scheduled date for delivery. Only if the delivery is scheduled to happen or of it has already occurred. Omitted if in draft, paused or cancelled. ### isBillable: ! True if the campaign is run by NextRoll and will be directly billed to the advertisable’s account. False if it is run by a third party. ### isFrozen: ! True if the strategy is frozen, and no changes can be made to it. ### isFrozenLegacySource: ! True if the campaign is frozen because it was created from a legacy source. Only provided for AdRoll campaigns, false for campaigns from other sources. ### syncStatus: ! Only for Connected Campaigns, indicates the status of the sync’ing with the external service. When available, can be one of “pending”, “synced” or “error” ### syncError: ! Only for Connected Campaigns, shows the error that caused the sync’ing with the external service to fail. Provided if the syncStatus field is “error”. ### facebookAdsManagerPermalink: ! DEPRECATED: please use adsManagerPermalink instead ### adsManagerPermalink: ! The URL to the campaign if it has been externally connected. ### isIntegrated: ! ### useCase: ! ### objective: ! The campaign marketing objective returned by AdRoll API. ### funnelStage: Funnel stage for the campaign. One of “awareness”, “consideration”, “conversion”, or “other”. ### isBudgetBalancingAutomated: ! Indicates if this campaign is a strategy that balances the budget automatically across its inventory campaigns. False means that inventory campaign budgets are manually set. ### possibleStatusChanges: [!] Available status changes for the current campaign. BETA. ### performanceTargets: [] PerformanceTargets ### tags: [!] Internal tags set on creation. ### automationEID: If managed by an Automation, the EID of the Automation. ### automationNodeEID: If managed by an Automation, the EID of the Automation Node that references this entity. ### automationName: If managed by an Automation, the name of the Automation. ### disabled: ! Indicates if the campaign is disabled. Currently applies only to Automation-managed campaigns that have been disabled by subscription downgrade action. ### klaviyoFlowEID: If managed by a Klaviyo Flow, the EID of the Flow. ### klaviyoFlowName: If managed by a Klaviyo Flow, the name of the Flow. ### campaignGroupEID: ! EID for the parent Universal/Proxy campaign group. ### campaignGroupName: ! Name for the parent Universal/Proxy campaign group. ### adgroups: []! Adgroups for this Campaign. ### emails: []! Emails for this Campaign ### audiences(includeInactive:) : []! Audiences for this Campaign. **Arguments**: ### includeInactive: True to return also inactive audiences (those that have been deleted). By default only active audiences are included. * **Default:** false ### metrics(start: , end: , pastDays: , currency: , duration:) : ! Metrics for the Campaign. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### duration: [DEPRECATED] Unused. * **Default:** 30 ### conversions(start: , end: , pastDays: , currency:) : ! Metrics for the entity broken down by conversion audiences. **Arguments**: ### start: The start date for the metrics period (inclusive). The date range will be: [start, end) ### end: The end date for the metrics period (exclusive). The date range will be: [start, end) ### pastDays: Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc) * **Default:** 0 ### currency: Currency to load the metrics in. * **Default:** “USD” ### Keyword Contains reporting metric data by keyword for Google Search campaign-adgroups. **Fields**: ### keyword: ! Keyword in the Google Search adgroup… ### impressions: ! The sum of the number of ad impressions. ### clicks: ! The sum of clicks of all kinds of ads and emails. ### cost: ! Cost associated to all kinds of ads and emails. ### conversions: ! Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: ! Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. ### viewThroughs: ! View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. ### revenue: ! Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: ! Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. ### viewRevenue: ! View-Attributed Revenue. Total earnings when someone views your ad and converts. ### ctr: ! Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: ! Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: ! Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: ! Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: ! Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: ! Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: ! Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: ! Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: ! View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: ! Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: ! Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: ! View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### KeywordResult **Fields**: ### byKeyword: [!]! Summarizes by Google Search keyword the reporting data for the given date range. [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Currently Fetching Keywords and keyword metrics without also requesting metrics for parent adgroup or campaign will return empty result. ### LogEvent Represents a single log event. **Fields**: ### info: ! Provides the formatted summary line for the timeline item. This includes information from level, name, message, and delta. ### level: ! Level for this log event. ### name: ! Log name for the entry. ### message: ! Message for the log entry. ### delta: ! Time in seconds for this entry, relative to the start of the request. ### time: ! Time for this entry in RFC3339 format. ### fields: Additional fields associated with the log entry. ### caller: ! Caller for this entry. ### stack: [!]! Stack trace for this entry. ### kind: ! Alias to fields.kind. ### operation: ! Alias to fields.operation. ### operationRequest: ! Combined field to describe internal requests. “METHOD URL” ### key: ! Returns a key that relates to the log entry code and target operation. This combines the log name with the request root and numeric IDs stripped, with the operation when available. ### LogItem [WARNING] Log lines are intended for internal analysis and debugging. They are not available for external developers to consume. Represents a single entry in the operation log for the query. **Fields**: ### info: ! The kind, key, text and timing information for the entry in a single field, for convenience. ### kind: ! Kind of operation referred by this log entry. ### key: ! Key for the operation that generated this log entry. ### text: ! Text for the log entry. ### start: Start time for the operation in the log entry. ### end: End time for the operation in the log entry. ### delta: ! Delta in seconds for the operation start from the query start. ### duration: ! Duration in seconds for the operation. ### lines(filter:) : [!]! The log entry text and/or data split by lines. **Arguments**: ### filter: Empty to return the log entry text and default data (i.e. unnamed data). If provided, will return lines for the given data filter. In that case, this is a shortcut to querying: > data(filter:”some filter”) { lines } * **Default:** null ### data(filter:) : Additional data for the log entry. **Arguments**: ### filter: Filter the returned data by name. If this is empty, only the default (i.e. unnamed) data will be returned. This supports wildcard \* characters to match anything. If the wildcard follows a dot (i.e. .\*) the dot is made optional (e.g. name.\* will match both name and name.child). * **Default:** null ### json(filter:) : Additional data for the log entry as JSON. This is a shortcut for querying: > data(filter:”some filter”) { json } This is null if the given data cannot be converted to JSON. **Arguments**: ### filter: This is the filter to apply for the data (see data field for details). * **Default:** null ### allData: [!]! Return all data items for the entry. ### LogItemData [WARNING] Log lines are intended for internal analysis and debugging. They are not available for external developers to consume. Data entry for a LogItem. **Fields**: ### name: ! Name for this entry. This can be used with LogItem.data and LogData.lines. ### text: ! Raw data for the entry. ### lines: [!] Text for the entry split by lines. ### json: Text for the entry converted to a JSON value, or null if cannot be converted. ### LogRoot **Fields**: ### events: [!]! Log events. ### Metric Contains reporting metric data for attributions, deliveries, segment deliveries and emails. **Fields**: ### date: Date for this particular metric data. This is empty for summaries. ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### audienceSizeNew: ### audienceSizeTotal: ### newVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitors instead. The number of unique new visitors who came to your site after viewing a prospecting ad. ### engagedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitors instead. The number of unique new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### bouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed one page and left your site after viewing a prospecting ad. ### nonBouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed more than one page after viewing a prospecting ad. ### newVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitorCost instead. The cost for each unique new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / newVisitors ### engagedVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitorCost instead. The cost for each unique new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / engagedVisitors ### bounceRate: This field has been deprecated as metrics for it are no longer available and it will always be NULL. The percentage of new visitors who have only viewed one page and left your site after viewing a prospecting ad. Bounce Rate (%) = bouncedVisitors / newVisitors \* 100. ### dailyNewVisitors: The number of daily new visitors who came to your site after viewing a prospecting ad. ### dailyReturnVisitors: The number of daily new visitors who return to your site after viewing a prospecting ad. ### dailyEngagedVisitors: The number of daily new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### dailyBounceRate: The percentage of daily new visitors who have only viewed one page and left your site after viewing a prospecting ad. ### dailyNewVisitorCost: The cost for each daily new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / dailyNewVisitors ### dailyEngagedVisitorCost: The cost for each daily new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / dailyEngagedVisitors ### sends: Number of emails sent by a campaign. ### opens: Number of unique-by-session email opens collected for a campaign. WARNING: this field is deprecated, please use “emailUniqueOpen” instead. To ease up the transition this field will still be available, but always return null. ### openRate: WARNING: this field is deprecated, please use “emailUniqueOpenRate”. To ease up the transition this field will still be available, but always return null. ### emailScheduled: ! Total emails scheduled to be sent as part if this campaign. ### emailSentUnconfirmed: ! Total emails attempted to be sent. ### emailBounced: ! Deliveries that were rejected by the recipient's email service provider. ### emailSentConfirmed: ! Total emails confirmed to have been sent by the Email Service Provider. ### emailDeliveryRate: ! The percent of emails that have been confirmed to be delivered, over the send attempts. ### emailMarkedSpam: ! Recipients who report your emails as spam. ### emailUniqueMarkedSpam: ! Recipients who report your emails as spam, uniqued. ### emailUniqueOpen: ! When an email is opened by a user in its lifetime. ### emailUniqueOpenRate: ! The percent of sent emails that are opened once in a user's lifetime. ### emailUniqueClick: ! The number of times a link in an email was clicked once in a user's lifetime. ### emailUniqueClickRate: ! The percentage of emails opened that were clicked once in a user's lifetime. ### emailUniqueUnsubscribers: ! Recipients that unsubscribe from the email list, uniqued. ### emailUniqueUnsubscribeRate: ! The percent of recipients that have unsubscribers (unique) over the number of confirmed to be deliveries. ### emailUnsubscribers: ! Recipients that unsubscribe from the email list ### emailUniqueClicksByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email was clicked once in a user's lifetime broken out by ISO-2 country code ### emailUniqueOpensByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by ISO-2 country code ### emailUniqueClicksByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times a link in an email was clicked once in a user's lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueOpensByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueClicksByXpathUrl: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Unique clicks by xpath;url present in an email message The key ; consists in 2 parts: 1. A XPath locator to the individual element that was clicked in the email message, based on a HTML5-compliant tree. 2. URL or macro: either a static URL that was clicked present in the email template or, the macro used to generate the URL. Eg.: {{product.url}}. Useful to identify links generated for the same intent, but it might show differently for emailed contacts. In the future we may break this out to seperate metrics ### smsSentDelivered: ! Total number of SMS messages that were delivered (and confirmed by the recipient) ### smsClicks: ! Total number of times that a link in the SMS message was clicked. ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### frequency: ! Number of ads seen per day by reached users (only applies to WEB campaigns) Frequency = total impressions/reached users ### deviceFrequency: ! Number of ads seen per day by reached devices (only applies to CTV campaigns) Device Frequency = total impressions/reached devices ### totalUniqueHHsReached: Number of distinct households that received CTV impressions on a given day ### uniqueHHSiteVisits: Number of distinct households that visited the site, after viewing an ad ### customMetric(formula:) : ! [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Usage: - Operators: ‘+’, ‘-’, ‘\*’, ‘/’ and parentheses () are valid Requires formula to have space-seperated operand and operators. e.g. costPerImpression: customMetric(formula: “cost / impressions”) **Arguments**: ### formula: ### MetricAggregateResult Groups reporting metric data in summary and by date format. This is the result of the metricsTotal field. See the root metricsTotal field in Query for documentation. **Fields**: ### summary: ! Summarizes the reporting data for the given date range. ### byDate: [!]! Reporting data by date in the given range. ### MetricCountry Contains reporting metric data for country **Fields**: ### date: Date for this particular metric data. This is empty for summaries. ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### MetricCountryResult Groups reporting metric data for the country in summary and by date format. **Fields**: ### country: ! The country this metric pertains to. ### countryCode: ! ISO-2 country code ### summary: ! Summarizes the reporting data for the given date range. ### byDate: [!]! Reporting data by date in the given range. ### MetricDomain Contains reporting metric data for the domain. **Fields**: ### date: Date for this particular metric data. This is empty for summaries. ### impressions: ! The sum of the number of ad impressions on the domain. ### clicks: ! The sum of clicks of ads on the domain. ### cost: ! Cost associated to displaying ads on the domain. ### cpm: ! Cost per mille. Cost per one thousand ad serves on the domain. CPM ($) = Spend / Impressions \* 1000 ### ctr: ! Click-through rate. The percentage of ad serves that were clicked on the domain. CTR (%) = Clicks / Impression \* 100 ### MetricDomainResult Groups reporting metric data for the domain in summary and by date format. **Fields**: ### domain: ! The domain this metric pertains to. ### summary: ! Summarizes the reporting data for the given date range. ### byDate: [!]! Reporting data by date in the given range. ### MetricForAdvertisable Contains advertisable level reporting metric data for attributions, deliveries, segment deliveries and emails. **Fields**: ### date: Date for this particular metric data. This is empty for summaries. ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### audienceSizeNew: ### audienceSizeTotal: ### newVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitors instead. The number of unique new visitors who came to your site after viewing a prospecting ad. ### engagedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitors instead. The number of unique new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### bouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed one page and left your site after viewing a prospecting ad. ### nonBouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed more than one page after viewing a prospecting ad. ### newVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitorCost instead. The cost for each unique new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / newVisitors ### engagedVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitorCost instead. The cost for each unique new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / engagedVisitors ### bounceRate: This field has been deprecated as metrics for it are no longer available and it will always be NULL. The percentage of new visitors who have only viewed one page and left your site after viewing a prospecting ad. Bounce Rate (%) = bouncedVisitors / newVisitors \* 100. ### dailyNewVisitors: The number of daily new visitors who came to your site after viewing a prospecting ad. ### dailyReturnVisitors: The number of daily new visitors who return to your site after viewing a prospecting ad. ### dailyEngagedVisitors: The number of daily new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### dailyBounceRate: The percentage of daily new visitors who have only viewed one page and left your site after viewing a prospecting ad. ### dailyNewVisitorCost: The cost for each daily new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / dailyNewVisitors ### dailyEngagedVisitorCost: The cost for each daily new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / dailyEngagedVisitors ### sends: Number of emails sent by a campaign. ### opens: Number of unique-by-session email opens collected for a campaign. WARNING: this field is deprecated, please use “emailUniqueOpen” instead. To ease up the transition this field will still be available, but always return null. ### openRate: WARNING: this field is deprecated, please use “emailUniqueOpenRate”. To ease up the transition this field will still be available, but always return null. ### emailScheduled: ! Total emails scheduled to be sent as part if this campaign. ### emailSentUnconfirmed: ! Total emails attempted to be sent. ### emailBounced: ! Deliveries that were rejected by the recipient's email service provider. ### emailSentConfirmed: ! Total emails confirmed to have been sent by the Email Service Provider. ### emailDeliveryRate: ! The percent of emails that have been confirmed to be delivered, over the send attempts. ### emailMarkedSpam: ! Recipients who report your emails as spam. ### emailUniqueMarkedSpam: ! Recipients who report your emails as spam, uniqued. ### emailUniqueOpen: ! When an email is opened by a user in its lifetime. ### emailUniqueOpenRate: ! The percent of sent emails that are opened once in a user's lifetime. ### emailUniqueClick: ! The number of times a link in an email was clicked once in a user's lifetime. ### emailUniqueClickRate: ! The percentage of emails opened that were clicked once in a user's lifetime. ### emailUniqueUnsubscribers: ! Recipients that unsubscribe from the email list, uniqued. ### emailUniqueUnsubscribeRate: ! The percent of recipients that have unsubscribers (unique) over the number of confirmed to be deliveries. ### emailUnsubscribers: ! Recipients that unsubscribe from the email list ### emailUniqueClicksByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email was clicked once in a user's lifetime broken out by ISO-2 country code ### emailUniqueOpensByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by ISO-2 country code ### emailUniqueClicksByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times a link in an email was clicked once in a user's lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueOpensByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueClicksByXpathUrl: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Unique clicks by xpath;url present in an email message The key ; consists in 2 parts: 1. A XPath locator to the individual element that was clicked in the email message, based on a HTML5-compliant tree. 2. URL or macro: either a static URL that was clicked present in the email template or, the macro used to generate the URL. Eg.: {{product.url}}. Useful to identify links generated for the same intent, but it might show differently for emailed contacts. In the future we may break this out to seperate metrics ### smsSentDelivered: ! Total number of SMS messages that were delivered (and confirmed by the recipient) ### smsClicks: ! Total number of times that a link in the SMS message was clicked. ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### frequency: ! Number of ads seen per day by reached users (only applies to WEB campaigns) Frequency = total impressions/reached users ### deviceFrequency: ! Number of ads seen per day by reached devices (only applies to CTV campaigns) Device Frequency = total impressions/reached devices ### totalUniqueHHsReached: Number of distinct households that received CTV impressions on a given day ### uniqueHHSiteVisits: Number of distinct households that visited the site, after viewing an ad ### siteBounceRate: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngaged: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCart: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCartNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteConverters: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteConvertersNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteReturningVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteReturningVisitorsNot: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### convCountImpRate01: ! Number of converters who saw an average of 0-1 ads/day in the last 30 days. ### convCountImpRate12: ! Number of converters who saw an average of 1-2 ads/day in the last 30 days. ### convCountImpRate23: ! Number of converters who saw an average of 2-3 ads/day in the last 30 days. ### convCountImpRate34: ! Number of converters who saw an average of 3-4 ads/day in the last 30 days. ### convCountImpRate4: ! Number of converters who saw an average of 4+ ads/day in the last 30 days. ### nonConvCountImpRate01: ! Number of non-converters who saw an average of 0-1 ads/day in the last 30 days. ### nonConvCountImpRate12: ! Number of non-converters who saw an average of 1-2 ads/day in the last 30 days. ### nonConvCountImpRate23: ! Number of non-converters who saw an average of 2-3 ads/day in the last 30 days. ### nonConvCountImpRate34: ! Number of non-converters who saw an average of 3-4 ads/day in the last 30 days. ### nonConvCountImpRate4: ! Number of non-converters who saw an average of 4+ ads/day in the last 30 days. ### customMetric(formula:) : ! [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Usage: - Operators: ‘+’, ‘-’, ‘\*’, ‘/’ and parentheses () are valid Requires formula to have space-seperated operand and operators. e.g. costPerImpression: customMetric(formula: “cost / impressions”) **Arguments**: ### formula: ### MetricForCampaign Contains campaign level reporting metric data for attributions, deliveries, segment deliveries and emails. **Fields**: ### date: Date for this particular metric data. This is empty for summaries. ### impressions: The sum of the number of ad impressions. ### clicks: The sum of clicks of all kinds of ads and emails. ### cost: Cost associated to all kinds of ads and emails. ### conversions: Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. To get the noise from ARA click-throughs, take the square root of araClickThroughsVariance. ### viewThroughs: View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. To get the noise from ARA view-throughs, take the square root of araViewThroughsVariance. ### revenue: Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. To get the noise from ARA click-throughs, subtract araClickRevenueMin from araClickRevenueMax. ### viewRevenue: View-Attributed Revenue. Total earnings when someone views your ad and converts. To get the noise from ARA view-throughs, subtract araViewRevenueMin from araViewRevenueMax. ### ctr: Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: Alias for ‘roas’. ### clickROI: Alias for ‘clickROAS’. ### viewROI: Alias for ‘viewROAS’. ### influencedThroughs: Influenced Conversions. A conversion touched or assisted by an ad but not attributed due to the current attribution model. ### influencedRevenue: Influenced Revenue. Revenue touched or assisted by an ad but not attributed due to the current attribution model. ### audienceSizeNew: ### audienceSizeTotal: ### newVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitors instead. The number of unique new visitors who came to your site after viewing a prospecting ad. ### engagedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitors instead. The number of unique new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### bouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed one page and left your site after viewing a prospecting ad. ### nonBouncedVisitors: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Visitors who have only viewed more than one page after viewing a prospecting ad. ### newVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyNewVisitorCost instead. The cost for each unique new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / newVisitors ### engagedVisitorCost: This field has been deprecated as metrics for it are no longer available and it will always be NULL. Use dailyEngagedVisitorCost instead. The cost for each unique new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / engagedVisitors ### bounceRate: This field has been deprecated as metrics for it are no longer available and it will always be NULL. The percentage of new visitors who have only viewed one page and left your site after viewing a prospecting ad. Bounce Rate (%) = bouncedVisitors / newVisitors \* 100. ### dailyNewVisitors: The number of daily new visitors who came to your site after viewing a prospecting ad. ### dailyReturnVisitors: The number of daily new visitors who return to your site after viewing a prospecting ad. ### dailyEngagedVisitors: The number of daily new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad. ### dailyBounceRate: The percentage of daily new visitors who have only viewed one page and left your site after viewing a prospecting ad. ### dailyNewVisitorCost: The cost for each daily new visitor that came to your site after viewing a prospecting ad. New Visitor Cost = cost / dailyNewVisitors ### dailyEngagedVisitorCost: The cost for each daily new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad Engaged Visitor Cost = cost / dailyEngagedVisitors ### sends: Number of emails sent by a campaign. ### opens: Number of unique-by-session email opens collected for a campaign. WARNING: this field is deprecated, please use “emailUniqueOpen” instead. To ease up the transition this field will still be available, but always return null. ### openRate: WARNING: this field is deprecated, please use “emailUniqueOpenRate”. To ease up the transition this field will still be available, but always return null. ### emailScheduled: ! Total emails scheduled to be sent as part if this campaign. ### emailSentUnconfirmed: ! Total emails attempted to be sent. ### emailBounced: ! Deliveries that were rejected by the recipient's email service provider. ### emailSentConfirmed: ! Total emails confirmed to have been sent by the Email Service Provider. ### emailDeliveryRate: ! The percent of emails that have been confirmed to be delivered, over the send attempts. ### emailMarkedSpam: ! Recipients who report your emails as spam. ### emailUniqueMarkedSpam: ! Recipients who report your emails as spam, uniqued. ### emailUniqueOpen: ! When an email is opened by a user in its lifetime. ### emailUniqueOpenRate: ! The percent of sent emails that are opened once in a user's lifetime. ### emailUniqueClick: ! The number of times a link in an email was clicked once in a user's lifetime. ### emailUniqueClickRate: ! The percentage of emails opened that were clicked once in a user's lifetime. ### emailUniqueUnsubscribers: ! Recipients that unsubscribe from the email list, uniqued. ### emailUniqueUnsubscribeRate: ! The percent of recipients that have unsubscribers (unique) over the number of confirmed to be deliveries. ### emailUnsubscribers: ! Recipients that unsubscribe from the email list ### emailUniqueClicksByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email was clicked once in a user's lifetime broken out by ISO-2 country code ### emailUniqueOpensByCountry: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by ISO-2 country code ### emailUniqueClicksByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times a link in an email was clicked once in a user's lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueOpensByDeviceType: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Number of times an email is opened by a user in its lifetime, broken out by device type One of ‘pc’, ‘mobile’, ‘tablet’, ‘other’. ### emailUniqueClicksByXpathUrl: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Unique clicks by xpath;url present in an email message The key ; consists in 2 parts: 1. A XPath locator to the individual element that was clicked in the email message, based on a HTML5-compliant tree. 2. URL or macro: either a static URL that was clicked present in the email template or, the macro used to generate the URL. Eg.: {{product.url}}. Useful to identify links generated for the same intent, but it might show differently for emailed contacts. In the future we may break this out to seperate metrics ### smsSentDelivered: ! Total number of SMS messages that were delivered (and confirmed by the recipient) ### smsClicks: ! Total number of times that a link in the SMS message was clicked. ### videoImpressions: Impressions from video ads. ### videoViews: Number of times the video begun playing. ### videoTwentyFivePercent: Number of times at least 25% of the video duration was played. ### videoFiftyPercent: Number of times at least 50% of the video duration was played. ### videoSeventyFivePercent: Number of times at least 75% of the video duration was played. ### videoHundredPercent: Number of times the full video duration was played. ### videoCompletionRate: Video completion rate Video Completion Rate (x) = Video Viewed To 100% / Video Impressions ### frequency: ! Number of ads seen per day by reached users (only applies to WEB campaigns) Frequency = total impressions/reached users ### deviceFrequency: ! Number of ads seen per day by reached devices (only applies to CTV campaigns) Device Frequency = total impressions/reached devices ### totalUniqueHHsReached: Number of distinct households that received CTV impressions on a given day ### uniqueHHSiteVisits: Number of distinct households that visited the site, after viewing an ad ### siteBounceRate: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngaged: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteEngagedNewVisitors: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### siteAddToCart: [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. ### customMetric(formula:) : ! [ALPHA] This GraphQL field is currently under development and QA, please hold off from using it. It might change or be removed in the future, within this API’s version. Usage: - Operators: ‘+’, ‘-’, ‘\*’, ‘/’ and parentheses () are valid Requires formula to have space-seperated operand and operators. e.g. costPerImpression: customMetric(formula: “cost / impressions”) **Arguments**: ### formula: ### MetricResult Groups reporting metric data in summary and by date format. **Fields**: ### summary: ! Summarizes the reporting data for the given date range. ### byDate: [!]! Reporting data by date in the given range. ### Organization **Fields**: ### eid: ! EID of the organization. ### name: ! Name of the organization. ### createdDate: Created date for the organization. ### advertisables: [!]! Advertisables for the current organization. ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### OrganizationGroupData **Fields**: ### eid: ! EID of the organization. ### name: ! Name of the organization. ### createdDate: Created date for the organization. ### OrganizationQuery **Fields**: ### byEID(organization: !): Obtain an Organization by its unique identifier (EID). **Arguments**: ### organization: ! Organization EID. ### byEIDs(eids: [!]!): []! Obtain a list of Organizations by their unique identifiers (EID). **Arguments**: ### eids: [!]! List of Organization EIDs. ### current: Obtain the Organization the current user is part of. ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### PerformanceTarget **Fields**: ### metric: ! ### currencyCode: ! ### goal: ! ### Placement Contains reporting metric data for attributions, deliveries by placement. **Fields**: ### placement: ! Placement of the Ad in Facebook. For example ‘desktop’, ‘feed’… ### impressions: ! The sum of the number of ad impressions. ### clicks: ! The sum of clicks of all kinds of ads and emails. ### cost: ! Cost associated to all kinds of ads and emails. ### conversions: ! Conversions Total. Conversions (count) = View Conversions + Click Conversions ### clickThroughs: ! Click-through conversion (CTC). A goal completion that happens after someone clicks your ad. ### viewThroughs: ! View-through conversion (VTC). A goal completion that happens after someone views your ad, but does not click. ### revenue: ! Revenue (amount) = View Revenue + Click Conversions ### clickRevenue: ! Click-Attributed Revenue. Total earnings when someone clicks your ad and converts. ### viewRevenue: ! View-Attributed Revenue. Total earnings when someone views your ad and converts. ### ctr: ! Click-through rate. The percentage of ad serves that were clicked. CTR (%) = Clicks / Impression \* 100 ### cpc: ! Cost per click. Your average spend for one click. CPC ($) = Spend / Clicks ### cpm: ! Cost per mille. Cost per one thousand ad serves. CPM ($) = Spend / Impressions \* 1000 ### cpa: ! Cost per acquisition. Your average spend per conversion. CPA ($) = Spend / Conversions ### clickCPA: ! Cost-per-click acquisition. Your average spend for a conversion that happens after someone clicks your ad. Click CPA ($) = Spend / Click Conversions ### viewCPA: ! Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad. View CPA ($) = Cost / View Throughs ### averageOrderValue: ! Average Order Value Average revenue per attributed conversion. Average Order Value ($) = Attributed Revenue / Conversions ### ctcRate: ! Click-through conversion rate. The percentage of clicks that resulted in a click-through conversion. CTC Rate (%) = Click Conversions / Clicks \* 100 ### vtcRate: ! View-through conversion rate: The percentage of impressions that resulted in a view-through conversion. VTC Rate (%) = View Throughs / Impressions \* 100 ### roas: ! Return on advertising spend: Your profit per dollar spent on ads. ROAS (x) = (Click Revenue + View Revenue) / Cost ### clickROAS: ! Click return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad. Click ROAS (x) = Click Revenue / Cost ### viewROAS: ! View return on advertising spend: Your profit per dollar spent, generated from conversions that happen after someone views your ad. View ROAS (x) = View Revenue / Cost ### roi: ! Alias for ‘roas’. ### clickROI: ! Alias for ‘clickROAS’. ### viewROI: ! Alias for ‘viewROAS’. ### PlacementResult Groups reporting metric data in summary and by date format. **Fields**: ### byPlacement: [!]! Summarizes by placement the reporting data for the given date range. ### Query Root element for a Reporting API GraphQL’s query. **Fields**: ### flags(enableAdcrabLabels: !, enableKlaviyoFlowCampaigns: !, enableUniversalCampaigns: !, enableProxyCampaigns: !, enablePinterestCampaigns: !, enableTikTokCampaigns: !, enableGoogleSearchCampaigns: !, enableMultiChannelCampaigns: !, enableConnectedTVCampaigns: !, enableSMSCampaigns: !, enableObjectiveLedCampaigns: !, listOnlyInventoryForVoltronStrategies: !, useExperimentalProxyCampaigns: !, includeExpiredData: !, useAdrollAdsStatusOnlyEndpoint: !, useAdcrabDimensionsForSize: !, useOnlyCostMetricsUhura: !, stripNullValues: !, useSemanticLayer: !): ! Setup global request flags **Arguments**: ### enableAdcrabLabels: ! Include custom labels data for Ads. Labels are requested from the Adcrab API. For internal use only. * **Default:** false ### enableKlaviyoFlowCampaigns: ! Includes Flows for Klaviyo Email campaigns. The enableMultiChannelCampaigns flag must be enabled as well. For internal use only. * **Default:** false ### enableUniversalCampaigns: ! Enables or disables fetching Universal campaigns for advertisable and organization queries and filtering of inventory campaigns. This does not affect queries using EIDs. Note: The default value for this flag will be changed to true once universal campaign support is considered stable. * **Default:** false ### enableProxyCampaigns: ! Enables or disables fetching Proxy campaigns for advertisable and organization queries and filtering of inventory campaigns. This does not affect queries using EIDs. * **Default:** false ### enablePinterestCampaigns: ! Include experimental Pinterest Connected Ads campaigns. For internal use only. * **Default:** false ### enableTikTokCampaigns: ! Include experimental TikTok Connected Ads campaigns. For internal use only. * **Default:** false ### enableGoogleSearchCampaigns: ! Include experimental Google Search Connected Ads campaigns. For internal use only. * **Default:** false ### enableMultiChannelCampaigns: ! Include experimental MultiChannel Connected Ads campaigns. For internal use only. * **Default:** false ### enableConnectedTVCampaigns: ! Include experimental Connected TV Ads campaigns. * **Default:** false ### enableSMSCampaigns: ! Include experimental SMS campaigns. For internal use only. * **Default:** false ### enableObjectiveLedCampaigns: ! Even if not requested, enables or disables loading Ad Groups. Ad Group data is required for Objective Led Campaigns Targeting. For internal use only. * **Default:** false ### listOnlyInventoryForVoltronStrategies: ! > When enableProxyCampaigns or enableUniversalCampaigns is enabled, return just the inventory campaigns filtering out the top-level proxy or UC campaigns. Does not apply to Playbooks. > This flag is used by reports to avoid duplicating metric numbers > when both the top-level and inventory campaigns are included in the > results. * **Default:** false ### useExperimentalProxyCampaigns: ! For internal use only. Don’t use it, it will disappear soon with no warning. * **Default:** false ### includeExpiredData: ! Exclude data that is no longer relevant. When set to false it will: - Drop entities that were deleted more than 3 months ago. - Limit metric data to the last 3 years. * **Default:** true ### useAdrollAdsStatusOnlyEndpoint: ! When useAdrollAdsStatusOnlyEndpoint is enabled, only ads status data will be fetched. non-status-related field arguments such as ads(width=int) will not work given that this ad data will not be retrieved. * **Default:** false ### useAdcrabDimensionsForSize: ! When useAdcrabDimensionsForSize is enabled, width and height will be retrieved from AdCrab. * **Default:** false ### useOnlyCostMetricsUhura: ! When useOnlyCostMetricsUhura is enabled a only_cost_metrics flag will be added to the Uhura deliveries query Only campaign eids, advertisable eids, and cost metrics will be returned from the endpoint. This means that the deliveries query will not return any other metrics such as impressions, clicks, etc. This also means that the deliveries query will not return any adgroup or ad data, only campaign cost data. This was added to increase performance for large datasets where only cost metrics are needed. * **Default:** false ### stripNullValues: ! For Internal use only. When stripNullValues is enabled, null values will be removed from the response. * **Default:** false ### useSemanticLayer: ! For internal use only. When useSemanticLayer is enabled, it will instruct the reporting API to fetch data from an experimental semantic layer. This flag will be removed with no warning. * **Default:** false ### requestId: ! Unique ID for this request. This can be used to retrieve debugging and profiling info for the request. ### build: ! Reporting API build number and environment. ### organization: ! Root for querying Organizations. ### advertisable: ! Root for querying Advertisables. ### campaign: ! Root for querying Campaigns. ### adgroup: ! Root for querying Adgroups. ### ad: ! Root for querying Ads. ### automation: ! Root for querying Automation. ### email: ! Root for querying Emails. ### segment: Use the child Audiences of Campaigns and AdGroups instead. Root for querying Segments. ### group: [BETA] This GraphQL node is currently under development. Avoid its use in production until it has passed some thorough QA. Provides custom grouping in queries. ### user: ! Currently logged user. ### actualUser: ! Currently logged actual user. ### metricsTotal: Provides aggregation for any metrics in the current and child nodes. Note that this will not load the metrics by itself, instead it aggregates loaded metrics fields in its scope. For details see the documentation of MetricAggregateResult. ### accountMetrics: [ALPHA] This GraphQL node is currently under development Avoid its use in production until it has passed some thorough QA. Provides metrics per account for a list of campaigns and an advertisable, over a specific date range. It will return the metrics for the top 1000 accounts by spend. ### log: [!]! [WARNING] Log lines are intended for internal analysis and debugging. They are not available for external developers to consume. Return log entries for the current query. ### logSchema: [!]! [WARNING] Log lines are intended for internal analysis and debugging. They are not available for external developers to consume. Return log messages generated by the schema compilation. ### queryLog: Available only for internal developers. ### Segment **Fields**: ### eid: ! The Segment EID. ### name: ! The Segment Name. ### duration: ! The Segment’s duration in days. ### isActive: ! False if the segment has been deleted. ### isConversion: ! True if this is a conversion segment. ### type: ! Segment type. ### tags: ! Tags explicitly assigned to the segment. ### conversionValue: ! The value of a conversion from this segment. ### currency: ! The value of a conversion from this segment. Default to the Advertisable’s currency. ### description: ! Pieces to build the Segment’s description formatted following the type. ### product: Product the segment belongs to. ### SegmentGroupData **Fields**: ### eid: ! The Segment EID. ### name: ! The Segment Name. ### duration: ! The Segment’s duration in days. ### isActive: ! False if the segment has been deleted. ### isConversion: ! True if this is a conversion segment. ### type: ! Segment type. ### tags: ! Tags explicitly assigned to the segment. ### conversionValue: ! The value of a conversion from this segment. ### currency: ! The value of a conversion from this segment. Default to the Advertisable’s currency. ### description: ! Pieces to build the Segment’s description formatted following the type. ### product: Product the segment belongs to. ### SegmentQuery **Fields**: ### byEID(segment: !): [WARNING] Fetching Segments directly through this operation will ignore the overrides and state provided by its relationship to an AdGroup. For a complete state fetch segments as children of Campaigns or AdGroups. **Arguments**: ### segment: ! Resolves a Segment by its EID. ### byEIDs(eids: [!]!): []! [WARNING] Fetching Segments directly through this operation will ignore the overrides and state provided by its relationship to an AdGroup. For a complete state fetch segments as children of Campaigns or AdGroups. **Arguments**: ### eids: [!]! Resolves multiple Segments by their EID. ### byAdvertisable(advertisable: !, isActive: , isConversion:) : []! [WARNING] Fetching Segments directly through this operation will ignore the overrides and state provided by its relationship to an AdGroup. For a complete state fetch segments as children of Campaigns or AdGroups. **Arguments**: ### advertisable: ! Required advertisable EID. ### isActive: If True, only active segments will be returned, and vice versa (Optional; default: False) ### isConversion: If True, only conversion segments will be returned (Optional; default: False). ### User Provides information about a logged user. **Fields**: ### eid: ! User EID. ### isActive: ! Is the user active? ### status: ! User’s status. ### email: ! User’s email. ### userName: ! User’s login name. ### name: ! Full user name ### firstName: ! User’s first name. ### lastName: ! User’s last name. ### advertisables: [!] List of user advertisables. ### organization: ! The organization the user belongs to. ### locale: ! User’s locale. ### defaultTimezone: ! Default timezone for the user. ### createdDate: Date the user was created. ### role: ! User’s role. ### hasPermission(name:) : ! Is true if the user has the given permission. **Arguments**: ### name: ### permissions: [!] Full list of user’s permissions. ### isInternal: ! Is true if the user is considered an internal user. This is based on the user’s permissions. ### UtmBasedConversionsForAdvertisable Contains advertisable-level UTM-based conversions data. **Fields**: ### utm: ! ### aov: ! ### assistConversions: ! ### assistRevenue: ! ### assistAov: ! ### conversions: ! ### revenue: ! ### campaigns: [!]! Campaign level data. ### UtmBasedConversionsForCampaign Contains campaign-level UTM-based conversions data. **Fields**: ### campaignEID: ### utm: ! ### aov: ! ### assistConversions: ! ### assistRevenue: ! ### assistAov: ! ### conversions: ! ### revenue: ! ## Scalars Scalars represent primitive types and cannot have fields. ### List - [`Boolean`](#Boolean) - [`Date`](#Date) - [`DateTime`](#DateTime) - [`Decimal`](#Decimal) - [`Float`](#Float) - [`ID`](#ID) - [`Int`](#Int) - [`JSON`](#JSON) - [`String`](#String) ### Descriptions ### Boolean The Boolean scalar type represents true or false. ### Date Scalar type for dates. ### DateTime Scalar type for dates with time information. ### Decimal Scalar type for decimal numeric values. ### Float The Float scalar type represents signed double‐precision fractional values as specified by IEEE 754. ### ID The ID scalar type represents a unique identifier, often used to refetch an object or as the key for a cache. ### Int The Int scalar type represents a signed 32‐bit numeric non‐fractional value. ### JSON Scalar type for arbitrary JSON data. ### String The String scalar type represents textual data, represented as UTF‐8 character sequences. # support.html.md # Support ## Technical Request Got a technical question? Need help with the NextRoll API? Send us a request by [opening a support ticket](https://help.adroll.com/hc/en-us/requests/new). Make sure to select *API Issue* in the *Issue* field. Please include as much information as possible. A detailed request might include: - What you’re trying to achieve (i.e. I want to generate a report of campaign performance) - What environment you’re using (i.e. I’m writing a Python script using the *requests* library) - Relevant application logs - A capture of the HTTP requests and their responses (including all headers) - Sample code that you’re reproduces the issue (plain text attachments are best) #### NOTE Make sure to not send passwords in your code samples ## Rate limit increase If you frequently run into rate limits when creating your applications (HTTP [429 Too Many Requests](https://www.rfc-editor.org/rfc/rfc6585#section-4) statuses), you can request an increase to your limit. Please fill out our [rate limit increase request form](https://docs.google.com/forms/d/e/1FAIpQLSccdzxBoB_BHfAzkjoz9tc_gCPXsniGXcgYNMFvPXMRxS17uA/viewform). Once your request has been received, we’ll review it and respond by email. # tal.html.md # Target Account List Examples > ##### Examples on this page: > > * [List all Target Account Lists](#list-all-target-account-lists) > * [List all accounts in a Target Account List](#list-all-accounts-in-a-target-account-list) > * [Add new accounts to a Target Account List](#add-new-accounts-to-a-target-account-list) > * [Remove accounts from a Target Account List](#remove-accounts-from-a-target-account-list) ## List all Target Account Lists [`GET /audience/v1/target_accounts`](../reference.md#get--audience-v1-target_accounts) **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/audience/v1/target_accounts?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID" ``` **Response**: ```javascript { "results": [ { "advertisable_eid": "MY_ADVERTISABLE_EID", "eid": "TARGET_ACCOUNT_LIST_EID", "items_count": 10000, "name": "Top 10K", "scoring_at": "2019-07-01T16:34:27.448382+00:00", "scoring_auc": 0.99100798368454, "scoring_by_user_eid": "USER_EID", "scoring_filename": "top-1k-domains.csv", "scoring_grades": { "A": { "threshold": 30, "items_count": 468, "min_item": { "domain": "theglobeandmail.com", "score": 0.999897 } }, "C": { "threshold": 85, "items_count": 365, "min_item": { "domain": "reshet.tv", "score": 0.939022 } }, "B": { "threshold": 80, "items_count": 2057, "min_item": { "domain": "makeagif.com", "score": 0.973098 } }, "D": { "threshold": 95, "items_count": 2696, "min_item": { "domain": "profiles.google.com", "score": 0.029493 } }, "F": { "threshold": 100, "items_count": 2562, "min_item": null }, "unscored_count": 1852, "scored_count": 8148 }, "scoring_holdout1_model_id": null, "scoring_holdout1_retries": 0, "scoring_holdout1_status": null, "scoring_holdout2_model_id": null, "scoring_holdout2_retries": 0, "scoring_holdout2_status": null, "scoring_holdout3_model_id": null, "scoring_holdout3_retries": 0, "scoring_holdout3_status": null, "scoring_holdout4_model_id": null, "scoring_holdout4_retries": 0, "scoring_holdout4_status": null, "scoring_holdout5_model_id": null, "scoring_holdout5_retries": 0, "scoring_holdout5_status": null, "scoring_items_count": 862, "scoring_items_pending": true, "scoring_model_id": "f3f3e5cd-d606-4033-93cd-10c1af2cc232", "scoring_production_model_id": null, "scoring_production_retries": 0, "scoring_production_status": null, "scoring_status": "complete", "sfdc_company_list_name": null, "sfdc_company_list_object_id": null, "sfdc_create_accounts": false, "sfdc_initial_pull_pending": null, "sfdc_scoring_company_list_name": null, "sfdc_scoring_company_list_object_id": null, "sfdc_sync_state": "none", "sfdc_synced_at": null, "sfdc_train_pending": null, "suggestions_count": 2955, "tiers": [ { "eid": "all", "items_count": 10000, "tal_eid": "TARGET_ACCOUNT_LIST_EID" }, { "items_count": 9998, "eid": "untiered", "name": null, "tal_eid": "TARGET_ACCOUNT_LIST_EID" }, { "items_count": 2, "eid": "TARGET_ACCOUNT_GROUP_EID", "name": "UCLA", "tal_eid": "TARGET_ACCOUNT_LIST_EID" } ], "updated_at": "2019-09-16T13:28:43.678412+00:00", "updated_by_user_eid": null } ] } ``` ## List all accounts in a Target Account List [`GET /audience/v1/target_accounts`](../reference.md#get--audience-v1-target_accounts) **Request**: ```shell curl -H 'Authorization: Token YOUR_TOKEN' \ "https://services.adroll.com/audience/v1/target_accounts/TARGET_ACCOUNT_LIST_EID/tiers/all/items?apikey=MYAPIKEY&advertisable_eid=MY_ADVERTISABLE_EID" ``` **Response**: ```javascript { "total_items": 10000, "results": [ { "domain": "000webhost.com", "updated_at": "2019-07-01T16:58:26.701943+00:00", "source": "user_uploaded", "score": 0.99998, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "007.com", "updated_at": "2019-07-01T16:58:26.701943+00:00", "source": "user_uploaded", "score": 0.146781, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "013.nl", "updated_at": "2019-07-01T16:58:26.701943+00:00", "source": "user_uploaded", "score": 0.012467, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "01.ibm.com", "updated_at": "2019-07-01T16:57:59.552388+00:00", "source": "user_uploaded", "score": null, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "01net.com", "updated_at": "2019-07-01T16:58:26.701943+00:00", "source": "user_uploaded", "score": 0.999756, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "03.ibm.com", "updated_at": "2019-07-01T16:57:59.552388+00:00", "source": "user_uploaded", "score": null, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "0.gravatar.com", "updated_at": "2019-07-01T16:57:59.552388+00:00", "source": "user_uploaded", "score": null, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "1001fonts.com", "updated_at": "2019-07-01T16:58:26.701943+00:00", "source": "user_uploaded", "score": 0.682038, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "1001tracklists.com", "updated_at": "2019-07-01T16:58:26.701943+00:00", "source": "user_uploaded", "score": 0.869826, "sfdc_account_id": null, "sfdc_synced_at": null }, { "domain": "101wkqx.com", "updated_at": "2019-07-01T16:58:26.701943+00:00", "source": "user_uploaded", "score": 0.006115, "sfdc_account_id": null, "sfdc_synced_at": null } ] } ``` ## Add new accounts to a Target Account List [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](../reference.md#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) **Request**: ```shell curl -X POST -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{"items":[{"domain":"new_domain.com"}]}' \ "https://services.adroll.com/audience/v1/target_accounts/TARGET_ACCOUNT_LIST_EID/tiers/all/items?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID" ``` **Response**: ```javascript { "existing_domains": [], "new_domains": [ "new_domain.com" ] } ``` ## Remove accounts from a Target Account List [`DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](../reference.md#delete--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) **Request**: ```shell curl -X DELETE -H 'Authorization: Token YOUR_TOKEN' \ -H "Content-Type: application/json" \ -d '{"domains":["new_domain.com"]}' \ "https://services.adroll.com/audience/v1/target_accounts/TARGET_ACCOUNT_LIST_EID/tiers/all/items?apikey=MYAPIKEY&advertisable=MY_ADVERTISABLE_EID" ``` **Response**: The response is going to be empty with HTTP status code 204 (NO CONTENT) # target-account-lists.html.md # Manage Target Account Lists This guide is for AdRoll ABM customers or partners that are interested in managing their Target Account Lists (TAL) via the NextRoll Audience API. By managing your TAL via the API, you can enable cross-channel orchestration: - Push your list of Accounts from AdRoll ABM into a complementary platform that enables personalized experiences - Pull a dynamic list of accounts into AdRoll ABM to advertise to accounts that are showing high intent ## Get to know Target Account Lists Target Account Lists have a simple object structure. It’s best introduced visually: ![Diagram of Target Account List object structure](guides/img/target-account-list-model-hierarchy.svg) A *Target Account List* (TAL) is used in Account-Based Marketing and represents your current accounts or prospects. A *Tier* is an *Account Group* and is used to group similar Accounts. An *Item* is an *Account* that is a prospective or current customer. An Advertisable can have multiple Target Account Lists, with each TAL organized into multiple Account Groups. An Account can exist in multiple TALs, but only in a single Account Group per TAL. So, for example, two Account Groups in a TAL won’t have overlapping Accounts. ## Retrieve all Target Account Lists To retrieve the Target Account Lists (TAL) in your Advertisable, call to [`GET /audience/v1/target_accounts`](../audience-api/reference.md#get--audience-v1-target_accounts). ## Retrieve the Accounts in a Target Account List Target Account Lists (TAL) contain one or more Tiers (aka Account Groups), so you’ll first need to retrieve the list of Tiers. This is done by calling [`GET /audience/v1/target_accounts/(tal_eid)/tiers`](../audience-api/reference.md#get--audience-v1-target_accounts-(tal_eid)-tiers). There are at least two Tiers in each TAL that you can query using a special Tier ID: `all` : Includes all Items in the TAL, even if the Item is in another list `untiered` : Contains Items that aren’t assigned to any other Tier Once you have a Tier EID, you can retrieve the list of Items (aka Accounts) within the Tier. The list of Items can be long, so the endpoint supports pagination using the `limit` and `offset` query parameters. [`GET /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](../audience-api/reference.md#get--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) ## Add an Account to a Target Account List Target Account Lists (TAL) are organized into one or more Tiers (aka Account Groups), so you’ll first need to retrieve the list of Tiers. This is done by calling [`GET /audience/v1/target_accounts/(tal_eid)/tiers`](../audience-api/reference.md#get--audience-v1-target_accounts-(tal_eid)-tiers). Once you have a Tier EID, you can add the Account by calling [`POST /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](../audience-api/reference.md#post--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items). The request body looks like: ```json { "items": [ { "domain": "example1.com", }, { "domain": "example2.com", } ] } ``` ## Remove an Account from a Target Account List Target Account Lists (TAL) are organized into one or more Tiers (aka Account Groups), so you’ll first need to retrieve the list of Tiers. This is done by calling [`GET /audience/v1/target_accounts/(tal_eid)/tiers`](../audience-api/reference.md#get--audience-v1-target_accounts-(tal_eid)-tiers). Once you have a Tier EID, you can remove one or more Accounts by calling [`DELETE /audience/v1/target_accounts/(tal_eid)/tiers/(ta_tier_eid)/items`](../audience-api/reference.md#delete--audience-v1-target_accounts-(tal_eid)-tiers-(ta_tier_eid)-items) The request looks like: ```json { "domains": [ "example1.com", "example2.com" ] } ```