---
updatedAt: 2026-08-13T09:02:29.000Z
agentTools:
  projectIndex: https://mcm-docs.moloco.com/llms.txt
---

# ad_account.re_engage.churned

Provides campaign recommendations for re-engaging churned ad accounts.
A delivery contains at most 20 ad accounts and at most 20 recommended
campaigns in total.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "description": "Reference schemas for webhook requests sent by Moloco Commerce Media (MCM).\n\nEach delivery is an HTTP `POST` to the HTTPS endpoint configured for the\nplatform. Verify the signature against the raw request body, then use\n`x-moloco-webhook-id` as the idempotency key before processing the event.\n",
    "summary": "Webhook events delivered by Moloco Commerce Media",
    "title": "MCM Webhooks",
    "version": "0.1.0"
  },
  "tags": [
    {
      "description": "Event payloads that MCM sends to registered webhook endpoints.",
      "name": "Webhook Events"
    }
  ],
  "webhooks": {
    "ad_account.re_engage.churned": {
      "post": {
        "description": "Provides campaign recommendations for re-engaging churned ad accounts.\nA delivery contains at most 20 ad accounts and at most 20 recommended\ncampaigns in total.",
        "operationId": "receiveAdAccountReEngageChurned",
        "parameters": [
          {
            "$ref": "#/components/parameters/WebhookSignature"
          },
          {
            "$ref": "#/components/parameters/WebhookId"
          },
          {
            "$ref": "#/components/parameters/WebhookUserAgent"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdAccountReEngageChurnedWebhook"
              }
            }
          },
          "description": "A signed `ad_account.re_engage.churned` webhook delivery.",
          "required": true
        },
        "responses": {
          "2XX": {
            "description": "Return any 2xx status to acknowledge the delivery."
          },
          "default": {
            "description": "A non-2xx response is treated as a failed attempt and may be retried."
          }
        },
        "summary": "ad_account.re_engage.churned",
        "tags": [
          "Webhook Events"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "WebhookId": {
        "description": "Idempotency key for the delivery. This value is identical to the body\n`id`. Store processed IDs and ignore duplicate deliveries.\n",
        "in": "header",
        "name": "x-moloco-webhook-id",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/WebhookDeliveryId"
        }
      },
      "WebhookSignature": {
        "description": "Versioned HMAC signature for the raw request body. The value has the\nform `t=<unix>,v1=<hex signature>`. During signing-key rotation, more\nthan one `v1` value can be present.\n\nCompute `HMAC-SHA256(signing_secret, \"{t}.{raw_request_body}\")` and\ncompare its lowercase hexadecimal digest with a `v1` value. Do not\nparse or re-serialize the body before verification.\n",
        "in": "header",
        "name": "x-moloco-webhook-signature",
        "required": true,
        "schema": {
          "pattern": "^t=[0-9]+,v1=[0-9a-f]{64}(,v1=[0-9a-f]{64})*$",
          "type": "string"
        }
      },
      "WebhookUserAgent": {
        "description": "Identifies webhook requests sent by MCM.",
        "in": "header",
        "name": "User-Agent",
        "required": true,
        "schema": {
          "const": "Moloco-Webhook/1",
          "type": "string"
        }
      }
    },
    "schemas": {
      "AdAccountReEngageChurnedData": {
        "additionalProperties": false,
        "description": "Campaign recommendations grouped by churned ad account.",
        "properties": {
          "ad_account_count": {
            "description": "Number of objects in `ad_accounts`.",
            "format": "int32",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "campaign_count": {
            "description": "Total number of recommended campaigns across all ad accounts.",
            "format": "int32",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "ad_accounts": {
            "description": "Ad accounts in the delivery. Each ad account ID is unique. The\ncombined number of campaigns across this array does not exceed 20.\n",
            "items": {
              "$ref": "#/components/schemas/ChurnedAdAccount"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "ad_account_count",
          "campaign_count",
          "ad_accounts"
        ],
        "type": "object"
      },
      "AdAccountReEngageChurnedWebhook": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "$ref": "#/components/schemas/WebhookDeliveryId"
          },
          "event": {
            "const": "ad_account.re_engage.churned",
            "description": "Event type for this delivery.",
            "type": "string"
          },
          "test": {
            "description": "Whether the delivery was initiated as a test.",
            "type": "boolean"
          },
          "event_at": {
            "description": "Time at which MCM created the webhook event, in RFC 3339 format.",
            "format": "date-time",
            "type": "string"
          },
          "platform_id": {
            "description": "MCM platform that owns the webhook endpoint.",
            "minLength": 1,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/AdAccountReEngageChurnedData"
          }
        },
        "required": [
          "id",
          "event",
          "test",
          "event_at",
          "platform_id",
          "data"
        ],
        "type": "object"
      },
      "AdType": {
        "description": "Recommended campaign ad type.",
        "enum": [
          "ITEM",
          "BRAND",
          "DISPLAY",
          "RESERVED_DISPLAY"
        ],
        "type": "string"
      },
      "Budget": {
        "additionalProperties": false,
        "description": "Recommended campaign budget.",
        "properties": {
          "period": {
            "description": "Period over which the budget can be consumed.",
            "enum": [
              "DAILY",
              "WEEKLY"
            ],
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/MoneyMicro"
          }
        },
        "required": [
          "period",
          "amount"
        ],
        "type": "object"
      },
      "CampaignGoal": {
        "description": "Optimization goal for the recommended campaign. Exactly one setting\nobject is present, and it matches `type`.\n",
        "discriminator": {
          "mapping": {
            "FIXED_CPC": "#/components/schemas/FixedCpcGoal",
            "OPTIMIZE_ROAS": "#/components/schemas/OptimizeRoasGoal",
            "FIXED_COMMISSION_RATE": "#/components/schemas/FixedCommissionRateGoal",
            "FIXED_CPM": "#/components/schemas/FixedCpmGoal",
            "MAXIMIZE_SALES": "#/components/schemas/MaximizeSalesGoal"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/FixedCpcGoal"
          },
          {
            "$ref": "#/components/schemas/OptimizeRoasGoal"
          },
          {
            "$ref": "#/components/schemas/FixedCommissionRateGoal"
          },
          {
            "$ref": "#/components/schemas/FixedCpmGoal"
          },
          {
            "$ref": "#/components/schemas/MaximizeSalesGoal"
          }
        ]
      },
      "ChurnedAdAccount": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Ad account ID.",
            "minLength": 1,
            "type": "string"
          },
          "title": {
            "description": "Human-readable ad account title.",
            "minLength": 1,
            "type": "string"
          },
          "campaigns": {
            "description": "Recommended, not-yet-created campaigns for this ad account.",
            "items": {
              "$ref": "#/components/schemas/WebhookCampaignRecommendation"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "id",
          "title",
          "campaigns"
        ],
        "type": "object"
      },
      "Currency": {
        "description": "ISO 4217 currency code.",
        "enum": [
          "USD",
          "KRW",
          "JPY",
          "EUR",
          "GBP",
          "SEK",
          "INR",
          "THB",
          "IDR",
          "CNY",
          "CAD",
          "RUB",
          "BRL",
          "SGD",
          "HKD",
          "AUD",
          "PLN",
          "DKK",
          "VND",
          "MYR",
          "PHP",
          "TRY",
          "VES",
          "AED",
          "CHF"
        ],
        "type": "string"
      },
      "FixedCommissionRateGoal": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "const": "FIXED_COMMISSION_RATE",
            "type": "string"
          },
          "optimize_fixed_commission_rate": {
            "$ref": "#/components/schemas/OptimizeFixedCommissionRateSetting"
          }
        },
        "required": [
          "type",
          "optimize_fixed_commission_rate"
        ],
        "type": "object"
      },
      "FixedCpcGoal": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "const": "FIXED_CPC",
            "type": "string"
          },
          "optimize_fixed_cpc": {
            "$ref": "#/components/schemas/OptimizeFixedCpcSetting"
          }
        },
        "required": [
          "type",
          "optimize_fixed_cpc"
        ],
        "type": "object"
      },
      "FixedCpmGoal": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "const": "FIXED_CPM",
            "type": "string"
          },
          "optimize_fixed_cpm": {
            "$ref": "#/components/schemas/OptimizeFixedCpmSetting"
          }
        },
        "required": [
          "type",
          "optimize_fixed_cpm"
        ],
        "type": "object"
      },
      "MaximizeSalesGoal": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "const": "MAXIMIZE_SALES",
            "type": "string"
          },
          "maximize_sales": {
            "$ref": "#/components/schemas/MaximizeSalesSetting"
          }
        },
        "required": [
          "type",
          "maximize_sales"
        ],
        "type": "object"
      },
      "MaximizeSalesSetting": {
        "additionalProperties": false,
        "description": "Empty settings object for the `MAXIMIZE_SALES` goal.",
        "type": "object"
      },
      "MoneyMicro": {
        "additionalProperties": false,
        "description": "A monetary amount in millionths of the currency unit. For example,\n`1234` micro USD represents USD 0.001234. `amount_micro` is encoded as a\ndecimal string to preserve 64-bit integer precision.\n",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "amount_micro": {
            "description": "Positive amount in micro units, encoded as a decimal string.",
            "pattern": "^[1-9][0-9]*$",
            "type": "string"
          }
        },
        "required": [
          "currency",
          "amount_micro"
        ],
        "type": "object"
      },
      "OptimizeFixedCommissionRateSetting": {
        "additionalProperties": false,
        "properties": {
          "commission_rate": {
            "description": "Target commission rate percentage, rounded to one decimal place.",
            "exclusiveMinimum": 0,
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "commission_rate"
        ],
        "type": "object"
      },
      "OptimizeFixedCpcSetting": {
        "additionalProperties": false,
        "properties": {
          "target_cpc": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MoneyMicro"
              }
            ],
            "description": "Target cost per click."
          }
        },
        "required": [
          "target_cpc"
        ],
        "type": "object"
      },
      "OptimizeFixedCpmSetting": {
        "additionalProperties": false,
        "properties": {
          "target_cpm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MoneyMicro"
              }
            ],
            "description": "Target cost per thousand impressions."
          }
        },
        "required": [
          "target_cpm"
        ],
        "type": "object"
      },
      "OptimizeRoasGoal": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "const": "OPTIMIZE_ROAS",
            "type": "string"
          },
          "optimize_roas": {
            "$ref": "#/components/schemas/OptimizeRoasSetting"
          }
        },
        "required": [
          "type",
          "optimize_roas"
        ],
        "type": "object"
      },
      "OptimizeRoasSetting": {
        "additionalProperties": false,
        "properties": {
          "target_roas": {
            "description": "Target return on ad spend, in percent.",
            "format": "uint32",
            "maximum": 4294967295,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "target_roas"
        ],
        "type": "object"
      },
      "TimeInterval": {
        "additionalProperties": false,
        "description": "Recommended campaign schedule in RFC 3339 format.",
        "properties": {
          "start": {
            "description": "Campaign start time.",
            "format": "date-time",
            "type": "string"
          },
          "end": {
            "description": "Campaign end time. Omitted for an open-ended campaign.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "start"
        ],
        "type": "object"
      },
      "WebhookCampaignRecommendation": {
        "additionalProperties": false,
        "properties": {
          "recommendation_id": {
            "description": "Recommendation ID. Pass this value when creating the recommended\ncampaign so its impact can be tracked. IDs are unique within the delivery.\n",
            "minLength": 1,
            "type": "string"
          },
          "title": {
            "description": "Suggested campaign title.",
            "minLength": 1,
            "type": "string"
          },
          "ad_type": {
            "$ref": "#/components/schemas/AdType"
          },
          "goal": {
            "$ref": "#/components/schemas/CampaignGoal"
          },
          "budget": {
            "$ref": "#/components/schemas/Budget"
          },
          "schedule": {
            "$ref": "#/components/schemas/TimeInterval"
          },
          "catalog_item_ids": {
            "description": "Recommended catalog item IDs. This is an empty array for campaigns\nthat use smart selection without explicit item targets.\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "expires_at": {
            "description": "Time at which the recommendation expires, in RFC 3339 format.",
            "format": "date-time",
            "type": "string"
          },
          "reason": {
            "description": "Human-readable reason for the recommendation.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "recommendation_id",
          "title",
          "ad_type",
          "goal",
          "budget",
          "schedule",
          "catalog_item_ids",
          "expires_at",
          "reason"
        ],
        "type": "object"
      },
      "WebhookDeliveryId": {
        "description": "A 16-character Base62 delivery identifier. It remains unchanged across automatic retries and manual resends.",
        "pattern": "^[A-Za-z][A-Za-z0-9]{15}$",
        "type": "string"
      }
    }
  }
}
```