Our strong fourth quarter performance, which exceeded our outlook, capped off another great year. We executed well and delivered record results.
Before taking your questions, I'll walk through operational and financial highlights and address outlook. We saw a strong demand for our players and TVs in the fourth quarter, which resulted in the incremental 9.8 million active accounts for the year. And we ended 2019 with 36.9 million active accounts.
Our scale has expanded rapidly over the last several years. We added just under 6 million active accounts in 2017, nearly 8 million more in 2018, and almost 10 million more in 2019.
In addition to increasing our scale, we continue to see growing engagement on our platform, with 2019 streaming hours up 16.3 billion year-over-year, to a record 40 billion hours. In Q4, the streaming hour growth rate moderated somewhat versus Q4 of 2018, due in part to the timing of Black Friday, only in a week later in 2019, and the partial roll out of the "Are you still watching" feature, which prompts users to confirm they are still watching after a period of inactivity.
Leading channel partners like Netflix, have already implemented similar features that we think create a level of consistency and establish a best practice across our platform.
As of early Q1, we have completed rolling out this feature to our entire installed base and estimate that it will moderate our streaming hour year-over-year growth by approximately 10 to 15 percentage points in 2020. We do not expect the rollout of this feature to have a material impact on our financial performance.
Please see our shareholder letter for the full financial details from the quarter and fiscal year. But I'll highlight a few items and provide our Q1 and full year 2020 outlook. Q4 total revenue, exceeded our outlook increasing 49% year-over-year to $411.2 million with the platform segment revenue up 71% year-over-year, to a record $259.6 million, and represented 63% of total revenue. Player segment revenue growth of 22% year-over-year, again came in ahead of expectations, driven by strong player sales with units up 33% year-over-year. A highly effective holiday promotion strategy led to a 10% decrease in ASP.
Our key financial performance metric is gross profit, which exceeded our outlook and was up 44% year-over-year in Q4, to a record $161.6 million. Gross margin was 39.3%, reflecting solid platform margins consistent with the prior quarter, partially offset by our decision to run the player business at roughly zero gross margin.
Q4 adjusted EBITDA of $15.1 million exceeded our outlook. Q4 OpEx was $179 million, up 68% year-over-year, as we continue to invest to extend our strategic advantages.
Excluding approximately $13 million of dataxu related OpEx and deal cost, OpEx would have grown roughly 56% year-over-year. To-date, we're making good progress on our integration of dataxu's operations with Roku's ad business, and its Q4 performance was consistent with expectations.
As we mentioned on the last call, given the relative size of dataxu, and our integration plans, we do not expect to breakout dataxu going forward, and rather it will be included as part of our platform segment. We ended the quarter with $517.3 million of cash, cash equivalents, restricted cash and short-term investments, which included net proceeds of $151 million from the sale of class A common stock in an at-the-market offering transaction during the quarter. Net proceeds of $100 million from drawing on our term loan as part of our credit facility, and reflecting the use of $68 million in net cash as part of the funding for the dataxu acquisition.
With that, let's turn to our outlook for the full year 2020, which calls for $1.6 billion in revenues at the midpoint, up 42% year-over-year, and $730 million of gross profit at the midpoint, up 47% year-over-year. The mix of revenue will continue to move towards the faster growing platform segment, which we anticipate will generate roughly three quarters of total revenues.
For modeling purposes, you should plan for full year platform gross margin in the high 50s to 60% as a percentage of revenue, driven by continued mix shift to video advertising, inclusion of dataxu and growth of premium subscriptions.
For players, you should expect us to manage full year gross margin to roughly zero. We remind you that we are not optimizing for player gross profit, given our focus on device sales as an important driver of account growth. We believe that our strategy of trading player margin for account growth in platform revenue growth is working well.
Given our strong position within the shift towards streaming, our goal for 2020 is to continue to invest our incremental gross profit back into our strategic growth opportunities, and to manage the business to roughly breakeven on a full year adjusted EBITDA basis.
For modeling purposes, please note that 2020 adjusted EBITDA excludes stock based compensation a roughly $135 million, and an estimated $35 million of depreciation and amortization and net other income.
Implied in our 2020 outlook, is roughly $905 million of GAAP operating expenses and while our revenue and gross profit can be quite seasonal.
Our OpEx is not particularly seasonal, but instead, is better looked at on a sequential growth basis, due to headcount and facility related expenses, traditionally accounting for roughly three quarters of total OpEx.
Approximately 60% of our anticipated increases in operating expenses in 2020 are related to the full year impact of the 32% organic headcount growth in 2019, increased facility costs primarily related to our new headquarters and the inclusion of dataxu operating expenses.
In addition, we also plan to hire new employees at a similar organic rate to 2019.
Turning to our Q1 outlook, we remind you that Q1 is our seasonally softest quarter from a revenue perspective, with revenue that is roughly 25% lower sequentially than our seasonally strong fourth quarter.
Our Q1 outlook calls for a similar seasonality with the midpoint of total revenues of $305 million, up 48% year-over-year, with platform accounting for roughly three quarters of the mix.
Gross profit of roughly $145 million at the midpoint, is expected to be more than offset by higher operating expenses, resulting in an adjusted EBITDA loss of roughly $20 million. In Q1, we expect player gross margins to be in the mid to high single digits, reflecting a traditionally lighter promotional period within the retail calendar.
Please note that our outlook does not include any material impacts resulting from the current novel coronavirus outbreak.
We are closely monitoring this outbreak and today to have only experienced minor impacts, but there is potential for more significant manufacturing and supply chain disruptions if the outbreak becomes more severe, which may hamper our and our partners abilities to replenish inventory after a strong holiday season.
I'll summarize by saying how pleased we are with the trajectory of the business and I would like to share a little perspective on our historical and anticipated revenue growth.
Our 2020 revenue outlook of $1.6 billion at the midpoint represents roughly two times 2018 revenue, three times 2017 revenue, four times 2016 revenue, and five times 2015 revenue. The sustained level of robust revenue growth speaks to the fundamentals of our business, the difficulty of replicating our strategic advantages and market leading position and our laser focus and leadership in streaming.
In addition, we are encouraged by the significant opportunities ahead, as we are only just beginning the streaming decade.
With that, let's turn the call over for questions. Operator?