Update Tactic

Once a tactic has been created, you can update it using the PATCH endpoint. Only the fields included in the request body will be updated. Top-level sections that are omitted from the request will remain unchanged.

Endpoint

PATCH

https://lifeapi.pulsepoint.com/RestApi/v2/account/{accountId}/tactic/{tacticId}

Path Parameters

NameData TypeRequiredNotes
accountIdintegeryesThe account ID the tactic belongs to
tacticIdintegeryesThe unique identifier of the tactic to update

How Partial Updates Work

  • Only the fields provided in the request body will be updated
  • Top-level sections sent in the request completely replace that section
  • Top-level sections omitted from the request remain unchanged
  • This allows efficient updates without resending the entire tactic configuration

Request Field List

tactic

NameData TypeRequiredDefaultNotes
namestringno
descriptionstringno
enabledbooleannoWhether the tactic is enabled or disabled
baseBidPricenumbernoThe base bid price for the tactic. Must be less than or equal to Max Bid Price.
maxBidPricenumbernoThe maximum bid price for the tactic. Must be greater than or equal to Base Bid Price.
customFieldSettingsobjectconditionalMandatory if your account has mandatory custom field settings at the tactic level
budgetDistributionobjectnoHow you want to allocate spend across tactics
maxSpendPerTacticobjectnoAn optional setting allowing the user to define an amount the tactic cannot spend more than over a given period of time
managementFeeobjectnoAn override option if you only want to apply a management fee to some tactics and not others
mediaOptimizationobjectno
frequencyCapobjectnoAn override option if you want to have a different frequency cap at the tactic level
creativeAssignmentsarray of objectsnoWhile this object is not required, a tactic will not serve without at least one creative assigned
targetingobjectnoNarrowing the scope of your ad impressions to certain audience, contextual, or supply filters

tactic.customFieldSettings

NameData TypeRequiredNotes
isNewFieldbooleanyesValues: true, false
fieldNamestringyesMust be unique to the account ID if isNewField = true
fieldValuestringyes

tactic.budgetDistribution

NameData TypeRequiredDefaultNotes
typeENUM stringyesValid Values: Dollars, Percent, Priority. Must match what was set at the line item level
valuenumberyesThe allocation for this tactic within the line item flight. For Dollars: amount to spend. For Percentage: share of budget (0–100). For Priority: which tactic receives the next impression

tactic.maxSpendPerTactic

NameData TypeRequiredDefaultNotes
enabledbooleanyes
amountnumericyes
periodENUM stringnodayValid Values: day, flight

tactic.managementFee

NameData TypeRequiredDefaultNotes
typeENUM stringconditionalRequired if managementFee object is used. Valid Values: Percentage, CPM, PercentageAndCPM, FixedCPM
percentageintegerconditionalRequired for management fee types of Percentage or PercentageAndCPM
cpmnumericconditionalRequired for management fee types of CPM, PercentageAndCPM, FixedCPM

tactic.mediaOptimization

NameData TypeRequiredDefaultNotes
typeENUM stringnoCPMValid Values: CPM, FLAT, CPC, CTR, CPA, Tactic_Reach, LineItem_Reach, Campaign_Reach, Viewability
goalnumericconditionalRequired for Viewability, CTR, and CPA optimization types
conversionPixelIdintegerconditionalRequired for CPA optimization type

tactic.frequencyCap

NameData TypeRequiredDefaultNotes
applyFrequencyCapbooleanconditionalRequired if frequencyCap object is used
timesintegeryesValid values: 1–100
periodENUM stringyesValid Values: day, hour(s), week, month
hoursValueintegerconditionalRequired only if period is hour(s). Valid Values: 1 to 1000
crossDeviceENUM stringnoValid Values: Per Device, Per Person, Per Household
untrackablebooleannoInclude untrackable users
ipUntrackablebooleannoInclude IP-untrackable users

tactic.creativeAssignments

NameData TypeRequiredDefaultNotes
creativeIdintegeryesThe ID of the creative to be assigned to the tactic
weightintegeryesWeight is a percentage. Total weight within ad size on a tactic must equal 100
startDatestringnoExample: 2025-12-30 23:59:59
endDatestringnoExample: 2025-12-30 23:59:59

tactic.targeting.hcpByPractitioner

NameData TypeRequiredDefaultNotes
crossDeviceENUM stringnodeviceValid Values: device, person, home_ip, practice_ip
npiReportingbooleannofalse
segmentsobject

tactic.targeting.hcpByPractitioner.segments

NameData TypeRequiredDefaultNotes
includebooleannoValid Values: true, false
segmentIdintegerno
segmentTypeENUM stringnoValid Values: practitioner, specialty

tactic.targeting.npiTargeting

