The creative story id is the identifier on a Meta ad creative that points at the page post the ad promoted. It is how an ad and its organic post can be recognised as the same item, which is what lets spend be reported against the post rather than only against the campaign.
What does the creative story id actually point at?
A page post. When an ad promotes something that already exists on a Facebook or Instagram page, the ad's creative carries a reference back to that post rather than holding a separate copy of the image and text.
That reference is the only reliable link between the two records. Matching on creative text or image instead is guesswork that breaks the moment two posts share a caption.
Where do you find it?
Through the Marketing API rather than the Ads Manager interface. It is a field on the ad creative, not something surfaced in the campaign reporting tables most people work in.
They differ more often than people expect, which is why a tool reading only the first will silently miss matches.
- `object_story_id` — the post the creative was built from.
- `effective_object_story_id` — the post the ad actually ran against, which is the one to match on.
Why do the two ids differ?
Because Meta sometimes creates a separate promotable copy of a published post rather than promoting the original directly. The copy has its own story id and may not be published to the page.
The consequence for reporting is that an ad can look unmatched while a perfectly good organic post exists. A tool that only compares story ids will report that spend as a dark post when it is not one.
What does a reporting tool do with it?
It joins. Given the effective story id, the ad's spend, reach and impressions can be attached to the organic post, so one record carries both the money and the organic performance.
NexPulse matches Meta ads on creative story id and TikTok ads on video id, and rolls the spend onto the matched post automatically. Where no match exists, the spend is reported as unmatched rather than attached to something approximate.
Frequently asked questions
- Is the creative story id the same as the post id?
- It is a reference to a post, formatted as the page id and post id joined by an underscore. It identifies the post, but it is a field on the ad creative rather than something the post itself advertises.
- Why does an ad sometimes have no story id?
- Because the creative was built directly as an advert rather than from an existing page post. That is a dark post, and there is no organic item to match it to.
- Do I need API access to use this?
- To read it yourself, yes. A reporting tool that already has the ads permission reads it for you — this is the field it uses to do the matching.

