Contents

Campaign

The top-level container that defines a campaign’s promoted object, billing, scheduling, and targeting.

Declaration

object Campaign

Properties

NameTypeDescription
adAccountIdint64

The ad account this campaign belongs to. Read-only.

namestring

Campaign name. Maximum 200 characters. Must be non-empty. Mutable.

billingEventCampaign.BillingEvent

The event type that triggers a charge (for example, TAPS or IMPRESSIONS). See BillingEvent. Read-only.

paymentModelCampaign.PaymentModel

The payment model for this campaign (for example, LOC for Line of Credit or PAYG for Pay As You Go). See PaymentModel. System-set, Read-only.

startTimedate-time

The scheduled start date and time of the campaign. Format: yyyy-MM-dd'T'HH:mm:ss.SSS in UTC (for example, 2026-06-07T00:00:00.000). Mutable.

endTimedate-time

The scheduled end date and time. Format: yyyy-MM-dd'T'HH:mm:ss.SSS in UTC (for example, 2026-12-31T00:00:00.000). Omit to keep the campaign running indefinitely. Mutable.

promotedObjectTypeCampaign.PromotedObjectType

Whether this campaign promotes an App Store app (APPSTORE_APP) or a brand (BUSINESS_BRAND). See PromotedObjectType. Read-only.

promotedObjectIdstring

The identifier of the promoted entity: the adamId for App Store apps or the brand ID for Brands. Read-only.

statusCampaign.Status

Captures the advertiser’s intent for the campaign to serve. See CampaignStatus. Mutable.

systemStatusCampaign.SystemStatus

System-computed operational status reflecting the campaign’s current serving state. See CampaignSystemStatus. System-set, Read-only.

systemStatusReasons[Campaign.SystemStatusReasons]

System-applied reasons that contribute to the current systemStatus. See CampaignSystemStatusReason for possible values. System-set, Read-only.

systemStatusLimitingReasons[Campaign.SystemStatusLimitingReasons]

System-applied reasons that limit delivery below maximum potential. See CampaignSystemLimitedStatusReason for possible values. System-set, Read-only.

displayStatusCampaign.DisplayStatus

System-computed, rolled-up delivery state combining status and systemStatus into a single user-facing label. See CampaignDisplayStatus. System-set, Read-only.

dailyBudgetCampaign.DailyBudget

The required daily spend cap for this campaign. Limits spending each calendar day, independent of any shared budget assignments. See DailyBudget. Mutable.

sharedBudgets[SharedBudgetAssignment]

One or more budget orders assigned to this campaign. Each assignment enforces a flight-period spending cap defined by the budget order’s startTime and endTime. A campaign must have a dailyBudget and may also have one or more shared budget assignments. See SharedBudgetAssignment. Mutable.

targetingCampaign.Targeting

Country or region, supply source, and placement targeting configuration for this campaign. See CampaignTargeting. Mutable.

bidStrategyCampaign.BidStrategy

The bid strategy governing how this campaign competes in auctions. See BidStrategy. Mutable.

invoiceDetailCampaign.InvoiceDetail

Invoice and billing contact details. Required for Line of Credit accounts. See InvoiceDetail. Mutable.

regulationResponses[RegulationResponse]

Regulatory consent acknowledgments required in certain markets. See RegulationResponse. Mutable.

idint64

System-assigned unique identifier for this campaign. System-set, Read-only.

creationTimedate-time

Timestamp when this campaign was created (ISO 8601). System-set, Read-only.

modificationTimedate-time

Timestamp of the last modification to this campaign (ISO 8601). System-set, Read-only.

deletedboolean

Whether this campaign has been soft-deleted. System-set, Read-only.

Discussion

A Campaign is the top-level advertising container that defines the promoted object, billing model, scheduling, and geographic targeting for a set of ad groups. Each campaign belongs to a single ad account and promotes either an App Store app (APPSTORE_APP) or a brand (BUSINESS_BRAND). The billingEvent, promotedObjectType, and promotedObjectId fields stay fixed after creation. To change any of them, create a new campaign.

The status field captures the advertiser’s intent for the campaign to serve. The systemStatus field reflects Apple’s system assessment of whether the campaign can deliver. When systemStatus isn’t RUNNING, inspect systemStatusReasons to identify blocking conditions and systemStatusLimitingReasons for delivery-reducing (but non-blocking) factors.

A required dailyBudget cap controls the campaign’s budget and limits daily spending. You can also assign a campaign to one or more shared budgets via sharedBudgets. The two budget controls function independently: dailyBudget enforces a daily cap. Each shared budget enforces a flight-period cap defined by its startTime and endTime.

Fields you can filter and sort on when querying campaigns are listed in Query Campaigns. For the complete list of required and optional fields at creation, see CampaignCreate. For the fields that you can change after creation, see CampaignUpdate.

Example

{
  "id": 123456789,
  "adAccountId": 555666777,
  "name": "AwayFinder Fall Launch",
  "billingEvent": "TAPS",
  "paymentModel": "LOC",
  "startTime": "2025-01-10T08:00:00.000",
  "endTime": "2025-12-31T00:00:00.000",
  "promotedObjectType": "APPSTORE_APP",
  "promotedObjectId": "987654321",
  "status": "ENABLED",
  "systemStatus": "RUNNING",
  "systemStatusReasons": [],
  "systemStatusLimitingReasons": [],
  "displayStatus": "RUNNING",
  "dailyBudget": {
    "value": {
      "amount": "100.00",
      "currency": "USD"
    }
  },
  "sharedBudgets": [
    {
      "budgetId": 246813579
    }
  ],
  "targeting": {
    "supplySource": {
      "include": [
        "APPSTORE"
      ]
    },
    "supplyPlacement": {
      "include": [
        "APPSTORE_SEARCH_RESULTS"
      ]
    },
    "countryOrRegion": {
      "include": [
        "US",
        "CA"
      ]
    }
  },
  "bidStrategy": {
    "bidStrategyType": "MANUAL_CPT",
    "bidStrategyGoal": "TAP",
    "bid": {
      "amount": "2.50",
      "currency": "USD"
    }
  },
  "invoiceDetail": {
    "name": "AwayFinder Q3 Invoice",
    "orderNumber": "PO-2025-0456",
    "clientName": "AwayFinder Inc.",
    "primaryBuyerName": "Jordan Lee",
    "primaryBuyerEmail": "jordan.lee@awayfinder.com",
    "billingEmail": "billing@awayfinder.com"
  },
  "regulationResponses": [
    {
      "regulationType": "CAMPAIGN_SAPIN_LAW",
      "responseValue": "NOT_ANSWERED"
    }
  ],
  "creationTime": "2025-01-10T08:00:00.000",
  "modificationTime": "2025-01-10T08:00:00.000",
  "deleted": false
}

Topics

Dictionaries

Type Aliases

See Also