Budgets API
Create a Budget
Required parameters: budget_metric, budget_value, budget_period
Optional parameter: budget_pacing (if you leave blank it defaults to ASAP)
Budget pacing values: "front_loaded" or "even"
Please note that if you want to add a budget on top of a preexisting one, it cannot have the same budget period.
SDK
Use tab completion with SDK to auto-complete function names or show field options!
In [1]: import springserve
In [2]: tag = springserve.demand_tags.get(30424)
In [3]: new_budget = {
"budget_metric": "requests", #mandatory
"budget_period": "day", #mandatory
"budget_pacing": "even", #optional
"budget_value": 300 #mandatory
"vast_caching_adjustment": True, #optional
"vast_caching_lookback_seconds": None, #optional
"vast_caching_multiplier": None, #optional
"ignore_supply_allocations": False, #optional
"budget_value_currency": "USD" #optional
}
In [4]: tag.budgets.append(new_budget)
In [5]: tag.save()
In [6]: tag.ok
Out [5]: True
REST API
PUT /api/v0/demand_tags/<id>
Headers
Content-Type application/json Authorization "yourAuthToken"
Body (example)
{
"budgets":[{
"budget_metric":"requests",
"budget_value":300,
"budget_period":"day"
}]
}
Response
Status code 200
{
"id": 316932,
"account_id": 391,
"name": "test_tag",
"active": true,
"rate": "0.01",
…
"budgets": [
{
"id": 139151,
"budget_metric": "requests",
"budget_period": "day",
"budget_pacing": null,
"budget_value": 300,
"vast_caching_adjustment": True,
"vast_caching_lookback_seconds": None,
"vast_caching_multiplier": None,
"ignore_supply_allocations": False,
"budget_value_currency": "USD"
}
],
"frequency_caps": []
}
Edit a Budget
SDK
In [1]: tag = springserve.demand_tags.get(30424)
In [2]: tag.budgets = {"id":"139151", "budget_value":200}
In [3]: changed = tag.save()
In [4]: changed.ok
Out [4]: True
In [5]: print tag.budgets
Out [5]:[{u'budget_metric': u'requests', u'budget_pacing': None, u'budget_period': u'week', u'budget_value': 200, u'id': 139151}]
REST API
PUT /api/v0/demand_tags/<id>
Headers
Content-Type application/json Authorization "yourAuthToken"
Body (example)
{ |
Required parameters: id
Response
Status code 200
{
"id": 316932,
"account_id": 391,
"name": "test_tag",
"active": true,
"rate": "0.01",
…
"budgets": [
{
"id": 139151,
"budget_metric": "requests",
"budget_period": "day",
"budget_pacing": "front_loaded",
"budget_value": 1300
}
],
"frequency_caps": []
}
, multiple selections available,