Skip to main content

Meta audience reach estimates

Hi Zernio Team,

We need more accurate audience reach estimates for our Meta ads:

Our targeting uses three layers of detailed targeting:

  • L1: industry/product interests

  • L2: commercial/procurement interests

  • L3: job titles/decision-making roles

Interests within each layer are OR conditions, while populated layers are combined with AND.

Our current reach-estimation workflow cannot fully represent this logic, so some audience ranges are derived from separate estimates rather than an estimate of the complete combined targeting.

The standard POST /v1/ads/create endpoint supports rawTargeting, including Meta-native flexible_spec, but your documentation does not clearly confirm equivalent support in POST /v1/ads/targeting/reach-estimate.

Could you please confirm whether the reach-estimate endpoint supports the full Meta-native targeting specification, including flexible_spec?

If not, please consider adding this support so the endpoint can estimate the complete combined audience and return Meta's native lower/upper estimates, rather than requiring us to approximate intersections from separate estimates.

Ideally, the estimate should use the same targeting specification that will be applied to the actual ad set.

Thanks!

Status: Completed1 comment

Log in to comment and vote

Comments1

  • Miquel Palet López

    Team•

    Oct 29

    This is live now. POST /v1/ads/targeting/reach-estimate accepts rawTargeting on Meta, merged exactly like POST /v1/ads/create, so you can estimate the same targeting spec the ad set will use. That includes flexible_spec, where each entry is a layer, entries AND together, and the ids inside one entry OR.

    Example:

    {
      "accountId": "<metaads account id>",
      "adAccountId": "act_...",
      "rawTargeting": {
        "geo_locations": { "countries": ["US"] },
        "flexible_spec": [
          { "interests": [{ "id": "L1_a" }, { "id": "L1_b" }] },
          { "interests": [{ "id": "L2_a" }, { "id": "L2_b" }] },
          { "work_positions": [{ "id": "L3_a" }] }
        ]
      }
    }

    A few notes:

    • spec can be omitted when rawTargeting carries geo_locations or a custom audience. Meta needs at least one of them.
    • If you also send spec, it wins per top-level key, the same as on create. For example, spec.countries replaces the raw geo_locations, and spec.interests replaces the whole raw flexible_spec. Keep the layers in rawTargeting only.
    • The response is Meta's own delivery estimate (lower and upper bounds) for the full combined audience.