How-to

Advantage+ verbeteringen op bestaande advertenties controleren via de Marketing API

Advertentiebeheer toont één advertentie tegelijk, en het toont schakelaars, niet wat Meta heeft toegepast. De API toont elke advertentie in één query: dit is de leesquery, wat het antwoord betekent, en de valkuilen in Meta's eigen documentatie.

Adlio team5 min leestijd

Het korte antwoord

Lees degrees_of_freedom_spec en asset_feed_spec terug van de advertentiecreative, voor een hele advertentieset in één aanroep. Voor elke functie die je belangrijk vindt wil je een expliciete OPT_OUT zien: een afwezige key betekent dat Meta's standaard geldt, en voor de meeste functies is dat aan. Muziek is geen creative_features_spec-key, dus controleer dat asset_feed_spec.audios leeg is. Sinds v22.0 (januari 2025) accepteert Meta de bundel standard_enhancements niet meer, dus schrijf per functie uit.

Waarom überhaupt via de API controleren

Advertentiebeheer toont het paneel Verbeteringen voor één advertentie tegelijk, en het toont schakelaars, geen uitkomsten. De API geeft je twee dingen die de interface niet geeft: elke advertentie in één query, en de toegepaste set in plaats van de aangeklikte set. Meta verwijdert namelijk functies die niet geschikt zijn voor een advertentie voordat het de spec opslaat. Voor een wekelijkse batch van veertig advertenties is dat het verschil tussen een steekproef en een volledige controle.

De leesquery

De instelling zit op de advertentiecreative, in het veld degrees_of_freedom_spec. Meta's Ad Creative-referentie omschrijft het als "Specifies the types of transformations that are enabled for the given creative". Lees het rechtstreeks uit:

GET /v26.0/{creative-id}?fields=degrees_of_freedom_spec,asset_feed_spec

of via de advertentie, met standaard Graph-veldexpansie:

GET /v26.0/{ad-id}?fields=name,creative{degrees_of_freedom_spec,asset_feed_spec}

Voor een hele advertentieset:

GET /v26.0/{adset-id}/ads?fields=name,creative{degrees_of_freedom_spec,asset_feed_spec}&limit=200

Een typisch antwoord voor een afbeeldingscreative die met een volledige opt-out is aangemaakt:

{
  "degrees_of_freedom_spec": {
    "creative_features_spec": {
      "image_touchups":                { "enroll_status": "OPT_OUT" },
      "text_optimizations":            { "enroll_status": "OPT_OUT" },
      "image_templates":               { "enroll_status": "OPT_OUT" },
      "image_brightness_and_contrast": { "enroll_status": "OPT_OUT" },
      "image_animation":               { "enroll_status": "OPT_OUT" },
      "image_background_gen":          { "enroll_status": "OPT_OUT" },
      "image_uncrop":                  { "enroll_status": "OPT_OUT" },
      "enhance_cta":                   { "enroll_status": "OPT_OUT" },
      "text_translation":              { "enroll_status": "OPT_OUT" }
    }
  }
}

Elke aanroep heeft een token met ads_read op het account nodig. Dwingt je account app secret proof af, stuur die dan mee, zoals bij elke andere Graph-aanroep vanaf de server.

Zo lees je het antwoord

  • OPT_OUT aanwezig: de functie staat uit voor deze creative.
  • OPT_IN aanwezig: aan, en geschikt.
  • Key afwezig: óf nooit opgegeven, óf opgegeven en verwijderd omdat hij niet geschikt was voor dit formaat. Meta's gids: "Features specified as OPT_IN but ineligible for the given ad setup will be automatically removed from the creative_features_spec parameter." De ontwikkelaarsnotitie van januari 2025 voegt toe dat niet-geschikte functies "removed entirely from the creative_features_spec field" worden. Een afwezige key op een geschikte functie betekent dus dat Meta's standaard geldt. Voor de meeste functies is die standaard aan (sommige verbeteringen staan mogelijk standaard aan, Meta-help; inline_comment en description_automation zijn gedocumenteerd als "Default is opt-in").
  • asset_feed_spec.audios: muziek is geen creative_features_spec-key. Meta's gids: "the music feature ... is implemented with the asset_feed_spec parameter." Leeg of afwezig betekent geen muziekasset; [{"type": "random"}] betekent automatische muziek.

De controleregel: voor elke functie die je belangrijk vindt wil je een expliciete OPT_OUT zien, geen afwezigheid.

Wat er in januari 2025 veranderde

Tot Marketing API v21 reisden de meeste verbeteringen als één bundel, standard_enhancements. Meta heeft die opgeheven: "We will deprecate the Standard Enhancements bundle from the Marketing API, starting with MAPI V22.0 (to be released on January 21, 2025)" en "advertisers can no longer create or update ads with Standard Enhancements specified in the API request" (Meta developer blog, 17 januari 2025). De changelog van v22.0: "Opting ads in to and previewing ads using the STANDARD_ENHANCEMENTS bundle is no longer supported."

Twee gevolgen voor een controle vandaag:

  1. Creatives van vóór 2025 kunnen de bundelkey nog tonen. Die zijn niet fout, ze zijn oud. Nieuwe creatives moeten per functie uitschrijven.
  2. De bundelkey meesturen bij een create-aanroep laat de hele creative falen. Dat is de error subcode (3858504) waar wij op stuitten toen we Adlio's opt-out bouwden, en waarom Adlio hem nooit verstuurt.

