Have something to say?
Zalo: add platform support for messing and profile posts
Zalo is Vietnam’s largest messaging platform - any business active there needs to be able to communicate on their platform.
Minimum Age per country
is it possible for you to add the minimum age tool from instagrams professional accounts in here, so its possible to add a minimum age per country via the api.
Full meta category browsing
Please add a typed endpoint backed by Meta’s targeting browse capability, using the existing connected ad account. We need category names, selectable Meta IDs, parent/child relationships or category paths, and pagination where applicable. Please distinguish selectable targeting entities from organizational category nodes.
Conversions API for Business Messaging on Instagram Direct and Messenger
Request An Instagram and Messenger version of POST /v1/whatsapp/conversions, so a conversion that happens in a DM can be sent to Meta tied to that chat. Why Many businesses close sales inside Instagram and Messenger DMs that start from click-to-message ads. Sending those conversions back to Meta gives real cost per purchase and better audiences. Today this only works for WhatsApp. What Meta needs Instagram: action_source business_messaging, messaging_channel instagram, user_data with instagram_business_account_id and ig_sid. Permission instagram_manage_events. Messenger: action_source business_messaging, messaging_channel messenger, user_data with page_id and page_scoped_user_id. Permission page_events. Zernio already has both IDs from the inbox webhooks. Meta's guide says apps with advanced access to instagram_manage_messages and pages_messaging should get these event permissions approved automatically. https://developers.facebook.com/docs/marketing-api/conversions-api/business-messaging What would help An Instagram and Messenger conversions endpoint (or one endpoint with a channel field): conversionId or IGSID/PSID, eventName, eventId, value, currency, testCode. Dataset create/lookup for the Instagram account and the Page, like POST /v1/whatsapp/dataset. Smaller: add Meta's chat and other values to actionSource on POST /v1/ads/conversions. Happy to be an early tester.
Multiposting to Job Portals
Thinking on the functionalities you currently offer I guess it would be pretty similar to add a funcionality to post in different job portals a job post. Being them Infojobs, LinkedIn, Greenhouse whatever. We are looking for a good solution on that, we don’t need any platform just an api aggregator via sdk that works.
TikTok: expose 2-second / 6-second video view metrics (hook and hold rate cannot be derived without them)
Request Please expose TikTok's video_watched_2s, video_watched_6s and the 6-second focused (engaged) view count in AdMetrics. What we get today videoPlayActions · videoP25/P50/P75/P100WatchedActions · videoAvgTimeWatchedActions (all populated for TikTok — thank you) What is missing and why it matters TikTok Ads Manager exposes 2-second and 6-second view counts, and the standard way to judge a TikTok creative is: hook rate = 2-second views / impressions hold rate = 6-second views / 2-second views These are absolute-time thresholds, so creatives of different lengths are judged on the same scale. The percentile fields cannot substitute for them, because they are relative to each video's own length: 25% of a 10-second video is 2.5s, but 25% of a 40-second video is 10s. Measured on a real campaign, average watch time is 2.67s while only 5.3% of plays reach the 25% mark — so P25 systematically penalises longer creatives. There is also no video duration field, so we cannot normalise it ourselves. (The schema note on videoP25WatchedActions suggests hook rate = videoP25 / videoPlay. That is a different measure from the one TikTok's own reporting uses, so we would rather not publish it under the same name.) Impact Automated creative reports cannot show hook/hold rate for TikTok. We currently fall back to play rate, average watch time and completion rate.
TikTok: pixel conversions are missing from `actions`, while `actionValues` returns TikTok data that the schema says is Meta-only
Summary Two things disagree with the documented AdMetrics schema for TikTok. actions does not contain any pixel conversion types, only the paid-engagement family. actionValues returns TikTok data, although it is documented as Meta-only. Together these leave no way to break a TikTok campaign's conversions down by event. Reproduction GET /v1/ads/campaigns/1869603293308258/analytics ?accountId=6aba06dcb53728af48fa0de6&fromDate=2026-09-01&toDate=2026-09-30 Response (analytics.summary): conversions 2,739 actions { "post_reaction": 7027, "share": 94, "follow": 188, "comment": 140 } actionValues { "initiate_checkout": 1325766682 } funnel all 13 fields = 0 What the schema says AdMetrics.actions: "TikTok: pixel conversions (purchase, add_to_cart, initiate_checkout, view_content, complete_payment, lead) plus the paid-engagement family (follow, post_reaction for paid likes, comment, share)." -> Only the paid-engagement family actually arrives. None of the six pixel events do. AdMetrics.actionValues: "Meta-only; other platforms return {}." -> TikTok returns { initiate_checkout: ... } with a non-zero amount. AdFunnelCounts: "Populated for Meta ads; other platforms report a different action taxonomy and generally leave these at 0 (read actions for those)." -> funnel is all zeros as documented, but the documented fallback (actions) carries no conversion events, so there is no path left. Why it matters to us The campaign optimises for promotedObject.customEventType = "SHOPPING" and reports 2,739 conversions, but we cannot tell what those conversions are made of, and we cannot build a conversion funnel for TikTok at all. We also cannot use the initiate_checkout amount, because there is no matching event count to pair it with. Questions Should actions carry TikTok pixel conversions? If yes, is this a sync gap? Is the actionValues value for TikTok intentional? If so, which attribution window and which event does it represent, and is a matching count available anywhere?
TikTok campaign metrics under-report vs TikTok Ads Manager (spend −22.3%, impressions −26.6%) — gap is non-uniform and worse on older dates
Summary For a TikTok ad account, the metrics returned by the Ads API are consistently LOWER than what TikTok Ads Manager shows for the same campaign and the same date range. We have ruled out the obvious causes on our side (see "What we ruled out"), and we have evidence that the pipeline itself is correct: several ads match Ads Manager to the exact KRW. The shortfall appears to be missing/stale delivery data for a subset of ads and days. Reproduction GET /v1/ads/campaigns/1869603293308258/analytics ?accountId=6aba06dcb53728af48fa0de6 &fromDate=2026-09-01&toDate=2026-09-30 Connection (SocialAccount): 6aba06dcb53728af48fa0de6 (platform: tiktokads) Ad account: 7450327792480518161 Campaign: 1869603293308258 "*구매_칠레" Currency: KRW Compared against: TikTok Ads Manager, same campaign, Sep 1–30 2026 The gap Metric API Ads Manager Diff spend 1,976,136 2,543,776 -22.3% impressions 861,164 1,173,841 -26.6% clicks 6,132 7,858 -22.0% conversions 1,042 1,311 -20.5% What we ruled out Missing days — the response contains all 30 daily rows and none has spend = 0. Date boundary / timezone — widening the window to 2026-08-31..2026-10-01 still returns only 2,228,743 (still ~12% short). Missing ads — /v1/ads with pagination returns 170 ads for this campaign, with 170 unique platformAdId values and no duplicates. Querying with and without a date range returns the same 170. Their spend sums exactly to the campaign total (1,976,136), so the API is internally consistent. Missing ad groups — the API returns 1 ad group for this campaign, which matches Ads Manager (1 ad group). Evidence that our side is correct Ads Manager groups creatives under a parent row; the API returns one object per creative. Grouping our rows by the parent name they carry, several groups match the Ads Manager parent row exactly, to the KRW: Ad (Ads Manager parent row) Ads Manager API AD_260923_hidden-deal 32,788 32,788 BOGO_Others 84,886 84,886
Mention event + Post context
We're using POST /v1/inbox/mentions/reply for Instagram. The docs(earlier it said..maybe now removed after flagging) say to source mediaId and commentId from Instagram's comments webhook — but comment.received only fires for comments on our own tracked posts, not when our handle is @mentioned on someone else's post. How are we supposed toreceive Instagram mention notifications? Is there a webhook event or endpoint we're missing, or is Instagram mention detection not yet supported? Also — for a post we don't own, is there any endpoint to fetch post metadata (caption, image, permalink) given a mediaId? We see the post object in the comment.received webhook payload carries this, but since that webhook doesn't fire for mentions on foreign posts, we have no way to get that context either. Does GET /v1/inbox/comments/{mediaId} or any other endpoint return post details for content we don't own?
Zernio: Instagram Stories en TikTok
Hi Zernio team, We're adding Instagram Stories and TikTok publishing on top of your API. While testing (spec v1.220.0, 6 October 2026) we ran into a few things: 1. Story insights for Instagram Login accounts GET /v1/accounts/{id}/instagram/stories/{storyId}/insights only returns cached after expiry when the story_insights webhook arrived, which Meta only sends for Facebook Login. Accounts connected with Instagram Login therefore end up unavailable after 24h. Could you snapshot the final metrics for stories published through Zernio shortly before they expire (e.g. at ~23h), so cached works for Instagram Login too? 2. Unpublish on Instagram /v1/posts/{id}/unpublish says "Not supported on Instagram". Meta added DELETE /{ig-media-id} on 3 Dec 2025 (permission instagram_manage_contents, Facebook Login accounts; works for feed posts, reels and stories). Is support for facebook_login accounts on your roadmap? 3. Validator and dryRun vs. publish-time rules POST /v1/tools/validate/post returns valid:true for: - an Instagram story (contentType "story") with 2 mediaItems. We published one live: only the first image became a story, the second was silently dropped and the post reported "published". Please reject it (or split it into two stories) instead of dropping media. - a TikTok video without tiktokSettings (no privacyLevel / allowComment / allowDuet / allowStitch), which TikTok requires and your creator-info marks as required - an unknown Instagram contentType ("reel") The TikTok dryRun on a TikTok for Business account also returns canPublish:true for every variant we tried (no settings, privacyLevel SELF_ONLY on a video, allowDuet:true while creator-info says duet is disabled). Could the validator and dryRun enforce the same rules as publishing, or document what happens? Related: do you preflight story duration (Meta: 3-60 s) and convert PNG to JPEG for story images (we saw PNG arrive as JPEG, so it seems yes)? 4. (Low priority) TikTok recommended hashtags The TikTok Business API has a recommended-hashtags endpoint. Any plans to expose it? Thanks! Jan-Willem
Option to schedule posts to Skool community
It would be amazing to schedule posts to a skool community as an administrator, postiz offers this functionality and it would be amazing and a huge time saving if this was offered. What Postiz offers; Skool Scheduler to Schedule Skool Posts and Announcements Schedule Skool posts in advance, queue announcements for every community you run, and keep members engaged without logging in daily.
Facebook @mentions for partner profiles
Proposed change: Add the ability to tag partner profiles on Facebook using @mentions, similar to the functionality currently available for Instagram. Rationale: This feature would streamline the publishing of partner-related content, increase the visibility of tagged profiles, and ensure a more consistent publishing experience across Facebook and Instagram.
Instagram collaborators data
Hi Zernio team, I wonder if we can get the collaborator data outside of the one we created in Zernio! My team wanted to use Zernio as the tool, but before we move, we need to make sure that we can get the collaborator username from the historical posts before we migrate to Zernio. The https://docs.zernio.com/platforms/instagram#platform-fields only shows that the collaborator data will be shown once we upload it into Zernio. My request is for the historical data (manual upload directly from the platform)
Purge a single inbox conversation from Zernio's stored data (GDPR erasure)
We receive Instagram DMs through the Inbox API and process each message from the message.received webhook. Zernio keeps its own copy of each conversation (message text, sender IDs, metadata) for as long as the account stays connected, and the only way to remove it today is to disconnect the whole account. When one of our users deletes their account, GDPR requires us to erase their data from our processors too, but there's no way to remove just their conversation. The DELETE message endpoint doesn't help: it's a platform unsend, it returns 400 on Instagram, and it can't remove the other participant's messages. Request: an endpoint such as DELETE /v1/inbox/conversations/{conversationId}?accountId=... that hard-deletes the conversation and all its messages from Zernio's database. Instagram itself would be untouched. It would return 404 once the conversation is already gone, and log excerpts and backups would age out on their normal 90- and 30-day clocks. Related: a per-account retention window (for example, auto-delete stored messages after 30 days) would help anyone who only needs the webhook and not Zernio's stored copy.
Resolve Spark ad covers when TikTok's ad/get omits identity_id (via advertiser identity enumeration)
Some Spark ads never get a cover image and never get coverResolveFailedAt, because TikTok's ad/get omits identity_id for them — so itemId+identityId can't be formed and resolveTikTokSparkPostCover short-circuits before any API call. Heads up on the likely hit rate: support flagged that enumerating identities via /identity/get/ and probing each against item_id is net-new work with no guaranteed win TikTok already refuses identity fetches for a sibling advertiser of ours with 40000 "Cannot fetch identity due to insufficient auth information", even on identities you do know. So this may only partially resolve. Logging it so the team can weigh effort against hit rate rather than to claim it's easy. What we measured (90 days, one advertiser): • 827 TikTok ads, 61 with no thumbnailUrl (7%). • 18 carry coverResolveFailedAt — attempted and failed, and these do retry after backoff. • 43 carry no marker at all. 42 of those are Spark ads: creative.tiktokItemId is present, identity_id is absent. • The last one (1876476887250242) has an empty creative object — genuinely nothing to resolve from, not part of this request. Why it matters to us: these ads show as blank tiles in a creative performance table, next to ads that do have covers, with no way for the advertiser to tell them apart visually. We currently label them "미리보기 이미지를 받지 못했습니다" (couldn't retrieve preview) and leave it at that. Ad IDs available on request — we already sent the 42 to support.
Surface youtube_video_id on Google Video-campaign ad creative (parity with PMax asset-groups)
For Google Ads Video campaigns, please include the YouTube video reference on the ad's creative in /v1/ads/tree and /v1/ads/{adId} — the same youtube_video_id that asset-groups already returns as a YOUTUBE_VIDEO asset. Why it should be small: • Support confirmed the YOUTUBE_VIDEO asset type and the youtube_video_id GAQL field are already in the Google reader. • Today they're only reachable through asset_group_asset, which exists on PMax only. • Non-PMax per-ad sync maps text creative only (googleHeadline / googleDescription), by design — so Video campaigns return no media reference at all. What we measured (90 days): • Campaign 23896913891, Google ad account 5103020293, ad group 200120326714, 26 ads. • creative.mediaUrls is an empty array on all 26; no video field anywhere in the payload. • The videos do exist on Google's side — they're listed under Assets › Videos for this account, and the ad preview gallery serves them (youtube.com/watch?v=VSCkrvtVt3Y). Paths we checked, all dead ends for Google media outside PMax: • /v1/ads/{adId}/media → 501 feature_not_available • /v1/ads/campaigns/{id}/assets and /v1/ads/ad-sets/{id}/assets → only sitelinks, callouts, structuredSnippets • /v1/ads/videos, /v1/ads/images, /v1/ads/creatives → 400 "adAccountId must be act_" (Meta-only) • /v1/ads/campaigns/{id}/asset-groups → works, but 0 groups for a Video campaign Impact: Video campaigns render with no creative at all on our dashboard, while PMax in the same account shows images fine (4 campaigns → 81 asset groups, 3,233 assets, 621 images with imageUrl, 311 YOUTUBE_VIDEO). Also useful if cheap, but not blocking: the same for Display/Demand Gen image assets, and an account-level Google asset-library read endpoint.
Changelog: platform tags and filters
The problem The changelog (docs.zernio.com/changelog) is one long page with 700+ entries. Each entry is labelled by type (New Feature, Improvement, Breaking Change, Deprecation), but not by platform. If you only use some platforms, for example WhatsApp and Meta Ads, you have to read every entry about X, Pinterest, LinkedIn, TikTok and others to find the few that affect you. Breaking changes are the riskiest to miss, and they are mixed in with everything else. What we'd like A platform tag on each entry (WhatsApp, Instagram, Facebook, Meta Ads, Google Ads, X, LinkedIn, TikTok, Pinterest, General API, etc.). An entry can have more than one. Filters at the top of the page: by platform and by type, combinable. Example: "WhatsApp + Breaking Change". A shareable URL for a filter, e.g. /changelog?platform=whatsapp&type=breaking Per-platform RSS feed or email/Telegram alerts, so we only get notified about the platforms we use. Nice to have: the same tags in the API or llms.txt version of the changelog, so integrations can watch for changes automatically. Why it matters Teams that depend on one or two platforms can see what changed for them in seconds, breaking changes are less likely to be missed, and the changelog stays readable as Zernio adds more platforms.
Folders to group connections across platforms and profiles (separate from post composer Account Groups)
The problem When one account manages many brands, locations or teams, Connections and WhatsApp → Overview become long flat lists. You can only filter by profile, platform, type or status. Profiles don't always match how we work either: one brand's WhatsApp number can sit in one profile while its Meta Ads and Google Ads sit in another, and one ad account can serve several brands. To see everything for a single brand, we have to jump between screens. Not the same as Account Groups Account Groups in the post composer are useful for picking accounts when creating a post. But they only hold posting accounts (WhatsApp numbers aren't listed), and they don't change how the dashboard itself is organised. This request is about organising the dashboard. What we'd like Named folders that can hold connections from any platform and any profile. Example by brand: 📁 Brand A WhatsApp: Brand A main number Meta Ads: Brand A ad account Google Ads: Brand A ad account 📁 Brand B WhatsApp: Branch 1 number WhatsApp: Branch 2 number Or by team: 📁 Customer Service: 4 WhatsApp numbers 📁 Admin: 2 WhatsApp numbers Where folders would help Connections: filter or collapse by folder WhatsApp → Overview: filter senders by folder Inbox and Ads: filter conversations and campaig API: list a folder's accounts, so integrations can mirror the same structure Why it matters You can spot a problem for one brand quickly (e.g.tion), new team members find the right accounts inone click, and the dashboard stays usable as the number of connections grows. Related: "Creating Account Group & Platform Management"
Add Meta ad goal: Page visits and followers (profile visit optimization)
Currently the Facebook ad goals in Zernio only include "Page Likes" for page growth. Meta also offers a second follower goal, which is missing in Zernio: Ads Manager: Engagement objective → Conversion location "Facebook Page" → Performance goal "Maximize number of Facebook Page visits" Facebook Page "Promote" flow: "Get more Page visits and followers" Why it matters: Page Likes optimizes for people who follow directly from the ad, without visiting the Page. The visits goal sends people to the actual Facebook Page, where they see the content and the link in the intro. This gives higher-quality followers and is essential for creators who convert via their Page. Request: Add this as a goal option for Facebook Page ads. Thanks!