Pontiac Wiki Pontiac Wiki

Creating a Line

Bidder API Campaign Tutorial

  • Tutorial Overview
  • Authentication
  • Creating a New Advertiser
  • Uploading a Creative
  • Creating a Pixel
  • Creating a Campaign
  • Creating a Line
  1. Home
  2. API Documentation
  3. Bidder API Campaign Tutorial
  4. Creating a Line

Creating a Line

Lines are created under a Campaign using: POST /rtb/lines

The Line is the level where bidding and inventory delivery are executed. Every Campaign must have at least one Line in order to deliver impressions.

In this example, we will create a Line under:

  • Advertiser ID: 5943
  • Campaign ID: 14901
  • Seat ID: 1000

Because the example Campaign was configured to manage budgets, Creatives, Pixels, pacing/dayparts, and frequency settings, the Line inherits those applicable Campaign-level settings. However, some corresponding fields are still required in the Line creation request for validation. These fields can be populated without creating additional Line-level restrictions.

Required Fields

The following fields are required when creating a Line:

  • advertiserId: Parent Advertiser ID.
  • campaignId: Parent Campaign ID.
  • name: Line display name.
  • status: Line status. Use 1 for active or 0 for inactive.
  • startDate: Line start date in YYYYMMDD format.
  • endDate: Line end date in YYYYMMDD format.
  • bidPrice: CPM bid price in dollars.
  • bidType: Bidding method. Supported values include:
    • basic: Fixed CPM bid.
    • bid-floor: Bid based on the applicable floor price.
    • advanced: Supports more granular or Deal-specific bidding.
  • recency: Minimum number of minutes between impressions. Supported values are 0, 1, 2, 5, 15, 30, 60, and 360.
  • dailyPacing: Line pacing type. Supported values include even, asap, and custom.
  • catchupAsap: Enables aggressive catch-up pacing when behind.
  • dayPartTargetingMode: Determines the timezone used for dayparting. Supported values include user and line.

budgetType is inherited from the parent Campaign and should not be included in the Line request.

Campaign-Managed Settings

The parent Campaign in this example has Campaign-level management enabled for:

  • Budget
  • Creatives
  • Pixels
  • Pacing and dayparts
  • Frequency and recency

As a result, the Line does not need to explicitly associate Creative ID 30336 or Pixel ID 18887. These associations are inherited from the parent Campaign.

Because Campaign budget management is enabled, the Line uses budgetAllocationWeight rather than setting an independent Line budget.

Some pacing and frequency fields must still be populated in the POST request to satisfy Line validation. A value of 0 is used for Line-level frequency and recency so that the Campaign-level restrictions remain controlling.

Budget Allocation

When budgetManagement is enabled on the parent Campaign, use:

budgetAllocationWeight

to assign budget weight to each Line.

In this example, there is only one Line, so a weight of 100 is used:

"budgetAllocationWeight": 100

The Line also uses:

"budgetMultiplier": 1

A multiplier of 1 means no additional daily budget multiplier is applied.

Bid Settings

This example uses Bid at Floor bidding with a maximum configured bid value of $5.11 CPM.

"bidPrice": 5.11,
"bidType": "bid-floor",
"maxBid": 5.11

The Line will use floor-based bidding while limiting the configured bid to $5.11 CPM.

Targeting Requirements

The Line endpoint requires a targets object.

At least one country must be included under:

targets.geoCountries.include

In addition, targets.dayParts.include must contain at least one eligible day and hour.

Because this example Campaign allows delivery 24 hours per day, seven days per week, the Line includes all 168 hours. This satisfies Line validation without introducing a more restrictive Line-level daypart schedule.

Frequency Validation

The Line endpoint also requires a frequencyCap value even when frequency is managed at the Campaign level.

For this example, Line-level frequency is disabled using:

"enableFrequency": false,
"enableIpFrequencyCapping": false,
"frequencyCap": 0,
"dailyIpImpsLimit": 0,
"timeFrameDays": 1,
"frequencyCapType": "ip"