NameData TypeRequiredDefaultNotes
crossDeviceENUM stringnodeviceValid Values: device, person, home_ip, practice_ip
npiReportingbooleannofalse
listsarray of objectsconditionalRequired if npiNumbers is not provided. Add one or more existing NPI lists
npiNumbersobjectconditionalRequired if lists is not provided. Add individual NPIs to target

tactic.targeting.npiTargeting.lists

NameData TypeRequiredNotes
listIdstringyes
includebooleanyesValid Values: true, false

tactic.targeting.npiTargeting.npiNumbers

NameData TypeRequiredNotes
numbersarray of stringsyesNPI numbers must be 10 digits
includebooleanyesValid Values: true, false

tactic.targeting.retargetingPixels

NameData TypeRequiredDefaultNotes
crossDeviceENUM stringnodeviceValid Values: device, person, home_ip, practice_ip
recencyENUM stringyesValid Values: 1, 7, 15, 30, 60, 90, 90plus
pixelsarray of objectsList of retargeting pixels you are including or excluding

tactic.targeting.retargetingPixels.pixels

NameData TypeRequiredNotes
pixelIdintegeryes
includebooleanyesValid Values: true, false

tactic.targeting.behavioralSegments

NameData TypeRequiredDefaultNotes
crossDeviceENUM stringnodeviceValid Values: device, person, household, household_ip
segmentsarray of objectsyes

tactic.targeting.behavioralSegments.segments

NameData TypeRequiredNotes
providerIdintegeryes
segmentIdintegeryes
includebooleanyesValid Values: true, false

tactic.targeting.healthPopulations

NameData TypeRequiredDefaultNotes
crossDeviceENUM stringnodeviceValid Values: device, person, household, household_ip
operatorENUM stringnoorValid Values: or, and — whether a user must appear in every population or just one
historicalPeriodENUM stringyesValid Values: 3, 30, 90plus
segmentsarray of objectsyes

tactic.targeting.healthPopulations.segments

NameData TypeRequiredNotes
meshCodestringyes
segmentTypeENUM stringyesValid Values: treatment, condition
includebooleanyesValid Values: true, false

tactic.targeting.iabNewCategories

NameData TypeRequiredNotes
categoryIdintegeryes
includebooleanyesValid Values: true, false

tactic.targeting.geoTargets

NameData TypeRequiredNotes
typeENUM stringyesValid Values: country, state, city, metro
valuesarray of stringsyesList of geo target values. For country use ISO (e.g., usa, gbr), for state use ISO (e.g., NY, CA), for city use name (e.g., Los Angeles), for metro use name (e.g., philadelphia). All values in the array must have the same parent
includeENUM stringyesValid Values: true, false
parentobject

tactic.targeting.geoTargets.parent

NameData TypeRequiredNotes
typeENUM stringyesValid Values: country, state
valuestringyesParent ID of geoTargets.values

tactic.targeting.devices

NameData TypeRequiredNotes
deviceTypesarray of ENUM stringsyesValid Values: desktop, mobile, tablet, connected_tv, connected_device, set_top_box, ooh_device
includeENUM stringyesValid Values: true, false

tactic.targeting.domainsApps

NameData TypeRequiredNotes
domainListsarray of objectsnoAt least one of the four objects is required
domainsarray of objectsno
appListsarray of objectsno
appsarray of objectsno

tactic.targeting.domainsApps.domainLists

NameData TypeRequiredNotes
listIdstringyes
includeENUM stringyesValid Values: true, false

tactic.targeting.domainsApps.domains

NameData TypeRequiredNotes
domainNamestringyes
includeENUM stringyesValid Values: true, false

tactic.targeting.domainsApps.appLists

NameData TypeRequiredNotes
listIdstringyes
includeENUM stringyesValid Values: true, false

tactic.targeting.domainsApps.apps

NameData TypeRequiredNotes
appNamestringyes
includeENUM stringyesValid Values: true, false

tactic.targeting.inventorySources

NameData TypeRequiredNotes
exchangesarray of stringsyes
includeENUM stringyesValid Values: true, false

tactic.targeting.inventoryTypes

NameData TypeRequiredNotes
typesarray of ENUM stringsyesValid Values: app, site
includeENUM stringyesValid Values: true, false

tactic.targeting.viewability

NameData TypeRequiredDefaultNotes
minViewabilityRateintegeryesValid Values: 1 to 80 — the percentage viewable
providerENUM stringyesValid Values: DV (DoubleVerify)

Errors

HTTP StatusErrorDescription
400Validation ErrorOne or more fields failed validation. See the details array in the response for field-level messages
403ForbiddenYou do not have permission to edit tactic {tacticId}
404Not FoundTactic with ID {tacticId} does not exist
400Budget ConflictCannot set budget lower than amount already spent