AdRoll GraphQL Reporting API Schema

Warning

The GraphQL Reporting is in beta and the schema may change. Currently only campaign-level data is stable, all other data may be unstable. If you have questions or feedback, please contact the API team.

Objects

Objects represent a set of fields.

Descriptions

Fields:

eid: String!

EID of the ad.

adFormatID: Int!

The id of the corresponding ad format in the AdRoll system.

adFormat: String!

Format string. i.e. ‘300 wide x 250 high’.

adFormatName: String!

Format string. i.e. ‘300x250’.

advertisable: String!

The EID of the advertisable to which this ad belongs.

adgroups: JSON!

The list of adgroup EIDs that this ad belongs to.

hasFutureCampaigns: Boolean!

Whether or not this ad has the possiblity of serving based on the adgroups and campaigns in which it inhabits.

destinationURL: String!

The URL that the browser will navigate to when this ad is clicked.

headline: String!

For Facebook ads, the text to be displayed as the ad’s headline.

body: String!

For Facebook ads, the text to be displayed as the ad’s body.

message: String!

For Facebook Newsfeed ads, the text to be displayed as the ad’s message.

isActive: Boolean!

Whether or not this ad is currently active.

name: String!

The name of this ad.

src: String!

This ad’s creative’s source URL.

status: String!

One of ‘approved’, ‘paused’, ‘review’, ‘daft’, ‘rejected’ or ‘deleted’.

type: String!

The ad type: ‘liquid’, ‘image’, ‘flash’ or ‘ad_network’.

height: Int!

The height in pixels of this ad’s creative.

width: Int!

The width in pixels of this ad’s creative.

createdDate: DateTime!

The date this ad was created.

updatedDate: DateTime!

The date this ad was last updated.

hasEdits: Boolean!

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: Boolean!

Whether or not this ad has edits that must be reviewed by an AdRoll administrator.

originalAd: String!

The EID of the ad that was edited to create this ad.

isOutlined: Boolean!

Whether or not an outline has been applied to the ad to satisfy network compliancy.

outlineColor: String!

Hexadecimal color code corresponding to the outline of an ad.

validClicktag: Boolean!

If the ad is in flash format, this is the flag showing whether or not the clickTAG is compliant.

Facebook permalink if applicable.

Instagram permalink if applicable.

channel: String!

The channel for the campaign this ad belongs to. This is only available when loading the ads through a campaign.

adrollEID: String!

The adroll EID for prospecting ads.

inAdgroupEID: String!

The AdGroup’s EID in the AdGroupAd relationship, if listed inside an AdGroup.

inAdgroupIsActive: Boolean!

True of the AdGroupAd relationship is active, if listed inside an AdGroup.

inAdgroupStatus: String!

The status of the AdGroupAd relationship, if listed inside an AdGroup.

inAdgroupRelationshipEID: String!

The the internal EID of the AdGroupAd relationship, if such a EID exists and if the ad is listed inside an AdGroup.

metrics(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): MetricResult!

Metrics for the Ad.

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
conversions(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): ConversionResult!

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
AdQuery

Fields:

byEID(ad: String!): Ad

Resolves an Ad by its EID. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

ad: String!

EID of the Ad.

byEIDs(eids: [String!]!): [Ad]!

Resolves Ads by their EIDs. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

eids: [String!]!
byAdvertisable(advertisable: String!, isActive: Boolean, statuses: [String!], types: [String!], width: Int, height: Int): [Ad]!

Resolves all Ads for an Advertisable. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

advertisable: String!

The EID of the advertisable whose ads are to be fetched

isActive: Boolean

If True, only active ads will be returned, and vice versa (Optional; default: True)

statuses: [String!]

Only ads that match one of these statuses will be returned (Optional; default: None)

Default:[]
types: [String!]

Only ads that match one of these types will be returned (Optional; default: None)

Default:[]
width: Int

Only ads having the specified width will be returned (Optional; default: None)

Default:0
height: Int

Only ads having the specified height will be returned (Optional; default: None)