The Line-level recency is also set to 0.

This leaves Line-level frequency and recency unrestricted while allowing the Campaign-level settings to remain controlling.

Example Request

curl -X 'POST' \
  'https://api.pontiac.media/rtb/lines' \
  -H 'accept: application/json' \
  -H 'auth: YOUR_AUTH_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "advertiserId": 5943,
    "campaignId": 14901,
    "seatId": 1000,
    "name": "API Example Line",
    "status": 1,
    "startDate": 20260901,
    "endDate": 20260930,
    "bidPrice": 5.11,
    "bidType": "bid-floor",
    "maxBid": 5.11,
    "recency": 0,
    "dailyPacing": "even",
    "catchupAsap": true,
    "dayPartTargetingMode": "user",
    "budgetAllocationWeight": 100,
    "budgetMultiplier": 1,
    "inventoryType": "combined",
    "enableFrequency": false,
    "enableIpFrequencyCapping": false,
    "frequencyCap": 0,
    "dailyIpImpsLimit": 0,
    "timeFrameDays": 1,
    "frequencyCapType": "ip",
    "targets": {
      "geoCountries": {
        "include": [
          {
            "code": "US"
          }
        ]
      },
      "dayParts": {
        "include": [
          {"day":"monday","hour":0},
          {"day":"monday","hour":1},
          {"day":"monday","hour":2},
          {"day":"monday","hour":3},
          {"day":"monday","hour":4},
          {"day":"monday","hour":5},
          {"day":"monday","hour":6},
          {"day":"monday","hour":7},
          {"day":"monday","hour":8},
          {"day":"monday","hour":9},
          {"day":"monday","hour":10},
          {"day":"monday","hour":11},
          {"day":"monday","hour":12},
          {"day":"monday","hour":13},
          {"day":"monday","hour":14},
          {"day":"monday","hour":15},
          {"day":"monday","hour":16},
          {"day":"monday","hour":17},
          {"day":"monday","hour":18},
          {"day":"monday","hour":19},
          {"day":"monday","hour":20},
          {"day":"monday","hour":21},
          {"day":"monday","hour":22},
          {"day":"monday","hour":23},

          {"day":"tuesday","hour":0},
          {"day":"tuesday","hour":1},
          {"day":"tuesday","hour":2},
          {"day":"tuesday","hour":3},
          {"day":"tuesday","hour":4},
          {"day":"tuesday","hour":5},
          {"day":"tuesday","hour":6},
          {"day":"tuesday","hour":7},
          {"day":"tuesday","hour":8},
          {"day":"tuesday","hour":9},
          {"day":"tuesday","hour":10},
          {"day":"tuesday","hour":11},
          {"day":"tuesday","hour":12},
          {"day":"tuesday","hour":13},
          {"day":"tuesday","hour":14},
          {"day":"tuesday","hour":15},
          {"day":"tuesday","hour":16},
          {"day":"tuesday","hour":17},
          {"day":"tuesday","hour":18},
          {"day":"tuesday","hour":19},
          {"day":"tuesday","hour":20},
          {"day":"tuesday","hour":21},
          {"day":"tuesday","hour":22},
          {"day":"tuesday","hour":23},

          {"day":"wednesday","hour":0},
          {"day":"wednesday","hour":1},
          {"day":"wednesday","hour":2},
          {"day":"wednesday","hour":3},
          {"day":"wednesday","hour":4},
          {"day":"wednesday","hour":5},
          {"day":"wednesday","hour":6},
          {"day":"wednesday","hour":7},
          {"day":"wednesday","hour":8},
          {"day":"wednesday","hour":9},
          {"day":"wednesday","hour":10},
          {"day":"wednesday","hour":11},
          {"day":"wednesday","hour":12},
          {"day":"wednesday","hour":13},
          {"day":"wednesday","hour":14},
          {"day":"wednesday","hour":15},
          {"day":"wednesday","hour":16},
          {"day":"wednesday","hour":17},
          {"day":"wednesday","hour":18},
          {"day":"wednesday","hour":19},
          {"day":"wednesday","hour":20},
          {"day":"wednesday","hour":21},
          {"day":"wednesday","hour":22},
          {"day":"wednesday","hour":23},

          {"day":"thursday","hour":0},
          {"day":"thursday","hour":1},
          {"day":"thursday","hour":2},
          {"day":"thursday","hour":3},
          {"day":"thursday","hour":4},
          {"day":"thursday","hour":5},
          {"day":"thursday","hour":6},
          {"day":"thursday","hour":7},
          {"day":"thursday","hour":8},
          {"day":"thursday","hour":9},
          {"day":"thursday","hour":10},
          {"day":"thursday","hour":11},
          {"day":"thursday","hour":12},
          {"day":"thursday","hour":13},
          {"day":"thursday","hour":14},
          {"day":"thursday","hour":15},
          {"day":"thursday","hour":16},
          {"day":"thursday","hour":17},
          {"day":"thursday","hour":18},
          {"day":"thursday","hour":19},
          {"day":"thursday","hour":20},
          {"day":"thursday","hour":21},
          {"day":"thursday","hour":22},
          {"day":"thursday","hour":23},

          {"day":"friday","hour":0},
          {"day":"friday","hour":1},
          {"day":"friday","hour":2},
          {"day":"friday","hour":3},
          {"day":"friday","hour":4},
          {"day":"friday","hour":5},
          {"day":"friday","hour":6},
          {"day":"friday","hour":7},
          {"day":"friday","hour":8},
          {"day":"friday","hour":9},
          {"day":"friday","hour":10},
          {"day":"friday","hour":11},
          {"day":"friday","hour":12},
          {"day":"friday","hour":13},
          {"day":"friday","hour":14},
          {"day":"friday","hour":15},
          {"day":"friday","hour":16},
          {"day":"friday","hour":17},
          {"day":"friday","hour":18},
          {"day":"friday","hour":19},
          {"day":"friday","hour":20},
          {"day":"friday","hour":21},
          {"day":"friday","hour":22},
          {"day":"friday","hour":23},

          {"day":"saturday","hour":0},
          {"day":"saturday","hour":1},
          {"day":"saturday","hour":2},
          {"day":"saturday","hour":3},
          {"day":"saturday","hour":4},
          {"day":"saturday","hour":5},
          {"day":"saturday","hour":6},
          {"day":"saturday","hour":7},
          {"day":"saturday","hour":8},
          {"day":"saturday","hour":9},
          {"day":"saturday","hour":10},
          {"day":"saturday","hour":11},
          {"day":"saturday","hour":12},
          {"day":"saturday","hour":13},
          {"day":"saturday","hour":14},
          {"day":"saturday","hour":15},
          {"day":"saturday","hour":16},
          {"day":"saturday","hour":17},
          {"day":"saturday","hour":18},
          {"day":"saturday","hour":19},
          {"day":"saturday","hour":20},
          {"day":"saturday","hour":21},
          {"day":"saturday","hour":22},
          {"day":"saturday","hour":23},

          {"day":"sunday","hour":0},
          {"day":"sunday","hour":1},
          {"day":"sunday","hour":2},
          {"day":"sunday","hour":3},
          {"day":"sunday","hour":4},
          {"day":"sunday","hour":5},
          {"day":"sunday","hour":6},
          {"day":"sunday","hour":7},
          {"day":"sunday","hour":8},
          {"day":"sunday","hour":9},
          {"day":"sunday","hour":10},
          {"day":"sunday","hour":11},
          {"day":"sunday","hour":12},
          {"day":"sunday","hour":13},
          {"day":"sunday","hour":14},
          {"day":"sunday","hour":15},
          {"day":"sunday","hour":16},
          {"day":"sunday","hour":17},
          {"day":"sunday","hour":18},
          {"day":"sunday","hour":19},
          {"day":"sunday","hour":20},
          {"day":"sunday","hour":21},
          {"day":"sunday","hour":22},
          {"day":"sunday","hour":23}
        ]
      }
    },
    "currency": "usd"
  }'

