v3.19.3.a.u2

Stockholders' Equity - Equity Incentive Plans - Additional Information (Details) | 12 Months Ended
--- | ---
Dec. 31, 2019 Plan
Class Of Stock [Line Items] |
Number of equity incentive plans | 2
2008 Plan and 2017 Plan | Employee Stock Option |
Class Of Stock [Line Items] |
Percentage of voting rights | 10.00%
2008 Plan and 2017 Plan | Employee Stock Option | Minimum | 10% Shareholder |
Class Of Stock [Line Items] |
Stock option fair market value at the date of grant, percent | 110.00%

X
- Definition Number of equity incentive plans. + References No definition available. + Details
Name: | roku_NumberOfEquityIncentivePlans
Namespace Prefix: | roku_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Percentage of voting rights. + References No definition available. + Details
Name: | roku_PercentageOfVotingRights
Namespace Prefix: | roku_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | instant

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_ClassOfStockLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Purchase price of common stock expressed as a percentage of its fair value. + References No definition available. + Details
Name: | us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent
Namespace Prefix: | us-gaap_
Data Type: | num:percentItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_PlanNameAxis=roku_TwoThousandEightAndTwoThousandSeventeenEquityIncentivePlanMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_RelatedPartyTransactionsByRelatedPartyAxis=roku_TenPercentShareholderMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |