Pontiac Wiki Pontiac Wiki

Campaign vs. Line Management Inheritance

Getting Started with Pontiac API

  • Pontiac API Overview
  • Object Hierarchy
  • Campaign vs. Line Management Inheritance
  1. Home
  2. API Documentation
  3. Getting Started with Pontiac API
  4. Campaign vs. Line Management Inheritance

Campaign vs. Line Management Inheritance

Campaigns contain one or more Lines. While the Line is the level where bidding and inventory delivery are executed, many settings can be configured at the Campaign level and applied across all Lines within that Campaign.

This allows settings that are shared by multiple Lines to be managed once at the Campaign level, while Line-specific bidding and targeting can still be configured independently.

Campaign-Level Management

When creating a Campaign, the following management settings determine whether certain configurations are controlled at the Campaign or Line level:

  • budgetManagement: Manage budgets across Lines from the Campaign.
  • creativesManagement: Manage Creative associations from the Campaign.
  • pixelsManagement: Manage Pixel associations from the Campaign.
  • autoPace: Manage pacing from the Campaign.
  • daypartsManagement: Manage daypart settings from the Campaign.
  • enableFrequency: Apply Campaign-level frequency and recency controls.

The effective configuration of a Line therefore depends on both the Line settings and the management settings enabled on its parent Campaign.

Budget Management

When Campaign-level budget management is enabled, the Campaign owns the overall budget and its Lines receive a portion of that budget based on their allocation.

Instead of assigning an independent budget to each Line, use:

budgetAllocationWeight

For example:

"budgetAllocationWeight": 100

If there is only one Line, a weight of 100 assigns it the full Campaign budget allocation.

If there are multiple Lines, their relative allocation weights determine how the Campaign budget is distributed between them. For example, if Line A has a weight of 100 and Line B has a weight of 200:

  • Line A receives 33.33% of the allocation: 100 / (100 + 200)
  • Line B receives 66.67% of the allocation: 200 / (100 + 200)

The Line’s budgetType is inherited from the parent Campaign and should not be set independently on the Line.

Budget Multiplier

Lines can also use:

budgetMultiplier

to adjust the Line’s calculated daily budget.

For example:

"budgetMultiplier": 1

A value of 1 applies no additional multiplier.

A value of 1.1 increases the Line’s calculated daily budget by 10%. For example, if the Line’s calculated daily budget is $100, a budgetMultiplier of 1.1 increases the effective daily budget to $110.

The Budget Multiplier affects how much budget the Line is allowed to spend; it does not increase the Line’s bid price.

Creative Management

Creatives belong to an Advertiser and can be associated at either the Campaign or Line level.

When:

"creativesManagement": 1

is enabled on the Campaign, Creatives associated with the Campaign are automatically available to the Lines beneath it.

The same Creative IDs therefore do not need to be associated separately with every Line.

For example, if Creative 30336 is associated with Campaign 14901, a Line created beneath that Campaign can inherit Creative 30336 without including:

"creativeIds": [
  30336
]

in the Line creation request.

If Campaign-level Creative management is not enabled, eligible Creatives must instead be associated with the applicable Lines.

This configuration is useful when different Lines within the same Campaign require different creative types or assets. For example, a Nike Campaign could contain separate Lines for CTV, Display, and Audio, with each Line associated only with the Creatives that are compatible with that inventory type.

In this setup, Creatives are managed independently at the Line level rather than applying the same Campaign-level Creatives across every Line.

Pixel Management

Pixels also belong to an Advertiser and can be associated at either the Campaign or Line level.

When:

"pixelsManagement": 1

is enabled, Pixels associated with the Campaign are applied across its Lines.

For example, Pixel 18887 associated with Campaign 14901 can automatically be associated with a Line created beneath that Campaign without including:

"pixelIds": [
  18887
]

in the Line request.

In most cases, Pixels should be associated at the Campaign level so the same conversion tracking and attribution settings apply consistently across all Lines within the Campaign.

If Campaign-level Pixel management is not enabled, Pixels can instead be associated directly with individual Lines. This may be useful when different Lines within the same Campaign require different conversion tracking or attribution setups.

Pacing Management

Pacing determines how budget is distributed throughout the applicable date range.

When Campaign-level pacing is enabled, pacing behavior is controlled by the Campaign and applied to the Lines beneath it.

Available pacing types include:

  • Custom Curve: Allows a custom pacing curve to be configured to control how budget is distributed throughout the day.
  • Even: Distributes budget evenly across the remaining Campaign duration.
  • Catch Up ASAP: Increases delivery when the Campaign is behind pace in order to catch up as quickly as possible.
  • Primetime: Applies Pontiac’s predefined primetime pacing curve to concentrate more delivery during higher-value hours.

Conditionally Required (when daypartsManagement=true):

  • pacingType: ‘even’ or ‘asap’
  • catchupAsap: Aggressive catch-up if behind pace (true/false)
  • dayPartTargetingMode: ‘user’ (user’s timezone) or ‘line’ (fixed/server timezone)

For example:

"autoPace": 1,
"daypartsManagement": 1
"pacingType": "even",
"catchupAsap": 0,
"dayPartTargetingMode": 'user' 

can be used to manage even pacing from the Campaign.

When the same pacing strategy should apply to every Line, Campaign-level pacing is typically the preferred setup.

If Campaign-level pacing management is not enabled, pacing can instead be configured independently on each Line. This may be useful when different Lines within the same Campaign require different delivery patterns.

Daypart Management

Dayparts define the days and hours when delivery is eligible.

When:

"daypartsManagement": 1

is enabled, the Campaign’s daypart configuration applies across its Lines.

Campaign dayparts should generally be used when the same delivery schedule applies to every Line in the Campaign.

For example, a Campaign targeting all hours of every day can include all 168 weekly day/hour combinations.

The Line creation endpoint still requires targets.dayParts.include to contain at least one day and hour. When Campaign-level dayparts are controlling and the Line should not introduce an additional restriction, the Line can be created with the full 24/7 schedule.

Example:

"dayParts": {
  "include": [
    {"day": "monday", "hour": 0},
    {"day": "monday", "hour": 1}
  ]
}

Continue the structure for each eligible day and hour.

Frequency and Recency

Frequency limits how often an ad can be served to the same user or identifier during a defined period. Recency establishes a minimum amount of time between impressions.

When frequency and recency are configured at the Campaign level, the limits apply across all Lines within that Campaign.

For example:

"enableFrequency": 1,
"frequencyCap": 3,
"timeFrameDays": 1,
"recency": 30

allows a user to receive up to three impressions from the Campaign within the configured time frame.

If a user receives impressions from Line 1, those impressions count toward the same Campaign-level frequency cap that also applies to Line 2 and any other Lines within the Campaign.

For example, if a user receives two impressions from Line 1, they would only be eligible to receive one additional impression from the Campaign during that time frame, regardless of which Line serves it.

This is useful when you want to control the total number of times a person is exposed to the Campaign across all of its Lines.

If frequency and recency are instead managed at the Line level, each Line maintains its own frequency and recency limits independently.

For example:

"enableFrequency": false,
"enableIpFrequencyCapping": false,
"frequencyCap": 0,
"dailyIpImpsLimit": 0,
"timeFrameDays": 1,
"recency": 0

A Line-level frequencyCap of 0 and recency of 0 mean that the Line does not apply its own additional frequency or recency restriction.

If the parent Campaign has frequency and recency configured, those Campaign-level limits still apply across all Lines within the Campaign.

Frequency Line Creation Requirement

Even when frequency and recency are managed at the Campaign level, the Line creation endpoint still requires a frequencyCap value to be included in the request.

In this case, use:

“frequencyCap”: 0

to satisfy the Line creation requirement without introducing an additional Line-level frequency cap.

Targeting

Targeting can be configured at both the Campaign and Line levels.

Campaign targeting should be used for criteria that apply to every Line in the Campaign. Line targeting can then be used to further define the inventory eligible for a specific Line.

For example, if every Line should target the United States, the country can be targeted at the Campaign level. Individual Lines can then apply additional targeting, such as:

  • Exchanges
  • Deals
  • Devices
  • Sites or Apps
  • Audiences
  • Geography
  • Content
  • Other inventory criteria

Campaign and Line targeting work together to determine the inventory eligible for the Line. Line-level targeting should therefore generally be considered an additional restriction rather than a replacement for applicable Campaign targeting.

Required Line Targeting

The Line creation endpoint requires a targets object even when most targeting is configured at the Campaign level.

At minimum, the Line must include:

  • At least one country under targets.geoCountries.include
  • At least one day and hour under targets.dayParts.include

For example:

"targets": {
  "geoCountries": {
    "include": [
      {
        "code": "US"
      }
    ]
  },
  "dayParts": {
    "include": [
      {
        "day": "monday",
        "hour": 0
      }
    ]
  }
}

When the Line should not further restrict a Campaign’s 24/7 daypart configuration, all 168 weekly hours can be included in the Line request.

Audience Targeting

Audiences are managed at the Seat or Sub-Seat level rather than under an individual Advertiser.

Audience targeting can be applied at either the Campaign or Line level.

A Campaign-level audience should be used when the audience targeting criteria apply to every Line in the Campaign. Line-level audiences can be used when different Lines require different audience strategies.

Campaign and Line audience targeting should be configured with the overall effective targeting in mind, since Campaign-level targeting applies to Lines beneath the Campaign.

Flights

When Campaign Flights are enabled, the Campaign can contain one or more Flights with specific date ranges and budget allocations.

Lines beneath the Campaign can receive corresponding Line Flights.

For example:

Campaign 14901
└── Campaign Flight 8371
    └── Line 75913
        └── Line Flight 58824

The Line Flight references the applicable Campaign Flight through its campaignFlightId.

When Campaign-level budget management is enabled, Line Flights use their budget allocation weight rather than maintaining independent Campaign-level budgets.

Campaign-Level vs. Line-Level Setup

As a general rule:

Use the Campaign level when a setting should apply to every Line.

Examples include:

  • A shared Campaign budget
  • The same Creatives across all Lines
  • The same conversion Pixels
  • A common frequency cap
  • A common daypart schedule
  • Targeting that every Line must meet

Use the Line level for settings specific to an individual bidding strategy.

Examples include:

  • Bid type and bid price
  • Inventory type
  • Deal targeting
  • Exchange targeting
  • Line-specific audiences
  • Line-specific inventory or geographic restrictions

This structure allows broad Campaign requirements to be configured once while preserving Line-level control over bidding and delivery.

Important API Behavior

Campaign-level management determines the effective configuration, but it does not mean every corresponding field can be omitted from the Line creation request.

The POST /rtb/lines endpoint performs its own validation and requires several Line fields even when the Campaign manages the effective setting.

For example, a Line created beneath a Campaign with Campaign-level management enabled may still require:

  • startDate
  • endDate
  • dailyPacing
  • catchupAsap
  • dayPartTargetingMode
  • recency
  • frequencyCap
  • targets
  • At least one targeted country
  • At least one targeted day/hour

These required values satisfy the Line creation schema and validation requirements. Campaign management settings determine which configuration ultimately controls delivery.

© 2026 Pontiac Wiki Sec · All Rights Reserved · Developed by RDK

  • Contact Us
  • Privacy Policy
  • Terms & Conditions
  • Pontiac.media