This is the final part of a four-part series detailing my personal experience developing an indie game for Panasonic’s obscure VIERA Connect television app market years ago.
In the first part of the series, I detailed the pains of becoming a VIERA Connect third party developer and struggles of setting up the rigid development environment required by Panasonic. For the second part, I documented the development process of actually creating a game using the often restrictive VIERA Connect framework. The third part of the story focused on the obstacles of actually publishing the app to the market. This part discusses the aftermath.
Summary of Launch
After a nine-week approval process in 2012, my indie game Apple Muncher finally debuted on the Panasonic VIERA Connect app store on April 1, 2012. At the time, there were fewer than two dozen games in their store and I was one of the first non-partner independent developers enrolled. No publicly dispersed statistics were available as to how many compatible devices were shipped.
Since I was also charging $1.99 for my app, I knew that the user base would be heavily diminished since paid apps were only available in the US and Europe (eventually Canada would be added). It was likewise a hassle to establish a billing account via a TV remote and something that most people would try to avoid. Still, I was cautiously optimistic that this newfound market would result in some magnitude of success. Before starting development, I found a few press releases from Panasonic projecting 19 million TV sales for that fiscal year, albeit a downward trending spiral from years prior and no indication of how many of them had compatible hardware and software for the then-newly unveiled app store.
All told, I invested $129 and an estimated 160 hours of development time (including learning the Panasonic API) between January 1 and its launch in April. If I could simply break even I would consider it a success given the then-uncharted nature of this smart TV ecosystem.
The First Month of Sales (...or Lack Thereof)
The payment processing for Panasonic apps was, at the time, handled through a third party service known as Digital River (Ireland). The fine-print of the Digital River agreement noted:
E. Payment Method and Frequency. Within thirty (30) calendar days of the end of each calendar month (except as otherwise stated below): (1) DR will make available to You a report which shows each Transaction involving the sale of a copy of Your Application(s) for which DR processed payment during that calendar month and the calculation of the DR Purchase Price for the copy of the Application sold in each such Transaction, and the aggregate amount of DR Purchase Price amounts for that calendar month; and (2) DR will send to You a payment of accrued DR Purchase Price amounts on sales of copies of Your Applications, net of returns, Chargebacks, applicable withholding taxes, and other amounts due to DR under this Agreement (“Due Amounts”)...
With the app live and on the market, I anxiously awaited the prospect of new users purchasing it and setting high scores. Although I was able to glean the general usage patterns through rudimentary analytics and server logs, I primarily looked forward to the first 30 day report that'd detail and verify the total units sold in its first 30 days.
That report arrived in May in the form of an "ePen Report" by Digital River. The data was contained within five separate CSV spreadsheets, including summary and detail views of US and non-US sales (net sales, profits and so forth).
Apple Muncher Sales (April 2012)
Date | Region | Sales | Gross | Fees | Net |
---|---|---|---|---|---|
April 2012 | North America | 7 | 13.97 | 4.22 | 9.75 |
April 2012 | Europe | 11 | 21.51 | 6.50 | 15.01 |
April 2012 | Total | 18 | 35.48 | 10.72 | 24.76 |
To summarize, over a 30 day span there were 18 total sales. Seven of them came from North America (AB, WI, CA, OR, IL, WA, Mexico) and the remaining 11 came from European countries (AD, DE, GB, SK, CZ, PL, PT, IT). I raked in a net profit of $24.76 after the approximate 30% industry standard transaction fees.
Lowering the Cost and Panasonic's Impossible Suggestions
Following the less than smashing success of its debut, I decided to lower the cost down to $0.99 to match the common cost that many mobile games were charging at the time. I submitted a request for this price change through the development portal and then verified it with Panasonic Developer Support through email. The updated price went live on May 15.
On May 20, I received an email from VIERA Connect Developers Team. In it they wrote: "we are delighted to let you know that your app has been frequently executed since it is [sic] launched." They also suggested that to increase usage and sales, I should consider the following changes:
- Implement an in-app purchase. Mark your app as free and then charge the user in the application.
- Offer a free trial. Consider charging the user only if they have executed the app more than four times.
One problem with Panasonic's suggestions — the advice they offered was technically impossible to implement using their own API. There was simply no way to solicit payments from users within the app to unlock or upgrade it. Payments were always handled on Panasonic's side as part of the app acquisition process (prior to apps actually being installed). The only potential solution would had been to develop a second "free" version and then struggle through the entire submission and approval process again.
On May 28, Panasonic announced support for additional European currencies including GBP, CHF, SEK, CZK and PLN. I had to revise the app entry in the portal to reflect these new currencies, which went into effect by June 4. With all of this in place, I let it ride for the next several months without any intervention. Below are the subsequent results.
Apple Muncher Sales (May—December 2012)
Date | Region | Sales | Gross | Fees | Net |
---|---|---|---|---|---|
May 2012 | North America | 1 | 0.99 | 0.30 | 0.69 |
May 2012 | Europe | 0 | 0.00 | 0.00 | 0.00 |
June 2012 | North America | 2 | 1.95 | 0.59 | 1.36 |
June 2012 | Europe | 3 | 4.00 | 1.20 | 2.80 |
July 2012 | North America | 2 | 1.98 | 0.60 | 1.38 |
July 2012 | Europe | 7 | 8.88 | 2.70 | 6.18 |
August 2012 | North America | 2 | 1.98 | 0.60 | 1.38 |
August 2012 | Europe | 3 | 4.37 | 1.32 | 3.05 |
September 2012 | North America | 5 | 5.0 | 1.51 | 3.49 |
September 2012 | Europe | 5 | 3.45 | 1.04 | 2.41 |
October 2012 | North America | 3 | 2.97 | 0.90 | 2.07 |
October 2012 | Europe | 3 | 4.16 | 1.26 | 2.90 |
November 2012 | North America | 2 | 1.98 | 0.60 | 1.38 |
November 2012 | Europe | 7 | 8.54 | 2.59 | 5.95 |
December 2012 | North America | 5 | 4.99 | 1.52 | 3.47 |
December 2012 | Europe | 6 | 7.12 | 2.18 | 4.94 |
Total | 56 | 62.36 | 18.91 | 43.45 |
In the end, my decision to lower the cost to $0.99 really made no difference in sales and they continued to diminish after the first 30 days. From April through December of its debut year, Apple Muncher sold a whopping 74 copies worldwide and grossed $97.84. After the fees of $29.63, the net profit was $68.21. I was still at a deficit of -$60.79 when factoring in the initial cost to develop for this platform.
Additional Correspondence with Panasonic
Throughout the first year of my involvement in the Panasonic market, I corresponded occasionally with their team to inquire about various limitations and drawbacks of their API. I explain this in much more depth in the prior three installments of this story. What always aggravated me was that Panasonic's hardware was perfectly capable of rendering native HTML5/WebGL-based applications as evidenced by some of the "partner" applications that shipped with the television, including the 3D-rich Asphalt 5 racing game by GameLoft. Yet, third party developers who forked over the hefty developer fee were restricted to a woefully incapable proprietary API, without any access to standard HTML5 components.
In the summer of 2012, I noticed that a non-partner app was able to store and retrieve user settings on launch. This was another major pitfall with Panasonic's developer platform—their API documentation offered no method to store or retrieve local data, nor to uniquely identify the device for managing it externally. The result is a stateless app that defaults all of its settings each time it is launched. After inquiring to Panasonic about this topic, they provided me with some undisclosed documentation and source code that would allow reading and writing from the NVRAM of the TV for preserving the user's session or tracking basic configuration options. This knowledge would had been vastly helpful during development but Panasonic indicated it was not documented due to the "sensitive nature" of doing such. Third party developers were still not able to write to external sources such as an SD Card, or perhaps that was another undocumented feature.
Additional exchanges with Panasonic ensued to ascertain why Gameloft was able to port their popular apps easily to the Panasonic platform whereas I (as an independent developer) had to succumb to their "Ajax-CE" SDK that was so restrictive. Panasonic's response was simply: "Gameloft is a strategic partner and have access to 'native' API. This API is not published in the developer portal."
Panasonic also requested the completion of a revenue report that September, which contained a Word document table where I was to input the total sales to that point as part of the license agreement and 30% dispersion. Of course the payment processor had already been withholding the 30% so I would had assumed these details would be communicated directly between the processor and Panasonic (as occurs in all other app markets I've participated in) but alas I still followed through to the best of my ability at the time. The remittance department listed for Panasonic was stationed in Osaka, Japan.
In November 2012, Panasonic updated its license agreement with some minor changes including: "You should notify Panasonic immediately in case of any issues experienced in your Apps or server," "When you have made a change (including major bug fixes) you should consult Panasonic on whether a resubmission is needed or not," and "Clarification on Auditing of Revenue Share." Since the VIERA apps are hosted on the developers' own servers, any changes made to the code base instantly affects the live app. This also means the apps will be inaccessible if the hosting service ever gets interrupted or the files otherwise deleted.
December 2012 rolled around where Panasonic approached me about renewing my developer license. Given the lackluster results and related frustrations throughout the year, I wasn't keen on investing another $129 and had no intentions of developing any more applications using their limited API.
2013-2015: Pleads to Go Free, HTML5 API and a Trickling Userbase
By the start of 2013, Panasonic had already sent several emails asking if I was interested in making my app free to increase usage. Alternatively, they postured that I could create a freemium payment structure—as I detailed previously this was technically not possible using their own API. Since I was still hoping to recoup at least a bit more of my expenses, I simply let it ride as-is.
More notably, by 2013 they had finally rolled out an HTML5 SDK to better support common app development and easy porting from existing platforms. Although this was after my stint developing for their architecture, the new API accomodated many standard HTML elements including MP4 video, AAC audio, WebGL (Binary), Canvas 2D Context, Ajax, Local Session Storage, Forms, Web Workers, Cookies,Iframes, ECMA-262 Spec Javascript, standard DOM manipulation and CSS.
With no intervention, Apple Muncher remained active on the market as-is for $0.99 through January 2015. Below are the statistics:
Apple Muncher Sales (January—December 2013)
Date | Region | Sales | Gross | Fees | Net |
---|---|---|---|---|---|
January 2013 | North America | 3 | 2.97 | 0.90 | 2.07 |
January 2013 | Europe | 5 | 7.34 | 2.23 | 5.11 |
February 2013 | North America | 6 | 5.92 | 1.79 | 4.13 |
February 2013 | Europe | 4 | 5.58 | 1.69 | 3.89 |
March 2013 | North America | 3 | 2.97 | 0.90 | 2.07 |
March 2013 | Europe | 1 | 1.29 | 0.39 | 0.90 |
April 2013 | North America | 0 | 0.00 | 0.00 | 0.00 |
April 2013 | Europe | 3 | 3.85 | 1.17 | 2.68 |
May 2013 | North America | 1 | 0.99 | 0.30 | 0.69 |
May 2013 | Europe | 5 | 5.42 | 1.63 | 3.79 |
June 2013 | North America | 0 | 0.00 | 0.00 | 0.00 |
June 2013 | Europe | 0 | 0.00 | 0.00 | 0.00 |
July 2013 | North America | 2 | 1.98 | 0.60 | 1.38 |
July 2013 | Europe | 2 | 3.03 | 0.92 | 2.11 |
August 2013 | North America | 3 | 2.97 | 0.90 | 2.07 |
August 2013 | Europe | 5 | 6.30 | 1.91 | 4.39 |
September 2013 | North America | 2 | 1.94 | 0.59 | 1.35 |
September 2013 | Europe | 3 | 3.68 | 1.12 | 2.56 |
October 2013 | North America | 1 | 0.99 | 0.30 | 0.69 |
October 2013 | Europe | 1 | 1.35 | 0.41 | 0.94 |
November 2013 | North America | 0 | 0.00 | 0.00 | 0.00 |
November 2013 | Europe | 4 | 5.10 | 1.55 | 3.55 |
December 2013 | North America | 2 | 1.98 | 0.60 | 1.38 |
December 2013 | Europe | 5 | 5.40 | 1.63 | 3.77 |
Total | 61 | 71.05 | 21.53 | 49.52 |
Apple Muncher Sales (January—December 2014)
Date | Region | Sales | Gross | Fees | Net |
---|---|---|---|---|---|
January 2014 | North America | 0 | 0.00 | 0.00 | 0.00 |
January 2014 | Europe | 3 | 1.99 | 0.60 | 1.39 |
February 2014 | North America | 2 | 1.78 | 0.54 | 1.24 |
February 2014 | Europe | 6 | 8.05 | 2.43 | 5.62 |
March 2014 | North America | 1 | 0.99 | 0.30 | 0.69 |
March 2014 | Europe | 3 | 4.10 | 1.23 | 2.87 |
April 2014 | North America | 0 | 0.00 | 0.00 | 0.00 |
April 2014 | Europe | 3 | 4.15 | 1.25 | 2.90 |
May 2014 | North America | 0 | 0.00 | 0.00 | 0.00 |
May 2014 | Europe | 1 | 1.35 | 0.41 | 0.94 |
June 2014 | North America | 0 | 0.00 | 0.00 | 0.00 |
June 2014 | Europe | 0 | 0.00 | 0.00 | 0.00 |
July 2014 | North America | 1 | 0.99 | 0.30 | 0.69 |
July 2014 | Europe | 1 | 1.69 | 0.51 | 1.18 |
August 2014 | North America | 0 | 0.00 | 0.00 | 0.00 |
August 2014 | Europe | 1 | 1.33 | 0.41 | 0.92 |
September 2014 | North America | 1 | 0.99 | 0.30 | 0.69 |
September 2014 | Europe | 1 | 1.62 | 0.49 | 1.13 |
October 2014 | North America | 0 | 0.00 | 0.00 | 0.00 |
October 2014 | Europe | 1 | 1.59 | 0.48 | 1.11 |
November 2014 | North America | 1 | 0.99 | 0.30 | 0.69 |
November 2014 | Europe | 0 | 0.00 | 0.00 | 0.00 |
December 2014 | North America | 1 | 0.99 | 0.30 | 0.69 |
December 2014 | Europe | 1 | 0.89 | 0.27 | 0.62 |
Total | 28 | 33.49 | 10.12 | 23.37 |
Apple Muncher Sales (January—March 2015)
Date | Region | Sales | Gross | Fees | Net |
---|---|---|---|---|---|
January 2015 | North America | 1 | 0.99 | 0.30 | 0.69 |
January 2015 | Europe | 1 | 1.19 | 0.36 | 0.83 |
February 2015 | North America | 1 | 0.99 | 0.30 | 0.69 |
February 2015 | Europe | 2 | 1.78 | 0.54 | 1.24 |
March 2015 | North America | 0 | 0.00 | 0.00 | 0.00 |
March 2015 | Europe | 1 | 0.27 | 0.08 | 0.19 |
Total | 6 | 5.22 | 1.58 | 3.64 |
Final Paid Figures (April 2012—March 2015)
App Purchases | 169 |
Total Launches | 5,852 |
Gross Revenue | 207.60 |
Fees | 62.86 |
Net Revenue | 144.74 |
I did it! After approximately three years I managed to recoup the license fee and essentially break even (excluding development time, resources and taxes).
169 users from around the world got to experience this Panasonic Exclusive title that I developed. Part of a very exclusive group!
March 2015: Panasonic Discontinues Paid Market
On January 15, 2015 I received an email from Panasonic. The message indicated that "we are now considering termination of the Paid section of our market place." This left me with two options:
- Deploy the game as a free app.
- Remove the app from the store.
Their recommended suggestion, as had been alluded to off-and-on for the past two years, was to make the app freely available. In either case this signaled the imminent end of any revenue stream through their market. However, removing it from the market would do neither of us any good so I agreed to release it for free.
I was asked to create a new set of assets for the icon and other imagery to reflect that it was a free app. This seemed unnecessary considering all apps would soon be free and no other version of Apple Muncher existed, but I obliged.
The official switchover to a free-only market occurred on March 24, 2015. Four days earlier Panasonic wrote me to indicate "we are expecting a high usage of the app after moving from Paid to Free section." Well, they weren't wrong.
Free Version Surges (2015—2019)
For the three years that Apple Muncher was a paid game, there had been 169 users who collectively connected and played the game 5,852 times. The majority of paid users launched the app 10-50 times, while a handful superusers played this game 100-500 times each.
Then the free version launched.
The first month of the free release (March 24, 2015 through April 30, 2015) saw 17,758 unique users¹ who launched the game 104,758 times! In other words, 105 times more users downloaded Apple Muncher in its first month of free release than had over the prior three years.
As you can see from the charts below, this trend continued quite consistently through the months and years. Note that Unique Users is assessed per-month and the totals in different months do not differentiate from new or return users.
Apple Muncher Free (2015)
Date | Unique Users | Total Launches |
---|---|---|
April 2015 | 17,745 | 104,758 |
May 2015 | 10,380 | 60,881 |
June 2015 | 9,808 | 54,010 |
July 2015 | 10,119 | 58,483 |
August 2015 | 10,758 | 60,183 |
September 2015 | 9,869 | 53,131 |
October 2015 | 10,389 | 54,828 |
November 2015 | 11,716 | 61,228 |
December 2015 | 12,631 | 68,205 |
Total | 103,415 (93,416) | 575,707 |
Apple Muncher Free (2016)
Date | Unique Users | Total Launches |
---|---|---|
January 2016 | 13,504 | 74,476 |
February 2016 | 13,086 | 69,566 |
March 2016 | 12,703 | 68,791 |
April 2016 | 13,005 | 69,205 |
May 2016 | 13,432 | 67,580 |
June 2016 | 14,403 | 74,943 |
July 2016 | 15,156 | 81,979 |
August 2016 | 14,834 | 79,359 |
September 2016 | 15,445 | 79,795 |
October 2016 | 16,080 | 78,616 |
November 2016 | 16,789 | 84,303 |
December 2016 | 19,085 | 100,344 |
Total | 177,522 (154,929) | 928,957 |
Apple Muncher Free (2017)
Date | Unique Users | Total Launches |
---|---|---|
January 2017 | 20,086 | 106,007 |
February 2017 | 19,371 | 103,355 |
March 2017 | 20,764 | 109,968 |
April 2017 | 21,392 | 115,152 |
May 2017 | 20,097 | 101,871 |
June 2017 | 21,696 | 115,219 |
July 2017 | 22,722 | 123,019 |
August 2017 | 23,256 | 129,244 |
September 2017 | 22,975 | 118,851 |
October 2017 | 22,948 | 117,751 |
November 2017 | 24,861 | 131,832 |
December 2017 | 28,236 | 154,653 |
Total | 268,404 (231,926) | 1,426,922 |
Apple Muncher Free (2018)
Date | Unique Users | Total Launches |
---|---|---|
January 2018 | 28,601 | 159,435 |
February 2018 | 27,496 | 160,328 |
March 2018 | 29,254 | 176,787 |
April 2018 | 28,367 | 167,628 |
May 2018 | 28,652 | 164,281 |
June 2018 | 30,159 | 173,917 |
July 2018 | 33,017 | 196,817 |
August 2018 | 34,419 | 206,387 |
September 2018 | 35,317 | 205,466 |
October 2018 | 32,952 | 185,377 |
November 2018 | 33,829 | 192,888 |
December 2018 | 36,555 | 211,728 |
Total | 378,618 (320,859) | 2,201,039 |
Apple Muncher Free (2019)
Date | Unique Users | Total Launches |
---|---|---|
January 2019 | 38,228 | 226,098 |
February 2019 | 35,033 | 208,194 |
March 2019 | 38,911 | 226,958 |
April 2019 | 37,527 | 215,486 |
May 2019 | 40,336 | 227,148 |
June 2019 | 41,418 | 243,246 |
Total | 231,453 (199,499) | 1,347,130 |
Final Free Figures (April 2015—June 2019)
Unique Users | 943,172 |
Total Launches | 6,479,755 |
Total High Scores | 1,732,437 |
To my surprise, the popularity of this app appears to have increased quite massively year-to-year since 2015, despite the increasingly aging SmartTV technology that powers it.
High Scores
At the end of each game, users have the option to submit their score in competition with other players in daily, weekly, monthly and yearly record charts. The month of June 2019 saw 65,094 high scores submitted—27% of the month's active users (the rest opting not to submit scores).
All told, there have been 1,746,003 high score submissions since 2012. As of July 2019, there is an average of 2,500-3,000 high score submissions every single day. Of all of the high score submissions, only around 550 have managed to make it through all 25 levels of the game.
The highest score holder by quite a significant margin is KMS / KMS Master, with a top score of 21,380 set on January 30, 2019! I believe that score is close to the theoretical maximum possible and quite an achievement considering on the later levels not only does the speed and required length increase but due to API hindrance can actually bog down performance. (Kms reached out to me on an earlier blog entry, where he noted a few bugs and confirmed he plays the game using only the TV remote. It can also be played with a USB keyboard's arrow keys.)
Conclusion
I admit that I almost entirely tuned out of this project shortly after deploying v1.0 due to the initial scarcity of users and the fatigue of battling through the restrictive API and lengthy submission process. I paid no attention to how many active users were still playing the game but remain surprised by how popular it has become ever since going free.
Part of me wonders now if this game would be worth porting to other TV platforms (e.g., Amazon Fire) and mobile platforms. Since releasing this game back in 2012, the world saw the advent of related and wildly popular spin-off "snake" games including slither.io and Snake VS Block. Had the HTML5 API existed when first developing Apple Muncher, it would've been much more natural to port to other platforms.
To my knowledge, the VIERA Connect SDK has not been modified since the summer of 2015, when work was done to adopt the Smart TV Alliance Specification 3.0.0 which sought to standardize the features and capabilities of TV-based applications. Panasonic's own news page for the developer portal has likewise not been updated in 3.5 years.
Hopefully this meticulously detailed developer flashback and reflection will prove to be of some interest to anyone intrigued by these obscure and forgotten app markets.
Apple Muncher Project Postmortem - The Series
Below are the four installments of this series:
- Apple Muncher Project Postmortem: Part 1 - The Beginning
- Apple Muncher Project Postmortem: Part 2 - Development
- Apple Muncher Project Postmortem: Part 3 - Release
- Apple Muncher Project Postmortem: Part 4 - Sales & Aftermath
¹ Since it is common for users to have dynamic IPs and/or multiple devices, the actual number of genuinely unique users is likely less but there is no better way to gauge this figure in the app.
Pingback: Apple Muncher Project Postmortem: Developing for Panasonic VIERA Connect SmartTV (Part 3) | Matt's Repository
Be up to under the control of more is enjoyably oblation as a riposte seeking your team. mattpilz.com
http://bit.ly/2NIrhJt
Thank you for this great writeup! I was also intrigued by Panasonic's platform and had signed up for a free developer account a while back. When I finally logged in to check the API, the site said my account had expired and that I should pay the $129.
This feels so weird in 2019 when there are so many fantastic SDKs out there available for free. Really brings me back to the days of Symbian and CodeWarrior, when you not only had to go through the excruciating pain of developing the app, but also pay Nokia for the privilege. And look at where they are now. 🙂
I think Panasonic is really missing out on a potential market here - they could easily compete with all the set-top-boxes if they just modernized their developer platform. The fact is - everyone who wants a set-top-box still has to buy a TV. The only physical "add-ons" that should exist are for different kinds of (legacy) physical media - BD/DVD/CD. And Panasonic makes those too. The open web is chock-full of great content that I know my Viera could handle, yet still I have to buy a separate thing to access it. Not to mention all the cool private apps you could do - for instance an app for your DVR that would catalog all your physical media and could also rip them and play the copies over HDMI or the network? (my Panasonic DVR has all the hardware necessary for this, but no software).
I was thinking of developing a client for the Finnish Broadcasting Company's streaming service as that's pretty much the only reason I still need an Apple TV, but your article really made me change my mind. I would be totally fine with hosting the app myself (and kind of even prefer it for rapid development) and obviously not charge anything because it's based on a free (geofenced) service, but the thing I need the most from a development platform is zero turnaround time and this definitely doesn't sound like it.
Maybe Panasonic should start realizing that the modern TV market is potentially just as much a platform business as the mobile market and the only reason it's not, is because all the major manufacturers are equally crap at it. Make the Viera brand the leading smart TV platform and one of the best reasons to own a Panasonic (ie the user doesn't need any additional crap to make the the thing useful). Or then just make really good dumb displays and completely kill off the software platform. Granted, TVs will always lag behind because they have generally longer lifespans, but I think we're well beyond the point that a TV or DVR, bought say in the last 5 years, could handle whatever HTML5 can throw at it. All they would really need to do is focusing on porting WebKit or whatever to their hardware and provide a slim JavaScript API to access the platform-specific stuff on top of it.
I wish they would simply provide a free account with which I could experiment on my local network. Make the API documentation publicly available and only charge the 129/500 price if the developer wants to show ads in their app. And for chrissake have somebody redo the "Diga dashboard". And design a better remote! But that's a rant for another time... 😀
Again, big thanks for putting such a great effort into this article!