De valkuilen in Meta's documentatie

Drie dingen die ons tijd kostten, zodat ze jou geen tijd kosten:

  • De referentietabel en de gids spreken elkaar tegen. Meta's Ad Creative Features Spec-referentie (v26.0) noemt 46 keys, veel voor catalogus- en WhatsApp-formaten, en laat image_brightness_and_contrast, image_uncrop, enhance_cta, video_auto_crop en video_uncrop weg. De gids "Get Started with Advantage+ Creative" documenteert precies die keys, met hun labels uit Advertentiebeheer. De referentie noemt op haar beurt keys die de gids niet beschrijft (site_extensions, profile_card, music_generation, video_highlights). De enige betrouwbare lijst is de lijst die jouw API-versie accepteert bij een echte create-aanroep.
  • Relevante reacties is inline_comment. Een key die letterlijk relevant_comments heet, wordt afgewezen. inline_comment is de gedocumenteerde key ("Opt in/opt out of Relevant comments enhancement. Default is opt-in."). Dit hadden we in een eerder artikel fout en hebben we gecorrigeerd.
  • Veldnamen van leveranciers zijn niet die van Meta. Namen als image_auto_crop_enable of text_optimization_enable gaan rond in sommige gidsen en komen in geen enkel Meta-document voor. Meta's velden zijn objectkeys met een enroll_status.

Een minimaal controlescript

Pseudocode, elke taal:

for each ad in GET /{adset-id}/ads?fields=name,creative{degrees_of_freedom_spec,asset_feed_spec}:
  spec   = ad.creative.degrees_of_freedom_spec.creative_features_spec or {}
  audios = ad.creative.asset_feed_spec.audios or []
  for key in REQUIRED_OPT_OUT_KEYS:
    if spec[key].enroll_status != "OPT_OUT": flag(ad.name, key, "niet expliciet uitgeschreven")
  if len(audios) > 0: flag(ad.name, "music", "audio-asset gekoppeld")

Draai het op de gepauzeerde batch voordat je hem live zet, en een week later opnieuw. Leveranciers melden dat verbeteringen terugkomen na bewerkingen of dupliceren (JumpFly, augustus 2026: de creative vervangen, het formaat wijzigen of dupliceren "may cause recommended enhancements to appear selected again"). Een leesquery is de enige controle die daarnaar schaalt.

Hoe Adlio dit gebruikt

Adlio schrijft de opt-out bij het aanmaken in elke creative, alleen met keys die tegen de live API zijn geverifieerd, en verstuurt nooit de opgeheven bundelkey. Elke advertentie landt gepauzeerd, dus de controle hierboven kan draaien vóór de eerste vertoning. Het is de API-versie van controle 6 op de checklist voor gepauzeerd lanceren. De volledige controlekaart, inclusief de routes in de interface, staat in Advantage+ verbeteringen uitzetten; de uitzondering voor muziek is uitgewerkt in muziek onder je Meta-advertentie uitzetten.

Hoe dat er vanuit jouw kant uitziet, map erin en gepauzeerde advertenties eruit, staat op Facebook-advertenties in bulk uploaden vanuit een map.

Veelgestelde vragen

Welk veld lees ik uit?+

degrees_of_freedom_spec op de advertentiecreative. Meta's Ad Creative-referentie noemt het als leesbaar veld ("Specifies the types of transformations that are enabled for the given creative"). De spec-referentie markeert lezen als ondersteund en aanmaken, bijwerken en verwijderen op het spec-endpoint zelf als niet ondersteund: je zet het bij het aanmaken van de creative en leest het daarna terug.

Waarom ontbreken sommige keys in het antwoord?+

Omdat Meta ze verwijdert. De ontwikkelaarsgids: "Features specified as OPT_IN but ineligible for the given ad setup will be automatically removed from the creative_features_spec parameter." De notitie van januari 2025 herhaalt het: niet-geschikte functies worden "removed entirely". Wat je terugleest, is dus de set die op die advertentie echt kan gelden.

Kan ik standard_enhancements nog gebruiken?+

Nee. Meta's ontwikkelaarsnotitie van januari 2025: "beginning with MAPI v22.0 (available January 21, 2025), and all subsequent API versions, advertisers can no longer create or update ads with Standard Enhancements specified in the API request." De key staat nog in de referentietabel, maar wordt niet geaccepteerd bij aanmaken of bijwerken. Schrijf per functie uit.

Waar staat muziek in het antwoord?+

Niet in creative_features_spec. Meta implementeert muziek via asset_feed_spec.audios, dus lees dat veld ook uit: een lege of afwezige audios-lijst betekent dat er geen muziekasset is gekoppeld. Relevante reacties is daarentegen een gewone key: inline_comment, "Default is opt-in" volgens Meta's referentie.

Bronnen

Adlio team

Gebouwd door media buyers die Meta-advertenties in volume lanceren. Vragen of correcties: support@adlio.ai.

Onderwerpcluster

Advantage+ uit

Meta's automatische creatieve verbeteringen uit houden, op elke advertentie, en dat kunnen bewijzen.