skills/marketing-growth/ugc-campaign-management/SKILL.md
Source, curate, and display user-generated content at scale with rights management, brand safety moderation, and trust-building social proof galleries
npx skillsauth add finsilabs/awesome-ecommerce-skills ugc-campaign-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
User-generated content — photos, videos, and reviews from real customers — consistently outperforms brand-created content. Shoppers are 79% more likely to purchase when they see UGC, and UGC ads on paid social typically achieve 4× higher CTR than studio-produced ads. Dedicated UGC platforms (Yotpo, Okendo, TINT) handle collection, rights management, moderation, and display widgets. Custom pipelines only make sense for headless stores with high UGC volume.
| Platform | Best For | Shopify | WooCommerce | BigCommerce | Price | |----------|---------|---------|-------------|-------------|-------| | Yotpo | Reviews + photos + social syncing | App Store | Plugin | App Marketplace | Free tier; $119+/mo | | Okendo | Photo/video reviews, attribute ratings | App Store | — | — | $19+/mo | | TINT | Shoppable galleries, enterprise | Via JS | Via JS | Via JS | $500+/mo | | Loox | Photo-focused reviews, Shopify-native | App Store | — | — | $9+/mo | | Stackla | Hashtag monitoring + brand gallery | Via JS | Via JS | Via JS | Custom pricing |
Recommendation: Use Loox or Okendo for Shopify if your priority is photo review collection on product pages. Use Yotpo if you want both review collection and shoppable UGC galleries. For WooCommerce, Yotpo or a combination of WooCommerce product reviews (built-in) + a gallery plugin covers most needs.
For headless stores, build the UGC collection via Instagram API and a direct upload widget:
// Fetch posts by hashtag from Instagram Graph API
async function fetchHashtagPosts(hashtag: string, since: Date) {
const hashtagSearch = await fetch(
`https://graph.facebook.com/v18.0/ig_hashtag_search?user_id=${process.env.IG_USER_ID}&q=${hashtag}&access_token=${process.env.IG_ACCESS_TOKEN}`
);
const { id: hashtagId } = await hashtagSearch.json();
const postsResponse = await fetch(
`https://graph.facebook.com/v18.0/${hashtagId}/recent_media?user_id=${process.env.IG_USER_ID}&fields=id,media_url,permalink,caption,timestamp,username&access_token=${process.env.IG_ACCESS_TOKEN}`
);
const { data: posts } = await postsResponse.json();
for (const post of posts.filter(p => new Date(p.timestamp) > since)) {
await db.ugcSubmissions.upsert({ externalId: post.id }, {
source: 'hashtag',
platform: 'instagram',
authorHandle: post.username,
mediaUrl: post.media_url,
contentUrl: post.permalink,
caption: post.caption,
status: 'pending', // always start as pending — requires moderation + rights
});
}
}
Never use customer content in ads or on your website without explicit permission. Instagram terms prohibit commercial use of UGC without rights. This is not optional.
In Yotpo (automated):
For direct upload via your review form (Judge.me, Loox, Okendo):
Manual rights request (if not using a UGC platform): Send a comment: "We love this photo! May we feature it on our website and in our marketing? Reply 'YES' to grant permission or visit [link] to manage preferences."
Automated moderation via Yotpo/Loox:
Manual moderation checklist before approving any UGC:
In Yotpo: go to Gallery → Display → Add to Store — drag the UGC gallery widget into your product page template in the Shopify Theme Editor.
In Loox: go to Widgets → Photo Reviews and add to product page via Shopify Theme Editor.
Key placements (in order of conversion impact):
UGC-style ads consistently outperform polished brand content on TikTok and Meta. Steps to repurpose approved UGC:
| Problem | Solution | |---------|----------| | Using content without rights and receiving a DMCA complaint | Never publish UGC until rights status is "approved" in your platform; review photos from your form are covered, but Instagram hashtag posts require separate rights | | Low response rate to rights requests | Simplify: "Reply YES to grant permission" in a comment performs 3× better than linking to a form | | UGC gallery loading slowly | Pre-generate thumbnails and serve via CDN; lazy-load images below the fold with IntersectionObserver | | Competitor products appearing in approved UGC | Add competitor brand name detection to your moderation checklist; reject or crop images with competitor branding | | UGC volume drops after initial campaign | The post-purchase review request must run permanently — it is the only reliable ongoing source |
tools
Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price
development
Build a themeable storefront with design tokens and CSS custom properties that supports white-labeling, multi-brand variants, and dark mode
development
Speed up product discovery with instant search suggestions, fuzzy typo matching, and category-aware results powered by Algolia or Elasticsearch
development
Build a mobile-first storefront with thumb-friendly navigation, sticky add-to-cart buttons, and touch-optimized components for high mobile conversion