Edge Method course, Module 5
Catalogue method: October 2026 feasibility and Marketing API check
Three questions, answered from Meta's own developer documentation (read 13 October 2026) and from what the course and its Q&A calls show. Nothing was called against the ad account; this is a paper check.
Every piece the method relies on is a current, documented Meta feature: catalogue ads with product-level video, the single image or video format, the "prioritise video" option, ad-level destination override and $1 ad set budgets. The caveat is the premise: Meta's docs say catalogue videos are downloaded and put through integrity review once the item is pulled into a product-level video ad, so the video is not unreviewed, only reviewed later and separately from the ad shell. The course itself says "nobody knows how long this will last".
The 1-25-1 structure is ordinary Ads Manager: Sales objective, ad set budgets (ABO), one catalogue ad per ad set, 25 duplicates. The only moving part is which UI variant the account gets; the course documents three (standard, "new UI" ad-level catalogue, and the May 2026 Commerce Manager "create campaign" button workaround).
Catalogue, items with image plus video, product set, pixel link, campaign, ad set, creative with single-video format and destination override, ad, and 24 ad set copies all have documented endpoints. Two creative details need one paused dry build to confirm before trusting them (marked below). No calls were made.
What the method actually is (from lessons 5.4, 5.5, 5.9 and the launch checklist)
- Catalogue per ad in Commerce Manager, type "Digital products or content, Streaming media", pixel connected, manual upload. One item: a bland 500x500 image first, then the real video (under 100 MB), title = the Facebook page name, bland description, website link = google.com. Duplicate the row to 5 items (Meta's minimum to serve).
- Campaign: objective Sales, Advantage+ catalog ads on, that catalogue selected, ad set budget (ABO), budget sharing off.
- Ad set: Website, maximise conversions, Purchase, daily budget = the account minimum ($1, or whatever the currency enforces), start 00:00 next day, offer's countries, age, gender and language, Audience Network and Threads removed.
- Ad: page selected, manual destination = the real tracking link, "Override catalogue website deep links" on with the same link, format Single image or video (never carousel), media from catalogue with Optimised media selection and Prioritise video ticked, headline = page name, no primary text, CTA Learn more, all enhancements off (Relevant comments and Hide price optional), pixel on, ClickMagick URL parameters.
- Then duplicate the ad set 24 times; for each new ad duplicate the whole campaign and swap catalogue, link and names. One catalogue, one ad, one tracking link per campaign.
Field-by-field: course setting to Marketing API
| Course step | API call and fields | Status |
|---|---|---|
| Create the catalogue | POST /{business_id}/owned_product_catalogs with name (= ad name) and vertical. Default is commerce; media_titles exists for streaming media but product-level video is documented on product items, so use commerce. | documented |
| Connect the pixel | POST /{catalog_id}/external_event_sources with external_event_sources=[PIXEL_ID] | documented |
| Add the item: bland image, then the video, title = page name, bland description, white-hat link; 5 items | POST /{catalog_id}/items_batch, item_type=PRODUCT_ITEM, five CREATE requests each with id, title, description, availability, condition, price, link, brand, image:[{url}], video:[{url}]. Video file up to 200 MB, hosted on a public HTTPS URL. Check with GET /{catalog_id}/check_batch_request_status and the item's video_fetch_status. | documented |
| Product set the ad promotes | POST /{catalog_id}/product_sets with name and filter={} (all items) | documented |
| Campaign: Sales, catalogue ads, ABO, no budget sharing | POST /act_{id}/campaigns: objective=OUTCOME_SALES, special_ad_categories=[], no campaign budget (ad set budgets = ABO), is_adset_budget_sharing_enabled=0, status=PAUSED. The older catalogue guide still shows PRODUCT_CATALOG_SALES with promoted_object.product_catalog_id; legacy objectives are listed as deprecated since v17. | confirm on dry build |
| Ad set: Website, maximise conversions, Purchase, $1, midnight start, targeting, placements | POST /act_{id}/adsets: optimization_goal=OFFSITE_CONVERSIONS, billing_event=IMPRESSIONS, promoted_object={product_set_id, pixel_id, custom_event_type:PURCHASE}, daily_budget=100 (cents), start_time, targeting={geo_locations.countries, age_min, age_max, genders, locales, publisher_platforms:[facebook,instagram,messenger]} (omit audience_network; Threads is excluded by leaving it out of publisher_platforms), status=PAUSED. Minimum budget read from /act_{id}?fields=min_daily_budget,currency. | documented |
| Ad: single image or video, prioritise video, headline = page, Learn more, no primary text, enhancements off | POST /act_{id}/adcreatives: product_set_id, object_story_spec={page_id, template_data:{name:"<page name>", call_to_action:{type:LEARN_MORE}, force_single_link:true, multi_share_end_card:false, format_option:"single_video", link:"<lander>"}}, degrees_of_freedom_spec={creative_features_spec:{media_type_automation:{enroll_status:OPT_IN}, standard_enhancements:{enroll_status:OPT_OUT}}}, url_tags="cmp={{campaign.id}}&...". Docs: force_single_link = single product link ad instead of carousel; single_video = "prioritise video", single format only; media_type_automation = allow product video. | confirm on dry build |
| Manual destination + override catalogue deep links | Two documented routes. (a) template_url_spec={web:{url:"<lander with params>"}} on the creative: Meta's ad-level URL template for catalogue ads (documented for click trackers, takes a fixed URL). (b) Set the item's link to the real lander in the first place, which is what the override achieves. The course uses google.com as the item link so the catalogue looks white-hat; route (a) keeps that. | confirm on dry build |
| Ad | POST /act_{id}/ads with adset_id, creative={creative_id}, status=PAUSED | documented |
| Duplicate the ad set 24 times | POST /{adset_id}/copies with deep_copy=true, status_option=PAUSED, rename_strategy=NO_RENAME; up to 50 copy sub-requests per async batch call. 24 copies = one batch. | documented |
| New ad = new campaign (new catalogue, link, names) | Repeat the whole sequence per ad, or POST /{campaign_id}/copies then update the creative. Repeating is cleaner: one catalogue, one creative, one tracking link per campaign is exactly the validation rule. | documented |
| Troubleshooting: video missing from catalogue | Read video_fetch_status and videos on the item (GET /{item_id}?fields=videos,video_fetch_status) before creating the ad; the UI bug the course hits (video silently dropped) is visible here without opening Commerce Manager. | documented |
What cannot be settled on paper
- Whether
force_single_link,format_option: single_videoandtemplate_url_specare accepted together on one creative underOUTCOME_SALES. Each is documented; the combination is what Ads Manager builds, and one paused creative in a test ad account proves it in a minute. Not done, per instruction. - Which Ads Manager UI the new account gets. Irrelevant for the API route (the API has one spec), relevant if any step is done by hand.
- Whether the $1 minimum applies: the API returns the account minimum and will reject a lower budget, same as the UI. Some currencies enforce $2 or $5 (call 5), in which case the ad set count drops to keep $25 a day.
Prerequisites for the API route
- A Meta app in the new Business Manager with
ads_management,catalog_management,business_managementandpages_read_engagement; a system user token with access to the ad account, page, pixel and catalogue. - Video files hosted on a public HTTPS URL (our own domain) so
items_batchcan fetch them. - One throwaway or test ad account for the dry build of the three "confirm" rows before anything is built in the real account.
Sources read 13 Oct 2026: Meta for Developers, Advantage+ catalog ads get started; Allow product video and its FAQ; Advantage+ creative for catalog; Ad Campaign (objective enum); Ad Set reference; Ad Creative reference; Product Catalog reference; items_batch reference; product_sets; external_event_sources; Ad Set copies. Course: Module 5 lessons 5.1, 5.4, 5.5, 5.8, 5.9; Launch Checklist PDF; Q&A calls 3, 4, 5, 13.