SlideShare a Scribd company logo
Sanyu Kiruluta

Manager, Developer
Onboarding
Twitch Extension Review Process:
The Missing Manual!
TwitchCon 2018 San Jose, California
300+ Live Extensions
2039
Reviews
1304
Approvals
29%
Approved 1st Try
Twitch Extension
Review Statistics
What do we do? What
happens when we get
to the approval
process?
EXTENSION APPROVAL PROCESS
Help you understand
policyLorem ipsum dolor
sit amet,
consectetur
adipiscing elit, sed
do eiusmod
tempor incididunt
ut labore et dolore
01.
Provide clear review
guidanceLorem ipsum dolor
sit amet,
consectetur
adipiscing elit, sed
do eiusmod
tempor incididunt
ut labore et dolore
02.
HI SANYU,
YOUR EXTENSION HAS NOT PASSED REVIEW.
YOUR EXTENSION MUST HAVE AT LEAST ONE VALID SCREENSHOT.
IF YOU HAVE ALREADY ADDED A SCREENSHOT, BUT ADDED IT AFTER
MOVING TO HOSTED TEST, PLEASE IGNORE THIS MESSAGE AND MOVE
YOUR EXTENSION BACK INTO REVIEW.
FILES & CODE REVIEW ISSUES:
• EMBEDDABLE IFRAMES ARE NOT ALLOWED WITHIN EXTENSIONS.
• ALL EXTERNAL CSS/JS MUST BE INCLUDED WITH YOUR UPLOAD
TWITCHDEV
TO ME >
WHAT? OH NO! BOOOOOOO!
What do we do? What
happens when we get
to the approval
process?
EXTENSION APPROVAL PROCESS
Help you understand
policyLorem ipsum dolor
sit amet,
consectetur
adipiscing elit, sed
do eiusmod
tempor incididunt
ut labore et dolore
01.
Provide clear review
guidanceLorem ipsum dolor
sit amet,
consectetur
adipiscing elit, sed
do eiusmod
tempor incididunt
ut labore et dolore
02.
HI SANYU,
CONGRATULATIONS. YOUR EXTENSION HAS BEEN APPROVED!
TWITCHDEV
TO ME >
HOORAH! YAY! AWESOME!
How are we going to do that?
- Walkthrough the Extension Lifecycle
- Discuss the the Extension Review Process
- Look at the Top 10 Extension Review Failure Reasons
- Final Tips and Tricks
TwitchCon 2018 San Jose, California
Twitch Extension
Lifecycle
TwitchCon 2018 San Jose, California
Extension
Lifecycle
Create Extension
dev.twitch.tv
Create
Extension
EXTENSION REVIEW PROCESS
TwitchCon 2018 San Jose, California
Test Extension
- Develop and test
frontend and backend
- Submit metadata and
assets
Test /
Hosted Test
Extension
Lifecycle
Create
Extension
EXTENSION REVIEW PROCESS
TwitchCon 2018 San Jose, California
Submit Extension for
Review
- Metadata Review
- Policy Review
- Functional Review
- Code Review
Under
Review
Test /
Hosted Test
Extension
Lifecycle
Create
Extension
EXTENSION REVIEW PROCESS
TwitchCon 2018 San Jose, California
HI SANYU,
YOUR EXTENSION HAS N
YOUR EXTENSION MUST
IF YOU HAVE ALREADY AD
MOVING TO HOSTED TES
YOUR EXTENSION BACK I
FILES & CODE REVIEW IS
• EMBEDDABLE IFRAMES
• ALL EXTERNAL CSS/JS M
TWITCHDEV
TO ME >
WHAT? OH NO! BO
O!
Failed Review
- Metadata Issues
- Policy Issues
- Functional Issues
- Code Issues
Under
Review
Test /
Hosted Test
Extension
Lifecycle
Create
Extension
EXTENSION REVIEW PROCESS
TwitchCon 2018 San Jose, California
Submit Extension for
Review
- Metadata Review
- Policy Review
- Functional Review
- Code Review
Under
Review
Test /
Hosted Test
Extension
Lifecycle
Create
Extension
EXTENSION REVIEW PROCESS
TwitchCon 2018 San Jose, California
HI SANYU,
CONGRATULATIONS. YO
TWITCHDEV
TO ME >
HOORAH! YAY! AW
Extension Approved
- No review issues found
- Ready for go live
Under
Review
Test /
Hosted Test
Extension
Lifecycle
Create
Extension
EXTENSION REVIEW PROCESS
Approved
TwitchCon 2018 San Jose, California
Go Live!
- Developer has full
control release timing
Under
Review
Test /
Hosted Test
Extension
Lifecycle
Create
Extension
EXTENSION REVIEW PROCESS
Approved
Released
TwitchCon 2018 San Jose, California
Twitch Extension
Review Process
- Metadata Review
- Policy Review
- Code Review
- Functional Review
TwitchCon 2018 San Jose, California
Metadata
Missing icon or images - No Twitch Images - Incomplete descriptions
Review
TwitchCon 2018 San Jose, California
Policy Review
Extensions Guidelines, Developer Agreement, Twitch Terms of
Service, Community Guidelines, Bits Acceptable Use Policy, Oh My!
TwitchCon 2018 San Jose, California
Functional Review
Is your review channel live? Is your backend up? Is your Extension
configuration easy to understand?
TwitchCon 2018 San Jose, California
Code Review
Obfuscation, eval(), Missing HTML/JS files
TwitchCon 2018 San Jose, California
Top 10 Extension Review
Failure Reasons
TwitchCon 2018 San Jose, California
YOUR LIVE REVIEW CHANNEL IS THE MOST EFFECTIVE
WAY FOR US TO TEST YOUR EXTENSION
Number of ways you can set this up
- ffmpeg
- Include optimal review times in your
review notes
#1: Review Channel
Not Live (Functional)
Starting today, we are reducing the
number of use cases where a review
channel required
TwitchCon 2018 San Jose, California
YOUR LIVE REVIEW CHANNEL IS THE MOST EFFECTIVE
WAY FOR US TO TEST YOUR EXTENSION
Number of ways you can set this up
- ffmpeg
- Include optimal review times in your
review notes
#1: Review Channel
Not Live (Functional)
Starting today, we are reducing the
number of use cases where a review
channel required
TwitchCon 2018 San Jose, California
DO NOT MAKE CHANGES TO YOUR EXTENSIONS ICONS,
IMAGES, DESCRIPTION, AND CATEGORY IN HOSTED TEST
Always move your Extension back into
Test before making metadata changes
#2: Metadata Change in
Hosted Test (Metadata)
We are working on a better solution
for this!
TwitchCon 2018 San Jose, California
DO NOT MAKE CHANGES TO YOUR EXTENSIONS ICONS,
IMAGES, DESCRIPTION, AND CATEGORY IN HOSTED TEST
Always move your Extension back into
Test before making metadata changes
#2: Metadata Change in
Hosted Test (Metadata)
We are working on a better solution
for this!
TwitchCon 2018 San Jose, California
DOUBLE CHECK YOUR MANIFEST BEFORE SUBMITTING
FOR REVIEW
- You must include Extension helper in
your asset upload to the Twitch CDN
- If you are not providing a config.html,
remove reference to it from your
manifest
#3: HTML/JS/CSS Files
Missing (Code Review)
TwitchCon 2018 San Jose, California
MINIFICATION IS OK IF CODE IS STILL HUMAN-
READABLE
New Obfuscation Policy!
#4: Obfuscation
(Code Review)
TwitchCon 2018 San Jose, California
MINIFICATION IS OK IF CODE IS STILL HUMAN-
READABLE
New Obfuscation Policy!
#4: Obfuscation
(Code Review)
TwitchCon 2018 San Jose, California
YOUR DESCRIPTION SHOULD DESCRIBE
ACCURATELY AND COMPLETELY THE
FUNCTIONALITY AVAILABLE IN YOUR EXTENSION
#5: Insufficient Description
(Metadata)
TwitchCon 2018 San Jose, California
You must resubmit for review if you update your
broadcaster whitelist
IF WE CANNOT REVIEW IT, WE CANNOT APPROVE IT
- Provide clear testing instructions
- Make sure your backend is live
- Use account whitelisting for pre-release testing
#6: Failed to Load
(Functional)
TwitchCon 2018 San Jose, California
You must resubmit for review if you update your
broadcaster whitelist
IF WE CANNOT REVIEW IT, WE CANNOT APPROVE IT
- Provide clear testing instructions
- Make sure your backend is live
- Use account whitelisting for pre-release testing
#6: Failed to Load
(Functional)
TwitchCon 2018 San Jose, California
IF YOU DON’T HAVE THE RIGHTS TO USE THE IMAGE,
DON’T INCLUDE IT IN YOUR SUBMISSION.
#7: Unauthorized Usage of
Twitch IP (Policy)
TwitchCon 2018 San Jose, California
YOUR EXTENSION CAN INCLUDE AUDIO BUT IT MUST BE
OFF BY DEFAULT, AND IT MUST PROVIDE A WAY FOR
VIEWERS TO ADJUST THE VOLUME
#8: Audio (Policy)
TwitchCon 2018 San Jose, California
EXTENSIONS ARE MEANT TO ENHANCE THE
BROADCASTER AND VIEWER EXPERIENCE ON TWITCH
#9: Offsite Links to
Ads or Non-Twitch
Functionality (Policy)
TwitchCon 2018 San Jose, California
REVIEW THE BITS-IN-EXTENSIONS GUIDELINES AND THE
BITS ACCEPTABLE USE POLICY
New Bits-in-Extensions Policy!
#10: Violates Bits
Usage Policies (Policy)
TwitchCon 2018 San Jose, California
REVIEW THE BITS-IN-EXTENSION GUIDELINES AND THE
BITS ACCEPTABLE USE POLICY
New Bits-in-Extensions Policy!
#10: Violates Bits
Usage Policies (Policy)
TwitchCon 2018 San Jose, California
Final Tips
and Tricks
- Provide a clear description &
detailed testing instructions
- Use account whitelisting for pre-
release testing
- Think BIG
- Reach out for help or advice or to
give us feedback
Twitch Extension Review Process: The Missing Manual
Questions?

