Google Ads Write
Link a square LOGO as a campaign-level asset to an existing Performance Max campaign
POST https://api.adspirer.ai/api/v1/tools/add_pmax_campaign_logo/execute
Authorization: Bearer sk_live_... — your Adspirer API key (required)Content-Type: application/json (required)Idempotency-Key: <uuid> — recommended for write operations to make retries safeAll tool arguments are wrapped in an arguments object.
| Field | Type | Description |
|---|---|---|
campaign_id | string required | The Performance Max campaign ID (numeric). Example: '24249158821' |
asset_id | string optional | The numeric ID (or full resource name) of an EXISTING approved IMAGE asset in the account's library to link as the square logo. Preferred when the logo is already uploaded (no re-upload). Get IDs from discover_existing_assets / list_pmax_asset_group_images. |
image_url | string optional | Alternative to asset_id: a public http(s) URL OR a 'data:image/...;base64,...' URI to create/upsert a NEW square logo image. Provide EITHER asset_id OR image_url, not both. |
asset_name | string optional | Optional display name for a newly created logo asset. |
business_name | string optional | Optional: also link a BUSINESS_NAME CampaignAsset (max 25 chars) in the same call. Brand-Guidelines PMax campaigns require BOTH a square logo and a business name at the campaign level. |
force | boolean optional | If true, link even when an identical logo is already linked (default skips duplicates). default: false |
customer_id | string optional | Google Ads customer ID. Required for multi-account users. Get from get_connections_status. |
{
"arguments": {
"campaign_id": "<campaign_id>",
"asset_id": "string",
"image_url": "string",
"asset_name": "string",
"business_name": "string",
"force": false,
"customer_id": "string"
}
}
{
"success": true,
"data": {
"text": "(tool-specific textual output for add_pmax_campaign_logo)",
"quota": {
"used": 42,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01"
}
},
"tool": "add_pmax_campaign_logo"
}
{
"success": false,
"error": "You have 25 meta_ads accounts connected. Please specify which account to use by passing the ad_account_id parameter:\n - Acme Holdings (ad_account_id=\"act_123456789\")\n - Acme EU (ad_account_id=\"act_987654321\")",
"is_error": true,
"tool": "add_pmax_campaign_logo"
}
{
"success": false,
"error": "\ud83d\udea8 Monthly limit reached (150/150 tool calls on Plus tier).\nUpgrade to Pro at https://adspirer.ai to keep building.",
"is_error": true,
"tool": "add_pmax_campaign_logo",
"quota": {
"used": 150,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01",
"upgrade_url": "https://adspirer.ai"
}
}
Interactive: Swagger UI
Machine-readable: OpenAPI 3.1 spec · llms-full.txt
More tools: Google Ads · All tools
Adspirer REST API — get an API key at adspirer.ai/keys · adspirer.ai