{"id":583,"date":"2026-10-23T15:45:58","date_gmt":"2026-10-23T07:45:58","guid":{"rendered":"https:\/\/en.meishesdk.com\/blog\/?p=583"},"modified":"2026-10-23T15:45:58","modified_gmt":"2026-10-23T07:45:58","slug":"how-to-build-sticker-sets-with-the-face-ar-sdk","status":"publish","type":"post","link":"https:\/\/en.meishesdk.com\/blog\/583.html","title":{"rendered":"How to Build Sticker Sets with the Face AR SDK"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Building sticker sets with the Face AR SDK is a content workflow, not an engineering project: designers author in the Asset Creation Platform, the SDK consumes the packages, and your channel delivers them to every platform the product ships on. A first family goes from concept to live catalogue in days.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Product Positioning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Face AR SDK serves props and stickers from the family&#8217;s cross-platform audio\/video processing engine \u2014 real-time, no preprocessing. Targets include iOS, Android, Web, Desktop (Windows), and smart hardware, with React Native and Flutter via the short-video solution. Sticker sets ship as data packages \u2014 authored once, resolved everywhere, updated without app releases.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. The build workflow<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Step<\/th><th class=\"has-text-align-left\" data-align=\"left\">What happens<\/th><th class=\"has-text-align-left\" data-align=\"left\">Who does it<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">1. Plan the family<\/td><td class=\"has-text-align-left\" data-align=\"left\">Choose formats (2D, 3D, mixed) and the campaign theme<\/td><td class=\"has-text-align-left\" data-align=\"left\">Product and design<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">2. Author<\/td><td class=\"has-text-align-left\" data-align=\"left\">Build the stickers in the Asset Creation Platform against the package format<\/td><td class=\"has-text-align-left\" data-align=\"left\">Design<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">3. Review<\/td><td class=\"has-text-align-left\" data-align=\"left\">Check anchoring, tracking, and look on target devices<\/td><td class=\"has-text-align-left\" data-align=\"left\">Design and QA<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">4. Publish<\/td><td class=\"has-text-align-left\" data-align=\"left\">Release the family through your delivery channel<\/td><td class=\"has-text-align-left\" data-align=\"left\">Content ops<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">5. Read<\/td><td class=\"has-text-align-left\" data-align=\"left\">Watch engagement per set and plan the next family<\/td><td class=\"has-text-align-left\" data-align=\"left\">Product<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">No step involves an engineering ticket after the runtime is integrated once \u2014 that is the structural property that keeps sticker programmes fast.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/en.meishesdk.com\/blog\/wp-content\/uploads\/2026\/10\/2026102307454234.png\" alt=\"How to Build Sticker Sets with the Face AR SDK\" title=\"How to Build Sticker Sets with the Face AR SDK\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"569\" src=\"https:\/\/en.meishesdk.com\/blog\/wp-content\/uploads\/2026\/10\/2026102307454234-1024x569.png\" alt=\"How to Build Sticker Sets with the Face AR SDK\" alt=\"\" class=\"wp-image-584\" srcset=\"https:\/\/en.meishesdk.com\/blog\/wp-content\/uploads\/2026\/10\/2026102307454234-1024x569.png 1024w, https:\/\/en.meishesdk.com\/blog\/wp-content\/uploads\/2026\/10\/2026102307454234-300x167.png 300w, https:\/\/en.meishesdk.com\/blog\/wp-content\/uploads\/2026\/10\/2026102307454234-768x427.png 768w, https:\/\/en.meishesdk.com\/blog\/wp-content\/uploads\/2026\/10\/2026102307454234.png 1259w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">3. What good families have in common<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Launch catalogues that perform share three habits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A hero moment and daily volume.<\/strong>\u00a0One premium 3D prop gives the family its screenshot; a 2D set gives users something to change daily.<\/li>\n\n\n\n<li><strong>Anchoring checked on real movement.<\/strong>\u00a0Review happens on live camera sessions \u2014 turning, speaking, leaning \u2014 because that is where users meet the sticker.<\/li>\n\n\n\n<li><strong>A naming convention from day one.<\/strong>\u00a0Identifiers set in the first family keep the tenth family&#8217;s catalogue navigable and its analytics clean.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">The snippet below is schematic. Names and signatures are illustrative, not the shipped API.<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Illustrative: applying a family the design team just published.\nimport { createEffectsRuntime } from \"@meishe\/ar-effects\"; \/\/ placeholder name\n\nconst rt = await createEffectsRuntime({ platform: \"android\" });\n\nawait rt.assets.resolve(&#91;\"family.festival.02\"]);\nawait rt.props.attach(\"family.festival.02\/crown\");\nawait rt.stickers.apply(\"family.festival.02\/sparkle\");<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Publishing and growing the catalogue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After review, the family publishes through your channel and resolves on every platform simultaneously \u2014 there is no per-platform variant to maintain and no release train to catch. Seasonal families stack into an evergreen catalogue: last season&#8217;s assets keep working, engagement data shows which sets earn their slot, and the library compounds instead of resetting each quarter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When a season needs professional capacity beyond the in-house team, Special Effects Customization delivers produced families that land in the same pipeline \u2014 same format, same publish path, same catalogue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Why teams choose Meishe<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Advantage<\/th><th class=\"has-text-align-left\" data-align=\"left\">What it means for your project<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">Self-developed engine<\/td><td class=\"has-text-align-left\" data-align=\"left\">The cross-platform audio\/video processing engine used across the product family, refined through years of shipping<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Designer-led authoring<\/td><td class=\"has-text-align-left\" data-align=\"left\">The Asset Creation Platform matches the runtime&#8217;s package format exactly<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Content as data<\/td><td class=\"has-text-align-left\" data-align=\"left\">Families publish without app releases, on your schedule<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Cross-platform resolution<\/td><td class=\"has-text-align-left\" data-align=\"left\">One publish serves every platform the product ships on<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">Special Effects Customization<\/td><td class=\"has-text-align-left\" data-align=\"left\">Produced families available when a season needs extra capacity<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">6. What shipping teams ask first<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>How long does a first family take?<\/strong>\u00a0Days, not weeks \u2014 authoring and review dominate, and both happen in the design toolchain.<\/li>\n\n\n\n<li><strong>What does QA verify?<\/strong>\u00a0Anchoring and tracking on your target devices, in live sessions \u2014 the render parity across platforms is the engine&#8217;s work.<\/li>\n\n\n\n<li><strong>How do we staff seasonal peaks?<\/strong>\u00a0In-house authors cover the calendar; Special Effects Customization absorbs the spikes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A note on catalogue hygiene that pays off quietly: retire underperforming sets on the same cadence you publish new ones. A library that only grows becomes noise; a library that curates becomes a destination. The publish channel makes retirement as cheap as launch \u2014 one operation, no client work \u2014 so the catalogue reflects intent rather than accumulation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Teams that run this discipline report the same outcome: engagement concentrates on families users actually want, the next season&#8217;s plan writes itself from data, and the sticker feature reads as curated rather than dumped.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The workflow, end to end, is the quiet pitch of the whole capability: plan, author, review, publish, read \u2014 five verbs, zero engineering tickets, repeatable every season.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Plan, author, review, publish, read \u2014 then repeat next season, better.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For product managers, the workflow&#8217;s five verbs convert directly into planning artifacts: the season plan is a list of families, the review is a checklist on real movement, the publish is a calendar entry. Nothing in the sticker programme requires translating between content language and engineering language \u2014 the pipeline speaks one dialect end to end.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Five verbs, one dialect, every season \u2014 that is the pipeline&#8217;s promise, kept.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, the workflow scales down as gracefully as it scales up: a single designer with a seasonal slot runs the same five verbs a ten-person studio runs. The pipeline&#8217;s shape does not change with headcount \u2014 only the volume does.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The last hidden benefit is institutional: the workflow documents itself. Five verbs, one platform, one channel \u2014 a new team member&#8217;s onboarding for the sticker programme is a walkthrough, not a manual, because the pipeline has no secret corners to explain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Five verbs, one platform, one channel \u2014 the sticker programme in eight words, running every season.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One more sentence for the planning doc: the sticker programme&#8217;s cost curve is flattest in the content family of any camera feature \u2014 the first family pays for the learning, and every family after that pays only for its own art.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Plan, author, review, publish, read \u2014 then repeat next season with a richer catalogue and a wiser calendar. The workflow is the programme; the programme compounds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The five-verb workflow scales with the team and the calendar alike: more designers, more families, same process, same publish path.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And the habit the workflow builds extends past the design team: product reads the analytics, ops reads the publish log, QA reads the review notes \u2014 one shared vocabulary around five verbs that everyone in the room can recite by season two.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do stickers require engineering involvement after integration?<\/strong><br>No \u2014 authoring, review, and publishing all happen on the content side; the runtime resolves whatever the channel delivers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can we test a family before it goes public?<\/strong><br>Yes \u2014 publish to a staging channel and verify on real devices; the production publish is then a channel operation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How do sticker analytics work?<\/strong><br>Sets are identifiers, so engagement maps cleanly per family and per item \u2014 the catalogue becomes measurable in its own structure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What if a sticker needs a fix after launch?<\/strong><br>Edit in the Asset Creation Platform and republish \u2014 the correction reaches every platform in one publish.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can families target specific markets or cohorts?<\/strong><br>Yes \u2014 the channel is yours, so a family can publish to a region or cohort exactly like any content you deliver.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Building sticker sets with the Face AR SDK is a content workflow, not an engineering project: designers author in the Asset Creation Platform, the SDK consumes the packages, and your channel delivers them to every platform the product ships on. A first family goes from concept to live catalogue in days. 1. Product Positioning The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":584,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[36,40,12],"class_list":["post-583","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-face-ar-sdk","tag-effects-filter-sdk","tag-face-ar-sdk","tag-video-editing"],"_links":{"self":[{"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/posts\/583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/comments?post=583"}],"version-history":[{"count":1,"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/posts\/583\/revisions"}],"predecessor-version":[{"id":585,"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/posts\/583\/revisions\/585"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/media\/584"}],"wp:attachment":[{"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/media?parent=583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/categories?post=583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/en.meishesdk.com\/blog\/wp-json\/wp\/v2\/tags?post=583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}