Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@ yarn.lock

# Claude Code session artifacts
.claude/
node_modules/
package-lock.json
dist/
71 changes: 70 additions & 1 deletion astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -193,20 +193,78 @@ export default defineConfig({
starlightLlmsTxt(),
starlightSidebarTopics(
[
{
label: 'Dashboard',
link: '/getting-started',
icon: 'rocket',
items: [
{
label: 'Getting Started',
items: [
{ label: 'Overview', slug: 'getting-started' },
{ label: 'Create Your Account', slug: 'getting-started/account-setup' },
{ label: 'Dashboard & Activity Feed', slug: 'getting-started/dashboard-overview' },
{ label: 'Your Public Profile', slug: 'getting-started/public-profile' },
{ label: 'Account Settings', slug: 'getting-started/account-settings' },
{ label: 'Granting Mod Dashboard Access', slug: 'getting-started/managing-access' },
{ label: 'Importing from Other Platforms', slug: 'getting-started/importing' },
{ label: 'Enable Live Streaming on YouTube', slug: 'getting-started/youtube-live' },
{ label: 'Troubleshooting', slug: 'getting-started/troubleshooting' },
],
},
{
label: 'Revenue',
items: [
{ label: 'Overview', slug: 'revenue' },
{ label: 'Tipping', slug: 'revenue/tipping' },
{ label: 'Charity Streams', slug: 'revenue/charity-streams' },
{ label: 'SE.Pay', slug: 'revenue/se-pay' },
],
},
{
label: 'Loyalty & Stream Store',
items: [
{ label: 'Overview', slug: 'loyalty' },
{ label: 'Stream Store', slug: 'loyalty/stream-store' },
{ label: 'Troubleshooting', slug: 'loyalty/troubleshooting' },
],
},
{
label: 'Campaigns',
collapsed: true,
items: [
{ label: 'Overview', slug: 'campaigns' },
{ label: 'Add the Sponsorship Overlay', slug: 'campaigns/overlay-setup' },
{ label: 'Payments', slug: 'campaigns/payments' },
{ label: 'Staying Compliant', slug: 'campaigns/compliance' },
{ label: 'Subscription-Based Campaigns', slug: 'campaigns/subscription-campaigns' },
{ label: 'Optional Bonus Goals', slug: 'campaigns/bonus-goals' },
{ label: 'In-Game Budget Goal', slug: 'campaigns/in-game-budget' },
{ label: 'Troubleshooting', slug: 'campaigns/troubleshooting' },
],
},
{ label: 'Media Requests', slug: 'media-requests' },
{ label: 'Ground Control', slug: 'ground-control' },
],
},
{
label: 'Chatbot',
link: '/chatbot',
icon: 'comment',
items: [
{ label: 'Overview', slug: 'chatbot' },
{ label: 'Add to Your Channel', slug: 'chatbot/platforms' },
{ label: 'Getting Started', slug: 'chatbot/getting-started' },
{ label: 'User Management', slug: 'chatbot/user-management' },
{
label: 'Guides',
items: [
{ label: 'Death Counter', slug: 'chatbot/guides/death-counter' },
{ label: 'Lurk Command', slug: 'chatbot/guides/lurk-command' },
{ label: 'Countdown Command', slug: 'chatbot/guides/countdown-command' },
{ label: 'Viewer Input', slug: 'chatbot/guides/viewer-input' },
{ label: 'Bot Detection Command', slug: 'chatbot/guides/bot-detection' },
{ label: 'Run Ads via Chatbot', slug: 'chatbot/guides/run-ads' },
{ label: 'All guides', slug: 'chatbot/guides' },
],
},
Expand All @@ -232,6 +290,7 @@ export default defineConfig({
],
},
{
id: 'selive',
label: 'SE.Live',
link: '/selive',
icon: 'window',
Expand All @@ -241,15 +300,18 @@ export default defineConfig({
{ label: 'Install and connect', slug: 'selive/getting-started' },
] },
{ label: 'Guides', items: [
{ label: 'YouTube quickstart', slug: 'selive/guides/youtube-quickstart', badge: { text: '5 parts', variant: 'note' } },
{ label: 'Add overlays and alerts', slug: 'selive/guides/overlays-and-alerts' },
{ label: 'Create a vertical canvas', slug: 'selive/guides/canvas' },
{ label: 'Manage scenes and sources', slug: 'selive/guides/scenes-and-sources' },
{ label: 'Set up multistreaming', slug: 'selive/guides/multistreaming' },
{ label: 'Twitch dual format', slug: 'selive/guides/twitch-dual-format' },
{ label: 'Save replays with Backtrack', slug: 'selive/guides/backtrack' },
{ label: 'YouTube setup', slug: 'selive/guides/youtube-setup' },
{ label: 'All guides', slug: 'selive/guides' },
] },
{ label: 'Troubleshooting', slug: 'selive/troubleshooting' },
{ label: 'Uninstalling SE.Live', slug: 'selive/uninstall' },
],
},
{
Expand All @@ -262,19 +324,25 @@ export default defineConfig({
{
label: 'Guides',
items: [
{ label: 'Build your first custom widget', slug: 'overlays/first-custom-widget' },
{ label: 'Add to your broadcast software', slug: 'overlays/broadcast-software' },
{ label: 'AlertBox alert variations', slug: 'overlays/alertbox-variations' },
{ label: 'Add a chat overlay', slug: 'overlays/chat-widget' },
{ label: 'KappaGen', slug: 'overlays/kappagen' },
{ label: 'Widget Data', slug: 'overlays/widget-data' },
{ label: 'Custom code in AlertBoxes', slug: 'overlays/custom-code-in-alertbox' },
],
},
{
label: 'Custom Widgets',
items: [
{ label: 'Build your first custom widget', slug: 'overlays/first-custom-widget' },
{ label: 'Code Editor', slug: 'overlays/widget-structure' },
{ label: 'SE_API Reference', slug: 'overlays/custom-widget' },
{ label: 'Widget Events', slug: 'overlays/events' },
{ label: 'Session Data Reference', slug: 'overlays/session-data' },
],
},
{ label: 'Troubleshooting', slug: 'overlays/troubleshooting' },
{ label: 'Editor Shortcuts', slug: 'overlays/overlay-editor-shortcuts' },
],
},
Expand Down Expand Up @@ -342,6 +410,7 @@ export default defineConfig({
],
{
exclude: ['/', '/404'],
topics: { selive: ['/selive/guides/youtube-quickstart/**'] },
},
),
],
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/add-timer-modal.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/banned-words.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/canvas-dock.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/chat-commands.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/dashboard-home.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/desktop-apps.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/my-overlays.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/overlay-editor.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/spam-filters.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/timers.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/youtube-quickstart/wizard-finish.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions src/content/docs/campaigns/bonus-goals.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: Optional Bonus Goals
description: "Complete a sponsorship campaign's optional bonus goals for extra payment, and how the validation process works."
keywords:
- StreamElements bonus goals
- sponsorship bonus payment
---

Some campaigns include optional goals — extra tasks beyond the mandatory ones — that pay a bonus on top of your regular campaign payout.

## Find your campaign's optional goals

Check your campaign brief for a list of available goals; not every campaign has them. They may be specific tasks, milestones, or achievements to hit during your sponsored stream(s).

## Complete a goal

1. Find the completion form in your campaign brief (usually on one of its slides).
2. Fill it out with the requested details and submit it.
3. The StreamElements campaigns team manually reviews submissions — this can take up to a week.
4. Once approved, the bonus is added to your total payout.

## FAQ

**Does the difficulty level I choose matter?**
No — as long as you complete the task, the difficulty or level you play at doesn't affect approval.

**How do I know if my goal was approved?**
It's marked as completed in your campaign dashboard, and your payout total increases to reflect it.

**I submitted the form, but my goal still isn't marked complete.**
If it's been over a week, [contact support](https://support.streamelements.com/hc/en-us/requests/new) so the team can investigate.

## Related

- [Payments](/campaigns/payments)
- [In-Game Budget Goal](/campaigns/in-game-budget)
31 changes: 31 additions & 0 deletions src/content/docs/campaigns/compliance.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: Staying Compliant
description: "Keep StreamElements sponsorship campaigns compliant with FTC advertising rules and Twitch's branded content guidelines."
platforms: [twitch]
keywords:
- FTC disclosure streaming
- Twitch branded content
- sponsorship compliance
---

import { Steps } from '@astrojs/starlight/components';

Two things keep a sponsored stream compliant with FTC rules and Twitch's terms.

## 1. Disclose the sponsorship (FTC)

Your audience needs to clearly know the stream is sponsored. The simplest way: include **#Ad** or **#Sponsored** in your stream title, so it stays visible throughout. Some campaigns require a specific tag instead — always check your campaign brief. If you promote the campaign on social media, add the same disclosure to that post too.

## 2. Use Twitch's Branded Content Tool

StreamElements campaigns are compliant with Twitch's branded content guidelines, since Twitch's Terms of Service (Section 12, Advertisements) and Branded Content Guidelines (Section 9) both allow branded content as long as you use Twitch's own disclosure tool.

<Steps>

1. Open your Twitch **Stream Manager**.
2. Click **Edit Stream Info**.
3. Check the **Branded Content** box.

</Steps>

This automatically adds a branded content disclosure to your stream and its archive. See [Twitch's Branded Content Policy](https://help.twitch.tv/s/article/branded-content-policy?language=en_US#tool) for more detail on the tool itself.
42 changes: 42 additions & 0 deletions src/content/docs/campaigns/in-game-budget.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: In-Game Budget Goal
description: "Get reimbursed, plus a bonus, for an in-game purchase made as part of a sponsorship campaign."
keywords:
- StreamElements in-game budget
- sponsorship purchase reimbursement
---

Some campaigns let you spend money in-game and get reimbursed for the purchase, plus a bonus on top. This goal is for **creators only** — purchases made by your viewers don't count. It's also limited to new users of the game, and requires using your personalized campaign link.

## PC, or PC & Mobile campaigns

1. Click your personalized campaign link, choose **See your name on screen**, and connect the Twitch account tied to your sponsorship.
2. Download the game on your PC and make sure every purchase happens there — not on mobile. Check your campaign brief for suggested items to buy.

## Mobile-only campaigns

1. Click your personalized campaign link, choose **See your name on screen**, and connect your Twitch account.
2. Install the game on your mobile device. If you're using an emulator, first create a game account on mobile itself (via Scopely or Google), then log into the emulator with that same account. Make every purchase from your mobile device, not the emulator.

## When a brand doesn't support multi-platform purchases

**Android:** follow the mobile-only steps above — link, account, install on Android, and if using an emulator, create the account on mobile first. Purchases must happen directly on the mobile device.

**iPhone:** iOS can't connect accounts to an emulator, so purchases made there won't count. Try mirroring your device to your computer instead. If mirroring isn't possible, describe your purchase and its rewards to your viewers on stream instead.

## Raid: Shadow Legends

1. Click your personalized campaign link and register with your Twitch username (you can update it later if needed).
2. Install the game on PC and make all purchases there.

## Tips

- Make a single purchase — splitting it into smaller ones can cause tracking issues.
- Save your receipt in case the goal doesn't update automatically.
- Showing your purchase and its rewards on stream makes for more engaging content.

If your goal doesn't update after following these steps, [contact support](https://support.streamelements.com/hc/en-us/requests/new).

## Related

- [Optional Bonus Goals](/campaigns/bonus-goals)
66 changes: 66 additions & 0 deletions src/content/docs/campaigns/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: Sponsorships Overview
description: "How StreamElements Sponsorships work: getting invited, exploring offers, participating in a campaign, and eligibility criteria."
keywords:
- StreamElements sponsorships
- creator sponsorship campaigns
- brand deal streaming
---

import { CardGrid, LinkCard } from '@astrojs/starlight/components';

StreamElements Sponsorships connects you with brand partners for paid campaigns — promoting a game or product as part of your regular content.

<CardGrid>
<LinkCard title="Add the Sponsorship Overlay" href="/campaigns/overlay-setup" description="Add your campaign's required overlay to OBS." />
<LinkCard title="Payments" href="/campaigns/payments" description="How and when you get paid for a campaign." />
<LinkCard title="Staying Compliant" href="/campaigns/compliance" description="FTC disclosure and Twitch's branded content rules." />
<LinkCard title="Troubleshooting" href="/campaigns/troubleshooting" description="Fix sign-ups or stream time not being tracked." />
</CardGrid>

## Getting invited

Invitations are automated, based on factors including:

- **Language and location** — relevance to the campaign's target region; your language may matter more than your location.
- **Channel activity and viewership** — consistent streaming and engagement. There's no minimum concurrent viewer requirement.
- **Brand safety** — your most-played game genres need to fit the brand's intended audience.
- **Terms of Service compliance** — past violations count against you.
- **Past sponsorship results** and **campaign preferences** — including previous rejections and a cooldown period after running a campaign, to avoid audience fatigue.

There's no way to request an invite directly — you can't speed this up beyond working on these factors. If you're eligible but don't see any offers, or an offer you wanted has run out of spots, use **Notify Me** on the [Sponsorships page](https://streamelements.com/dashboard/sponsorships/list) to register interest — this doesn't guarantee an offer, but flags you for the next one. If offers have slowed or stopped, it likely means your metrics or activity have changed — focus on consistency, content quality, and audience engagement to improve your standing over time.

## Exploring your offers

The [Sponsorships page](https://streamelements.com/dashboard/sponsorships/list) (under Revenue in your dashboard) lists your campaigns across three tabs: **Open & Active**, **Completed**, and **Expired & Rejected**. Each offer shows the game, deployment type, and key features — select **Learn More** to see estimated earnings and requirements before deciding.

If a campaign isn't for you, decline it with **No Thanks** and leave feedback. Otherwise, **Get Started** takes you to the campaign's Overview screen, with tabs for your current status, Setup, a campaign-specific FAQ, Tips for Success, and Pre-Stream Setup (a step checklist to complete before you can go live with the campaign).

## Participating

Each campaign has its own goals and requirements — read them fully before starting, since maximizing earnings depends on it. Participation is usually built around a type of campaign:

- **Gaming campaigns** — promote a game and drive new players.
- **Non-gaming campaigns** — promote a product or service; see [Subscription-Based Campaigns](/campaigns/subscription-campaigns) for an example (HelloFresh, Factor75).

Some campaigns also offer optional targets for extra pay — see [Optional Bonus Goals](/campaigns/bonus-goals) — or let you get reimbursed for an in-game purchase — see [In-Game Budget Goal](/campaigns/in-game-budget).

Twitch is the primary platform for campaign goals, but you can share your campaign link on YouTube, TikTok, Kick, Instagram, or Discord too.

Most campaigns need at least one valid event to qualify for payment, as long as mandatory tasks (like using the branded overlay) are met. Generally, a valid event means:

- The participant is genuinely new — never installed the game or subscribed to the service before.
- They used your unique link, code, or QR code without issues (ad blockers can interfere with landing pages).
- For PC games, the downloaded file name wasn't changed.
- For mobile games, the app was downloaded from the app store after clicking your campaign link — emulators don't count, only real devices.
- No duplicate accounts or devices from the same IP address — these get flagged as abusive.

Campaigns should run their full duration — ending one early can reduce engagement, affect your payout eligibility, and impact future sponsorship opportunities. StreamElements can't help with in-game technical issues; contact the game's own support for those.

## FAQ

**Can I use a PC version of a mobile-only campaign?**
Use the mobile version instead, or an emulator like Bluestacks or NoxPlayer.

**What happens if a campaign is flagged as abusive?**
If a high number of invalid events are detected, payment for the campaign may be revoked entirely, alongside the usual per-event adjustments.
47 changes: 47 additions & 0 deletions src/content/docs/campaigns/overlay-setup.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: Add the Sponsorship Overlay to OBS
description: "Copy your campaign's sponsorship overlay link and add it to OBS Studio as a browser source."
keywords:
- StreamElements sponsorship overlay
- campaign overlay OBS
---

import { Steps } from '@astrojs/starlight/components';

Most campaigns require a branded overlay on your main OBS scene throughout the sponsored stream.

## Copy the overlay link

<Steps>

1. Open the [Sponsorships page](https://streamelements.com/dashboard/sponsorships/list) and find your campaign.
2. Under **Set up and prepare**, click **Copy Link**.

</Steps>

## Add it to OBS

<Steps>

1. In OBS, go to **Sources** and click **+**, then choose **Browser**.
2. Name it (for example "Sponsorship Overlay") and click **OK**.
3. Paste the copied URL into the **URL** field.
4. Set the width and height to whatever your campaign brief specifies.
5. Click **OK** to save.

</Steps>

If your overlay includes a widget with sound, check **Shutdown source when not visible** — this also reduces load on your computer, though it can delay the overlay loading in when you switch to it. To avoid that delay, use OBS's Studio Mode to preload scenes ahead of a transition.

## FAQ

**Can I run the sponsorship overlay alongside my other overlays?**
Yes — OBS supports multiple overlay browser sources at once; just add each one separately.

**Can I customize the sponsorship overlay?**
Use the settings specified in your campaign brief rather than customizing it yourself.

## Related

- [Sponsorships Overview](/campaigns)
- [Troubleshooting](/campaigns/troubleshooting)
Loading
Loading