Zernio
Zernio
PlatformsMeta Ads

Build

CampaignsAd SetsCreativesCreative LibraryPreviews

Target

TargetingCustom Audiences

Ad types

Boost a PostCreative TestingConversion CampaignsCatalog AdsMessaging & Call AdsClick-to-WhatsApp AdsLead Gen FormsReach & Frequency

Measure

InsightsMeta PixelsConversions APIAd URL Tracking Tags

Operate

Duplicate & LifecycleAccount & Ops ReadsAd LibraryAd CommentsMedia & Limits
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Meta Ads

Ad Comments

Read and manage comments on your Meta ads


Ad Comments

Comments on ad creatives (including dark posts, ads created directly in Meta Ads Manager that never went live organically on the Page feed) aren't reachable through the standard GET /v1/inbox/comments/{postId} endpoint, because dark posts don't live in Zernio's post database and Meta's public media-level Graph API endpoints don't resolve them.

Use GET /v1/ads/{adId}/comments instead. It resolves the creative's underlying story via the Marketing API (effective_object_story_id on Facebook, effective_instagram_media_id on Instagram), then fetches the comments from the Graph API. The response matches the inbox endpoint shape so you can reuse the same rendering logic.

const { comments, meta } = await zernio.adaccounts.getAdComments({
  path: { adId: 'AD_ID' },
  query: { limit: 50 },
});

console.log(meta.platform);         // 'facebook' | 'instagram'
console.log(meta.effectiveStoryId); // underlying post ID

for (const c of comments) {
  console.log(c.from.name, c.message);
}

Returns ad_not_commentable when the creative format does not expose an underlying commentable post (Story ads, Dynamic Product Ads). Returns feature_not_available for non-Meta ad platforms.

Was this page helpful?

Ad Library

Search Meta's public ad archive: what your competitors are running, no connected account needed

Media & Limits

Media requirements, what you can't do, and common Meta errors

On this page

Ad Comments