Asset Hub
Asset Hub is the asset library for an ad account: where you register media files and track them until they are ready to use in a creative. See Creative Management Overview for how assets relate to creatives.
¶ Allowlisting Uber’s IP Ranges
Assets are registered by URL and Uber fetches the file from its own network. If the host serving your files restricts inbound traffic, allowlist these IPv4 ranges before you register anything, or the download fails and the asset ends in ASSET_STATUS_FAILED:
104.36.192.0/21
103.50.92.0/22
43.231.12.0/22
185.121.8.0/22
34.29.112.80/28
69.48.216.0/21
35.245.85.240/28
35.186.183.128/32
35.245.44.120/32
35.245.127.18/32
35.199.26.229/32
35.245.126.186/32
35.236.200.23/32
35.245.22.0/32
35.245.123.148/32
35.236.250.36/32
35.245.180.192/32
34.85.184.85/32
¶ Registering an Asset
Assets are registered by URL rather than uploaded. Host the file somewhere publicly reachable and pass that location as file_url:
curl -X POST "https://api.uber.com/v1/ads/{account_id}/assets" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Summer Campaign Hero",
"file_url": "https://cdn.example.com/creative/summer-hero-1200x628.jpg"
}'
The response returns the new identifier:
{
"asset_id": "b3d9f0a2-1c47-4e8b-9a52-7f6c1d0e3a84"
}
Because this is a fetch rather than an upload, the URL must be reachable by Uber without authentication at the time of the call. Uber stores its own copy, so taking the original URL offline afterwards does not affect the asset.
A 200 response means the asset was accepted for processing, not that it is ready to use.
¶ Supported File Types
Assets are images, and each one returns FileSpecs with the stored file’s pixel dimensions under image_specs. Dimension and aspect-ratio requirements vary by ad product and are checked during processing, so a file that does not meet them is accepted by Create Asset and fails afterwards.
¶ Processing Statuses
Assets are processed asynchronously, and every asset carries a status. An asset must reach ASSET_STATUS_COMPLETED before a creative can reference it. See Asset for the full list of status values.
Assets themselves are not reviewed — review happens on the creative that uses them. When processing fails, status_reasons carries a reason code such as ASSET_STATUS_REASON_DOWNLOAD_ERROR; correct the file and register it as a new asset.
¶ Listing Assets
Get Assets returns the account’s assets and is the endpoint to poll while waiting for processing. It supports pagination through page_token and page_limit, and an asset_id filter for a single asset:
curl "https://api.uber.com/v1/ads/{account_id}/assets?asset_id=b3d9f0a2-1c47-4e8b-9a52-7f6c1d0e3a84" \
-H "Authorization: Bearer <TOKEN>"