More Related Content

Twitch Extension Review Process: The Missing Manual

  • 2. Twitch Extension Review Process: The Missing Manual!
  • 3. TwitchCon 2018 San Jose, California 300+ Live Extensions 2039 Reviews 1304 Approvals 29% Approved 1st Try Twitch Extension Review Statistics
  • 4. What do we do? What happens when we get to the approval process? EXTENSION APPROVAL PROCESS Help you understand policyLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore 01. Provide clear review guidanceLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore 02. HI SANYU, YOUR EXTENSION HAS NOT PASSED REVIEW. YOUR EXTENSION MUST HAVE AT LEAST ONE VALID SCREENSHOT. IF YOU HAVE ALREADY ADDED A SCREENSHOT, BUT ADDED IT AFTER MOVING TO HOSTED TEST, PLEASE IGNORE THIS MESSAGE AND MOVE YOUR EXTENSION BACK INTO REVIEW. FILES & CODE REVIEW ISSUES: • EMBEDDABLE IFRAMES ARE NOT ALLOWED WITHIN EXTENSIONS. • ALL EXTERNAL CSS/JS MUST BE INCLUDED WITH YOUR UPLOAD TWITCHDEV TO ME > WHAT? OH NO! BOOOOOOO!
  • 5. What do we do? What happens when we get to the approval process? EXTENSION APPROVAL PROCESS Help you understand policyLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore 01. Provide clear review guidanceLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore 02. HI SANYU, CONGRATULATIONS. YOUR EXTENSION HAS BEEN APPROVED! TWITCHDEV TO ME > HOORAH! YAY! AWESOME!
  • 6. How are we going to do that? - Walkthrough the Extension Lifecycle - Discuss the the Extension Review Process - Look at the Top 10 Extension Review Failure Reasons - Final Tips and Tricks
  • 7. TwitchCon 2018 San Jose, California Twitch Extension Lifecycle
  • 8. TwitchCon 2018 San Jose, California Extension Lifecycle Create Extension dev.twitch.tv Create Extension EXTENSION REVIEW PROCESS
  • 9. TwitchCon 2018 San Jose, California Test Extension - Develop and test frontend and backend - Submit metadata and assets Test / Hosted Test Extension Lifecycle Create Extension EXTENSION REVIEW PROCESS
  • 10. TwitchCon 2018 San Jose, California Submit Extension for Review - Metadata Review - Policy Review - Functional Review - Code Review Under Review Test / Hosted Test Extension Lifecycle Create Extension EXTENSION REVIEW PROCESS
  • 11. TwitchCon 2018 San Jose, California HI SANYU, YOUR EXTENSION HAS N YOUR EXTENSION MUST IF YOU HAVE ALREADY AD MOVING TO HOSTED TES YOUR EXTENSION BACK I FILES & CODE REVIEW IS • EMBEDDABLE IFRAMES • ALL EXTERNAL CSS/JS M TWITCHDEV TO ME > WHAT? OH NO! BO O! Failed Review - Metadata Issues - Policy Issues - Functional Issues - Code Issues Under Review Test / Hosted Test Extension Lifecycle Create Extension EXTENSION REVIEW PROCESS
  • 12. TwitchCon 2018 San Jose, California Submit Extension for Review - Metadata Review - Policy Review - Functional Review - Code Review Under Review Test / Hosted Test Extension Lifecycle Create Extension EXTENSION REVIEW PROCESS
  • 13. TwitchCon 2018 San Jose, California HI SANYU, CONGRATULATIONS. YO TWITCHDEV TO ME > HOORAH! YAY! AW Extension Approved - No review issues found - Ready for go live Under Review Test / Hosted Test Extension Lifecycle Create Extension EXTENSION REVIEW PROCESS Approved
  • 14. TwitchCon 2018 San Jose, California Go Live! - Developer has full control release timing Under Review Test / Hosted Test Extension Lifecycle Create Extension EXTENSION REVIEW PROCESS Approved Released
  • 15. TwitchCon 2018 San Jose, California Twitch Extension Review Process - Metadata Review - Policy Review - Code Review - Functional Review
  • 16. TwitchCon 2018 San Jose, California Metadata Missing icon or images - No Twitch Images - Incomplete descriptions Review
  • 17. TwitchCon 2018 San Jose, California Policy Review Extensions Guidelines, Developer Agreement, Twitch Terms of Service, Community Guidelines, Bits Acceptable Use Policy, Oh My!
  • 18. TwitchCon 2018 San Jose, California Functional Review Is your review channel live? Is your backend up? Is your Extension configuration easy to understand?
  • 19. TwitchCon 2018 San Jose, California Code Review Obfuscation, eval(), Missing HTML/JS files
  • 20. TwitchCon 2018 San Jose, California Top 10 Extension Review Failure Reasons
  • 21. TwitchCon 2018 San Jose, California YOUR LIVE REVIEW CHANNEL IS THE MOST EFFECTIVE WAY FOR US TO TEST YOUR EXTENSION Number of ways you can set this up - ffmpeg - Include optimal review times in your review notes #1: Review Channel Not Live (Functional) Starting today, we are reducing the number of use cases where a review channel required
  • 22. TwitchCon 2018 San Jose, California YOUR LIVE REVIEW CHANNEL IS THE MOST EFFECTIVE WAY FOR US TO TEST YOUR EXTENSION Number of ways you can set this up - ffmpeg - Include optimal review times in your review notes #1: Review Channel Not Live (Functional) Starting today, we are reducing the number of use cases where a review channel required
  • 23. TwitchCon 2018 San Jose, California DO NOT MAKE CHANGES TO YOUR EXTENSIONS ICONS, IMAGES, DESCRIPTION, AND CATEGORY IN HOSTED TEST Always move your Extension back into Test before making metadata changes #2: Metadata Change in Hosted Test (Metadata) We are working on a better solution for this!
  • 24. TwitchCon 2018 San Jose, California DO NOT MAKE CHANGES TO YOUR EXTENSIONS ICONS, IMAGES, DESCRIPTION, AND CATEGORY IN HOSTED TEST Always move your Extension back into Test before making metadata changes #2: Metadata Change in Hosted Test (Metadata) We are working on a better solution for this!
  • 25. TwitchCon 2018 San Jose, California DOUBLE CHECK YOUR MANIFEST BEFORE SUBMITTING FOR REVIEW - You must include Extension helper in your asset upload to the Twitch CDN - If you are not providing a config.html, remove reference to it from your manifest #3: HTML/JS/CSS Files Missing (Code Review)
  • 26. TwitchCon 2018 San Jose, California MINIFICATION IS OK IF CODE IS STILL HUMAN- READABLE New Obfuscation Policy! #4: Obfuscation (Code Review)
  • 27. TwitchCon 2018 San Jose, California MINIFICATION IS OK IF CODE IS STILL HUMAN- READABLE New Obfuscation Policy! #4: Obfuscation (Code Review)
  • 28. TwitchCon 2018 San Jose, California YOUR DESCRIPTION SHOULD DESCRIBE ACCURATELY AND COMPLETELY THE FUNCTIONALITY AVAILABLE IN YOUR EXTENSION #5: Insufficient Description (Metadata)
  • 29. TwitchCon 2018 San Jose, California You must resubmit for review if you update your broadcaster whitelist IF WE CANNOT REVIEW IT, WE CANNOT APPROVE IT - Provide clear testing instructions - Make sure your backend is live - Use account whitelisting for pre-release testing #6: Failed to Load (Functional)
  • 30. TwitchCon 2018 San Jose, California You must resubmit for review if you update your broadcaster whitelist IF WE CANNOT REVIEW IT, WE CANNOT APPROVE IT - Provide clear testing instructions - Make sure your backend is live - Use account whitelisting for pre-release testing #6: Failed to Load (Functional)
  • 31. TwitchCon 2018 San Jose, California IF YOU DON’T HAVE THE RIGHTS TO USE THE IMAGE, DON’T INCLUDE IT IN YOUR SUBMISSION. #7: Unauthorized Usage of Twitch IP (Policy)
  • 32. TwitchCon 2018 San Jose, California YOUR EXTENSION CAN INCLUDE AUDIO BUT IT MUST BE OFF BY DEFAULT, AND IT MUST PROVIDE A WAY FOR VIEWERS TO ADJUST THE VOLUME #8: Audio (Policy)
  • 33. TwitchCon 2018 San Jose, California EXTENSIONS ARE MEANT TO ENHANCE THE BROADCASTER AND VIEWER EXPERIENCE ON TWITCH #9: Offsite Links to Ads or Non-Twitch Functionality (Policy)
  • 34. TwitchCon 2018 San Jose, California REVIEW THE BITS-IN-EXTENSIONS GUIDELINES AND THE BITS ACCEPTABLE USE POLICY New Bits-in-Extensions Policy! #10: Violates Bits Usage Policies (Policy)
  • 35. TwitchCon 2018 San Jose, California REVIEW THE BITS-IN-EXTENSION GUIDELINES AND THE BITS ACCEPTABLE USE POLICY New Bits-in-Extensions Policy! #10: Violates Bits Usage Policies (Policy)
  • 36. TwitchCon 2018 San Jose, California Final Tips and Tricks - Provide a clear description & detailed testing instructions - Use account whitelisting for pre- release testing - Think BIG - Reach out for help or advice or to give us feedback