Default:0
byAdgroup(adgroup: String!, isActive: Boolean, statuses: [String!], types: [String!], width: Int, height: Int): [Ad]!

Resolves all Ads for an AdGroup. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

adgroup: String!

The EID of the Adgroup whose ads are to be fetched

isActive: Boolean

If True, only active ads will be returned, and vice versa (Optional; default: True)

statuses: [String!]

Only ads that match one of these statuses will be returned (Optional; default: None)

Default:[]
types: [String!]

Only ads that match one of these types will be returned (Optional; default: None)

Default:[]
width: Int

Only ads having the specified width will be returned (Optional; default: None)

Default:0
height: Int

Only ads having the specified height will be returned (Optional; default: None)

Default:0
metricsTotal: MetricAggregateResult!

[ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

For documentation see the root metricsTotal field in Query.

Adgroup

Fields:

eid: String!

The EID of the adgroup.

adOptimization: String!

The strategy used to optimize ads when multiple ads fit a single ad space.

campaign: String!

The EID of the campaign that this adgroup is associated with.

isActive: Boolean!

Whether or not this adgroup is currently active.

name: String!

The name of this adgroup.

status: String!

One of ‘approved’, ‘paused’, ‘daft’, ‘rejected’ or ‘deleted’.

createdDate: DateTime!

The date this adgroup was created.

updatedDate: DateTime!

The date this adgroup was last updated.

segments: JSON!

A list of dictionaries for the segments attached to the adgroup. Each entry has ‘id’ and ‘is_negative’ fields.

siteExclusions: JSON!

The list of excluded domains for the adgroup, with ad format information, if any.

platformTargets: JSON!

A list of dictionaries for the adgroup’s platform targets..

placementTargets: JSON!

A list of strings for an adgroup’s placement targets. Each entry can have a value of ‘all’, ‘newsfeed’, or ‘rightcolumn’.

flightTimezone: String!

The timezone preference of all flights of this adgroup.

flights: JSON!

Scheduled flight periods when ads will be served. Null if there is no limitation.

significantFlightStartDate: DateTime!

Start date for the active or most recent flight period in the adgroup.

significantFlightEndDate: DateTime!

End date for the active or most recent flight period in the adgroup.

advertisable: String!

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: Decimal!

Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic.

kpiCurrency: String!

ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level.

kpiMetric: String!

Metric being targeted by the campaign’s bid strategy.

ads(isActive: Boolean, statuses: [String!], types: [String!], width: Int, height: Int): [Ad]!

Ads for this Adgroup. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

isActive: Boolean

If True, only active ads will be returned, and vice versa (Optional; default: True)

statuses: [String!]

Only ads that match one of these statuses will be returned (Optional; default: None)

Default:[]
types: [String!]

Only ads that match one of these types will be returned (Optional; default: None)

Default:[]
width: Int

Only ads having the specified width will be returned (Optional; default: None)

Default:0
height: Int

Only ads having the specified height will be returned (Optional; default: None)

Default:0
audiences: [Audience]!

Audiences for this Adgroup

metrics(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): MetricResult!

Metrics for the Adgroup. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

placements(start: Date, end: Date, pastDays: Int, currency: String): PlacementResult!

Arguments:

start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
conversions(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): ConversionResult!

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
AdgroupQuery

Fields:

byEID(adgroup: String!): Adgroup

Resolves an Adgroup by its EID. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

adgroup: String!

EID of the Adgroup.

byEIDs(eids: [String!]!): [Adgroup]!

Resolves a Adgroups by their EIDs. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

eids: [String!]!
byAdvertisable(advertisable: String!): [Adgroup]!

Resolves all Adgroups for a Advertisable. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

advertisable: String!

The EID of the advertisable whose adgroups are to be fetched

byCampaign(campaign: String!): [Adgroup]!

Resolves all Adgroups for a Campaign. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

campaign: String!

EID of the campaign.

metricsTotal: MetricAggregateResult!

[ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.|

For documentation see the root metricsTotal field in Query.

Advertisable

Fields:

eid: String!

EID of the advertisable.

isActive: Boolean!

Whether or not the advertisable is currently active.

isB2B: Boolean!

Whether or not the advertisable is a B2B customer.

isAbmCustomer: Boolean!

Whether or not the advertisable is an ABM customer.

name: String!

The name of the advertisable.

organization: String!

The EID of this advertisable’s organization.

status: String!

The status of the advertisable. One of [‘admin_review’, ‘approved’, ‘rejected’].

url: String!

The advertisable’s URL.

currency: String!

The currency code (ISO-4217) use by the advertisable’s account.

clickThroughConversionWindow: Int!

Duration of this advertisable’s click through conversion window in days.

viewThroughConversionWindow: Int!

Duration of this advertisable’s view through conversion window in days.

createdDate: DateTime!

The date this advertisable was created.

revshareViewPercent: Decimal!
revshareClickPercent: Decimal!
campaigns(isActive: Boolean, statuses: [String!], blacklistStatuses: [String!], types: [String!], channels: [String!]): [Campaign]!

Campaigns for this Advertisable.

Arguments:

isActive: Boolean

If True, only active campaigns will be returned, and vice versa (Optional; default: True)

statuses: [String!]

Only campaigns that match one of these statuses will be returned (Optional; default: None)

Default:[]
blacklistStatuses: [String!]

Only campaigns whose status is not one of these will be returned (Optional; default: None)

Default:[]
types: [String!]

Only campaigns that match one of these types will be returned (Optional; default: None)

Default:[]
channels: [String!]

Only campaigns that match one of these channels will be returned (Optional; default: None)

Default:[]
adgroups: [Adgroup]!

Adgroups for this Advertisable. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

emails: [Email]!

Emails for this Advertisable.

ads(isActive: Boolean, statuses: [String!], types: [String!], width: Int, height: Int): [Ad]!

Ads for this Advertisable. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

isActive: Boolean

If True, only active ads will be returned, and vice versa (Optional; default: False)

statuses: [String!]

Only ads that match one of these statuses will be returned (Optional; default: None)

Default:[]
types: [String!]

Only ads that match one of these types will be returned (Optional; default: None)

Default:[]
width: Int

Only ads having the specified width will be returned (Optional; default: None)

Default:0
height: Int

Only ads having the specified height will be returned (Optional; default: None)

Default:0
segments(isConversion: Boolean): [Segment]!

Segments for this Advertisable. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

isConversion: Boolean

If True, only conversion segments will be returned (Optional; default: False).

metrics(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): MetricResult!

Metrics for the Advertisable.

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

conversions(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): ConversionResult!

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
AdvertisableQuery

Fields:

byEID(advertisable: String!): Advertisable

Arguments:

advertisable: String!
byEIDs(eids: [String!]!): [Advertisable]!

Arguments:

eids: [String!]!
byOrganization(organization: String!): [Advertisable]!

Arguments:

organization: String!
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

forUser: [Advertisable]!

All the advertisables for the current user.

Audience

Fields:

eid: String!

The EID of the audience in use.

segmentEID: String!

The EID of the segment describing this audience.

advertisable: String!

The Advertisable for the segment.

campaign: String!

The Campaign for the segment.

name: String!

The Audience Name.

type: String!

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.

description: JSON!

Pieces to build the Audience’s description formatted following the type.

duration: Int!

The duration of the Audience, in days.

isActive: Boolean!

False if this is segment has been deleted.

inclusion: Boolean!

Is the segment an inclusion segment.

isConversion: Boolean!

True if this is a conversion audience.

conversionValue: Float!

The value of a conversion from this segment.

currency: String!

The value of a conversion from this segment. Default to the Advertisable’s currency.

createdDate: Date!

Date of creation.

metrics(start: Date, end: Date, pastDays: Int): AudienceMetricResult!

Metrics for the audience visitors. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
AudienceMetric

Groups reporting metric audience data in summary and by date format.

Fields:

audienceSizeNew: Decimal!
audienceSizeTotal: Decimal!
audienceSizeCurrent: Decimal!
audienceSizeInDateRange: Decimal!
AudienceMetricResult

Groups reporting metric audience data in summary and by date format.

Fields:

summary: AudienceMetric!

Summarises the reporting data for the given date range and duration.

Campaign

Fields:

eid: String!

EID of the campaign.

advertisable: String!

EID of the advertisable to which this campaign belongs.

budget: Decimal!

The daily budget of the campaign.

createdDate: DateTime!

The date this campaign was created.

cpc: Decimal!

The CPC for this campaign.

cpm: Decimal!

The CPM for this campaign.

maxCpm: Decimal!

The maximum CPM for this campaign.

name: String!

The name of this campaign.

startDate: DateTime!

The day the campaign will start.

endDate: DateTime!

The day the campaign will end, exclusive.

status: String!

The status of the campaign. One of ‘running’, ‘ended’, ‘paused’, ‘review’, ‘daft’, ‘rejected’ or ‘deleted’.

updatedDate: DateTime!

The date this campaign was last updated.

channel: String!

Campaign channel: one of ‘email’, ‘social’ or ‘web’

source: String!

The service responsible for the creation of this campaign.

currency: String!

ISO-4217 currency code for the given amount.

type: String!

Type for the campaign. One of “prospecting”, “blended” or “retargeting”.

abmType: String!

Type of ABM campaign. Empty string if this is not an ABM campaign.

kpiGoal: Decimal!

Goal -for the kpiMetric- that drives the campaign’s bid strategy. Null for automatic.

kpiCurrency: String!

ISO 4217 currency code for kpiGoal. If not provided assume the currency provided at the Advertisable level.

kpiMetric: String!

Metric being targeted by the campaign’s bid strategy.

spendLimitUntil: DateTime!

SpendLimitUntil

spendLimitUntilReason: String!

SpendLimitUntilReason

adgroups: [Adgroup]!

Adgroups for this Campaign. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

emails: [Email]!

Emails for this Campaign [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

audiences: [Audience]!

Audiences for this Campaign. [ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

metrics(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): MetricResult!

Metrics for the campaign.

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

conversions(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): ConversionResult!

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
CampaignQuery

Fields:

byEID(campaign: String!): Campaign

Arguments:

campaign: String!

EID of the campaign.

byEIDs(eids: [String!]!): [Campaign]!

Arguments:

eids: [String!]!
byAdvertisable(advertisable: String!, isActive: Boolean, statuses: [String!], blacklistStatuses: [String!], types: [String!], channels: [String!]): [Campaign]!

Arguments:

advertisable: String!

The EID of the advertisable whose campaigns are to be fetched

isActive: Boolean

If True, only active campaigns will be returned, and vice versa (Optional; default: True)

statuses: [String!]

Only campaigns that match one of these statuses will be returned (Optional; default: None)

Default:[]
blacklistStatuses: [String!]

Only campaigns whose status is not one of these will be returned (Optional; default: None)

Default:[]
types: [String!]

Only campaigns that match one of these types will be returned (Optional; default: None)

Default:[]
channels: [String!]

Only campaigns that match one of these channels will be returned (Optional; default: None)

Default:[]
byOrganization(organization: String!, isActive: Boolean, statuses: [String!], blacklistStatuses: [String!], types: [String!], channels: [String!]): [Campaign]!

Arguments:

organization: String!

The EID of the organization whose campaigns are to be fetched

isActive: Boolean

If True, only active campaigns will be returned, and vice versa (Optional; default: True)

statuses: [String!]

Only campaigns that match one of these statuses will be returned (Optional; default: None)

Default:[]
blacklistStatuses: [String!]

Only campaigns whose status is not one of these will be returned (Optional; default: None)

Default:[]
types: [String!]

Only campaigns that match one of these types will be returned (Optional; default: None)

Default:[]
channels: [String!]

Only campaigns that match one of these channels will be returned (Optional; default: None)

Default:[]
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

ConversionResult

Groups reporting metric data for conversions.

Fields:

byAudience: [Conversions!]!

Summarises by conversion the reporting data for the given date range.

Conversions

Contains reporting metric data for attributions, deliveries

by audience conversion.

Fields:

audienceEID: String!
audienceName: String!
audienceDuration: Int!
audienceIsActive: Boolean!
byDate: [ConversionsByDate!]!
summary: ConversionsSummary!
impressions: Decimal!
clicks: Decimal!
cost: Decimal!
conversions: Decimal!

Conversions (count) = View Conversions + Click Conversions

clickThroughs: Decimal!
clickRevenue: Decimal!
revenue: Decimal!

Revenue (amount) = View Revenue + Click Conversions

viewRevenue: Decimal!
viewThroughs: Decimal!
cpa: Decimal!

CPA ($) = Spend / Conversions

clickCPA: Decimal!

Click CPA ($) = Spend / Click Conversions

viewCPA: Decimal!

View CPA ($) = Cost / View Throughs

ctcRate: Decimal!

CTC Rate (%) = Click Conversions / Clicks * 100

vtcRate: Decimal!

VTC Rate (%) = View Throughs / (Impressions + Opens) * 100

roi: Decimal!

Return on investment: Your profit per dollar spent on ads.

ROI (x) = (Click Revenue + View Revenue) / Cost

clickROI: Decimal!

Click return on investment: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad.

Click ROI (x) = Click Revenue / Cost

viewROI: Decimal!

View return on investment: Your profit per dollar spent, generated from conversions that happen after someone views your ad.

View ROI (x) = View Revenue / Cost

ConversionsByDate

Fields:

date: Date!
impressions: Decimal!
clicks: Decimal!
cost: Decimal!
conversions: Decimal!

Conversions (count) = View Conversions + Click Conversions

clickThroughs: Decimal!
clickRevenue: Decimal!
revenue: Decimal!

Revenue (amount) = View Revenue + Click Conversions

viewRevenue: Decimal!
viewThroughs: Decimal!
cpa: Decimal!

CPA ($) = Spend / Conversions

clickCPA: Decimal!

Click CPA ($) = Spend / Click Conversions

viewCPA: Decimal!

View CPA ($) = Cost / View Throughs

ctcRate: Decimal!

CTC Rate (%) = Click Conversions / Clicks * 100

vtcRate: Decimal!

VTC Rate (%) = View Throughs / (Impressions + Opens) * 100

roi: Decimal!

Return on investment: Your profit per dollar spent on ads.

ROI (x) = (Click Revenue + View Revenue) / Cost

clickROI: Decimal!

Click return on investment: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad.

Click ROI (x) = Click Revenue / Cost

viewROI: Decimal!

View return on investment: Your profit per dollar spent, generated from conversions that happen after someone views your ad.

View ROI (x) = View Revenue / Cost

ConversionsSummary

Fields:

impressions: Decimal!
clicks: Decimal!
cost: Decimal!
conversions: Decimal!

Conversions (count) = View Conversions + Click Conversions

clickThroughs: Decimal!
clickRevenue: Decimal!
revenue: Decimal!

Revenue (amount) = View Revenue + Click Conversions

viewRevenue: Decimal!
viewThroughs: Decimal!
cpa: Decimal!

CPA ($) = Spend / Conversions

clickCPA: Decimal!

Click CPA ($) = Spend / Click Conversions

viewCPA: Decimal!

View CPA ($) = Cost / View Throughs

ctcRate: Decimal!

CTC Rate (%) = Click Conversions / Clicks * 100

vtcRate: Decimal!

VTC Rate (%) = View Throughs / (Impressions + Opens) * 100

roi: Decimal!

Return on investment: Your profit per dollar spent on ads.

ROI (x) = (Click Revenue + View Revenue) / Cost

clickROI: Decimal!

Click return on investment: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad.

Click ROI (x) = Click Revenue / Cost

viewROI: Decimal!

View return on investment: Your profit per dollar spent, generated from conversions that happen after someone views your ad.

View ROI (x) = View Revenue / Cost

Email

Fields:

eid: String!

The SendRoll e-mail EID.

campaign: String!

The EID of the AdRoll email campaign who owns this email.

sequencePosition: Int!

The position of this email in the campaign’s sequence. (0 for the first email).

subject: String!

The email’s subject.

status: String!

One of ‘approved’, ‘ended’, ‘paused’, ‘daft’ or ‘deleted’.

delayHours: Int!

Delay in hours between the previous event in the drip sequence and when this email is scheduled to be sent.

createdDate: DateTime!

The date this email was created.

advertisable: String!

Advertisable for this Email. NOTE/FIXME: the advertisable information is not usually available, so querying this will cause an additional request to be made.

metrics(duration: Int, start: Date, end: Date, pastDays: Int, currency: String): MetricResult!

Metrics for the Email.

Arguments:

duration: Int
Default:30
start: Date

The start date for the metrics period (inclusive). The date range will be: [start, end)

end: Date

The end date for the metrics period (exclusive). The date range will be: [start, end)

pastDays: Int

Alternative to start/end parameters with less precedence. The date range will be: [today_utc - pastDays, today_utc)

Default:0
currency: String
Default:USD
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

EmailQuery

Fields:

byEID(email: String!): Email

Resolves an Email by its EID.

Arguments:

email: String!

EID of the Email.

byEIDs(eids: [String!]!): [Email]!

Arguments:

eids: [String!]!
byAdvertisable(advertisable: String!): [Email]!

Resolves all Emails for an Advertisable.

Arguments:

advertisable: String!

The EID of the advertisable whose emails are to be fetched

byCampaign(email: String!): [Email]!

Resolves all Emails for a Campaign.

Arguments:

email: String!

EID of the email.

metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

LogLine

Fields:

id: String!

ID for the log entry this line belongs to. An ID may have multiple lines.

kind: String!

Kind of entry.

key: String!

Key for the log line. The key indicates the operation in the system that generated this entry.

time: DateTime!

Absolute time when the log line was generated.

delta: Float!

Relative delta when the log line was generated. In seconds from the beginning of the request.

text: String!

Text for the log line message.

data: String!

Raw data for the log line (e.g. data dump).

lines: JSON!

This is the data field split by lines.

json: JSON!

Parsed JSON payload from the data field, if any.

info: String!

A string combining information from id, kind, key, time, delta and text fields.

payload: JSON!

Payload parses information from the data field and returns the CSV, JSON or Form data payload for a dump or the payload lines (excluding headers).

xtra: JSON!

Returns the non-payload part of the data dump as split lines.

Metric

Contains reporting metric data for attributions, deliveries,

segment deliveries and emails.

Fields:

date: Date!

Date for this particular metric data. This is empty for summaries.

clickThroughs: Decimal!
clickRevenue: Decimal!
viewRevenue: Decimal!
viewThroughs: Decimal!
impressions: Decimal!

The sum of the number of ad impressions and the number of unique-by-session email opens collected.

clicks: Decimal!
cost: Decimal!
revenue: Decimal!
audienceSizeNew: Decimal!

Segment size metric.

audienceSizeTotal: Decimal!

Segment size metric.

totalVisitors: Decimal!
newVisitors: Decimal!

The number of new visitors who came to your site after viewing a prospecting ad.

engagedVisitors: Decimal!

The number of new visitors who have viewed at least 3 pages on your site after viewing a prospecting ad.

bouncedVisitors: Decimal!

Visitors who have only viewed one page and left your site after viewing a prospecting ad.

nonBouncedVisitors: Decimal!

Visitors who have only viewed more than one page after viewing a prospecting ad.

newVisitorCost: Decimal!

The cost for each new visitor that came to your site after viewing a prospecting ad (newVisitorCost = cost / newVisitors).

engagedVisitorCost: Decimal!

The cost for each new visitor that has viewed at least 3 pages on your site after viewing a prospecting ad (engagedVisitorCost = cost / engagedVisitors).

bounceRate: Decimal!

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.

sends: Decimal!

Number of emails sent by a campaign.

opens: Decimal!

Number of unique-by-session email opens collected for a campaign. WARNING: this field will be deprecated and opens aggregated into “impressions”. To ease up the transition this field will still be available, but always return 0.

ctr: Decimal!

CTR (%) = Clicks / Impression * 100

openRate: Decimal!

Open Rate (%) = Opens / Sends * 100

cpc: Decimal!

CPC ($) = Spend / Clicks

cpm: Decimal!

CPM ($) = Spend / Impressions * 1000

conversions: Decimal!

Conversions (count) = View Conversions + Click Conversions

cpa: Decimal!

CPA ($) = Spend / Conversions

ctcRate: Decimal!

CTC Rate (%) = Click Conversions / Clicks * 100

clickCPA: Decimal!

Click CPA ($) = Spend / Click Conversions

vtcRate: Decimal!

View-through conversion rate: The percentage of impressions that resulted in a view-through conversion.

VTC Rate (%) = View Throughs / (Impressions + Opens) * 100

viewCPA: Decimal!

Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad.

View CPA ($) = Cost / View Throughs

roi: Decimal!

Return on investment: Your profit per dollar spent on ads.

ROI (x) = (Click Revenue + View Revenue) / Cost

clickROI: Decimal!

Click return on investment: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad.

Click ROI (x) = Click Revenue / Cost

viewROI: Decimal!

View return on investment: Your profit per dollar spent, generated from conversions that happen after someone views your ad.

View ROI (x) = View Revenue / Cost

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: Metric!

Summarises the reporting data for the given date range.

byDate: [Metric!]!

Reporting data by date in the given range.

MetricDomain

Contains reporting metric data for the domain.

Fields:

date: Date!

Date for this particular metric data. This is empty for summaries.

impressions: Decimal!
clicks: Decimal!
cost: Decimal!
MetricDomainResult

Groups reporting metric data for the domain in summary and by

date format.

Fields:

domain: String!

The domain this metric pertains to.

summary: MetricDomain!

Summarises the reporting data for the given date range.

byDate: [MetricDomain!]!

Reporting data by date in the given range.

MetricResult

Groups reporting metric data in summary and by date format.

Fields:

summary: Metric!

Summarises the reporting data for the given date range.

byDate: [Metric!]!

Reporting data by date in the given range.

byDomain: [MetricDomainResult!]!

Reporting data by domain.

Organization

Fields:

eid: String!

EID of the organization.

name: String!

Name of the organization.

createdDate: DateTime!

Created date for the organization.

advertisables: [Advertisable]!

Advertisables for this Organization.

campaigns(isActive: Boolean, statuses: [String!], blacklistStatuses: [String!], types: [String!], channels: [String!]): [Campaign]!

Campaigns for this Organization.

Arguments:

isActive: Boolean

If True, only active campaigns will be returned, and vice versa (Optional; default: True)

statuses: [String!]

Only campaigns that match one of these statuses will be returned (Optional; default: None)

Default:[]
blacklistStatuses: [String!]

Only campaigns whose status is not one of these will be returned (Optional; default: None)

Default:[]
types: [String!]

Only campaigns that match one of these types will be returned (Optional; default: None)

Default:[]
channels: [String!]

Only campaigns that match one of these channels will be returned (Optional; default: None)

Default:[]
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

OrganizationQuery

Fields:

byEID(organization: String!): Organization

Arguments:

organization: String!
current: Organization
metricsTotal: MetricAggregateResult!

For documentation see the root metricsTotal field in Query.

Placement

Contains reporting metric data for attributions, deliveries

by placement.

Fields:

placement: String!
clickThroughs: Decimal!
clickRevenue: Decimal!
viewRevenue: Decimal!
viewThroughs: Decimal!
impressions: Decimal!
clicks: Decimal!
cost: Decimal!
revenue: Decimal!
ctr: Decimal!

CTR (%) = Clicks / Impression * 100

cpc: Decimal!

CPC ($) = Spend / Clicks

cpm: Decimal!

CPM ($) = Spend / Impressions * 1000

conversions: Decimal!

Conversions (count) = View Conversions + Click Conversions

cpa: Decimal!

CPA ($) = Spend / Conversions

ctcRate: Decimal!

CTC Rate (%) = Click Conversions / Clicks * 100

clickCPA: Decimal!

Click CPA ($) = Spend / Click Conversions

vtcRate: Decimal!

View-through conversion rate: The percentage of impressions that resulted in a view-through conversion.

VTC Rate (%) = View Throughs / Impressions

viewCPA: Decimal!

Cost-per-view acquisition: Your average spend for a conversion that happens after someone views your ad.

View CPA ($) = Cost / View Throughs

roi: Decimal!

Return on investment: Your profit per dollar spent on ads.

ROI (x) = (Click Revenue + View Revenue) / Cost

clickROI: Decimal!

Click return on investment: Your profit per dollar spent, generated from conversions that happen after someone clicks your ad.

Click ROI (x) = Click Revenue / Cost

viewROI: Decimal!

View return on investment: Your profit per dollar spent, generated from conversions that happen after someone views your ad.

View ROI (x) = View Revenue / Cost

PlacementResult

Groups reporting metric data in summary and by date format.

Fields:

byPlacement: [Placement!]!

Summarises by placement the reporting data for the given date range.

Query

Root query element for GraphQL.

Fields:

flags(enableUniversalCampaigns: Boolean!): Boolean!

Setup global request flags

Arguments:

enableUniversalCampaigns: Boolean!

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
requestId: String!

Unique ID generated for this request.

log(text: String, id: String, kind: String, key: String, filter: String, not: String): [LogLine!]!

Log lines for this request. Admin-only.

Arguments:

text: String
id: String
kind: String
key: String
filter: String
not: String
organization: OrganizationQuery
advertisable: AdvertisableQuery
campaign: CampaignQuery
adgroup: AdgroupQuery
ad: AdQuery
segment: SegmentQuery
metricsTotal: MetricAggregateResult!

Provides simple aggregation of all metrics in the current and child nodes. Supports aggregating the summary and byDate metrics separately.

The scope of the metricsTotal field, i.e. the scope from which metrics will be aggregated, is the current node (the node where the metricsTotal is declared under) and its inner nodes. The aggregation happens for each metrics field under the scope. Here the term “node” refers to the result of any non-scalar GraphQL field.

Note that this is a simple aggregation of the metric results in the scope, as such:

  • Using fields in metricsTotal WILL NOT cause them to be loaded, it will only aggregate from data that is already being loaded through a metrics field.
  • As a corollary of the above, it will only aggregate a particular field insofar as it is loaded, e.g. if the field is included in some but not all “metrics” fields, only those which are loaded will be aggregated.
  • The totals may end up duplicated if metrics are loaded more than once for the same entity, or if the same metrics are loaded at multiple levels (e.g. campaigns and ads) in the metricsTotal scope.
Segment

Fields:

eid: String!

The Segment EID.

name: String!

The Segment Name.

duration: Int!

The Segment’s duration in days.

isConversion: Boolean!

True if this is a conversion segment.

conversionValue: Float!

The value of a conversion from this segment.

currency: String!

The value of a conversion from this segment. Default to the Advertisable’s currency.

SegmentQuery

Fields:

byEID(segment: String!): Segment

[ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

segment: String!
byEIDs(eids: [String!]!): [Segment]!

[ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

eids: [String!]!
byAdvertisable(advertisable: String!, isConversion: Boolean): [Segment]!

[ALPHA] This GraphQL node is currently under development and QA, please hold off from using it in production for the time being.

Arguments:

advertisable: String!

Required advertisable EID.

isConversion: Boolean

If True, only conversion segments will be returned (Optional; default: False).

Scalars

Scalars represent primitive types and cannot have fields.

Descriptions

Boolean

The Boolean scalar type represents true or false.

Date
DateTime
Decimal
Error
Float

The Float scalar type represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point).

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as “4”) or integer (such as 4) input value will be accepted as an ID.

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

JSON
String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.