Multi-language creatives on ad create (asset_feed_spec / language_label)
Meta lets one ad carry several language versions — the "Languages" toggle in Ads Manager, i.e. asset_feed_spec with a language_label on each asset (bodies, titles, videos, images). Meta then serves each viewer the version in their language, and all of it lives on one ad, so likes and comments accumulate in one place.
Today Zernio can't create that. POST /v1/ads/creatives and the creative fields on POST /v1/ads/create cover a fixed set — headline / body / description / CTA / link / image / carousel — with no way to pass per-language variants. The only workaround is one ad per language, which splits social proof across N posts and multiplies the objects you have to manage.
Two ways to solve it
languages[]on the creative — each entry alanguageLabelplus its ownheadline/body/description, and optionally its ownimageUrl/video.Let a raw
creativeSpecthrough on create, forwarded to Meta verbatim — exactly howrawTargetingalready works for ad sets.
Option 2 is the more general fix: it would also cover every future Meta creative feature without Zernio needing a new field each time.
Why this looks small from the outside
Zernio already has both halves of it, per the dev changelog:
placementAssets(2 June) is described as using Meta'sasset_feed_spec+asset_customization_rules— so the asset_feed_spec builder exists.POST /v1/ads/preview(20 July) already accepts a rawcreativeSpec— so verbatim spec parsing exists.
Multi-language is essentially those two meeting.
Who else this affects
Anyone running international campaigns from one ad account: e-commerce across EU locales, apps with regional stores, agencies with multi-market clients. It's a standard Ads Manager feature, so the gap is visible the moment someone compares the API with the UI.
We're an in-house team of ~50 buyers; this is the last blocker before we move our whole launch tooling onto the Zernio API. Happy to test behind a flag.
Log in to comment and vote
Comments2
Aug 6
PinnedThis is live! Shipped as a translations[] array (plus defaultLocale) on POST /v1/ads/create: one ad carrying per-locale copy and optionally per-locale media, built on Meta's Dynamic Language Optimization so social proof stays on a single post. Full contract and gotchas here: https://docs.zernio.com/ad-campaigns/create-standalone-ad
And following the comment below: each entry now also accepts its own linkUrl for per-language landing pages. Details in https://zernio.featurebase.app/p/meta-ads-let-each-language-in-translations-link-to-its
Fedir Bobylev
Aug 4
Would like +1 in here, BTW I’ve been looking over the docs each week and today noticed they’ve added it here
https://docs.zernio.com/ad-campaigns/create-standalone-ad as translations[] parameter, gonna test it tonight!
But for us one missing piece is allowing different links based on locale, as often locales in build-in meta browsers, don’t match the locale in creative. Meta API allows unique link_urls per each locale in their API
Would GREATLY appreciate help here. This is a daily use case for us and one of the major levers to scale