Adopt-A-Duck — TerrainDucks Campaign

UGC Campaign

Adopt-A-Duck: a joyful WordPress UGC campaign that actually drives outcomes

Summary: fans “adopt” a duck, roll a curated name, pick fun traits, and write a one-line backstory. Entries become a shareable gallery and a weekly Featured Duck moment. Cute—but engineered for reach, email capture, and repeat visits.

CuratedSFW name list
ShareableOG-optimized
Woo-Readyoptional coupons
ExtensibleCPT + REST

1) Why this works (behavior & business)

  • Tiny creative ask → high completion: name + one line + a few taps.
  • Curated safety: SFW name list and backstory guardrails keep it brand-safe.
  • Shareable proof: every adoption has a clean, OG-optimized certificate page.
  • Weekly ritual: “Duck of the Week” gives you a dependable content beat.
  • Optional reward loop: coupons/perks nudge store visits without overshadowing the fun.

2) What you get

CPT + Meta

Clean “Adoptions” post type with traits, backstory, email, tag UUID, and more.

Adopt UX helpers

🎲 Randomize Name, trait prefill, 140-char counter.

Filterable Gallery

Shortcode grid with trait filters and featured badge.

Certificate Template

Shareable single with OG tags and copy/tweet buttons.

Moderation Hooks

Length cap + banned term masking via filter.

Featured Logic

Manual “Feature Now” + weekly scheduler; optional rewards.

Need it re-skinned or folded into a larger activation? Hire Ameen Systems.

3) Live demo flow (screens)

  1. Land on /adopt → tap 🎲 Randomize Name → pick traits → write one line.
  2. Submit → Thank you → link to your certificate.
  3. Friends see the certificate → discover the /adoptions gallery → adopt theirs.
  4. Each week, one becomes Featured Duck → announcement + optional reward.
Adopt page UI with randomize and trait selects
Filterable adoption gallery
Shareable certificate page

4) Implementation guide (10 steps)

  1. Activate the plugin in WordPress.
  2. Create /adopt and add [td_adopt form_id="123"].
  3. Create /adoptions and add [td_adoption_gallery per_page="24" filters="true"].
  4. (Optional) Add data/duck-names.php returning an array of curated names.
  5. Wire Fluent Forms using the field map below.
  6. Submit a test adoption; confirm it appears under Adoptions.
  7. Approve the post (only approved entries show in the gallery).
  8. (Optional) Open Settings to schedule weekly Featured + edit email template.
  9. (Optional) If WooCommerce is active, enable coupon rewards.
  10. Launch with QR talkers/tags; announce on socials.

5) Fluent Forms field map

Field labelTypeName/KeyNotes
Duck NameText (read-only)duck_nameFilled from curated list; Randomize button
Backstory (140)TextareabackstoryJS counter + server cap
GenderSelectgenderboy, girl, neutral
Favorite ColorSelectcolorYellow, Blue, Teal, Pink, Purple, Orange, Red, Green, Black, White
Favorite ActivitySelectactivityBeachcombing, Hiking, etc.
VibeSelectvibeChill, Adventurous, Silly, …
Hometown (opt.)TexthometownOptional
EmailEmailemailNotification & rewards
Photo (opt.)FilephotoUsed as featured image
(Hidden) Tag UUIDHiddentag_uuidAuto-filled from ?t= param
(Hidden) CampaignHiddencampaign_idValue: adopt

6) Moderation & safety

  • Backstory length: hard-capped to 140 chars (client + server).
  • Banned terms: mask via a filter hook (example below).
  • Manual approval: approve/unapprove in the Adoptions list.
  • Curated names: ensures SFW baseline—swap in your list anytime.
// functions.php — add banned words
add_filter('td_adopt_banned_words', function($words){
  return array_merge($words, ['badword1','badword2','slur1']);
});

8) Measurement: analytics checklist

  • adopt_randomize_click
  • adopt_submit_success
  • adopt_gallery_filter_change
  • adoption_share_click
  • adoption_featured_view

We can wire GA4/Pixel + UTM share links for you. Hire Ameen Systems.

9) Growth playbook (30/60/90)

Days 0–30

  • QRs on tags/tables/posters
  • “Funniest Name Friday” mini-contest
  • 2×/week Reels/carousels with new adoptions
  • Email autoresponder: certificate link

Days 31–60

  • Seasonal trait packs
  • Local partner co-feature
  • Press blurb outreach
  • UGC theme weeks (“Cozy”, “Adventure”)

Days 61–90

  • Quarterly “Best of the Flock”
  • Weekly email digest
  • Perks for repeat adopters
  • School/nonprofit variant

10) Email templates

Submission confirmation

Subject: Your duck is almost live!

Thanks for adopting a duck! We’ll give it a quick once-over and then you can share the certificate page with friends.

Approval notification

Subject: Your duck is live: {duck_name}

Certificate: {permalink} — share your duck with the world 🐤

Featured Duck winner

Subject: Duck of the Week: {duck_name}

Spotlight: {permalink}
{maybe_coupon}

Coupon phrasing

Here’s your one-time code: {coupon_code} (valid for X days).

11) Accessibility & performance

  • Visible labels and maxlength on the backstory field.
  • Meaningful alt text (duck name) on thumbnails.
  • Keyboard-friendly buttons with focus styles.
  • Only loads assets on adopt/adoptions pages or single adoption.

12) Troubleshooting

  • Empty gallery: approve entries first.
  • No randomize button: ensure td-adopt.js is enqueued (it is when the shortcode is present).
  • Weekly pick didn’t trigger: check day/hour/timezone; verify WP-Cron runs.
  • Coupons not created: WooCommerce must be active; otherwise fallback code is emailed.
  • Custom names not loading: data/duck-names.php must return a plain PHP array.

13) FAQ

Do I need WooCommerce?

No. Coupons are optional; everything else works without Woo.

Is Fluent Forms required?

Recommended for a polished UX, but not required—the mapping works server-side.

Can I customize the certificate?

Yes. Copy the template to your theme and style freely.

Can I use my own name list?

Absolutely—add data/duck-names.php returning an array of curated names.

How do tag UUIDs/QRs work?

Append ?t=YOUR-TAG-ID to the adopt URL; the submission stores it for attribution.

Bring this to your brand

We’ll theme the UX, wire automations and analytics, and ship a crispy launch plan—so you can go from idea to adorable results fast.