Response

A successful request returns the newly created Line and its stored configuration.

The response for this example returned:

{
  "timestamp": "2026-09-01 17:47:29",
  "response": {
    "id": 75913,
    "advertiserId": 5943,
    "campaignId": 14901,
    "seatId": 1000,
    "name": "API Example Line",
    "status": 1,
    "statusInfo": [],
    "startDate": 20260901,
    "endDate": 20260930,
    "deployDate": "2026-09-01 12:47:29",
    "budgetType": "spend",
    "budget": 0,
    "bidPrice": 5.11,
    "averageBidPrice": 5.11,
    "inventoryType": "combined",
    "creativeIds": [
      30336
    ],
    "pixelIds": [
      18887
    ],
    "targets": {
      "geoCountries": {
        "include": [
          {
            "code": "US",
            "name": "United States"
          }
        ]
      },
      "dayParts": {
        "include": [
          "...all 168 configured day/hour combinations..."
        ]
      }
    },
    "dailyPacing": "even",
    "catchupAsap": 1,
    "dayPartTargetingMode": "user",
    "applyPacingCurveToAllDays": 0,
    "enableIpFrequencyCapping": 0,
    "enableFrequency": 0,
    "dailyIpImpsLimit": 0,
    "frequencyCap": 0,
    "timeFrameDays": 1,
    "budgetMultiplier": 1,
    "rtbMargin": 0,
    "enableFootTraffic": 0,
    "budgetAllocationWeight": 100,
    "dailyBudget": 0,
    "recency": 0,
    "bidType": "bid-floor",
    "flights": [
      {
        "id": 58824,
        "lineId": 75913,
        "campaignFlightId": 8371,
        "startDate": 20260901,
        "endDate": 20260930,
        "budget": 0,
        "budgetAllocationWeight": 100,
        "budgetMultiplier": 1,
        "status": 1,
        "dailyBudget": 0
      }
    ],
    "currency": "usd",
    "advancedBids": [],
    "indexUseCuratedDeal": 0,
    "xandrUseCuratedDeal": 0,
    "frequencyCapType": "ip"
  },
  "accountStatus": 1,
  "seatId": 1000
}

