Ads

Ad Updated

Sent when an ad's status or delivery_status changes, including the in_review and rejected verdicts from ad review. previous_attributes carries the values they changed from; the payload carries no performance stats

Required permissions:

  • webhook_receive:ads
postWebhookad.updated

Headers

webhook-idstring required

A unique identifier for this webhook request

Example:msg_xxxxxxxxxxxxxxxxxxxxxxxx
webhook-signaturestring required

The signature of the webhook request with the webhook version prepended

Example:v1,BASE64ENCODEDSIGNATURE
webhook-timestampstring required

The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

Example:1727606400

Payload

account_idstring nullable

The account ID that this webhook event is associated with

api_version'v1' required

The API version for this webhook

api_version_datestring nullable required

The dated API version (Api-Version-Date) the payload is serialized to

idstring required

A unique ID for every single webhook request

previous_attributesobject

For some .updated events, the old values of the payload fields that changed, keyed by field name. Omitted when no capture is available for the event

timestampstring date-time required

The timestamp in ISO 8601 format that the webhook was sent at on the server

type'ad.updated' required

The webhook event type

Example payload

{
  "account_id": "biz_xxxxxxxxxxxxxx",
  "api_version": "v1",
  "api_version_date": "2026-07-20",
  "data": {
    "ad_campaign": {
      "id": "adcamp_xxxxxxxxxxxxxx"
    },
    "ad_group": {
      "id": "adcamp_xxxxxxxxxxxxxx"
    },
    "call_to_action": "learn_more",
    "created_at": "2026-01-01T12:00:00.000Z",
    "creatives": [
      {
        "crop": {
          "height": 1000,
          "width": 1000,
          "x": 40
        },
        "format": "vertical",
        "id": "file_xxxxxxxxxxxxxx",
        "media_type": "image",
        "url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      }
    ],
    "delivery_status": "paused",
    "descriptions": [
      "Paint correction included"
    ],
    "existing_post_id": "xxxxxxxxxxxxxxxx_98765",
    "headlines": [
      "Austin's mobile detailers"
    ],
    "id": "ad_xxxxxxxxxxxxxx",
    "issues": [
      {
        "id": "adiss_xxxxxxxxxxxxxx",
        "message": "Your ad was rejected for unacceptable business practices. Edit the ad's content and resubmit.",
        "resource_id": "ad_xxxxxxxxxxxxxx",
        "resource_type": "ad"
      }
    ],
    "lead_form": {
      "completion": {
        "button_text": "See our work",
        "description": "We book coatings two days out, so pick a slot when we ring.",
        "headline": "Thanks — we will call you today",
        "url": "https://shinetime.example/gallery"
      },
      "disclaimer": {
        "body": "Ceramic coating requires the vehicle for two days.",
        "checkboxes": [
          {
            "key": "consent_1",
            "required": true,
            "text": "I agree"
          }
        ],
        "title": "Before you submit"
      },
      "form_type": "higher_intent",
      "intro": {
        "description": "Tell us about your vehicle and we will send a fixed price.",
        "headline": "Get a ceramic coating quote"
      },
      "name": "Ceramic coating quote requests",
      "phone_verification": true,
      "privacy_policy": {
        "link_text": "Shine Time privacy policy",
        "url": "https://shinetime.example/privacy"
      },
      "questions": [
        {
          "format": "multiple_choice",
          "label": "What vehicle are we detailing?",
          "options": [
            {
              "key": "ceramic_coating",
              "logic": {
                "action": "go_to_question",
                "target_question_index": 3
              },
              "value": "Ceramic coating"
            }
          ],
          "type": "custom"
        }
      ]
    },
    "lead_form_id": "1037724182084885",
    "messaging_config": {
      "keyword": "Book an interior deep clean",
      "message": "Hi! Tell us your vehicle and ZIP and we will send an interior deep clean quote."
    },
    "multi_advertiser_ads": true,
    "post_id": "xxxxxxxxxxxxxxxx_98765",
    "post_source": "facebook",
    "post_thumbnail_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "primary_texts": [
      "Book a two-day ceramic coating and keep the shine for three years."
    ],
    "social_accounts": [
      {
        "id": "adcamp_xxxxxxxxxxxxxx"
      }
    ],
    "status": "paused",
    "title": "Ceramic coating — new ad group",
    "updated_at": "2026-01-01T12:00:00.000Z",
    "url": "https://shinetime.example/ceramic-coating",
    "url_parameters": {}
  },
  "id": "msg_xxxxxxxxxxxxxxxxxxxxxxxx",
  "previous_attributes": {
    "status": "in_review"
  },
  "timestamp": "2025-01-01T00:00:00.000Z",
  "type": "ad.updated"
}

Response

Return a 200 status to indicate that the data was received successfully

Changes