Save the Line id returned in the response.

Line ID: 75913

The response also confirms several Campaign inheritance behaviors.

Creative and Pixel Inheritance

Creative ID 30336 and Pixel ID 18887 were not explicitly included in the Line request but were automatically associated with the created Line because Creative and Pixel management are enabled on the parent Campaign.

Budget Inheritance

The Line inherited:

"budgetType": "spend"

from the parent Campaign.

Because Campaign budget management is enabled, the Line’s independent budget is returned as 0. Instead, the Line uses:

"budgetAllocationWeight": 100

to determine its share of the Campaign-managed budget.

Line Flight

A Line flight was also automatically created:

Line Flight ID: 58824

The Line flight is linked to:

Campaign Flight ID: 8371

and uses the same date range as the Campaign flight.

Frequency and Recency

The Line was created with:

"enableFrequency": 0,
"frequencyCap": 0,
"recency": 0

This leaves Line-level frequency and recency unrestricted while the Campaign-level frequency and recency settings remain controlling.

Targeting

The Line endpoint requires both country and daypart targeting to be populated during creation.

This example targets:

  • Country: United States
  • Dayparts: All 168 hours of the week

Using the complete 24/7 schedule ensures that the Line itself does not further restrict the Campaign-level daypart schedule.

Created Objects

At the end of this example, the setup includes:

  • Advertiser ID: 5943
  • Creative ID: 30336
  • Pixel ID: 18887
  • Campaign ID: 14901
  • Campaign Flight ID: 8371
  • Line ID: 75913
  • Line Flight ID: 58824

Pontiac Bidder UI Validation

Line Creation & Setup

Targeting, Creatives, Audiences, & Pixels

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

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