• Learn
    • Code Lab
    • Foldables and Large Screens
    • One UI Beta
  • Develop
    • Mobile/Wearable
    • Galaxy GameDev
    • Galaxy Themes
    • Galaxy Watch
    • Health
    • Samsung Blockchain
    • Samsung DeX
    • Samsung IAP
    • Samsung Internet
    • Samsung Pay
    • Samsung Wallet
    • View All
      • Galaxy AR Emoji
      • Galaxy Accessory
      • Galaxy Edge
      • Galaxy Z
      • Galaxy Performance
      • Galaxy FM Radio
      • Galaxy S Pen Remote
      • Galaxy Sensor Extension
      • PENUP
      • Samsung Automation
      • Samsung Neural
      • Samsung TEEGRIS
      • Samsung eSE SDK
      • Galaxy Watch for Tizen
      • Watch Face Studio
      • One UI Watch for Tizen
      • Galaxy Watch Studio Converter
      • Samsung IAP for Galaxy Watch (Tizen)
    • Visual Display
    • Smart TV
    • Smart Hospitality Display
    • Smart Signage
    • Digital Appliance
    • Family Hub
    • Platform
    • Bixby
    • Knox
    • SmartThings
    • Tizen.NET
  • Design
    • Design System
    • One UI
    • One UI Watch
    • Smart TV
  • Distribute
    • Galaxy Store
    • TV Seller Office
    • Galaxy Store Games
    • Instant Plays
  • Support
    • Developer Support
    • Remote Test Lab
    • Samsung Android USB Driver
    • Galaxy Emulator Skin
  • Connect
    • Blog
    • News
    • Forums
    • Events
    • Samsung Developer Conference
    • SDC23
    • SDC22
    • SDC21
    • SDC19 and Previous Events
  • Sign In
Top Global Search Form
Recommendation
  • Blog
  • Code Lab
  • Foldable and Large Screen Optimization
  • Forums
  • Galaxy Emulator Skin
  • Galaxy GameDev
  • Health
  • Remote Test Lab
  • SDC22
  • Watch Face Studio
All Search Form
Recommendation
    Suggestion
      All Search Form
      Filter
      Filter
      Filter
      • ALL (79)
      • DOCS
      • SDK
      • API REFERENCE
      • CODE LAB
      • BLOG
      • NEWS/EVENTS
      • OTHERS
        api reference code lab blog news/events
      1. Connect
      2. Samsung Developer Conference

      web

      SDC22 | Speakers

      speaker list check out the speakers who joined us at sdc22 to share their experience and expertise jonghee han vice chairman, ceo and head of device experience divisionsamsung electronics sebastian seung president & head of samsung researchsamsung electronics yongjae kim evp, deputy head of r&d team, visual display businesssamsung electronics sang kim svp & head of product & marketing, samsung electronics america samsung electronics jaeyeon jung vp & head of smartthings, mobile experience businesssamsung electronics sally hyesoon jeong vp & head of framework r&d group, mobile experience businesssamsung electronics mark benson head of smartthingssmartthings inc. anil yadav head of bixby lab, samsung research americasamsung electronics shin baik principal engineer of security team, mobile experience businesssamsung electronics alissa dornbos engineering managersmartthings inc. allan devantier vp of audio research and developmentsamsung electronics barry holland product directorsamsung electronics byungkwon kang principal s/w engineersamsung electronics charis ryu engineersamsung electronics charles lim tizen licensing pmsamsung electronics chulheon jeong software engineer, framework r&d groupsamsung electronics david kwon director of partnership & business developmentsamsung electronics david lee evp, head of samsung nextsamsung electronics donghun shin senior s/w engineersamsung electronics eldad persky vp of product & engineering, ads & datasamsung electronics eun-ae cho software project leadersamsung electronics evan artis senior product managersmartthings inc. haeyoung jun principal engineer, standards research teamsamsung electronics heinz pabst software project leadersamsung electronics hobum kwon corporate vp, platform teamsamsung electronics hosub lee software engineersamsung electronics hyun kim head of core ux groupsamsung electronics hyunju shin principal engineer, platform teamsamsung electronics hyunseok cha principal s/w engineersamsung electronics jaeho ko ux designersamsung electronics james pak corporate vp, b2b partnershipssamsung electronics jeoungju kim engineersamsung electronics jidon yeo principal engineer, data research teamsamsung electronics jihye song staff engineer, s/w architectsamsung electronics jinhoon cho ux designersamsung electronics jinwoo song principal engineer, data research teamsamsung electronics jiwon kim staff engineersamsung electronics john alioto director, developer relationssamsung electronics john couling senior vp, entertainmentdolby laboratories joohwan kim principal engineersamsung electronics joosun moon principal ux designersamsung electronics josh ross content strategist, core ux groupsamsung electronics juneho lee principal s/w engineersamsung electronics kianoosh karami director of engineeringsmartthings inc. kihwan kim corporate vpsamsung electronics kyle sporre principal product managersmartthings inc. kyunghoon han ux designersamsung electronics laura morinigo web developer advocatesamsung electronics mateusz obidzinski b2b technical support engineersamsung electronics matthew reyes pm, mobile gamingdolby laboratories minji lee wallet strategy groupsamsung electronics philip leung partnerships managersamsung electronics richard song director, b2b partnershipsamsung electronics robert white sr. directorsamsung electronics roger kibbe senior developer evangelistsamsung electronics ryan kim principal s/w engineer, tizen enterprise spmsamsung electronics sangin lee software engineer, smartthingssamsung electronics sanguk jeon head of core platform labsamsung electronics sean ginevan head of digital partnership, android enterprisegoogle llc sean park senior product manager, experience planning groupsamsung electronics seongnam oh senior technical director, video systemssamsung electronics soowan kim technical product manager, visual s/w r&d groupsamsung electronics soyoung lee principal engineersamsung electronics sungchull lee software engineer, health s/w r&d groupsamsung electronics surojit chatterjee chief product officercoinbase taeho kgil corporate vp, security & privacy teamsamsung electronics wojciech kajder head of part/b2b product and program managementsrpol/samsung youngsang shin principal engineersamsung electronics yunsik bae staff engineer, connectivity r&d groupsamsung electronics

      https://developer.samsung.com/conference/sdc22/speakers
      1. Learn
      2. Developers Podcast

      doc

      Episode 7, Eric Cloninger

      season 2, episode 7 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan. a listing of all podcast transcripts can be found here. host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guests eric cloninger, lead, developer relations team, samsung electronics chris shomo, infinity watchfaces listen download this episode topics covered sdc21, virtual conference history of the samsung developer conference conference audience keynote speakers conference announcements technical sessions expo floor galaxy store gallery code lab virtual reality after-hours party chris shomo, infinity watchfaces watch face studio 2020 best of galaxy store awards 2021 best of galaxy store awards bixby developers one ui beta samsung podcast platform smartthings helpful links sdc21, virtual conference - developer.samsung.com/sdc sdc18 highlights - youtube video sdc19 highlights - youtube video sdc19 replay - youtube video sdc21 preview - youtube video code lab - developer.samsung.com/codelab chris shomo, infinity watchfaces - youtube video watch face studio - developer.samsung.com/one-ui-watch 2020 best of galaxy store awards - youtube video 2021 best of galaxy store awards preview - youtube video bixby developers - bixbydevelopers.com/ one ui beta - developer.samsung.com/one-ui-beta/index.html samsung podcast platform - samsungpodcasts.com/ smartthings - developer.samsung.com/smartthings samsung developers homepage - developer.samsung.com samsung developers newsletter - developer.samsung.com/newsletter samsung developers blog - developer.samsung.com/blog samsung developers news - developer.samsung.com/news samsung developers facebook - facebook.com/samsungdev samsung developers instagram - instagram.com/samsung_dev samsung developers twitter - twitter.com/samsung_dev samsung developers youtube - youtube.com/samsungdevelopers samsung developers linkedin - linkedin.com/company/samsungdevelopers eric cloninger linkedin - linkedin.com/in/ericcloninger/ chris shomo linkedin - linkedin.com/in/christopher-shomo tony morelan linkedin - linkedin.com/in/tony-morelan transcript note: transcripts are provided by an automated service and reviewed by the samsung developers web team. inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript. tony morelan 00:01 hey, i'm tony morelan. and this is pow! the samsung developers podcast where we chat with innovators using samsung technologies, award winning app developers and designers, as well as insiders working on the latest samsung tools. welcome to season two, episode seven. today's show is a special episode of the pow! podcast. last year, we were not able to have our annual samsung developer conference because of the pandemic. but this year, we're back with sdc21, a virtual conference this coming october, i sat down with eric cloninger, who leads developer relations at samsung. not only do we talk about some of the highlights from our past developer conferences, but what you can look forward to at this year's sdc21. enjoy. hey, eric, welcome to the podcast. eric cloninger 00:51 hey, tony. glad to be here. tony morelan 00:53 so i couldn't be more excited about this special episode where we get to chat about not only the past samsung developer conferences, but our upcoming sdc21. eric cloninger 01:03 yeah, it's gonna be a lot of fun. it is different this year for certain. tony morelan 01:06 let me first start off by asking what exactly is the samsung developer conference, eric cloninger 01:11 samsung creates a lot of different platforms and sdks for developers to create for and integrate with. so sdc is one of the ways we promote our platforms, and educate developers on their capabilities. like many companies, we realized that developers add a lot of value to our products with their own creations. so sdc is our opportunity to share knowledge and hopefully build a connection to the people that are making our products better. tony morelan 01:36 yeah, and what's unique with sdc 21 is this year, it's actually going to be a virtual conference. now we know that it's because the current pandemic we're in, but it's, i think, an opportunity for samsung really to reach to a much bigger global audience that will be able to come in and attend our conference. eric cloninger 01:55 certainly, you know, in the years past, it's been a live event. and there would be quite a few people there -- several thousand. now with it being virtual, we have a much bigger audience and people can actually see the technical sessions as well as the keynote online. even though it's not in person, it is still something that where we can share knowledge, and people can give us feedback on what they like and don't. tony morelan 02:21 let's go back and talk a little bit about the history of sdc. i think it started back in 2013. is that correct? that's correct. eric cloninger 02:29 and i was there in 2014, talking about the gear watch. tony morelan 02:34 development. wow, that must have been pretty close to when we first launched the watch. eric cloninger 02:39 i think it was the first gear s was the product that that i was working on. and we were talking about development tools and how to write apps for those watches. tony morelan 02:49 since then, we've done seven sdcs that, you know, there was a year i think around 2015 that we skipped. and of course last year, we did have to hold off on doing an actual conference. past locations, primarily san francisco in the bay area. eric cloninger 03:06 it's been at moscone every year until 2019, when it moved to san jose. so it's always been in the bay area somewhere that people who attend tony morelan 03:15 tell me about, you know, what is what is the audience. eric cloninger 03:19 the audience is primarily developers. and the content is really focused on that group. a lot of samsung employees attend to give the technical talks and a lot to people come from all over the world to work in the booths. and on the show floor. in one sense. sdc is like a family reunion, we get a chance to meet the people that we've emailed with and been on web conferences for a long time. that's a chance to come together. but it's also the fruition of a year of hard work, you'll whether it's virtual or in person, we can use the opportunity to celebrate and to share what we've worked on with third party developer community. tony morelan 04:05 yeah, i know, my first sdc was 2018. that was in san francisco. i hit started at samsung just a few months earlier than that. so it was a great opportunity, really, for me to meet, not just some of these employees that had only been, you know, emailing with but a lot of the partners that we had a great report with sdc 19 eric cloninger 04:29 i think there was over 5000 close to 6000 people that it's been five to 6000 every year since that i've been here. yeah, so that's a fairly good-sized conference. tony morelan 04:37 so let's talk about some of the past keynotes and some of the big announcements that we've made. going back to 2017. i think we had stan lee, is that correct? eric cloninger 04:47 yeah, stan lee from marvel was one of the main speakers. that was pretty interesting. in 2018, we had a lot of people watching because that's the day that they announced the galaxy fold. wow. so the first time anybody saw it was on stage at sdc. and there were probably a half a million people watching live on either facebook live or youtube. tony morelan 05:13 i remember my takeaway from sdc18 was tim sweeney for fortnite. epic games? eric cloninger 05:18 absolutely. on stage with one of our vps who was holding your tiny sword and shield. you know, it just it added to the silliness, but also the fun was pretty, pretty fun. tony morelan 05:33 oh, definitely. now sdc 19. we had another very interesting person up on the stage talk a little bit about vitalik. eric cloninger 05:41 yeah, vitalik buterin is the co-founder of ethereum. and that year, we also had justin sun from tron. the blockchain community is very interesting. and it's definitely a new aspect for samsung is we had the blockchain wallet sdk that was coming out that year. and so we wanted to have people that could talk about their interactions with it. so vitalik and justin, were on stage in the spotlight session on day two. tony morelan 06:09 yeah, that was pretty exciting actually, to see him up on stage they're in live in person. so a big part of our conference are the technical sessions, it's a chance for the community really to learn about new and upcoming technologies. talk a bit about some of those sessions that we've had in the past. eric cloninger 06:27 so pretty much any of samsung's technical features sdks and services have sessions at sdc. so if you're interested in ai and voice activated services, you can go to multiple bixby sessions, if you're into the internet of things and how to integrate into samsung smartthings ecosystem, there will be information there. you know, as i mentioned previously, there's blockchain, there's the knox partnership for if you want to do secure computing, one ui if you're a designer, and all the new foldable phones and devices out there, there's a lot of content around how to handle app continuity and the flex mode, as well as the unique things about foldable design that you can learn about, as well as things like samsung health and how to design for themes. there's a wide range of technical sessions for pretty much anybody at any experience level. tony morelan 07:24 yeah, yeah, in my area of involvement with the developer conference has been around that design side. i mean, as you know, my background is in design, you know, when we are giving the sessions on theme, designing watchface designing that that's really where i get my involvement with. so a lot of fun for me to be at the conference. walking around the expo floor has been one of the most exciting things for me to be there because truthfully at these different conferences, you just don't know what you're going to see. and i remember walking in the room if it was sdc 18 or 19. but seeing this awesome car on the expo floor, the harmon car. eric cloninger 08:00 yeah, the great thing about the expo floor is where you, you get to do a lot of the kind of non-technical learning. it's a great place in a more relaxed atmosphere to meet and talk to people about what's going on. so the harmon car harman is a subsidiary of samsung, and they create high end audio equipment. so i'm sure you're familiar with brands like harman, kardon, or jbl, or infiniti, all very high-end brands. harman also creates infotainment systems and telematics solutions for automakers. and so what they would do for several years is they would bring a car onto the show floor and deck it out with a lot of the latest software and hardware, as well as the audio systems for the attendees to sit in the car and try it out. unfortunately, they wouldn't let us drive it around the show floor obviously. tony morelan 08:47 i will say i actually did ride the elevator with the person who drove the car from southern california up to northern california for the show. so i did get to ask a little bit about you know what it is like to get behind the wheel of that car and she said it was an absolute blast to drive it up five. eric cloninger 09:04 i'm sure they had to go the speed limit though. tony morelan 09:06 definitely. i know that smart things. back in 14, one of our first conferences they actually set up like what they call the connected home. eric cloninger 09:14 yeah, it was actually a full size when not full sizes about a 900 square foot, you know, a 30 by 30 area where they had different rooms and inside each of those rooms, they would have different ways that you could integrate different iot solutions into the smart home. tony morelan 09:32 now just to be clear, a 900 square foot home in san francisco actually is full size. so in 2018, we did something i was actually pretty excited about we created what we called a gallery of theme. so you know as you know, with the galaxy store, designers can publish their phone themes, but what we did is we took those designs and actually built like a museum gallery big, full size images of the different themes nicely framed, and people would walk around this gallery. and not only see this beautiful, much larger than life theme design. but this was a gallery where at the end of the conference, we actually raffled off the different pieces, eric cloninger 10:15 it really shows how we have a lot of incredibly creative people who are creating work for the galaxy store, and samsung galaxy devices. all of those things that were shown in that that gallery are available for anyone to download and purchase on the galaxy store. tony morelan 10:31 yeah, i know that that gallery really, really was a success in a lot of people really enjoyed seeing that worked in person. another area of the floor that i saw had a lot of activity was code lab, talking about what exactly is code lab at the at the conference. eric cloninger 10:46 code lab is an interactive learning experience, you don't have to actually be present at sdc. to be able to use it. samsung employees create guided learning modules, with examples and downloadable code snippets that you can use to learn anything from android development, watch face design, or theme by the time you've gone through everything. tony morelan 11:13 so if people want to learn more about code lab outside of the conference, where can they find that information, eric cloninger 11:18 you can find the code lab on the samsung developer portal at developer.samsung.com/codelab. tony morelan 11:26 so i think one of the most exciting things that i saw happen on the expo floor was the vr team, they set up this like photography studio that talk about that. eric cloninger 11:36 so in 2018, that team created what was called a volumetric camera setup. so it had cameras in a lot of different positions in 360 degrees. so they would take a very detailed scan of your body, and then they would print it out on a 3d printer. and so that was really cool. and then the following year, that same team took that that same type of technology, and they integrated it with a live interactive experience called delusion. and delusion was a very creepy, interactive experience where you interacted with all of these crazy characters. and because of the time of the year, it was october 29, and 30th. so it's just the day before halloween, okay, you had all of these various characters that you were interacting with in a 3d experience. and the thing that was cool about it was the second night, we had this, you know, after hours segment and those characters in the game that actually came to life, and you actually saw these people walking around that you had interacted with, in the interactive exhibit. tony morelan 12:49 yeah, i remember that being a very fun and freaky evening, i was i was working in one of the booths behind the scenes doors were closed. and as they were prepping for the opening of the of the doors, the fog machine was rolling, that people started rushing in. and then i saw those characters that had been in that interactive space, actually walking amongst the people. and there were a few times that in a fun way, those a little not at ease with them with those different folks. eric cloninger 13:23 yeah, it was kind of a creepy experience. because some of those characters, i mean, they stayed in character, and they got to look right through you. and it just it was very creepy experience. so the after-hours is a lot of fun at you at sdc. as it is, with a lot of events, it's an it's an opportunity to kind of be a lot more relaxed. you'll see some people that you saw in the, the technical sessions earlier in the day, and you have a chance to maybe drill down a little deeper while you have, you know, a plate of food and beverage in your hand. so it's a good experience overall. and you know, to be honest, i'm looking forward to when we can do that again. tony morelan 14:02 yeah, yeah, hopefully, hopefully that will be next year. so i thought it would be nice if we brought in a designer slash developer who has been very involved with the samson community and who has not only attended and many of the past sdc conferences, but was also invited to speak at one of the past sessions. chris shomo, from infinity watchfaces eric cloninger 14:20 hey, chris, welcome to the show. chris shomo 14:23 hey, thank you for having me on here. tony morelan 14:25 yeah, no, it's great. it's great to have you on the podcast. so looking back at the samsung developer program, chris has been one of those resources that we've turned to many times and it simply comes down to not only your success, but your willingness to share and, and really help grow the entire ecosystem for samsung watchfaces and galaxy devices. chris shomo 14:43 well, one thing that i've learned is all about the community. that's one of the reasons i love to share things that i find out because i've also reached out to other designers and ask them, you know, hey, how do you do this? how do you do that? and they're more than willing to share back. so it really is a given. take type of thing and you know, if you're nice, then you can find some answers that you're looking for out there. tony morelan 15:04 there you go. definitely. and you know, honestly, the more success there is amongst all the designers just the more vibrant the galaxy store is just with, with lots of great content. chris shomo 15:13 oh, yeah. and just how it developed over time, too, because, like i've seen it, since the very beginning, when there was hardly anything on there and then just watching it explode to all these designs that you can't even imagine what's going to pop on there next. it's exactly designed to blow me away all the time. tony morelan 15:29 so chris is the person behind infinity watch faces, and truly is one of the first designers who started creating for the platform. tell me what year was it that you actually started designing and selling on galaxy store? chris shomo 15:39 oh, goodness. 2016. tony morelan 15:41 wow. yeah. so i actually did an episode on the podcast on chris last year, it was great episode, we talked about how you got your start creating for samsung and, and also that your house in savannah, georgia was featured in an episode of ghost hunters that it is haunted? chris shomo 15:56 yes, it is. it's been quite an experience, even though i do believe that the ghost does appreciate me being here, i believe. i do not know that. but she's been pretty nice. tony morelan 16:08 guys nice. so if you want to learn much more about chris, go back to that episode and check it out. it was it was a great show. so in 2017, before i started working with samsung, you were actually invited to come out to san francisco and speak at the conference. tell me about that. chris shomo 16:22 wow, it was quite an experience. and first off, it was my first developers conference, first type of any type of tech conference. so i was a little nervous in the very beginning. because here i am, i'm going to san francisco, and i'm getting ready to speak in front of a lot of other designers and developers. what an experience. it was great. tony morelan 16:43 i'm sure it was nice to actually meet also the people, you know, not only at samsung, but then you know, some of the fellow developers that are part of this community. chris shomo 16:51 yeah, and also met a lot of people that became future designers of for specifically watch faces, which was wonderful. they always come back to me and be like, hey, i was there. and i'm like, i remember you. and you know, and they take off and they do very well. yeah. tony morelan 17:06 so i actually came across a video on youtube of you speaking at the conference. and that's how i actually got my start how i first discovered that, you know, you can create these watch faces and, and start selling them for samsung. now, i took it a step further and actually started working for samsung eventually. chris shomo 17:23 yep. and i think that's amazing. i remember you sent me an email one time actually telling me that i had a typo on my website. that's right. and i was like, whoa, thank you, because it was just, uh, you know, no one wants a stupid typo on their website. so i got that fixed. and, and then i never knew that, you know, i'd be working with yeah, back and forth, like we are now and stuff. so it's great. it's amazing how everything is connected. tony morelan 17:49 yeah. so earlier this year, we announced a partnership with google and warehouse and introduced watch face studio to new tool for designing galaxy watch faces that are sold on the google play store. when the tool was first developed, we asked you to be part of that early access team. so can you tell me about that experience, how it is working with that tool, and what it's like to now publish on google play? chris shomo 18:10 well, first off, thank you for getting me in there. and you recommended me for being part of that team. and it was excellent to be part of it, because i was able to kind of push it to its limits for animations. i had a really long animation, i was testing with it. and i was sending it back and forth with samsung. and it helped them iron out and smooth out how the animations were working on the watch. and that was great. and, you know, of course, there's going to be a little bit of growing pains in the very beginning. we're working on that. but it's been amazing how the team at samsung has been so responsive. and to get the software right for us. you can really create some masterpieces. so i'm excited about this. tony morelan 18:55 yeah, and that's why i thought it was so important to have you part of that team is because really your designs are not like the typical design. i mean, you really do push the software to try and get the most out of it. you know, they're there's fun, they're quirky, i mean animations are a huge part of your designs. so is there anything new and exciting that we can anticipate coming out in the in the near future? chris shomo 19:15 oh, wow. i don't really know myself because i kind of jumped around so much with these designs, which is another reason why. yeah, i guess it's kind of unexpected and surprising when another one comes out. at one time you'll have like dancing tigers in the next second. you have dolphins and sea turtle swimming. i'm working on getting one onto the google play store right now called flip out that has the dolphins and the sea turtles and then tiger time as well. and then we got a giant eyeball for halloween that she's showing up. so yeah, a bunch of different things. tony morelan 19:48 you've got it in there. they're super crazy. they're very artistic. chris shomo 19:51 thank you. yeah, and it also one of the things that i like to concentrate on is trying to bring joy to people with the watch face. is where they look at it and you know, just for a moment of time, they can actually, you know, take a break from reality, they get absorbed into the watch smile for a minute. if that happens, and i know it's exceeded tony morelan 20:13 it also what i love is how you build in this sort of like goals where the watch will change, like, lets you step into an example, as you're reaching your different step goals throughout the day, your watch face then is also changing throughout the day. chris shomo 20:27 and that started out of course, with the ties and watches and it worked with every one step goal percentage that they set with the watch. and that was another thing that i'm glad i was in the beta because i was really expressing how much we needed a step goal percentage and to work with it, and they added it in after i requested it. and it was really quick. and of course there are some differences where we have to set the watch pace to its unique step goal as opposed to the user set step go but that's because of that they're trying to make it so it's compatible with all the different watches and where it was. but that's cool, it opens up a new line of challenge faces where you can reach 1000 steps for this to happen 2000 steps for this to happen and i think it's really going to open the door for a lot of unique and creative designs tony morelan 21:17 you know, you brought up a great point that i always stress and that is how approachable samsung is to our developer community. samsung really does listen to our developers and we actually want to have that one on one communications you know, through our different channels, it is really easy to reach out to us and we'll give you that that personal attention that we know our developers need when they're creating for samsung. chris shomo 21:39 and i've really watched the developers program grow over time too because back in 2016 you know it was kind of a shot in the dark but everybody was like new to it. samsung was new to this the watch faces and working with this well ready to be flooded of designers that are getting ready to come in. and then every one of samsung embraced us. we feel like we're part of a family. tony morelan 22:02 thanks. thanks, chris. i got to thank you for jumping in and joining us on the podcast when sdc is back in person. i hope to see you there, if not sooner, i will definitely be there. chris shomo 22:10 count me in. tony morelan 22:12 awesome. thanks, chris. thanks. eric cloninger 22:15 it was great to hear from chris. he's a part of the community of designers and developers that really make the galaxy store special. tony morelan 22:22 yeah, he's been there from pretty much day one. so it was great to catch up with chris. and like i said, i can't wait to actually see him in person. so it past sdcs, we've done what's called the best of galaxy store awards, i think, sec. 18 was the first time that we did the show at the conference. sec 19. that's when i actually hosted it down in san jose, it was great. we have a lot of the winners actually, at the conference, we're able to recognize them for the great apps that they've created for galaxy store. however, last year in 2020, because we did not have a conference, we did a virtual award show. this was presented on youtube as a life premiere. and it really actually was a lot of fun because we were able to reach out to a quite a big audience. eric cloninger 23:09 one of the things i thought was cool about that once we all said in the chat room, it was in the early evening us time, but there were people logging in from russia and the czech republic and slovenia. all of these developers and designers who had created things in one go is the middle of their night, but they were on there congratulating each other. tony morelan 23:29 i think it really shows how the award show is really a global award show. i mean we've got winners from all around the world winners from large companies down to indie designers and developers and it really is a huge, huge community. eric cloninger 23:45 i think it shows how the galaxy store enables a lot of smaller operations, smaller individuals who may get lost in a larger organization that they can actually create something and monetize it and enjoy the success that they can have from their own work. tony morelan 24:03 yeah, no that's very true. that being said, though, there have been some pretty big names that we've recognized with awards. in the past we've given awards to tik tok, epic games fortnite, microsoft with their franchise forza, top golf, that was another one and then there's a great company butterfly affected that his license big brands like spongebob, hello kitty, and star trek, it was great to see them recognized for their work. eric cloninger 24:31 and also last year, for the first time, bixby developers had the opportunity to have their capsules judged. and in 2020 the winner was spotify. tony morelan 24:43 yeah, it was a lot of fun. i actually worked on many of the trailers that were shown in the award show. and spotify was one of the ones that i really, really enjoyed doing, not only the voiceover for but integrating the music and all the editing that was that was a lot of fun to work on that project and we look forward to that in 2021. eric cloninger 24:59 and so when is the award show this year. tony morelan 25:05 so the award show will be part of sdc. so that is on october 26. later on in the evening, though, we're going to be doing a premiere on youtube at 6pm. eastern, and we will be participating in a live chat. so we would love for, you know, not only the winners will be on participating in this live chat, but we would love just to have the community on there. so we can all get together as a chance to, you know, congratulate the winners, and really talk about all of the great apps that were recognized during the award show. eric cloninger 25:35 yeah, the one thing about this, that i think we did have a lot of fun with it last year, and we hope to have more fun this year. in that chat session, the invitation goes out to really everyone who is interested in the galaxy ecosystem. and that could be anybody who is a user or a consumer or a developer or a designer. you know, we want to we want to celebrate everyone's hard work. tony morelan 25:59 definitely, definitely. and if you would like to actually go back and see who the previous winners are, and actually learn more about this upcoming award show, you can go over to developer.samsung.com forward slash awards to learn more about the best of galaxy store award show. so let's talk about sdc 21. as you know, it's a virtual show that will be on october 26. where can people find out more information about registering to attend the virtual conference? eric cloninger 26:28 so the conference is free for anyone to attend, and you can learn more at developer.samsung.com slash sdc. tony morelan 26:38 let's talk about some of the sessions. what can you share about the sessions at sdc 21? eric cloninger 26:44 well, i don't want to steal any of the thunder from the product teams have been working so hard for the last year. but it will tell you that most every technology team that is working on products at samsung will have something to talk about at sdc. so if you're interested in the one ui beta, you'll learn a lot more about that at the sessions, the watchface tools, there's a podcasting platform that's brand new that i think you know something about, tony morelan 27:09 yeah, yeah, no, i am helping out the podcast platform team. we're excited. samsung has their new podcast platform, making it easy for users to listen to podcasts. and we're really excited because in october, we're going to be expanding this platform to countries in europe. so it's really a big deal. you can check out my session and i kind of walk you through how it is that you submit your podcast to samsung. so do you have any insight on what is going to be featured in the keynote, eric cloninger 27:38 i do have a little bit of information to share. and one of the things that is always kind of fun with the keynote at sdc is that samsung president dj koh will be speaking as well as many other people from within the design and engineering teams at samsung. as you know, the last physical sdc was in 2019, your seems like our world has kind of stopped. but to be honest, the pace of technology keeps on moving. and so nearly every samsung technology team will be there. and they want to talk about all the innovation creation that they've done in the last two years. so there'll be things announced for nearly every technology team from bixby and smartthings to mobile devices and smart tvs. there's lots of information for developers that they will be able to use to create their own products for 2022 and beyond. tony morelan 28:34 so really exciting. sdc 21 is going to be october 26. eric cloninger 28:39 and if you want to attend, all you have to do is register at developer.samsung.com/sdc. it's free to attend and we would love to see you there. tony morelan 28:51 excellent. hey, eric, thanks so much for being on the podcast. super exciting to be back at it with sdc and i can't i can't wait for it. eric cloninger 28:59 oh, absolutely. it's really, it's the result of a year's worth of work by hundreds of people. and we really want to share it with all the people out there. tony morelan 29:10 yeah, it should be a great show. right. thanks, eric. all right. eric cloninger 29:13 thank you, tony. closing 29:14 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding at all. sell your apps to the world on the samsung galaxy store. check out developer.samsung.com today and start your journey with samsung. tony morelan 29:30 the pow! podcast is brought to you by the samsung developer program produced by tony morelan.

      https://developer.samsung.com/developers-podcast/s02e07-eric-cloninger.html
      1. Distribute
      2. Galaxy Store

      doc

      Discover Galaxy Store

      discover galaxy store galaxy store is a premium app store designed specifically for galaxy device users that offers a boutique store experience. it is where users organically discover amazing games, and exclusive and differentiated applications created by samsung and third parties. galaxy store is focused on providing quality app experiences, app promotions, campaigns, rewards, and exclusive offers. marketing and promotions available in over 180 countries, market your app to the hundreds of millions of active galaxy device users who download billions of apps from galaxy store. reach these users with promotions for galaxy themes. you can request to promote your app in galaxy store when your app meets the selection criteria. you may qualify to be part of a collection of apps that fit a trending topic. example of collections in galaxy store that promote apps samsung also provides marketing resources, such as the galaxy store badge, that help you promote your app in social media or other areas outside of galaxy store. link users directly to your app in galaxy store using the galaxy store badge positive customer reviews can help you grow sales by influencing users who consider other users’ reviews before downloading an app. ask your customers to review your app by directly connecting them from your app to your galaxy store app review page using a galaxy store review link. link your customers directly to your app review page community looking for like-minded people who share your passion for creating apps? connect with other developers in the samsung developer forums by asking or responding to questions or sharing ideas about the samsung app ecosystem. read our blogs or listen to the samsung developers podcast to learn what samsung developers have to say about the latest technology and trends. if you still can’t find the information you’re looking for, contact us by submitting a request to the developer support team. in-app purchase and samsung galaxy sdks with samsung in-app purchase (iap), galaxy store can provide you a new revenue stream and opens the opportunity to diversify your sales. iap is samsung’s payment service that makes it possible to sell items, such as virtual goods or subscriptions, in your applications. samsung provides examples, beta testing, and technical support to help with the integration of the sdk and server apis, reducing time-to-market. samsung also provides a collection of sdks, services, and tools to help you create and develop your apps for galaxy devices. access to galaxy devices if you don’t own a galaxy device, use the remote test lab service to test your applications on a real device. these are actual devices that you access through the web. save on hardware costs and test the compatibility of your app on multiple devices. performance, metrics, and user attribution galaxy store statistics (gss) is a free and exclusive tool that can be used to track and monitor galaxy store app performance and metrics like downloads, conversion, subscription, top seo keywords, attribution channels, and galaxy store badge linking. gss also provides user acquisition reports that measure user attribution and breaks down the numbers by channel, source, keywords, and featured placement (attribution from galaxy store banners or icons). track app performance using galaxy store statistics additionally, galaxy store is integrated with several third-party attribution platforms. app publishers have used platforms such as adjust, appsflyer, branch, kochava, and singular for side-by-side conversion measurement. galaxy games galaxy store has its own merchandising and marketing opportunities for game developers. game developers who meet pre-requisites around quality, downloads, ratings, and reviews can be considered to be featured in galaxy store game collections, banners, marketing promotions, and campaigns. games are featured in the samsung app ecosystem. for example, pre-loaded on most galaxy devices, samsung game launcher is the high-engagement gaming experience where gamers discover new featured titles resulting in billions of page views. games are also featured in galaxy themes store, samsung pay, bixby, samsung daily, and in regional push notifications, creating a high-engagement premium marketing channel reaching the global galaxy user base. game launcher provides links to trending and popular games and exclusive offers for galaxy store users become one of our top sellers and you may qualify for the fast app review process, allowing you to publish your games in galaxy store in five minutes after submission. learn more about the advantages of selling your game in galaxy store and how to get started in galaxy store games. galaxy watch for tizen and themes have an idea for a watch face or theme for your galaxy device? use galaxy watch studio for tizen or galaxy themes studio to develop your designs without having to learn how to code. when you’re ready to start selling your designs, you can direct users to your seller brand page, which is a portfolio of all of your offerings. your loyal customers can check this page often to view your latest creations. your galaxy store seller brand page highlights the newest and most popular designs in your portfolio galaxy store also provides a channel where customers can purchase galaxy watch for tizen apps for a galaxy watch synced with a non-samsung device (the support available in each store channel may differ among countries and between paid apps and free apps). get started are you ready to include your app to be part of the billions of global downloads? get started in galaxy store now! would you like to learn more? contact us by submitting a developer support request at https://developer.samsung.com/support.

      https://developer.samsung.com/galaxy-store/discover-galaxy-store.html
      1. Learn
      2. Developers Podcast

      doc

      Episode 14, Hyunah Kwon

      season 1, episode 14 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan. a listing of all podcast transcripts can be found here. host tony morelan product manager, samsung developers instagram - twitter - linkedin guests hyunah kwon, charlotte allen samsung electronics in the season one finale of pow, i interview charlotte allen and hyunah kwon. charlotte is the driving force behind samsung's annual best of galaxy store awards, and hyunah is the director of product for galaxy store. not only do we talk about the history of the awards, past highlights of previous awards, but we chat about exciting new changes to galaxy store, and our upcoming 2020 best of galaxy store awards show. more about the best of galaxy store awards celebrating the year’s top performing apps in creativity, quality, design, and innovation, the best of galaxy store awards are the ultimate achievement for samsung galaxy store sellers! join us on december 9th, 5:00pm pst, as we reveal and celebrate this years' winners! listen download this episode topics covered history of the best of galaxy store awards previous award winners galaxy store enhancements exclusive consumer benefits samsung rewards always-on points earning program pandemic impact galaxy store mobile gaming features growth and revenue galaxy store badges 2020 best of galaxy store awards show new award categories winner selections and promoting awards show trailer helpful links best of galaxy store awards - developer.samsung.com/best-of-galaxy-store galaxy store (consumers) - samsung.com/global/galaxy/apps/galaxy-store galaxy store (developers) - developer.samsung.com/galaxy-store galaxy store marketing resources - developer.samsung.com/galaxy-store/marketing-resources.html samsung rewards - samsung.com/us/rewards/gaming galaxy store badges - developer.samsung.com/galaxy-store/gsb-promotion galaxy store games (developers) - developer.samsung.com/galaxy-games samsung developer program homepage - developer.samsung.com samsung developer program newsletter - developer.samsung.com/newsletter samsung developer program blog - developer.samsung.com/blog samsung developer program news - developer.samsung.com/news samsung developer program facebook - facebook.com/samsungdev samsung developer program instagram - instagram.com/samsung_dev samsung developer program twitter - twitter.com/samsung_dev samsung developer program youtube - youtube.com/samsungdevelopers samsung developer program linkedin - linkedin.com/company/samsungdevelopers tony morelan linkedin - linkedin.com/in/tony-morelan charlotte allen linkedin - linkedin.com/in/allencharlotte hyunah kwon linkedin - linkedin.com/in/hyunahkwon transcript note: transcripts are provided by an automated service and reviewed by the samsung developers web team. inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript. tony morelan 00:02 hey, i'm tony morelan. and this is pow! podcast of wisdom from the samsung developer program, where we talk about the latest tech new trends and give insight into all the opportunities available for developers looking to create for samsung. on today's show, i interview charlotte allen and hyunah kwon. charlotte is the driving force behind samsung's annual best of galaxy store awards. hyunah is the director of products for the galaxy store. not only do we talk about the history of the awards, past highlights of previous awards, but we chat about exciting new changes to the galaxy store, and our upcoming award show where we will celebrate the amazing apps that will win awards during the 2020 best of galaxy store award show. and what better way to celebrate our season finale of the power podcast. enjoy. hey, charlotte, nice to have you back on the podcast. charlotte allen 00:52 i know it's been a while. tony morelan 00:55 so for those that don't remember, or might have missed the episode, charlotte actually interviewed me at the beginning of the season so that our listeners could learn a little bit more about me, you know, find out who their host was. and a lot has happened since then. i think we've actually recorded about 12 episodes, but it has all been during this pandemic that we've been going through. so it's been a crazy year, needless to say, but the galaxy store has been going strong. this is the last episode, the season finale and what better way than to discuss the best of galaxy store awards for 2020. so i would love to talk a little bit about the history of the awards. charlotte has been working on this awards program since its inception. can you explain to the audience what are the best of galaxy store awards? charlotte allen 01:44 yeah, absolutely. the b best of galaxy store awards were created to recognize apps that have stood out amongst the crowd in the us galaxy store. we look for excellence in innovation, design, creativity, quality and performance. so i've been with samsung for several years now. and they know that we've been doing this award show during that time. but when did the awards first start, the program was launched in 2018. as a pilot, recognizing just five galaxy store publishers. our goal in creating the program was to acknowledge and celebrate the contributions of designers developers to samsung's ecosystem. tony morelan 02:23 this will be the third year then charlotte allen 02:27 right we are now in our third year, as you said, we increase the awards to five categories in over 20 winners. so we've come a long way in three short years, and we expect to continue to grow the best up galaxy store awards program in the future. so where were those previous award shows held. the inaugural best of galaxy store award ceremony in 2018, was held at the samsung developer conference at the moscone center in san francisco. last year's award ceremony was held at sdc 2019, at the san jose convention center. and we recognize 25 developers and designers from around the world. and 21 of those winners were in attendance, which was great to see. and he showed us how important this recognition is from samsung. tony morelan 03:14 yeah, i was actually the host of the award show last year in san jose. and that was my highlight was actually meeting these developers for the first time, you know, we've been communicating with them, you know, throughout the year, but to actually meet them face to face, and to see how rewarding it was for them to receive this award. that was definitely an amazing moment. charlotte allen 03:34 yeah, i agree. it was also, i think, rewarding and inspiring for us to see, you know, their excitement and just how much effort they put into getting their work. yeah, definitely. let's talk about some of these past recipients. but where's the best way for people to learn, like who won in 2018, who won in 2019. so we have a great list of winners now, having done this for two years and going into our third. so a list with our past winners can be found on samsung's developer program site on the best of galaxy store landing page, and it features over 30 step galaxy store award winners and that is tony morelan 04:12 developer.samsung.com. and if you go there, you can navigate over to the to the galaxy award page. yes, charlotte allen 04:19 yes, you can. tony morelan 04:21 so having done this now for several years, i'm sure you've got a highlight tell me you know if you have a special story about maybe a past winner, charlotte allen 04:28 yeah, there are several that come to mind. but one that i'll share is we awarded bergen for best new watch face designer, and his award was picked up by the uruguay embassy who tweeted a congratulations to bergen and i thought that was really amazing. tony morelan 04:44 that is and bergen is honestly an amazing designer ton of success. he was the designer when i was first looking into starting myself selling watch faces. i was seeing his work and i thought my god this guy is putting out you know; insanely creative watch faces. and my goal was to try and you know, do something at his level. i mean, he just amazing detail amazing depth, amazing features. so when i was starting out, he was the one that i looked up to trying to emulate, you know, his success. so great to see that he was awarded that year. charlotte allen 05:20 wow, pretty, pretty amazing. tony morelan 05:22 so who qualifies for you know, potentially winning a best of galaxy store award? charlotte allen 05:27 all galaxy store publishers qualify for bigger well-known brands to indie developers, designers, they all qualify. tony morelan 05:33 that's, that's, that's great. they'd love to see how open samsung is that? you know, it's not just a developer that is a big brand name. but you know, we'd like to recognize even the small person, the indie developer, who is absolutely, you know, maybe doesn't have all of that experience, but it's still putting out great content. so i thought it would be exciting if we actually brought somebody from the galaxy store team onto our podcast today. so i would like to welcome hyunah kwon hi, hyunah. hi, tony. hi, charlotte. thanks for inviting me. so you are director of product galaxy store and games? can you tell me how long have you been in that role? hyunah kwon 06:13 i've been in this role since this year to work for galaxy store and games. i've been in samsung for about 13 years, starting with my experience in mobile devices in different product management in this domain of mobile. and we're very excited to expand to service businesses in samsung, and i'm in charge of galaxy store app as well as gaming ecosystem tony morelan 06:42 in samsung. i had no idea you actually had been at samsung for that long. can you tell us what is new with the galaxy store? hyunah kwon 06:48 yes, this year has been a full of exciting news and updates and changes with the galaxy store, we just launched a new version introducing an enhanced game discovery experience. as you know, samsung has been fully committed to offer an excellent mobile gaming experience with our hardware. it could be like this stunning screen experiences long battery and very powerful performance on a mobile gaming. and now galaxy, gamers can actually visit the galaxy store to discover new games. and they can view these stunning videos to learn more about the new games, they can pre-register for the upcoming seasons of their favorite games, and so forth. for that we can also share more details. and we also had interesting gear for all types of apps and content. we've been seeing a growing consumption of digital contents in the context of endemic as you know. so on the other hand, some people say that they're having a digital fatigue, if you will, caused by these exceptional circumstances. so we worked on simplifying this experience and make the downloading experience really quick and easy for our consumers, helping users to find the content they need with the better fit recommendations, as well as our editors recommendations for them as well. and we also refreshed our design with a clean and harmonious look. for example, now you will see it very reduced banner sizes here and there, we ensure that pleasant browsing experience and downloading. and the best part is the exclusive benefits that our consumers love about galaxy store. so we offer new promotions events almost every week. for example, in the us market. remember, we integrated samsung rewards last year so that users could spam their points against their purchase in our store. earlier this year since july, we launched an always on points earning program. so now users can earn three points for every dollar spent with whether you purchase an app or a theme or enough items in your game app. so the more they enjoy galaxy store, and the more they can get rewarded. tony morelan 09:09 know that is specifically for us customers, correct? hyunah kwon 09:14 yes, so many other countries could have some different programs. but this is in the us. that sounds amazing. tony morelan 09:21 so i thought it was interesting. you said that because of the pandemic because of covid that you've actually seen an increase in people using their apps, and then they're starting to get the fatigue with it is that that's correct. hyunah kwon 09:33 yes. so the pandemic has been overwhelming for everyone, for sure. but it also was a great opportunity for some in many app developers. so we could see gaming industry, for example, has been really booming. utilizing this opportunity and media, the chance watching videos, or checking on news and healthcare app that user can you know, i actually spend a lot more time on the at home. so things like health care at home improvement apps has been actually pretty popular too. and overall, we had really great and busy year, we'll collaborate with our developers this year to help them really growing. tony morelan 10:18 yeah, that's, that's great to see that, you know, even though this is, you know, an unfortunate thing that our world is going through with a pandemic, that you found ways to help people out more, you know, considering that they are having to better devices and access this information. so you had mentioned also that you're involved with the gaming aspect of it. can you tell me, are there any new features for gamers? hyunah kwon 10:38 yes, so we have simply fire up in two parts. one is the gaming. another part is the access all the collection of the contents that we provide for galaxy users. so in that game tab, you will see an immersive the game discovery area. if you think about gaming in general has been developing, you now see a games that are very spectacular, they have a story in it, you can interact multiple players all together, you can create a history or you can, you know, be really in a deeper side of your action. all of that is pretty similar in movie industry, if you think about it. so when you watch a movie, you generally check a minute the trailer just to make sure you are watching a good movie, it's the same for games, we're providing our gamers the ability to discover what this game is about, and how they would play the download this game. another party's our game introduction page, what we call the detail page of the app has been recolored. refreshed, so that they can actually see some very valid information about the games, we are providing a tag information, it can be something like this game is about a multiplayer game. it's a strategy rpg, or if it's casual gaming, or this game is featuring a medieval setting, with all kinds of information like that we are including more than 300 pack information, so that you can really see what these game is characterized for. also some real time stats-based information, like you can see all these games, some are very popular, there's 10,000 users downloading this game at the moment right now, or it can be you know, 300 people are actually playing this particular game. and i think it's very important to highlight the personalized information is very key for our success. as we mentioned earlier, this is very important for any user to enjoy their experience not spending too much time making their efforts, there's this fatigue about finding the right apps for me, etc. so we also use a lot of user database recommendation that they can find the relevant game for them. and lastly, our galaxy store has been very appreciated by our speed to download and installation. so our consumers really love about our quick download feature, we actually feature this little button that you can directly install and download from what you're previewing from, you don't need to go through the detail page and click another time to download. we're just giving them a direct access to download. so we call we call that a quick download as well. tony morelan 13:37 that's great. i know that that is a feature that i would definitely appreciate. so for developers that have joined the samsung developer program, how can members grow their user base in their revenue hyunah kwon 13:52 share our strategy is to empower our developer partners by enhancing our platform that support them. so obviously, there's many ways to grow their apps and their performance. there are many resources available, so publishers on the galaxy store to support their success. and one thing that i'd like to highlight is these days, in particular, the app discovery is really diversifying. so customers are learning about their new app that anymore in their app store like we did 10 years ago. and they're actually learning from their friends and social media, a lot many different channels. so the optimization of the contents inside our store is still being very important. but managing growth from multi-channel approach becomes even more important galaxy store is having our batch feature galaxies or batches that drive customers from their multiple channel of discovery to galaxy store pages in a single click. and that improves a conversion by optimizing your discovery channel as well as all the listing information, you're providing a nice detail page. and we are going to provide more and more resources for you to optimize that listing information and grow the app developers revenues. to help our developers succeed in their acquisition campaigns with the galaxy store or optimizing their customer journey from discovery to download. we are also working with the leading mobile measurement partners so that developers can measure their campaign performance and to end with the accurate data. and generally, what we would recommend as tactics for growth will be things like, you know, generating more traffic and top of the funnel traffic, and from there, how to optimize their download conversion. and, as you know, download is not the end, most partners are frustrated, i get so many downloads, what i'm not where why am i not growing from there? i think we also can help on our developers to manage their paid conversion and retention, because retention also is a key for your success and growth. and i would always advise people to lean into the customer lifetime value, rather than focusing on the download number itself. tony morelan 16:21 can you tell me how developers can learn how to maximize their growth with the with the galaxy store? hyunah kwon 16:26 yes, sure. so as i mentioned before, there's lots of packets of growth available. so in terms of generating traffic, you can rely on us campaigns, it can be digital campaign, it can be social media campaigns, and we're going to be supportive on all your campaign executions. if you need a specific resource to optimize your campaign, please reach out to our team. as well, as very importantly, users are browsing from their search engine. so obviously, the search engine optimization techniques, or search engine-based advertising, all this traffic and also come into our store. and we can optimize that flow for your growth as well. in terms of download conversion, which is happening within our app, we are continuously improving our detail page optimization tools, as well as we would encourage our developers to manage their own reviews of their apps. so we are providing the way that the developers can prompt their reviews, and allowing their users to write the positive reviews about their apps so that we can also optimize our conversion that way, so that way, we are continuously updating our product. and we believe it's important to provide our updated information on what developers can do with us. so we are planning to provide all this further information through block past webinars and dedicated resources. and now developer portal. as soon as our new features on our platform is available. so i would encourage all developers to visit our developer@samsung.com and stay tuned for more updates. and you can also sign up for our newsletter so that you can get this information available from galaxies tony morelan 18:25 yeah, in the in the link to sign up for the newsletter is developer samsung.com/newsletter. and i'll be sure to include all of these links that you've mentioned in the in the show notes. so hyunah, i absolutely appreciate you taking the time to join me on the podcast today. love seeing how the galaxy store is evolving and super excited with what's coming up in the near future. so thanks again for joining us. hyunah kwon 18:49 thanks, tony for inviting me to the podcast. it was a pleasure. tony morelan 18:54 so charlotte, getting back to the awards for this year. i know that the pandemic obviously has affected everybody in in many different ways. can you tell us how it's actually impacting the award show for this year? charlotte allen 19:07 it is in fact in many in person events this year as we know, including our best of galaxy store awards 2020 award ceremony, which is typically held at sdc. our developer conference, this year's best of galaxy store awards 2020 ceremony will be held virtually, and premiered on youtube on december 9 2020 at 5pm. pacific standard time. so stay tuned to the best galaxy store awards page. if you're not a member of our samsung developer program or bixby developers, now is a great time to register to get all the updates and features i just shared. tony morelan 19:44 excellent. so i know in the past, in order to attend the award show you had to attend our conference, which meant you had to come out to the bay area here and admission into the conference this year though, is that going to be different. charlotte allen 19:55 the exciting thing for me is this year for the first time anyone can and attend and like you shared, the awards are typically held at our conference and even then, sometimes sessions conflict with our award ceremony. but this year, anyone can attend. and so we're really looking forward to having a great crowd attend this year's awards. tony morelan 20:15 yeah, no, i am excited too, as well. we talked about how the award show has been growing from originally, it was just the five awards. and now we've expanded we're up over 20 awards. can you talk about some of the new categories for this year? charlotte allen 20:28 yes, this year's awards will acknowledge over 20 winners in five categories. and the categories include best app, this game best the best watch, and we've added bixby to this year's best of galaxy store awards. and we're really excited about that. tony morelan 20:44 yeah. earlier this year, i did a podcast interview with roger kibbe, at bixby on the viv lab team. so super excited. they're going to be joining us and in awarding their developers. yeah, that is very exciting. talking about the winners. can you tell me how are winners selected? charlotte allen 21:01 winners are selected by our galaxy store team who do a yearly editorial review of all apps published to the galaxy store? tony morelan 21:09 what would you say is the biggest challenge with the with the award selection? charlotte allen 21:14 i would say narrowing down the list of winners. the galaxy store offers expertly curated quality apps, which means we have a lot of great apps on the galaxy store. tony morelan 21:24 yeah, i know because i've been involved with the with the selection and awarding process. and it is a challenge because you know, we've got a team that goes through all this and it makes their nominations and, and their selection as to who they think should win. and sometimes you know what your favorite app may be different than my favorite app. so we get to battle it out. yeah, to figure out who is the winner for that award? yes. so what is it that the samsung developer program team is doing to help promote the winners, charlotte allen 21:54 winners are featured in galaxy store merchandising for the award ceremony, we have a best of galaxy store press release that samsung does. one winner per category is chosen to be featured in that press release. however, winners can write a press release with a quote from samsung as well. we do post winner developer marketing newsletters, blogs, and podcasts interviews. tony morelan 22:16 yeah, i'm actually really looking forward to next season in the podcast where i get a chance to interview some of some of these winners for the best of awards. that should be a lot of fun. now that you and i and our team has been involved with a selection process for the awards. can you tell me what is your favorite award? charlotte allen 22:36 hmm, that's a tough one. i would say if i had to choose, i would say that collections, the theme collections and the watch collections because it shows a body of amazing work. right. and so i think that if i had to choose, i would say that be my favorite. what about you? tony morelan 22:55 you know, my favorite, i think it's the fact that we do recognize those indie developers. so it's the small, you know, new independent designer, that's they've just put together this amazing app. and we're recognizing that. so you don't have to be this big brand, you don't have to have, you know, a large collection, i love the fact that we are awarding those large collections, because it's an amazing, you know, opportunity for us to recognize when a designer has just got this amazing library of work. but i'd love the fact that we also recognize that individual, one key design that just stands out. so you know, you can even be the little developer and we're still going to find yeah, and then recognize you for your great work. so what advice do you have for developers hoping to be considered for future awards? charlotte allen 23:45 the biggest advice i can share is marketing your work digitally socially, as it drives awareness, it drives, downloads, ratings, and reviews. and if you have not already done so, download the galaxy batch, it supports marketing your ad driving users to the galaxy store to download or purchase your app. so my biggest advice is, if you have not posted it to your site, i encourage you to do it today. tony morelan 24:12 yeah, definitely. and in the reason being is that we need you to show up on our radar. so if you put out a great app, and it's not showing up in our in our analytics of you know, top selling apps or apps that are being downloaded, we're not going to find it. so it's a great way for us to find your app is when you're doing all of that marketing push behind it, then once we see it, then we can dive into a little deeper and see if it's worthy of the award. but yeah, you definitely have to get traction on your app. from a social standpoint, that's a huge way for us to discover your apps. so what's the best way for people to learn more about the best of galaxy store awards. charlotte allen 24:54 we have a galaxy store landing page on our samsung developer program site. and there, you'll find details about the program updates on the best of galaxy store awards 2020. and highlights from past year's awards, including winner interviews. yeah. tony morelan 25:09 and as a reminder, that is developer.samsung.com. and from there, you can navigate over to the galaxy store awards page, all the links that we were mentioning, and the podcast will be included in the show notes. so you can check there. can you tell me, are there any upcoming news that you can share that's related to the award show? charlotte allen 25:29 we have some upcoming blogs, we're going to take a look back at some of last year's winners, highlight some of their successes, and really begin promoting the best of galaxy store awards 2020 as we get near to the virtual award ceremony, and we really can't wait. tony morelan 25:47 yeah, and one thing i'd like to share is that we are working on a trailer a little teaser for the award show. the trailer will be released exactly 30 days before the award show. so on november 9, we will be releasing our little teaser trailer for the award show. so be sure to stay tuned for that. so charlotte, thank you very much for joining me on the podcast today and sharing all of the information about the award show. really appreciate you coming on the podcast. charlotte allen 26:16 thanks. it's great to be back again. tony morelan 26:18 and just to sign off, this is our final episode of season one of the podcast i hope you all have enjoyed not just this episode, but the prior 13 episodes that we did that make up season one of the power podcast. we look forward to having you join us next year. we're going to start the new year off with season two and we are really excited with the shows that were lining up. and you definitely will be hearing from some of the winners of our best of galaxy store awards for 2020. so thank you very much. outro 26:51 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding at all. sell your apps to the world on the samsung galaxy store. check out developer.samsung.com today and start your journey with samsung. the pow! podcast is brought to you by the samsung developer program and produced by tony morelan.

      https://developer.samsung.com/developers-podcast/s01e14-hyunah-kwon.html
      1. success story | marketplace, mobile, foldable

      blog

      Shilpi Aggarwal Discusses Adobe's Award-Winning Acrobat Reader

      jeanne hsu, senior marketing manager for developer relations at samsung, chatted with shilpi aggarwal, senior engineering manager in document cloud. she has been at adobe for 15 years, working on portable document format (pdf) technologies at all levels of the stack, with a deep interest in creating seamless customer experiences. jeanne hsu (jh): shilpi, what is your role at adobe? shilpi aggarwal (sa): i deliver products that power pdf creation and consumption across mobile form factors. i manage the adobe acrobat app on the android platform and provide best-in-class pdf experiences to millions of users every day. jh: what was your professional journey that led you to adobe? sa: at university i used adobe photoshop and acrobat reader on a daily basis, so i was familiar with the software. i joined adobe fresh out of college and immediately loved the culture. i am a true believer in adobe values, so i’ve stayed with adobe since the beginning of my career. jh: that’s a long time to be at one company. i noticed adobe’s core values are being genuine, exceptional, innovative, and involved. which values resonate the most for you? sa: being genuine and getting involved. it feels so easy to be myself here. adobe also values diversity and inclusion; everyone is equally valued. people have the freedom to speak out in meetings and can reach out to any executive. i treasure that. jh: how did covid-19 impact the team? sa: when the pandemic hit, adobe held a virtual all hands meeting and asked how people were doing and if there was anything they needed. i said i needed an oxygen cylinder for someone in india. an evp on the call messaged me 1:1 and said he had access to one. i was impressed that he would reach out to help like that. this level of support and engagement from leadership in the hour of need is what i value the most. jh: how did the relationship with samsung first start? sa: our samsung and adobe document cloud partnership started in 2018 with the debut of adobe scan on the galaxy note9. bixby vision was enabled to work seamlessly with adobe scan, giving customers the ability to get more done on the go. in 2020, we expanded our partnership with the launch of the adobe acrobat mobile app in the galaxy store. galaxy store users could download and subscribe to adobe acrobat mobile, which included capabilities to edit text and images, export to and from pdf, more advanced features to create pdfs, combine and organize pdfs, and more. adobe acrobat reader mobile app — best made for samsung app award jh: congrats on winning the 2021 best of galaxy store award — best made for samsung app — for adobe acrobat reader. what does it mean to win this award? sa: i am delighted and proud. our team was really happy to hear the news, and we had a small virtual party afterward. with the acrobat reader mobile app, our mission has always been to fundamentally change the way people consume and modify digital documents, and to become the first choice for pdf productivity for mobile-first users. i feel humbled by the chance to empower millions who use our app every day. i am grateful to our customers and to our amazing partners at samsung for recognizing us. jh: what makes your app unique? sa: people regularly work with documents on the go, and the pdf file format makes it easy to view most documents on a mobile device with formatting intact. with the acrobat mobile app, you can view pdfs for quick document reviews and edits, easy form filling and signing, and much more. it’s different from other mobile pdf solutions because it offers an end-to-end workflow for creating, editing, signing, reviewing, and storing pdfs across devices. acrobat was built for mobile, so you can read documents without pinching and zooming. you can organize paper documents digitally with mobile-first features like liquid mode and scan. and let’s not forget that adobe invented the pdf format and continues to innovate every day for the millions of people around the world who use the acrobat mobile app. jh: i heard about another intriguing feature for adobe acrobat reader called read out loud. tell us more about that. sa: yes, it’s part of our mobile first strategy. read out loud is a text-to-speech (tts) tool that reads text contained in pdf documents. it’s important for accessibility for all. jh: what else differentiates the adobe pdf experience for mobile users? sa: liquid mode senses your mobile device’s screen size and adjusts accordingly. you can change text size and spacing for better readability. you can also search text and expand images and charts. last year it was our most talked-about feature, with great reviews. users also like the form-filling experience and the ability to add signatures on forms. jh: i’m a big fan too. i love the form-filling and signature capabilities. it’s far better than the alternative of printing it out, filling it out manually, signing it, and then taking a picture to upload. it’s a real game changer. feedback and discoverability jh: what kind of feedback have you received from users? sa: we have over 90 million active users a month. they give us lots of feedback, and we take that feedback very seriously. every month we go over online reviews, dedicated adobe forums, and support email lists. because we value customer feedback in our product development process, we’re consistently able to deliver a product customers enjoy. here are some comments from our users: app is great, super easy to use and really easy to learn how to use without much of a learning curve, kind of just explains itself as it goes along, a very intuitive app, almost seems as if it's learning you as you learn it, making it extremely functional for even the most novice of users. adobe acrobat mobile is a reliable tool and extremely useful for editing documents efficiently and has a sleek design. i do not know about many others, but i know adobe has always been convenient and easy to use and the editor is such a remarkably helpful tool. i love this! you can sign papers that are sent to you via text, email, and postal mail on your phone and send them back to those who need signed paperwork. it takes two minutes to sign papers and send them back... jh: with all the competition for apps, what has been your strategy for discoverability? sa: we optimize our content on app store pages to make sure people can easily discover the apps’ benefits. we also run campaigns to new potential customers and existing users who have other adobe products but not acrobat mobile. for example, we send campaigns to existing adobe customers to let them know they can download the acrobat mobile app to view and work with documents on their mobile devices. advice and the future jh: what advice would you give developers looking to bring their app to galaxy store? sa: i would say to design the app with scale in mind. whatever changes we make should be architected to scale to other adobe apps going forward. for example, billing was a key component for our partnership with the samsung galaxy store. we modularized it so it could be plug-and-play. other adobe groups have asked to use the billing component for their products with samsung. the samsung partnership helped us think in this way. we can scale our app with other stores without major code rewrites. this led us to think about how to scale for multiple stores, best practices, and notification support. with a more expansive mindset, we decoupled components and came up with a design to create different flavors of the app with the same code. a modular design provides a foundation to build out for other platforms. jh: what other advice would you give for developers in general? sa: keep learning, no matter what your role is in the business. my path was individual contributor to team lead to manager to senior management. never stop learning. set aside time to refresh your skills and keep yourself up to date. jh: do you have plans to make your app compatible with foldable devices? sa: yes. we’ve done a lot of work on foldables, including the samsung z fold and z flip devices. we’re doing rigorous testing to ensure compatibility. jh: what’s next on the horizon for your team? sa: there are more than four billion smartphones today, and they are increasing in emerging markets. while digital documents are ubiquitous in developed countries, we will continue to innovate our products and work with mobile app store partners like samsung so we can expand the value we deliver to customers worldwide. marketing jh: where can we find adobe acrobat mobile on galaxy store? sa: https://galaxy.store/adobea jh: what are some of the ways you promote adobe acrobat mobile? sa: here are our websites and channels: website facebook twitter linkedin youtube blog diversity and inclusion jh: what is adobe doing related to diversity and inclusion? sa: we have several programs that foster diversity and inclusion. adobe for all is a program in which adobe employees with diverse backgrounds share their stories and inspire others. in wesp (women employee shadow program), women shadow execs, and the execs mentor them for three months. our team has a healthy balance of men and women. during the pandemic, we found working remotely and hiring remotely has helped us increase our pool of applicants. we’re excited to see more people from different geos and diverse cultures applying. jh: what do you do for fun outside of work? sa: i’m into freestyle dancing; it gives me a lot of peace and calm. i’ve done aerobics. also, i’ve performed bollywood style and competed in multiple team events, winning twice. i performed with a group of dancers at an adobe talent show, which was fun. i also spend time with my seven-year-old son; he’s in that phase of doing lots of cute and naughty things, which keeps me engaged. jh: it’s been great talking to you shilpi. thanks for this interview. sa: you’re welcome. be sure to also follow us on @samsung_dev to keep up-to-date on the latest developer news, and keep an eye on our blogs for other helpful resources. you can also sign up for the samsung developer program to take advantage of exclusive benefits and access helpful developer resources.

      Jeanne Hsu

      https://developer.samsung.com/sdp/blog/en-us/2022/05/11/shilpi-aggarwal-discusses-adobes-award-winning-acrobat-reader
      1. Learn
      2. Developers Podcast

      doc

      Episode 3, Biodome Games

      season 3, episode 3 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan. a listing of all podcast transcripts can be found here. host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guest tobias thorsen & peter holm, biodome games, galaxy store not only do we chat about their award-winning mobile game gold digger frvr, but how being acquired by a larger game publisher has allowed them to focus more on game development, while the publisher handles the marketing aspect of producing games. listen download this episode topics covered biodome games studio spelunca frvr best of galaxy store awards publishing on galaxy store marketing discoverability galaxy badge generating revenue integrating iap music diversity and inclusion helpful links gold digger frvr - golddigger.frvr.com facebook (gold train frvr) - facebook galaxy store (gold digger frvr) - galaxy.store/digger1 gold train frvr - goldtrain.frvr.com biodome games - biodome.games frvr - frvr.com frvr careers - careers.frvr.com galaxy store badges - developer.samsung.com/galaxy-store/gsb-promotion galaxy themes - developer.samsung.com/galaxy-themes samsung developer program homepage - developer.samsung.com samsung developer program newsletter - developer.samsung.com/newsletter samsung developer program blog - developer.samsung.com/blog samsung developer program news - developer.samsung.com/news samsung developer program facebook - facebook.com/samsungdev samsung developer program instagram - instagram.com/samsung_dev samsung developer program twitter - twitter.com/samsung_dev samsung developer program youtube - youtube.com/samsungdevelopers samsung developer program linkedin - linkedin.com/company/samsungdevelopers transcript note: transcripts are provided by an automated service and reviewed by the samsung developers web team. inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript. tony morelan 00:01 hey, i'm tony morelan. and this is the samsung developers podcast, where we chat with innovators using samsung technologies, award winning app developers and designers, as well as insiders working on the latest samsung tools. welcome to season three, episode three. on today's show, i'm joined by the founders of biodome games to be a sourcing in peter home. not only do we chat about their award-winning mobile game gold digger, but how being acquired by a larger game publisher has allowed them to focus more on game development, while the publisher handles the marketing aspect of producing games. oh, yeah. and we also chat about how their game studio is now called studio spelunka. enjoy. hey, i am excited for today's podcast to be interviewing, not just one, but the two founders of biodome games to be a source in and peter home. hey, guys, welcome to the podcast. thank you. thank you. so let me first start by asking who is to be as thorson? tobias thorsen 01:04 well, i'm 40 years old, i grew up in rural denmark far out west, i would describe myself as a programmer with somewhat of an artistic sense. i like programming not because i'm particularly good at writing beautiful code, but because it gives a degree of control, and you get a final say in the product you're developing. and i really like that. tony morelan 01:28 that's great. and now we also are joined by peter home. tell me who is peter holm? peter holm 01:36 well, self-taught game design, usability, user experience, business, creative direction type of guy. yeah, i enjoy making games. tony morelan 01:47 wonderful. so toby, let me get back to you. what is your role at biodome games? tobias thorsen 01:53 i'm the lead programmer, and gameplay and vendor and then i'm a co-founder, tony morelan 01:58 wonderful. and peter yourself, what is what exactly is your role? peter holm 02:04 aware of many hats. i'm the ceo formula. game design, producer, artist. tony morelan 02:13 so let's talk about the history by a dump. because i know that you guys were acquired by fr vr and actually recently changed your studio name to spell blanca. but i understand that your history goes way back that you guys were actually friends in kindergarten. so give me that full history of, of the two of you how you guys started working together, and how that led up to biodome games and eventually now spin like a studio. peter holm 02:38 well, it all started around the lego bricks in kindergarten. tobias thorsen 02:45 it's true, somewhat, peter holm 02:47 somewhat true, at least professional working together, but started animation studio and could make where we did 3d animation and space, spare time we started making a game. and that spare time project kind of got out of hand and turned into a game that we actually released. and that was 24 years ago or something? tobias thorsen 03:10 yeah, we released it in 2000. peter holm 03:14 no, no, no, we didn't. the first one was in 98. it was really. tobias thorsen 03:20 so long ago. tony morelan 03:23 the internet was just, you know, starting out what was the process for releasing those games? tobias thorsen 03:29 well, the game was kind of an experiment. it was called chases. and i was just getting into game development. while working at his animation studio, where peter also works. i kind of pivoted back to programming, which i did a lot of when i was a teenager. so i tried experimented with programming, a small game, which was at first only meant for our own enjoyment. i wanted a top-down shooter that i could play in split screen with my friends. so i made that, and it was quite fun. and it just turned more and more advanced. and like when you're young and new to project like this, it just takes it on its own life and you develop and develop. and then at some point, we figured that, hey, this is a product, we are having so much fun playing it. every weekend, we played it and so we figured that other people could enjoy this. and so we decided to do it ourselves. and back then it meant making our own cds and sending them by mail. so there was quite a task, but there was really there was how game distribution was done back then. wow. and tony morelan 04:38 what was the platform that you guys built it on? that was tobias thorsen 04:40 windows and to my great regrets. i programmed everything in visual basic because that was the language and you back then. yeah, and visual basic was definitely not made for game development. so i had to do all sorts of tricks to make it work and it just got more and more advanced. and then at some point, we figured now it's enough and we made the cds. we made 1000 cds and sold them one at a time from our website. tony morelan 05:11 i know my brief experience with gaming back in the late 90s was using flash. and i understand that you guys have some experience also, using flash back in those glorious days of the of the late 90s. tobias thorsen 05:26 yeah, well, after, after our game chasers, we sold like 200 copies. and we kind of realized we couldn't make a living from that. so we had to get a real job. so we started doing advertisement games and other flash games. and that that was really the platform for gaming back then on the web was flash. peter holm 05:49 and it kind of happened by accident that that what we did back then turned into becoming an actual game company. because i think at that point, from my, my perspective, at least, making games was kind of a side gig, hobby, hobby thing. but what i was desperately into was actually flesh and getting 3d animation onto the web using flash magic. that was kind of the big thing back then. tobias thorsen 06:17 yeah. fancy ui designs and stuff like yeah, peter holm 06:21 fancy ui designs, and wow, transitions. and whoa, what not? common colleague, and i found a company focusing on just that, and, and we kind of figured out along the way that hey, wait a minute, maybe we could just do some flash games. and it seems like people want to buy those, and so on. all of a sudden, we had a gaming company, with a ton of clients all over the world. and tony morelan 06:45 that was fun. and what was the name of that gaming company? peter holm 06:48 there was a tunic, like titanic but cartoon instead, so tony morelan 06:53 okay, yeah. and the success yeah, the success of that, did that go down? peter holm 07:00 it went down? eventually. yes. but i will say that we left it to be as an ai, we left the company in 2007. a year after that it went down. so nothing on us. it was a series of unfortunate events that led to the company crashing. tony morelan 07:21 so i understand that you guys built a company, cape copenhagen, correct. that actually, like flourish, you had, you know, lots of employees over 30 employees. you learned a lot of lessons from that company. and some of the challenges that came out of that. tell me tell me a little bit about cape copenhagen. peter holm 07:38 yeah, so cape copenhagen came out of the out of chasis. the first game we've made way back, and titanic. so actually, we left that company in order to make a new version of chase as that was the big dream, we established the company that in turn turned into cape cod. and that company was focused on chasis to begin with, and we worked on a demo for a long time, and we pitched it to publishers, and we didn't seem to be learning the right deal at any point. so we left it and returned to flash games, tobias thorsen 08:12 i fell into the trap that many game developers to programmers, particularly that i want to make my own engine. sure. that was possible back in the 90s, and beginning of the 2000s, but at that point, 2008 it was the scene was so diverse with graphics cards, and sound cards and hardware all over the place and multi-platform. so it really was a too big of a task. again, i made a lot of programming that turned out to be dead code, because you can't maintain such a big code base for so many cases and get out into all the corners with your own tech. at least not one guy. peter holm 08:54 yeah, we painted ourselves into a corner with that project and tobias thorsen 09:00 share yeah, multiple times. peter holm 09:03 so learning from that we return to the stuff that worked in titanic and return to making flash games for clients. and then at some point later on, we finally made the jump to unity and 3d games tony morelan 09:21 and was at the beginning of biodome games. no, the peter holm 09:25 beginning of biodome games is later so keepcup magnet almost existed for 10 years. wow. and i think we were almost 40 people at the peak. and at some point we had a lot of stuff lined up but it all fell through and having a business that rely on client work and all the client work disappearing. that's, that's not really healthy. sure. and we hadn't really managed to build a really solid foundation because i think we wanted too much on the same time. really wanted to do great plant work. but we also wanted to make our own games, which is by definition underfunded. yeah, so that was a very difficult balance to strike tobias thorsen 10:11 for 10 years, we kind of swapped between the two, and we couldn't make a clear path. we didn't really want to focus entirely on client projects. and we didn't want to take too much funding and get economically dependent by taking big investments and not having our own company. yeah, sure. so we were kind of flip flopping around for 10 years, until we could no longer flip flop. peter holm 10:38 yeah. so we were stubborn, and flip flopping and refusing to take other people's money and so on. so it was it was kind of yeah, maybe not that smart of a choice. but anyway, it was fun. tobias thorsen 10:53 it was it was a great company. i really loved my colleagues, amazing company. tony morelan 10:59 so it sounds like then eventually, there came a moment where you decided that it was best that you just close the company, correct? peter holm 11:07 yeah, at a at a at some point. it was basically out of our hands. we had, within the same week, we had three almost signed deals that disappeared. and that was really enough to take us out of business. so we had to close down. and that was the beginning of biodome games. tony morelan 11:28 so then, so then you interbase decided to still continue working together, you obviously are determined to find success, peter holm 11:37 we actually had a conversation at some point where we were looking at each other than just meeting room and things were just collapsing around us and we kind of okay, so what we're going to do get a job. i don't know how to get a job. we basically we were unemployable at that point, i guess we didn't have a choice. tony morelan 12:01 so that was it. it was just you looked at each other and said well, you've got me and i've got you so let's figure out 12:07 something like that tony morelan 12:11 so with the with the closing of cape copenhagen was that the beginning of biodome games, peter holm 12:17 at cape copenhagen we had a third partner who, brian, who we work with for many years, he had left the company i think, one and a half years before we went belly up. basically, he had to he had to do something else with its life at that point he was he was kind of burned out on client work and stuff like that. but around the time that we went belly up, and we had the infamous conversation and in the meeting room about having no choice but to start a new company, he had probably around that time joined, joined a little startup called frvr. and we kind of followed along and looked at what they were doing while we were doing other stuff. because we still wanted to do our own games. we had a client project that could get biodome games running, so we didn't have to take any funding and stuff. and that was basically our plan just to chug along, do a project end and then fund another game that we wanted to do. tobias thorsen 13:22 yeah. and i remember brian liftin, in melta, at that point, and he was back in copenhagen. and he was really, really trying to sell this idea that we should work for frvr. very hard. we are skeptical. what's, what's this? and it's hypercasual? and is that really our gig peter holm 13:43 instant games? what is this? yeah. tobias thorsen 13:48 it felt like a return to something that we left many years ago in titanic and flash games. sure. so we weren't, we were not really convinced in the beginning. and we had some other projects and very artsy projects lined up for ourselves. and i remember we made this calculation at some point, if we're going to succeed with our own game and distributing it and making a steam version of that game and becoming a hit. it was it was really unlikely. and the numbers just told us well, we really just have so much better chance of succeeding if we go with prime. and this tony morelan 14:26 is because i mean, it's really was just the two of you. still, i mean, it's not like you had employees. it was the tobias thorsen 14:31 two of us. yeah, yeah. peter holm 14:33 yeah. and then we really tried to stick to gut feeling about making our own game and realizing our artistic ambition through that game, but as at the same time, we really wanted to achieve that commercial success. and i think the message that that brian came with, why don't you shove your artistic ambition and allow yourself just to be commercial for once, sir. and i think, as you said, to be as that it would be a marathon to maybe get the game finished and maybe get it shipped and so on. but because the scope was smaller, and the tech was more accessible and they had good channel relationships and could get our game out there, i mean, that would just make a lot of sense. and it played to all our strengths and so on. tobias thorsen 15:23 it turned out to be a no brainer, because what we lacked they had, we didn't have any connections in the industry to publishers, and we didn't know how to put a game on facebook instant or steam and let alone peter holm 15:38 samsung galaxy store. yeah. tobias thorsen 15:43 so we kind of saw well, maybe we don't have to sacrifice our artistic integrity just because it's an instant game or just because it's a small casual game, who still make something that that would be ours and feels like something we want to work on. so tony morelan 16:01 sure. so then you decided to work closer with frvr and they acquired biodome games? tobias thorsen 16:08 no, not at this point. okay, peter holm 16:11 actually, we decided to enter a publishing agreement with them. so we basically made an exclusivity deal with them. we got to use their tech. and in return, they promised to try to publish our games if we made something good, of course. and that was just a huge relief to take that step and start making small games. and then yeah, fast forward two years and four games, and they acquired us because we had proven that that we have something that actually worked. tony morelan 16:48 and just so i have a good understanding. frvr is basically handing like the publishing and the marketing but that you guys are still pretty much a standalone team, your own your own studio, correct? peter holm 17:00 yeah, the new setup is, is 100% frvr own studio, but we have full autonomy. we can do what we want basically, as long as we try to make long term business sense. of course, in our industry, it's a first party studio, meaning that the publisher owns the studio. and we keep working on our games on the games from biodome games that would transfer to this new entity, it feels like our studio and be treated like our studio. tony morelan 17:30 now. now recently, you decided to change the name from biodome games to spelunka correct? peter holm 17:37 yeah, that was that was part of the of the setting up a new studio. so biodome games guild formerly exists now it's basically a holding company. okay. but, but yeah, so the new studio is called frvr studios belong? tony morelan 17:53 and what is the what is the meaning? what is the thought behind spelunka? tobias thorsen 17:58 spelunka means cave exploration and if you go spelunking you explore caves. no, it's quite suiting for gold digger. tony morelan 18:08 yeah, is very appropriate. i myself actually have spent a very little time but did one day of spelunking definitely was during my, my youth when i didn't have a fear of small spaces and claustrophobia. i can't imagine getting back down into the earth like i did when i was younger. and climbing around those caves is exhilarating. peter holm 18:31 i wouldn't last a second environment; it would be so horrible. tobias thorsen 18:38 it's good thing we can do it in a games and tony morelan 18:41 yeah, wonderful. so tell me now about spelunka. how many employees are you guys? peter holm 18:48 for? so us and two other guys. and we were still looking to hire more people with can still kind of figuring out what kind of people we need. but more developers needed? yes. yeah, we tobias thorsen 19:02 are three programmers now. and then peter. so we are going to need some more assistance with the graphics and game design and these parts tony morelan 19:13 wonderful. well, i know a lot of people who listen to the podcasts are always looking for opportunities for work. so i'll make sure to include links in the in the show notes. are there any links that we'll be able to share related to maybe applying for a job at splunk and studious? peter holm 19:28 yeah, i think we have one opening now on the fob career side. but i think we'll add some more in the near future. tony morelan 19:37 so let's talk about the relationship with samsung. how did that actually come about? peter holm 19:41 again, we have to point to two ffvi they seem to be really amazing with the challenge relationships. and that's, i mean, that's a huge win for us because we can really focus on game development. that that relationship with samsung that ffvs been able to build them? in part on our behalf? is it something that we're really grateful about? tobias thorsen 20:06 yeah, i think at first our games were mostly published on facebook. and then when they were kind of proven that they worked and the generator revenue they expanded to the newly formed channel on bixby i think back then. it's a couple years ago. tony morelan 20:25 so i wasn't familiar with that. so bixby, our voice assistant, is that what you're referring to? peter holm 20:29 yeah, i think there's still on older devices that hadn't received updates, you would still be able to swipe right. and then you would open a discovery surface called bixby as well, where the games will be featured. and that was the first appearance on samsung devices. to my knowledge, so yeah, it seems to be a lot of samsung channels that the game is feature. tony morelan 20:58 so last year, you guys were the winner for the 2021 best of galaxy store award. best instant play game. tell me tell me what did it mean to win that award? peter holm 21:11 that was pretty special. i'd say we had not seen that common. i mean, we hadn't imagined in a million years that we made an award-winning game. i mean, we knew we made a great game and a fun game, but we haven't seen it as a as a game that would win an award. so it was super happy about it. tobias thorsen 21:32 in retrospect, i could see that the game stands out a bit. it's a combination of gameplay and, and style. that's that i haven't seen many places. tony morelan 21:44 so let's talk about gold digger. i mean, i played it because i was part of the team that was going through all the nominations and selecting who was going to be a winner. it was a very addicting game to play. but tell the folks out there what actually is gold digger. tobias thorsen 22:00 i remember when we when we came up with the idea, because we were i think we were talking about digging game. peter holm 22:08 yeah. you mentioned you mentioned boulder dash. as i remember it, you look over your screen and say, you remember the tony morelan 22:15 boulder dash? i love that game. peter holm 22:17 as a yeah. oh, yeah. yeah, that was that was a great game. maybe we should do something like that. use it. and i said, oh, yeah. and we can that match three elements. so you match the gems. and i think that was the conclusion of our game design and brainstorming session, as i remember it. it was tobias thorsen 22:37 very, very brief. and which, which is, i guess, a good thing that you could describe a full gameplay with the one minute of talk. hey, let's try that. that could work. and i peter holm 22:48 think it was only a couple of days later, you had the first prototype running us, i remember it at least. and then of course, a few months until we had tobias thorsen 22:57 playable in the frvr bible when they recommend gameplay ideas to pursue. one of the key points is mashups of, of different genres. so not don't make a clone but try to mix and match different areas and see what that leads to. tony morelan 23:18 so the gameplay there's this little there's like this old man miner who's going around smashing rocks looking for gems correct? peter holm 23:27 actually, when you play this kind of a fast-paced mining game, which is kind of a maybe because mining is, is in real life, it would be really slow pace. but i guess that was the inspiration we took from balderdash that we wanted it to be speedier and like an explorer. it's so it's i think it's as much an exploration game as its mining game, taking game. but yeah, you view push rocks around and match them up. and when you align three or more rocks, they explode and, and help you excavate. and then there's a lot of stuff to discover and pick up, buy and sell. tony morelan 24:07 so i remember seeing at the time when you win the award, you guys produced a meme a great photo graphic of your first dollar that you earned on gold digger side by side with winning the samsung award. tell me about that. peter holm 24:23 yeah, it was quite a revelation for us to allow ourselves to be focusing totally on making something that made money so making our actual first dollar was quite an event. so we made ourselves an award to celebrate the moment and we awarded it to us. so thanking us for the award so yeah, that was that was how it started making our own awards and how it's going winning actual awards from samsung. that was that was quite a tobias thorsen 24:58 in many ways goes to go. has become the game that we dreamed of making for many, many years all the time in cape, we were talking about how it would be so great to have just a small game that would make a little bit of money to support one guy who could work on this. and it took the end of cape copenhagen and the rise of a new company before it actually happened for us. peter holm 25:20 in a way you could say we've been working on this game for 22 years. tony morelan 25:28 so i understand that gold digger is not the only gold game in your in your franchise that you have another game called gold train, frvr. tell me tell me about gold train? tobias thorsen 25:39 yeah, that was the first we made it was. it's a more traditional, proven gameplay in many ways. it's a based-on pipe mania, also a very old game where you match train tracks to make the train run. okay. and since we kind of knew what kind of game we were doing with, we chose that game for just getting to know the tech from frvr. so it was kind of a training game training train game. tony morelan 26:10 that's great. peter holm 26:11 at that point, we had decided, of course that we wanted to make a game that would make us money. so in order to cast the rights bill over the game, we needed something with gold. and it seemed to work. okay, tony morelan 26:25 so tell me what is the platform that you're building your games on tobias thorsen 26:30 html5, and built on the engine that frvr provided. it's all javascript, very old-style javascript, so no modern shenanigans. it's, you have a script as it looks 1015 years ago. so it's in many ways, it's, it's very easy and very simple to get started with. but when a project gets really complex, it's it has its own challenges as well. tony morelan 26:57 yeah, i think there'll be a lot of limitations with it. but you guys have found a way to work within those limitations to create something that's that successful. tobias thorsen 27:05 yeah, i'd say some of the bigger challenges has come now that we've hired new programmers who has to take this two-year-old code base that i've been working on exclusively, and try to figure out what's going on our first-time employee, he was really, for a month, and he was so confused. so we decided to make a major cleanup of the code. and we've been working on that for a couple of months. now, tony morelan 27:32 how funny i can take that as like, you know, you take this really top-level auto mechanic, and then you throw an old ferrari at them and say, alright, yeah, get this going here. peter holm 27:45 but about the limitations, i think part of the charm of working with this is actually the limitations that you have to impose on yourself and your ambition. and that's, i think, part of the reason that we can make it work. tony morelan 28:00 it's interesting, because, you know, my, my background truly is in graphic design. and i often teach the opposite of that, in the sense that, you know, when you're creating a logo, you don't want to limit yourself by diving right into a program, like adobe illustrator to start designing your logo that really, you should grab pencil and paper and start sketching so that you don't have any limitations. but it sounds like you know, your approach having to work with him in this javascript, you've got some limitations. but i would think that, you know, that that must trigger certain parts of your brain where you really have to think like, how are you going to get this done? peter holm 28:39 yeah, i think i think would you say about logo design is totally true, i would definitely go for a pencil first. but again, that's the pencil is a conceptual limitation that you put into the process at that point true. so i totally agree with that one. but in this case, i think one of one of the great benefits about the limitations we have on the platform is that there's a lot of stuff we just can't do. period. so we don't have to get distracted by ambient occlusion or real time shadows, or hdr lighting or stuff like that. that's completely irrelevant to the gameplay. but if we had every single tool, we could so easily get distracted by stuff that's not super essential to get right. tobias thorsen 29:27 yeah. but essentially is it's a sprite engine, you can display sprites, and you can display a lot of them. but that's it. there's no spinning stuff, and no 3d had hardly any animation system. we had to make that ourselves also. tony morelan 29:45 oh, wow. so i would think that the process i mean, tell me is it would you say it's quicker. i mean, i know that some of these game developers that i've that i've chatted with, it takes them years to go to market on a design that they're working on. those limitations actually help speed the process could you can't go down all these different avenues and work on things such as 3d and lighting. yeah, definitely. tobias thorsen 30:06 in the beginning, it's a, it's very, very fast to make a prototype and try something out. and i think the challenge really comes when you're when you're continuously working on a project, and it gets more and more complex, because then yeah, this group really has its limitations. sure. peter holm 30:25 yeah. and i think the platform's says a lot about your shadow choice as well, you wouldn't, you wouldn't go ahead and make a first-person shooter. and that wouldn't make sense. i mean, you wouldn't have you would pick another tool for it. from the first prototype until gold digger went live. i think that was about three or four months or something tony morelan 30:44 like that. it's so quick. peter holm 30:47 yeah, and it's a great joy to work with that quick turnaround, because you get something done, right? tony morelan 30:54 yeah. and you get the feedback so quick, because as soon as you put it out there, you start. i mean, you had mentioned that you would first release like on facebook instant. i mean, you almost using that as your testing platform. so you release it quickly like this, you get that feedback. and now you can get back into the studio and start finding ways to really improve on it before it gets out to the to the larger audience. peter holm 31:13 exactly. exactly. and you have actual people playing it and having opinions about it and telling you what, what they think about it that that's just so much more fun than sitting deep in the trench working on the same project for two or three years without it seeing any type of reality. tobias thorsen 31:35 and a lot less risky, of course, saves a lot of money, too. i peter holm 31:39 would say yeah. oh, yeah, definitely. tony morelan 31:43 so i'd like to talk a bit about the marketing. i know that frvr is handling all of this for you. what were some of the tools that work because i've seen some banners that you guys have done on galaxy store. peter holm 31:54 yeah, for us at least privileged situation that that frvr handles most of that. and we basically just supply them with, with assets that they can they can build banners and stuff from tony morelan 32:07 the end if some of these banners were related to different seasons, whether it's halloween or valentine's. peter holm 32:13 oh, yeah, yeah. yeah. so what we did recently was, was some seasonal updates for the game. we had a super nice christmas update for it with a snowy landscape and you could explore the mine and find christmas decorations and stuff. and i think you could even get a santa hat. and yeah, i think we had a very nice feature from samsung on that. and of course, that's so nice to see that they will yeah, spend some nice storefront for the game. tony morelan 32:58 so tell me, are there other games that you guys have produced outside of gold digger and gold train? peter holm 33:04 yeah, we have. we have two other games. we have the pot rush, cool rush mini golfing game and a pool game. tobias thorsen 33:13 it's a very casual approach to pool and a very casual approach to mini golf. it's a sure something that a hardcore pool player woods would find appalling. because you just you just sit there and you shoot balls, if the balls and get them in that into the hole. it's very simple. and it's not even on a pool table. it's an endless trek. tony morelan 33:40 lsa. check that out. tell me so where are you guys getting your ideas for games? peter holm 33:45 i don't know. i mean, sometimes it's just like what we talked about with gold, they got this two reference points, and then they have a weird connection. other times it's, it's more like, what type of interaction would be fun? what would feel good? okay, and then in turn, how could we turn that into a game? i think that the pool russian portrush games kind of grew out of that approach. we kind of wanted a very simple interaction that would be fun and quick to repeat. i think we had a few iterations of that before it kind of gelled into a pool game and a mini golf game. tobias thorsen 34:28 and it was very much inspired also by one of our vrs biggest hits, which is a basketball game, where the only thing you do is to flip basketballs, okay, and have to hit the hoop. so the gameplay style is quite similar. you just shoot balls again and again and again. you can get really good at it and you can suck at it. tony morelan 34:52 i remember there was a game a long time ago, very similar where you would just throwing trash into a little trash bin. peter holm 34:57 yes. yeah. i think that that's that, for me at least that's been that's been kind of a fascination all the way back from the first flash games that how much can you boil down the experience? how small can we make it and still make it enjoyable? i still think that's very much motivation for me at least two or a driver for me at least to see how, how tiny can you make it? how much of a great experience can you make with the smallest mechanic possible, basically? tony morelan 35:28 so tell me what is your process for designing, developing in and then publishing a game, if ar tobias thorsen 35:35 vr has a set of goalposts, you have to reach first you make a prototype that the guys there review their game designers, and they look at the game and try to give their input on whether or not it would succeed, or if it has potential than if, if they approve it, and think we might be able to do something with that we make a prototype, and it's been put out on a very limited market. so there's a small subset of players who get to play it. and then during this process, the retention is measured. and you see how many people are actually returning to it. and these are paid users, they are advertising, and people come and play. and then there are a set amount of iterations where you try to improve in each iteration to see if you can get the game sticky enough. and this process is, in large part to avoid working a lot on a game that doesn't have potential that's not going to work in the real world. so if you pass through these goalposts, you, it's published to a wider audience worldwide. peter holm 36:41 okay. and i think and i think if we should just talk a bit about our internal process as well, it would be more something along the lines of running with a gut feel, up until the point where we felt we have something that would show some kind of potential. yeah, and then trying to find the smallest subset of that, that we could take to a level where it could actually be tested in in live circumstances. tony morelan 37:11 so we've seen a lot of success around gold digger, can you tell me like how many active users do you guys have playing the game? peter holm 37:19 across samsung channels? i think we're seeing about of course; it goes up and down with stole features and stuff, but an average about 100,000 active users a day. wow. so that's, that's pretty neat. tony morelan 37:33 yeah, that's, that's crazy to guys just creating a game like that. and you've got over 100,000 people playing it daily. tobias thorsen 37:40 it feels really weird in the beginning, when it started to take off. and i remember, at the start, we were extremely popular in vietnam, and poland. tony morelan 37:51 really, yeah, tobias thorsen 37:52 there was some strange demographic that we never fully discovered why, but yeah, peter holm 37:58 yes, sometimes like that, you suddenly get a spike in in a market that you didn't expect at all. tony morelan 38:03 so obviously, revenue needs to play a part somewhere when it comes to the success of a game. so tell me what is it that you guys are doing to help generate revenue while playing gold digger? peter holm 38:15 well, the very basic stuff is, of course, that the main revenue is coming in from ads, we try to find convenient, or you could say, quote, unquote, natural places to show ads. and hopefully, some players would click those ads. and when they do that, that generates some revenue back to us also on platforms that support it we have in game purchases, so you could actually pay real money to buy stuff. tony morelan 38:46 so what are your what are your key learnings? when it comes to iap? peter holm 38:49 the key learning i think, is that people actually want to pay for stuff when they enjoy the game. so if you make a great game, people will definitely pay for stuff in the game. tobias thorsen 39:00 i remember in the beginning when these in app purchase issues came up with some smurf game where people bought smith berries, and i was very skeptical of them, but who's paying for this? but again, it's uh, if you make something that's actually fun, and people want to play, then they'll pay tony morelan 39:19 yeah, i was listening to a podcast once different market that they were talking about ip in a sense that, you know, they could have hundreds of 1000s of people interacting with this, but all it takes is a small percentage that are willing to pay and that truthfully can generate a decent amount of revenue that because the reach is so big, and it's a global audience, that it just takes a few people you know, interested in actually paying the they can really help bring some money your way? peter holm 39:46 yeah, yeah. yeah. it is. it is a game of volume, because you need a lot of ads to be shown and you need a lot of players to have enough players that would actually want to spend money on it as well. tony morelan 40:03 so one of the things that really stood out for me when i was playing gold digger was the music. so let's talk a bit about the music of gold digger. peter holm 40:11 we're fortunate to work with a really great composer that is also happens to be a friend and former colleague, his name is rasmus hdmi, and if anyone is out there listening and wants to music, you should definitely know because this is so great. actually, we work with him in our past company and, and he's, he's working with the fob as well. tony morelan 40:34 yeah, so the song that we just heard leading up to this question that was from gold digger, and a few of the other songs. that one that we started the podcast off with, and one that we'll be closing with. those were from gold train. so yeah, absolutely beautiful music that you guys are creating there. and frvr it's tobias thorsen 40:52 actually something that people come and done. we get a lot of feedback where people say, hey, what's up music? peter holm 40:59 actually, there's a funny story about that composer back in the day, we made a game for lego. and it was for a disney themed ip. and we needed some music for that game. and our composer was patmos, who made the music for these games as well. he made some disney inspired music that was completely original. he made it all from scratch. and once disney had to approve the game, they were kind of going out. okay, where's that music from? what movie? did you rap? tony morelan 41:35 really? peter holm 41:36 oh, it's totally original music. it's. so they were they were kind of impressed with him. so tony morelan 41:44 wow. so he does music for not just you guys, but for many of the other franchises underneath. fr vr, correct? yeah. peter holm 41:52 yeah. he said, i think he's the closest thing they get to a house composer. tony morelan 41:57 so what advice would you give developers looking to bring their games to galaxy store? tobias thorsen 42:02 work with a great publisher? peter holm 42:05 yeah, the advice we took was, was work with frvr. yeah, tony morelan 42:10 that's great. and i love hearing about that. because i know a lot of indie developers, their challenges, they've come up with a great game. but these are not marketing people. these are not publishing people. i mean, these really are great game designers. and then where do they go? how do they take their game out to the public? so it's wonderful to hear that there is a resource with a company like frvr that these indie developers can turn to, they can actually bring their game to market. tobias thorsen 42:35 yeah. and it's hard work doing publishing. and it's hard work to maintain the relations with different outlets like the galaxy store, it's not something that you just walk in from the street and say, hey, can you put our game on the store and featured? i think a lot of game developers forget about it. i did for many years, i thought it would just make a great game, then it'll all come by itself. that's not true. peter holm 43:03 selling is hard, right? it's not something you want to do next to you making the game job. you want dedicated people to take care of that. tony morelan 43:12 yeah. and i would think that really game developers they've got that their brain is wired for being creative in wanting to code or, you know, figure out the technology behind it. the last thing i want to do is like get on a phone and try and start doing the marketing. yeah, making those phone calls to try and you know, get their game out there to be seen. peter holm 43:32 yeah, exactly. it's, it's liberating to hand it off to someone who knows what they're doing. tony morelan 43:38 so what is in the future for spelunka? peter holm 43:41 well, the near future is way more gold digger. and i think we have a lot of fun ideas for making the game. even more fun for players. and yeah, and we're just looking forward to dive deeper into it. tony morelan 43:57 and i know you guys are a small company, you just are a few people. what are in your future plans related to diversity and inclusion? peter holm 44:06 well, right now we have to be totally honest, which is for white dudes all the same age, all sporting the same beer guard and stuff like that. so it's kind of i mean, it's not really diverse, but, but we really want to change that up. we strongly believe that diverse teams make better decisions and better games. sure. and we're super happy to first experience when the game kind of came out that it is a very even 5050 split male female really, okay. yeah. and it's a rare thing to get something like that. yeah. so we really want to emphasize that and i think the age wise the audience is extremely wide as well. we have young kids playing it and we recently had a very nice letter from 70 something year old gentleman who we enjoyed playing it with his wife. wow. so i mean, it's a, it's a very, very wide audience and we want to cater to that. tony morelan 45:08 yeah. yeah, that is that is very unique now and the game is very new. i mean, it is it is a young game, do you have plans of maybe like offering the ability to skin your character to be able to create something that maybe somebody relates to a little bit more? peter holm 45:21 yeah, i don't think everyone wants to be that red bearded, grumpy old minus. i think it would only be fair to enable people to make their own characters and so on. that's, that's part of it. of the scope as well as some points. yeah, definitely. tony morelan 45:38 so to me, it's tell me what is it that you do for fun outside of work, i understand that you actually are a pretty artsy person. tobias thorsen 45:47 well, when you sit all day and program and stare into a screen, it's quite nice to do something physical. so i've been doing lots of stuff over the years with the painting and arts and lately i've been doing a lot of comics, so it's quite new hobby for me. tony morelan 46:04 ceramics really? so pottery. yeah, pottery tobias thorsen 46:07 and modeling and doing crazy sculptures. i've never thought much about these things. until i really tried it. and when i when i held an item that i made, which was all glossy and looks totally finished, yeah. but it was quite a nice experience. so i dove more into it. it's very rewarding to have to eat out of a plate that you made yourself. tony morelan 46:40 that is wonderful. so and peter, let me ask you what is it that you do for fun outside of work? i understand that you actually like to pretend to be a lumberjack. peter holm 46:50 yeah, i do. i do. i have a big, big, badly maintained garden and a small strip of forest that that i can joyfully call my own. and once in a while we have a storm that that troubles a tree and i get to cut it up and chop it for firewood and stuff like that. so i really enjoy. you could say rough gardening like that. also woodworking, artsy, artsy, do it yourself projects with all the kids, which of which have four. tony morelan 47:26 wow, that's excellent. so i have one more question for you. since you guys became friends. you said back when you started kindergarten. tell me who is better at sharing to be or peter tobias thorsen 47:40 sharing. tony morelan 47:42 yes. peter holm 47:44 that's definitely to be as to be as a very, very generous soul that shares all these good ideas. tony morelan 47:55 that's great. you guys, it has been absolutely wonderful to chat with the two of you. you guys are doing great work at splunk. and i'm looking forward to seeing much more down the road on galaxy store. tobias thorsen 48:06 thank you very much. thank you. peter holm 48:07 it was a it was a pleasure to talk to you. closing 48:09 looking to start creating for samsung. download the latest tools to code your next app, or get software for designing apps without coding at all. sell your apps to the world on the samsung galaxy store. check out developer.samsung.com today and start your journey with samsung. tony morelan 48:26 the samsung developers podcast is hosted by tony morelan and produced by jeanne hsu.

      https://developer.samsung.com/developers-podcast/s03e03-biodome.html
      1. Develop
      2. Samsung Pay

      api

      SpaySdk

      overview package class tree index help package com.samsung.android.sdk.samsungpay.v2 class spaysdk java.lang.object com.samsung.android.sdk.samsungpay.v2.spaysdk direct known subclasses: cardmanager, paymentmanager public abstract class spaysdk extends object this class allows to define samsung pay sdk information, common error codes, and constants. since: api level 1.1 nested class summary nested classes modifier and type class description static enum spaysdk.brand this enumeration provides sdk supported card brands such as american express, mastercard, visa, discover, china unionpay, octopus, eci and pagobancomat. static enum spaysdk.servicetype this enumeration provides service types. partners must set their service type in the partnerinfo when they call any apis. field summary fields modifier and type field description static final string common_status_table this table shows the status codes used commonly. status bundle keys bundle values spay_not_supported (0) extra_error_reason error_device_not_samsung (-350) error_spay_pkg_not_found (-351) error_spay_sdk_service_not_available (-352) error_device_integrity_check_fail (-353) error_spay_app_integrity_check_fail (-360) error_android_platform_check_fail (-361) spay_not_ready (1) extra_error_reason error_spay_setup_not_completed (-356) error_spay_app_need_to_update (-357) error_spay_internal (-1) extra_error_reason error_server_internal (-311) n/a n/a error_not_allowed (-6) extra_error_reason error_invalid_parameter (-12) error_sdk_not_supported_for_this_region (-300) error_service_id_invalid (-301) error_service_unavailable_for_this_region (-302) error_partner_app_signature_mismatch (-303) error_partner_app_version_not_supported (-304) error_partner_app_blocked (-305) error_user_not_registered_for_debug (-306) error_service_not_approved_for_release (-307) error_partner_not_approved (-308) error_unauthorized_request_type (-309) error_expired_or_invalid_debug_key (-310) error_missing_information (-354) error_unable_to_verify_caller (-359) error_invalid_parameter (-12) n/a n/a error_no_network (-21) n/a n/a error_server_no_response (-22) n/a n/a error_partner_info_invalid (-99) extra_error_reason error_partner_sdk_api_level (-10) error_partner_service_type (-11) error_partner_sdk_version_not_allowed (-358) error_initiation_fail (-103) n/a n/a spay_not_allowed_temporally (3) extra_error_reason error_spay_connected_with_external_display (-605) error_spay_fmm_lock (-604) n/a n/a paymentmanager.error_making_sheet_failed (-115) n/a n/a static final string cryptogram_type_icc key to represent the icc cryptogram type of mastercard. static final string cryptogram_type_ucaf key to represent the ucaf cryptogram type of mastercard. static final string device_id key to represent unique device id. static final string device_type_gear device type is gear. static final string device_type_phone device type is phone. static final int error_android_platform_check_fail this error indicates that android platform version check has failed. for in-app payment, the samsung pay sdk requires android 6.0(m) (android api level 23) or later versions of the android os. this is returned as extra_error_reason for spay_not_supported error. static final int error_device_integrity_check_fail this error indicates that device integrity check has failed. this is returned as extra_error_reason for spay_not_supported error. static final int error_device_not_samsung this error indicates that the device is not a samsung device. this is returned as extra_error_reason for spay_not_supported error. static final int error_duplicated_sdk_api_called this error indicates that duplicate api called by partner. static final int error_expired_or_invalid_debug_key this error indicates that debug key is invalid or expired. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app uses expired debug-api-key, then the partner app verification will be failed. static final int error_initiation_fail this error indicates that session initiation or service binding has failed. for example, if the service connection with samsung pay was not successful. static final int error_invalid_parameter this error indicates that requested operation contains invalid parameter or invalid bundle key/value. static final int error_missing_information this error indicates that some information of partner is missing. this error code is returned as an extra_error_reason of error_not_allowed error. for example, if the partner app does not deliver a required information to samsung pay to get the wallet information, then samsung pay will send this error to partner app. also if the partner does not define the issuer name in samsung pay developer portal, samsung pay will send this error to partner app. static final int error_no_network this error indicates that samsung pay is unable to connect to the server since there is no network. for example, partner app tries to verify with server while network is not connected. static final int error_none this error indicates that requested operation is success with no error. static final int error_not_allowed this error indicates that requested operation is not allowed. for example, partner app verification has failed in samsung pay server. static final int error_not_found this error indicates that given card id is not found in samsung pay. static final int error_not_supported this error indicates that requested operation is not supported in samsung pay. static final int error_partner_app_blocked this error indicates that partner app version is removed/blocked by the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is blocked, then the partner app verification will be failed. static final int error_partner_app_signature_mismatch this error indicates that the app signature is different from the one registered from samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if different signature is used for signing apk, the partner app verification will be failed. checking signature logic will be activated in case debug mode is "n". static final int error_partner_app_version_not_supported this error indicates that app version is not supported by samsung pay. this is returned as extra_error_reason for error_not_allowed error. for example, if the version registered from developer portal is higher than current version(or no any version registered), then the partner app verification will be failed. static final int error_partner_info_invalid this error indicates that partner information is invalid. for example, partner app is using sdk version not allowed, invalid service type, wrong api level, and so on. static final int error_partner_not_approved this error indicates that partner registration is not done on the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is submitted but not approved, then the partner app verification will be failed. static final int error_partner_sdk_api_level this error indicates that sdk api level is missing or invalid. partner must set valid api level in the androidmanifest file. static final int error_partner_sdk_version_not_allowed this error indicates that the partner app is using samsung pay sdk not allowed. this is returned as extra_error_reason for error_partner_info_invalid error. static final int error_partner_service_type this error indicates that the service type is invalid. partner must set valid service type in partnerinfo when calling apis. this is returned as extra_error_reason for spay_not_ready error. static final int error_registration_fail this error indicates that the card provisioning has failed. static final int error_sdk_not_supported_for_this_region this error indicates that the samsung pay sdk is not supported in particular region. this is returned as extra_error_reason for error_not_allowed error. for example, if the device is from the country that samsung pay sdk is not supported, then the partner app verification will be failed. static final int error_server_internal this error indicates that server fails to proceed request due to unknown internal error. this is returned as extra_error_reason for error_spay_internal error. for example, if the server error occurred while the partner verification is going on, then the partner app verification will be failed. static final int error_server_no_response this error indicates that server did not respond to the samsung pay request. static final int error_service_id_invalid this error indicates that service id is not registered with the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if invalid service id was used in partner app, then the partner app verification will be failed. static final int error_service_not_approved_for_release this error indicates that service version is not approved for release by the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is not registered for release mode, then the partner app verification will be failed. static final int error_service_unavailable_for_this_region this error indicates that sdk support is not available for partner's service in particular region. static final int error_spay_app_integrity_check_fail this error indicates that samsung pay app integrity check has failed. this is returned as extra_error_reason for spay_not_supported error. static final int error_spay_app_need_to_update this error indicates that the samsung pay should be updated. partner app need to ask user to update samsung pay app. static final int error_spay_connected_with_external_display this error indicates that device is connected with an external display. due to security reason, samsung pay cannot be launched at this moment. in this case, partner can guide user to disconnect any external display if connected. static final int error_spay_fmm_lock this error indicates that device is locked due to fmm(find my mobile). partner app needs to ask user to unlock the samsung pay app. static final int error_spay_internal this error indicates that internal error has occurred while the requested operation is going on. static final int error_spay_pkg_not_found this error indicates that the samsung pay application is not on the device. this is returned as extra_error_reason for spay_not_supported error. this could mean that the device does not support samsung pay. static final int error_spay_sdk_service_not_available this error indicates that sdk service is not available on this device. this is returned as extra_error_reason for spay_not_supported error. static final int error_spay_setup_not_completed this error indicates that the samsung pay setup was not completed. partner app need to ask user to set up samsung pay app. static final int error_unable_to_verify_caller this error indicates that samsung pay is unable to verify partner app at this moment. this is returned as extra_error_reason for error_not_allowed error. for example, samsung pay tried to connect to the server and validate partner id, but the device does not have the network connectivity. static final int error_unauthorized_request_type this error indicates that the partner is not authorized for this request type such as payment or enrollment. this is returned as extra_error_reason for error_not_allowed error. for example, if the merchant app calls enrollment api, then the partner app verification will be failed. static final int error_user_canceled this error indicates that user has cancelled before completing the requested operation. for example, user taps the cancel or back key on the payment sheet. static final int error_user_not_registered_for_debug this error indicates that user account is not registered for using debug mode on the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is in debug mode but the samsung account is not registered for the debug-api-key, then the partner app verification will be failed. static final string extra_accept_combo_card key to represent that a merchant accepts combo card. partner can use this key to let customers to choose debit/credit in case of combo card. static final string extra_card_type key to represent card type. the possible values are: card.card_type_credit_debit card.card_type_credit card.card_type_debit card.card_type_gift card.card_type_loyalty card.card_type_transit static final string extra_country_code key to represent country code. device country code(iso 3166-1 alpha-2) static final string extra_cpf_holder_name key to get cpf holder name in extra payment data. when partner requests cpf by extra_require_cpf key, the samsung pay would bundle cpf information in the extrapaymentdata parameter of paymentmanager.customsheettransactioninfolistener.onsuccess(com.samsung.android.sdk.samsungpay.v2.payment.customsheetpaymentinfo, java.lang.string, android.os.bundle) callback static final string extra_cpf_number key to get cpf number in extra payment data. when partner requests cpf by extra_require_cpf key, the samsung pay would bundle cpf information in the extrapaymentdata parameter of paymentmanager.customsheettransactioninfolistener.onsuccess(com.samsung.android.sdk.samsungpay.v2.payment.customsheetpaymentinfo, java.lang.string, android.os.bundle) callback static final string extra_cryptogram_type key to represent the dsrp (digital secure remote payments) cryptogram type of mastercard. static final string extra_device_card_limit_reached key to represent the maximum registered card number has reached or not. static final string extra_device_type key to represent type of the device (mobile or gear). static final string extra_error_reason key to represent extra error reasons. static final string extra_error_reason_message key to represent extra error reason messages. static final string extra_issuer_name key to represent name of the issuer. this key can be used in the bundle for partnerinfo(string, bundle). static final string extra_issuer_pkgname key to represent package name of the issuer app on android. static final string extra_last4_dpan key to represent the last four digits of digitalized personal identification number (dpan). static final string extra_last4_fpan key to represent the last four digits of funding personal identification number (fpan). static final string extra_member_id key to represent member id of the issuer. this is for korean issuers only. static final string extra_merchant_ref_id key to set/get merchant reference id beyond marketplace app or service(i.e. static final string extra_partner_name key to represent name of the partner app. this key can be used in the bundle for partnerinfo(string, bundle). static final string extra_request_id key to represent request id. when a request is failed, tr will send this key to partner app. static final string extra_require_cpf key to represent that a partner requires cpf. partner can use this key to ask samsung pay to show cpf information in the payment sheet. static final string extra_resolved_1 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. static final string extra_resolved_2 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. static final string extra_resolved_3 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. static final string extra_resolved_4 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. static final string extra_resolved_5 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. static final string extra_resolved_6 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. static final string extra_resolved_7 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. static final string partner_service_type key to represent unique service type. this key must be set in the bundle for partnerinfo(string, bundle). static final int spay_has_no_transit_card this code is returned if samsung pay doesn't have a registered transit card this is for korean issuers only. static final int spay_has_transit_card this code is returned if samsung pay has a registered transit card. this is for korean issuers only. static final int spay_not_allowed_temporally samsung pay is not allowed temporally. refer extra reason delivered with extra_error_reason. static final int spay_not_ready samsung pay is not completely activated. usually, this status code is returned if the user did not complete the mandatory update or if the user is not signed in with the samsung account yet. in this case, partner app can call samsungpay.activatesamsungpay() api to launch samsung pay or can call samsungpay.gotoupdatepage() api to update samsung pay app. static final int spay_not_supported samsung pay is not supported on this device. usually, this status code is returned if the device is not compatible to run samsung pay or if the samsung pay app is not installed. static final int spay_ready samsung pay is activated and ready to use. usually, this status code is returned after user completes all the mandatory updates and is signed in. static final string wallet_dm_id key to represent unique device management id. static final string wallet_user_id key to represent user's wallet id. method summary all methodsstatic methodsconcrete methods modifier and type method description static int getversioncode() returns the version code of the samsung pay sdk. static string getversionname() returns the version name of the samsung pay sdk. methods inherited from class java.lang.object equals, getclass, hashcode, notify, notifyall, tostring, wait, wait, wait field details error_none public static final int error_none this error indicates that requested operation is success with no error. see also: constant field values error_spay_internal public static final int error_spay_internal this error indicates that internal error has occurred while the requested operation is going on. see also: constant field values error_not_supported public static final int error_not_supported this error indicates that requested operation is not supported in samsung pay. see also: constant field values error_not_found public static final int error_not_found this error indicates that given card id is not found in samsung pay. see also: constant field values error_not_allowed public static final int error_not_allowed this error indicates that requested operation is not allowed. for example, partner app verification has failed in samsung pay server. see also: constant field values error_user_canceled public static final int error_user_canceled this error indicates that user has cancelled before completing the requested operation. for example, user taps the cancel or back key on the payment sheet. see also: constant field values error_partner_sdk_api_level public static final int error_partner_sdk_api_level this error indicates that sdk api level is missing or invalid. partner must set valid api level in the androidmanifest file. minimum possible version is 1.4. also if the partner set the values defined in higher api level, samsung pay will send this error to partner app. this is returned as extra_error_reason for error_partner_info_invalid error. since: api level 1.4 see also: constant field values error_partner_service_type public static final int error_partner_service_type this error indicates that the service type is invalid. partner must set valid service type in partnerinfo when calling apis. this is returned as extra_error_reason for spay_not_ready error. since: api level 1.4 see also: constant field values error_invalid_parameter public static final int error_invalid_parameter this error indicates that requested operation contains invalid parameter or invalid bundle key/value. since: api level 2.3 see also: constant field values error_no_network public static final int error_no_network this error indicates that samsung pay is unable to connect to the server since there is no network. for example, partner app tries to verify with server while network is not connected. see also: constant field values error_server_no_response public static final int error_server_no_response this error indicates that server did not respond to the samsung pay request. see also: constant field values error_partner_info_invalid public static final int error_partner_info_invalid this error indicates that partner information is invalid. for example, partner app is using sdk version not allowed, invalid service type, wrong api level, and so on. since: api level 2.5 see also: constant field values error_initiation_fail public static final int error_initiation_fail this error indicates that session initiation or service binding has failed. for example, if the service connection with samsung pay was not successful. see also: constant field values error_registration_fail public static final int error_registration_fail this error indicates that the card provisioning has failed. since: api level 1.2 see also: constant field values error_duplicated_sdk_api_called public static final int error_duplicated_sdk_api_called this error indicates that duplicate api called by partner. since: api level 2.1 see also: constant field values error_sdk_not_supported_for_this_region public static final int error_sdk_not_supported_for_this_region this error indicates that the samsung pay sdk is not supported in particular region. this is returned as extra_error_reason for error_not_allowed error. for example, if the device is from the country that samsung pay sdk is not supported, then the partner app verification will be failed. see also: constant field values error_service_id_invalid public static final int error_service_id_invalid this error indicates that service id is not registered with the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if invalid service id was used in partner app, then the partner app verification will be failed. since: api level 2.5 see also: constant field values error_service_unavailable_for_this_region public static final int error_service_unavailable_for_this_region this error indicates that sdk support is not available for partner's service in particular region. since: api level 2.5 see also: constant field values error_partner_app_signature_mismatch public static final int error_partner_app_signature_mismatch this error indicates that the app signature is different from the one registered from samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if different signature is used for signing apk, the partner app verification will be failed. checking signature logic will be activated in case debug mode is "n". since: api level 2.9 see also: constant field values error_partner_app_version_not_supported public static final int error_partner_app_version_not_supported this error indicates that app version is not supported by samsung pay. this is returned as extra_error_reason for error_not_allowed error. for example, if the version registered from developer portal is higher than current version(or no any version registered), then the partner app verification will be failed. since: api level 2.9 see also: constant field values error_partner_app_blocked public static final int error_partner_app_blocked this error indicates that partner app version is removed/blocked by the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is blocked, then the partner app verification will be failed. since: api level 2.9 see also: constant field values error_user_not_registered_for_debug public static final int error_user_not_registered_for_debug this error indicates that user account is not registered for using debug mode on the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is in debug mode but the samsung account is not registered for the debug-api-key, then the partner app verification will be failed. see also: constant field values error_service_not_approved_for_release public static final int error_service_not_approved_for_release this error indicates that service version is not approved for release by the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is not registered for release mode, then the partner app verification will be failed. since: api level 2.5 see also: constant field values error_partner_not_approved public static final int error_partner_not_approved this error indicates that partner registration is not done on the samsung pay developers. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app is submitted but not approved, then the partner app verification will be failed. see also: constant field values error_unauthorized_request_type public static final int error_unauthorized_request_type this error indicates that the partner is not authorized for this request type such as payment or enrollment. this is returned as extra_error_reason for error_not_allowed error. for example, if the merchant app calls enrollment api, then the partner app verification will be failed. see also: constant field values error_expired_or_invalid_debug_key public static final int error_expired_or_invalid_debug_key this error indicates that debug key is invalid or expired. this is returned as extra_error_reason for error_not_allowed error. for example, if the partner app uses expired debug-api-key, then the partner app verification will be failed. see also: constant field values error_server_internal public static final int error_server_internal this error indicates that server fails to proceed request due to unknown internal error. this is returned as extra_error_reason for error_spay_internal error. for example, if the server error occurred while the partner verification is going on, then the partner app verification will be failed. since: api level 2.5 see also: constant field values error_device_not_samsung public static final int error_device_not_samsung this error indicates that the device is not a samsung device. this is returned as extra_error_reason for spay_not_supported error. see also: constant field values error_spay_pkg_not_found public static final int error_spay_pkg_not_found this error indicates that the samsung pay application is not on the device. this is returned as extra_error_reason for spay_not_supported error. this could mean that the device does not support samsung pay. see also: constant field values error_spay_sdk_service_not_available public static final int error_spay_sdk_service_not_available this error indicates that sdk service is not available on this device. this is returned as extra_error_reason for spay_not_supported error. see also: constant field values error_device_integrity_check_fail public static final int error_device_integrity_check_fail this error indicates that device integrity check has failed. this is returned as extra_error_reason for spay_not_supported error. see also: constant field values error_spay_app_integrity_check_fail public static final int error_spay_app_integrity_check_fail this error indicates that samsung pay app integrity check has failed. this is returned as extra_error_reason for spay_not_supported error. see also: constant field values error_android_platform_check_fail public static final int error_android_platform_check_fail this error indicates that android platform version check has failed. for in-app payment, the samsung pay sdk requires android 6.0(m) (android api level 23) or later versions of the android os. this is returned as extra_error_reason for spay_not_supported error. since: api level 1.5 see also: constant field values error_missing_information public static final int error_missing_information this error indicates that some information of partner is missing. this error code is returned as an extra_error_reason of error_not_allowed error. for example, if the partner app does not deliver a required information to samsung pay to get the wallet information, then samsung pay will send this error to partner app. also if the partner does not define the issuer name in samsung pay developer portal, samsung pay will send this error to partner app. see also: constant field values error_spay_setup_not_completed public static final int error_spay_setup_not_completed this error indicates that the samsung pay setup was not completed. partner app need to ask user to set up samsung pay app. if user agrees, call samsungpay.activatesamsungpay() api . this is returned as extra_error_reason for spay_not_ready error. see also: constant field values error_spay_app_need_to_update public static final int error_spay_app_need_to_update this error indicates that the samsung pay should be updated. partner app need to ask user to update samsung pay app. if user agrees, call samsungpay.gotoupdatepage() api. this is returned as extra_error_reason for spay_not_ready error. since: api level 1.1 see also: constant field values error_partner_sdk_version_not_allowed public static final int error_partner_sdk_version_not_allowed this error indicates that the partner app is using samsung pay sdk not allowed. this is returned as extra_error_reason for error_partner_info_invalid error. since: api level 2.5 see also: constant field values error_unable_to_verify_caller public static final int error_unable_to_verify_caller this error indicates that samsung pay is unable to verify partner app at this moment. this is returned as extra_error_reason for error_not_allowed error. for example, samsung pay tried to connect to the server and validate partner id, but the device does not have the network connectivity. see also: constant field values error_spay_fmm_lock public static final int error_spay_fmm_lock this error indicates that device is locked due to fmm(find my mobile). partner app needs to ask user to unlock the samsung pay app. if user agrees, call samsungpay.activatesamsungpay() to unlock the samsung pay app. since: api level 2.1 see also: samsungpay.activatesamsungpay() constant field values error_spay_connected_with_external_display public static final int error_spay_connected_with_external_display this error indicates that device is connected with an external display. due to security reason, samsung pay cannot be launched at this moment. in this case, partner can guide user to disconnect any external display if connected. since: api level 2.7 see also: constant field values spay_not_supported public static final int spay_not_supported samsung pay is not supported on this device. usually, this status code is returned if the device is not compatible to run samsung pay or if the samsung pay app is not installed. since: api level 1.1 see also: constant field values spay_not_ready public static final int spay_not_ready samsung pay is not completely activated. usually, this status code is returned if the user did not complete the mandatory update or if the user is not signed in with the samsung account yet. in this case, partner app can call samsungpay.activatesamsungpay() api to launch samsung pay or can call samsungpay.gotoupdatepage() api to update samsung pay app. since: api level 1.1 see also: constant field values spay_ready public static final int spay_ready samsung pay is activated and ready to use. usually, this status code is returned after user completes all the mandatory updates and is signed in. since: api level 1.1 see also: constant field values spay_not_allowed_temporally public static final int spay_not_allowed_temporally samsung pay is not allowed temporally. refer extra reason delivered with extra_error_reason. since: api level 2.7 see also: constant field values spay_has_transit_card public static final int spay_has_transit_card this code is returned if samsung pay has a registered transit card. this is for korean issuers only. since: api level 2.8 see also: constant field values spay_has_no_transit_card public static final int spay_has_no_transit_card this code is returned if samsung pay doesn't have a registered transit card this is for korean issuers only. since: api level 2.8 see also: constant field values device_type_phone public static final string device_type_phone device type is phone. since: api level 1.1 see also: constant field values device_type_gear public static final string device_type_gear device type is gear. since: api level 1.1 see also: constant field values extra_last4_dpan public static final string extra_last4_dpan key to represent the last four digits of digitalized personal identification number (dpan). since: api level 1.1 see also: constant field values extra_last4_fpan public static final string extra_last4_fpan key to represent the last four digits of funding personal identification number (fpan). since: api level 1.1 see also: constant field values extra_issuer_name public static final string extra_issuer_name key to represent name of the issuer. this key can be used in the bundle for partnerinfo(string, bundle). since: api level 1.1 see also: constant field values extra_issuer_pkgname public static final string extra_issuer_pkgname key to represent package name of the issuer app on android. since: api level 1.1 see also: constant field values extra_partner_name public static final string extra_partner_name key to represent name of the partner app. this key can be used in the bundle for partnerinfo(string, bundle). since: api level 2.6 see also: constant field values extra_error_reason public static final string extra_error_reason key to represent extra error reasons. since: api level 1.1 see also: constant field values extra_error_reason_message public static final string extra_error_reason_message key to represent extra error reason messages. since: api level 2.9 see also: constant field values extra_card_type public static final string extra_card_type key to represent card type. the possible values are: card.card_type_credit_debit card.card_type_credit card.card_type_debit card.card_type_gift card.card_type_loyalty card.card_type_transit since: api level 1.1 see also: constant field values extra_device_type public static final string extra_device_type key to represent type of the device (mobile or gear). the possible values are: device_type_phone device_type_gear since: api level 1.1 see also: constant field values extra_member_id public static final string extra_member_id key to represent member id of the issuer. this is for korean issuers only. since: api level 1.1 see also: constant field values extra_country_code public static final string extra_country_code key to represent country code. device country code(iso 3166-1 alpha-2) since: api level 1.1 see also: constant field values extra_device_card_limit_reached public static final string extra_device_card_limit_reached key to represent the maximum registered card number has reached or not. since: api level 1.1 see also: constant field values extra_cryptogram_type public static final string extra_cryptogram_type key to represent the dsrp (digital secure remote payments) cryptogram type of mastercard. cryptogram type is supported by mastercard only, can be put as an optional value in extrapaymentinfo of customsheetpaymentinfo. since: api level 2.4 see also: constant field values extra_resolved_1 public static final string extra_resolved_1 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. since: api level 2.4 see also: constant field values extra_resolved_2 public static final string extra_resolved_2 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. since: api level 2.4 see also: constant field values extra_resolved_3 public static final string extra_resolved_3 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. since: api level 2.4 see also: constant field values extra_resolved_4 public static final string extra_resolved_4 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. since: api level 2.4 see also: constant field values extra_resolved_5 public static final string extra_resolved_5 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. since: api level 2.4 see also: constant field values extra_resolved_6 public static final string extra_resolved_6 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. since: api level 2.4 see also: constant field values extra_resolved_7 public static final string extra_resolved_7 key to represent additional data. partner can use this key to put tagged data to a bundle before sending to samsung pay. since: api level 2.4 see also: constant field values extra_request_id public static final string extra_request_id key to represent request id. when a request is failed, tr will send this key to partner app. request id would be helpful for debugging a failed request between partner and tr. since: api level 2.5 see also: constant field values cryptogram_type_ucaf public static final string cryptogram_type_ucaf key to represent the ucaf cryptogram type of mastercard. ucaf cryptogram type is supported by mastercard only, can be put as an optional value in extrapaymentinfo of customsheetpaymentinfo. ucaf is a default cryptogram type if not specified in the extrapaymentinfo bundle. since: api level 2.4 see also: constant field values cryptogram_type_icc public static final string cryptogram_type_icc key to represent the icc cryptogram type of mastercard. icc cryptogram type is supported by mastercard only, can be put as an optional value in extrapaymentinfo of customsheetpaymentinfo. since: api level 2.4 see also: constant field values extra_accept_combo_card public static final string extra_accept_combo_card key to represent that a merchant accepts combo card. partner can use this key to let customers to choose debit/credit in case of combo card. it can be put as an optional value in extrapaymentinfo of customsheetpaymentinfo. the possible value is the boolean. since: api level 2.9 see also: constant field values extra_require_cpf public static final string extra_require_cpf key to represent that a partner requires cpf. partner can use this key to ask samsung pay to show cpf information in the payment sheet. it can be put as an optional value in extrapaymentinfo of customsheetpaymentinfo. the possible value is the boolean. this is for brazil partners only. since: api level 2.11 see also: constant field values extra_cpf_holder_name public static final string extra_cpf_holder_name key to get cpf holder name in extra payment data. when partner requests cpf by extra_require_cpf key, the samsung pay would bundle cpf information in the extrapaymentdata parameter of paymentmanager.customsheettransactioninfolistener.onsuccess(com.samsung.android.sdk.samsungpay.v2.payment.customsheetpaymentinfo, java.lang.string, android.os.bundle) callback since: api level 2.11 see also: constant field values extra_cpf_number public static final string extra_cpf_number key to get cpf number in extra payment data. when partner requests cpf by extra_require_cpf key, the samsung pay would bundle cpf information in the extrapaymentdata parameter of paymentmanager.customsheettransactioninfolistener.onsuccess(com.samsung.android.sdk.samsungpay.v2.payment.customsheetpaymentinfo, java.lang.string, android.os.bundle) callback since: api level 2.11 see also: constant field values extra_merchant_ref_id public static final string extra_merchant_ref_id key to set/get merchant reference id beyond marketplace app or service(i.e. bixby). when marketplace apps request in-app payment, they can set merchant reference id so that samsung pay app can get detail information about the merchant using the id. since: api level 2.11 see also: constant field values wallet_user_id public static final string wallet_user_id key to represent user's wallet id. since: api level 1.2 see also: constant field values device_id public static final string device_id key to represent unique device id. since: api level 1.2 see also: constant field values wallet_dm_id public static final string wallet_dm_id key to represent unique device management id. since: api level 1.2 see also: constant field values partner_service_type public static final string partner_service_type key to represent unique service type. this key must be set in the bundle for partnerinfo(string, bundle). since: api level 1.4 see also: constant field values common_status_table public static final string common_status_table this table shows the status codes used commonly. status bundle keys bundle values spay_not_supported (0) extra_error_reason error_device_not_samsung (-350) error_spay_pkg_not_found (-351) error_spay_sdk_service_not_available (-352) error_device_integrity_check_fail (-353) error_spay_app_integrity_check_fail (-360) error_android_platform_check_fail (-361) spay_not_ready (1) extra_error_reason error_spay_setup_not_completed (-356) error_spay_app_need_to_update (-357) error_spay_internal (-1) extra_error_reason error_server_internal (-311) n/a n/a error_not_allowed (-6) extra_error_reason error_invalid_parameter (-12) error_sdk_not_supported_for_this_region (-300) error_service_id_invalid (-301) error_service_unavailable_for_this_region (-302) error_partner_app_signature_mismatch (-303) error_partner_app_version_not_supported (-304) error_partner_app_blocked (-305) error_user_not_registered_for_debug (-306) error_service_not_approved_for_release (-307) error_partner_not_approved (-308) error_unauthorized_request_type (-309) error_expired_or_invalid_debug_key (-310) error_missing_information (-354) error_unable_to_verify_caller (-359) error_invalid_parameter (-12) n/a n/a error_no_network (-21) n/a n/a error_server_no_response (-22) n/a n/a error_partner_info_invalid (-99) extra_error_reason error_partner_sdk_api_level (-10) error_partner_service_type (-11) error_partner_sdk_version_not_allowed (-358) error_initiation_fail (-103) n/a n/a spay_not_allowed_temporally (3) extra_error_reason error_spay_connected_with_external_display (-605) error_spay_fmm_lock (-604) n/a n/a paymentmanager.error_making_sheet_failed (-115) n/a n/a see also: constant field values method details getversioncode public static int getversioncode() returns the version code of the samsung pay sdk. returns: sdk version code. since: api level 1.1 getversionname public static string getversionname() returns the version name of the samsung pay sdk. returns: sdk version name. since: api level 1.1 samsung electronics.samsung pay sdk 2.18.00 - aug 25 2023

      https://developer.samsung.com/pay/api-reference/com/samsung/android/sdk/samsungpay/v2/SpaySdk.html
      1. Develop
      2. Smart TV

      api

      VoiceInteraction API

      voiceinteraction api to use samsung product api, <script type="text/javascript" src="$webapis/webapis/webapis.js"></script> should be loaded in index.html samsung tvs allow developers to use voice commands such as navigation, search, selection and media control to control their application. the voice assistant in the tv can be bixby or other assistants. regardless of which assistant is used, the application will interact with it via the voice interaction apis. for best results, we recommend the application to be implemented with all the features that are described in this document. since : 6.0 product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol summary of interfaces and methods interface method voiceinteractionmanagerobject voiceinteractioncallback optional voiceapplicationstate onupdatestate();optional boolean onnavigation(voicenavigation voicenavigation);optional boolean onsearch(voicesearchterm voicesearchterm);optional boolean onplay();optional boolean onstop();optional boolean onpause();optional boolean onexit();optional boolean onselection(long voiceselection);optional boolean ontitleselection(domstring title);optional boolean onfastforward();optional boolean onrewind();optional domstring onsearchcollection(voicesearchterm voicesearchterm);optional boolean onchangeappstate(voiceapplicationstate state);optional boolean onchangeprevioustrack();optional boolean onchangenexttrack();optional boolean onrestart();optional boolean onskipbackward(long offsetseconds);optional boolean onskipforward(long offsetseconds);optional boolean onsetplayposition(long position);optional boolean onchangesubtitlemode(mediafunctionmode mode);optional boolean onchangeshufflemode(mediafunctionmode mode);optional boolean onchangescreenfitmode(mediafunctionmode mode);optional boolean onzoom(mediazoommode zoom);optional boolean onrotate(mediarotatemode direction);optional boolean onchange360mode(mediafunctionmode mode);optional boolean onchangerepeatmode(mediarepeatmode mode);optional boolean oncontinuewatching();optional boolean oncustom(domstring jsonobjectstring);optional domstring onrequestcontentcontext();optional boolean onadditiontolist(listitem list);optional boolean onremovalfromlist(listitem list); voicesearchterm voiceinteractioncontentcontext voiceinteractionmanager domstring getversion();void setcallback(voiceinteractioncallback callback);void listen();domstring getdatafromsearchterm(voicesearchterm voicesearchterm, voicesearchtermfield field);domstring buildcollectiondeeplinkdata(domstring appid, domstring title, domstring payload);domstring buildcollectionshowdata(domstring appid, domstring title, domstring payload, domstring thumbnail);voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem(long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused);domstring buildvoiceinteractioncontentcontextresponse(voiceinteractioncontentcontext[] contentcontextarr); 1. type definitions 1.1 voiceapplicationstate the application status handled via voice interaction. enum voiceapplicationstate { "none", "home", "list", "player", "setting", "search", "unknown" }; the following values are supported none : application default status. home : the status of application's home. list : the status of application showing something in list. player : the status of application playing something. setting : the status of application showing its setting. search : the status of application searching its content. unknown : the status of unknown. 1.2 voicenavigation the navigation via voice interaction. enum voicenavigation { "nav_previous", "nav_next", "nav_left", "nav_right", "nav_up", "nav_down", "nav_show_more", "nav_unknown" }; the following values are supported nav_previous : the navigation for the previous page. nav_next : the navigation for the next page. nav_left : the navigation for the left item. nav_right : the navigation for the right item. nav_up : the navigation for the upper item. nav_down : the navigation for the down item. nav_show_more : the navigation for the detail page. nav_unknown : the navigation for unknown. 1.3 voicesearchtermfield defines the fields which can be delivered via voice search. enum voicesearchtermfield { "search_term_utterance", "search_term_title", "search_term_genre", "search_term_cast", "search_term_content_type", "search_term_release_date_from", "search_term_release_date_to" }; the following values are supported search_term_utterance : the field for the full utterance. search_term_title : the field for the title. search_term_genre : the field for the genre. search_term_cast : the field for the cast. search_term_content_type : the field for the content type (movie/tvshow). search_term_release_date_from : the field for the start date time(iso 8601). search_term_release_date_to : the field for the end date time(iso 8601). 1.4 mediafunctionmode enum for the param of media control function mode. enum mediafunctionmode { "media_function_on", "media_function_off" }; the following values are supported media_function_on : media function mode on. media_function_off : media function mode off. 1.5 mediarotatemode enum for the param of rotate. enum mediarotatemode { "media_rotate_left", "media_rotate_right" }; the following values are supported media_rotate_left : media rotate mode left. media_rotate_right : media rotate mode right. 1.6 mediazoommode enum for the param of zoom. enum mediazoommode { "media_zoom_in", "media_zoom_out" }; the following values are supported media_zoom_in : media zoom mode in. media_zoom_out : media zoom mode out. 1.7 mediarepeatmode enum for the param of media repeat. enum mediarepeatmode { "media_repeat_off", "media_repeat_one", "media_repeat_all" }; the following values are supported media_repeat_off : media repeat mode off. media_repeat_one : media repeat mode for one track. media_repeat_all : media repeat mode for all tracks. 1.8 listitem enum for the param of list item. enum listitem { "list_bookmarks", "list_watch_later", "list_unknown" }; the following values are supported list_bookmarks : bookmarks list_watch_later : watchlater list_unknown : unknown 2. interfaces 2.1 voiceinteractionmanagerobject the voiceinteractionmanagerobject interface defines what is instantiated by the webapis object from the tizen platform. there will be a webapis.voiceinteraction object that allows access to the functionality of the voice interaction api. to use the voice interaction api, the following privileges must be declared in the manifest file of the application. if they are not declared, all usage of these apis are blocked, and security exceptions are thrown. to use these privileges, the minimum ‘required_version’ is 6.0. [nointerfaceobject] interface voiceinteractionmanagerobject { readonly attribute voiceinteractionmanager voiceinteraction; }; webapi implements voiceinteractionmanagerobject; since : 6.0 attributes readonly voiceinteractionmanager voiceinteraction this attribute defines the namespace for voiceinteraction apis. 2.2 voiceinteractioncallback every voice interaction application should implement a callback function, so that the assistant can operate the controls. your application can interact with voice assistant by passing the callbacks in webapis.voiceinteraction.setcallback and calling webapis.voiceinteraction.listen. except onupdatestate, onsearchcollection callbacks, the return value for the callback is the boolean flag for support or not. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. [callback, nointerfaceobject] interface voiceinteractioncallback { optional voiceapplicationstate onupdatestate(); optional boolean onnavigation(voicenavigation voicenavigation); optional boolean onsearch(voicesearchterm voicesearchterm); optional boolean onplay(); optional boolean onstop(); optional boolean onpause(); optional boolean onexit(); optional boolean onselection(long voiceselection); optional boolean ontitleselection(domstring title); optional boolean onfastforward(); optional boolean onrewind(); optional domstring onsearchcollection(voicesearchterm voicesearchterm); optional boolean onchangeappstate(voiceapplicationstate state); optional boolean onchangeprevioustrack(); optional boolean onchangenexttrack(); optional boolean onrestart(); optional boolean onskipbackward(long offsetseconds); optional boolean onskipforward(long offsetseconds); optional boolean onsetplayposition(long position); optional boolean onchangesubtitlemode(mediafunctionmode mode); optional boolean onchangeshufflemode(mediafunctionmode mode); optional boolean onchangescreenfitmode(mediafunctionmode mode); optional boolean onzoom(mediazoommode zoom); optional boolean onrotate(mediarotatemode direction); optional boolean onchange360mode(mediafunctionmode mode); optional boolean onchangerepeatmode(mediarepeatmode mode); optional boolean oncontinuewatching(); optional boolean oncustom(domstring jsonobjectstring); optional domstring onrequestcontentcontext(); optional boolean onadditiontolist(listitem list); optional boolean onremovalfromlist(listitem list); }; since : 6.0 methods onupdatestate developers must specify the current application status to the onupdatestate function to get a proper voice control from the voice assistant. this function is called right before processing every utterance, so that the voice assistant can be aware of the application status dynamically. depending on the status, the callback function called could be different. therefore, it is important to return the real status of the application. optional voiceapplicationstate onupdatestate(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional voiceapplicationstate : the status of the current application status. "none" : application is in its default status. same as "player" status. "list" : the application is showing something in list. during this status, the utterances "play this" or "play" will call onselection(0). the utterance "previous" will call onnavigation ("nav_previous"). "player" : the application is playing a piece of content. during this status, the utterance "play this" will call onplay(). since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "list"; } }); onnavigation to support navigation controls via voice, the application should have the following callbacks. otherwise, the key event will be generated. optional boolean onnavigation(voicenavigation voicenavigation); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : voicenavigation : the navigation enumeration via voice. return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "list"; }, onnavigation : function (voicenavigation) { var bsupport = true; console.log("onnavigation : " + voicenavigation); switch(voicenavigation) { case "nav_previous ": // "previous page" break; case "nav_next": // "next page" break; case "nav_left": // "go to left" break; case "nav_right": // "move to right" break; case "nav_up": // "move up" break; case "nav_down": // "go down" break; // if there is no callback implementation for these enums, // tv will generate remote control key events: "arrowright", "arrowleft", "arrowup", "arrowdown". case "nav_show_more": // "show me more" break; default: bsupport = false; break; } return bsupport; } }); onsearch for a contents search provided by the application, it can receive a search utterance to show the search results. in order to support the search via voice, the application must be registered to samsung tv's companion search application and have the following callbacks. the onsearch parameter has a specific format. to learn more about it, please refer to the getdatafromsearchterm. some callbacks are not called by default such as onsearch. to receive all the callback signals on the development stage, request a key from samsung and apply the key to the manifest of your tizen application. the following example shows how to add the "http://developer.samsung.com/tizen/metadata/support-vif-devfeature" key to the manifest file. optional boolean onsearch(voicesearchterm voicesearchterm); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : voicesearchterm : the object contains the information via voice. return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : <?xml version="1.0" encoding="utf-8"?> <widget xmlns="http://www.w3.org/ns/widgets" tizen="http://tizen.org/ns/widgets" id="http://yourdomain/voiceinteractionwebsample" version="1.0.0" viewmodes="maximized"> <access origin="" subdomains="true"></access> < application id="abcdefghrj.voiceinteractionwebsample" package="abcdefghrj" required_version="6.0"/> <content src="index.html"/> <feature name="http://tizen.org/feature/screen.size.normal.1080.1920"/> <icon src="icon.png"/> < metadata key="http://developer.samsung.com/tizen/metadata/support-vif-dev-feature" value="true"/> <name>voiceinteractionwebsample</name> < privilege name="http://developer.samsung.com/privilege/voicecontrol"/> < privilege name="http://developer.samsung.com/privilege/microphone"/> < profile name="tv-samsung"/> </widget> @endcode @param voicesearchterm the object contains the information via voice. @see getdatafromsearchterm @throw none n/a @return boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. @code webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "home"; }, onsearch : function (voicesearchterm) { console.log("onsearch : " + json.stringify(voicesearchterm)); var title = webapis.voiceinteraction.getdatafromsearchterm(voicesearchterm, "search_term_title"); var genre = webapis.voiceinteraction.getdatafromsearchterm(voicesearchterm, "search_term_genre"); console.log("request to search " + title + ", " + genre); return true; } }); onplay supports the media control to handle playback(play). optional boolean onplay(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "player"; }, onplay : function () { // tv default action: generates the remote control key, "mediaplay". console.log("onplay called"); return true; } }); onstop supports the media control to handle playback(stop). optional boolean onstop(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "player"; }, onstop : function () { // tv default action: generates the remote control key, "mediastop". console.log("onstop called"); return true; } }); onpause supports the media control to handle playback(pause). optional boolean onpause(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "player"; }, onpause : function () { // tv default action: generates the remote control key, "mediaplaypause". console.log("onpause called"); return true; } }); onexit supports the media control to handle playback(exit). optional boolean onexit(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "player"; }, onexit : function () { // tv default action: generates the remote control key, "exit". console.log("onexit called"); return true; } }); onselection to support selection controls via voice, the application should have the following callbacks. this callback supports the ordinal, relative selection control. optional boolean onselection(long voiceselection); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : voiceselection : the relative index via voice, (ex. the last item is -1, the current item is 0, the first item is 1). return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "list"; }, onselection : function (voiceselection) { var bsupport = true; console.log("onselection : " + voiceselection); switch(voiceselection) { case -1 : // "select the last one" break; case 0 : // "select this" break; default: { if(voiceselection >= 1) // "select the first one" { // select the (voiceselection)th item // index of the first item is 1 console.log("for ordinal : " + voiceselection); } else { bsupport = false; } } break; } return bsupport; } }); ontitleselection title selection refers to an utterance in the format "select {title name}". to support the title selection via voice, the following two callbacks are required : onrequestcontentcontext and ontitleselection. the onrequestcontentcontext callback provides the information regarding the content of the screen (such as title and position) to the samsung tv. this method will be invoked at the beginning of every utterance. the response consists of positionx(int), positiony(int), title(string), alias(string array) and bfocused(bool). the title property is used for asr conversion and the other properties are used to set the priority of each title. the ontitleselection callback receives the title name from the utterance. optional boolean ontitleselection(domstring title); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : title : the string input via voice. return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "list"; }, onrequestcontentcontext : function () { console.log("onrequestcontentcontext "); var result = []; try { var item = { "positionx" : 0, "positiony" : 0, "title" : "title text1", "alias" : ["title1", "my text1"], "bfocused" : true }; result.push(item); var item2 = { "positionx" : 1, "positiony" : 0, "title" : "title text2", "alias" : ["title2", "my text2"], "bfocused" : false }; result.push(item2); result.push(webapis.voiceinteraction.buildvoiceinteractioncontentcontextitem(2,0,"title text3", ["title3", "my text3"], false)); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } return webapis.voiceinteraction.buildvoiceinteractioncontentcontextresponse(result); }, ontitleselection : function (title) { console.log("ontitleselection" + title); return true; } }); onfastforward supports the media control to handle playback(ff). optional boolean onfastforward(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "player"; }, onfastforward : function () { // tv default action: generates the remote control key, "mediafastforward". console.log("onfastforward called"); return true; } }); onrewind supports the media control to handle playback(rewind). optional boolean onrewind(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "player"; }, onrewind : function () { // tv default action: generates the remote control key, "mediarewind". console.log("onrewind called"); return true; } }); onsearchcollection supports the search utterance appending to the default search application. the value of the result for the search term. optional domstring onsearchcollection(voicesearchterm voicesearchterm); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : voicesearchterm : the object contains the information via voice. return value : optional domstring : the formatted value of the result for the search term. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "none"; }, onsearchcollection : function (voicesearchterm) { log("onsearchcollection : " + json.stringify(voicesearchterm)); var result = []; //appname and appid are of the ui application to get the payload on launch. result.push(webapis.voiceinteraction.buildcollectiondeeplinkdata("a1b2c3d4ef.mytizenappid", "mytizenapp", "page_id=123456&method=voice")); return json.stringify(result); } }); onchangeappstate to support the utterance of shortcut commands, the application must have the onchangeappstate callback. optional boolean onchangeappstate(voiceapplicationstate state); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : state : the application context via voice. return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "none"; }, onchangeappstate: function (state) { // tv default action: launches the samsung tv firstscreen, menu or search application. depending on the input parameter. // "go to home", "go to settings", "go to search". console.log("onchangeappstate : " + state); var bsupport = true; switch (state) { case "home": // go to app's home break; default: bsupport = false; break; } return bsupport; } }); onchangeprevioustrack in order to handle requests to move to the previous track via voice, the application should override the onchangeprevioustrack callback. optional boolean onchangeprevioustrack(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onchangeprevioustrack : function () { console.log("onchangeprevioustrack"); return true; } }); onchangenexttrack in order to handle requests to move to the next track via voice, the application should override the onchangenexttrack callback. optional boolean onchangenexttrack(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onchangenexttrack : function () { console.log("onchangenexttrack"); return true; } }); onrestart in order to handle requests to restart to this track via voice, the application should override the onrestart callback. optional boolean onrestart(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onrestart : function () { console.log("onrestart"); return true; } }); onskipbackward in order to handle requests to skip backward via voice, the application should override the onskipbackward callback. optional boolean onskipbackward(long offsetseconds); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : offsetseconds : the relative position in seconds. return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onskipbackward : function (offsetseconds) { console.log("onskipbackward : " + offsetseconds); return true; } }); onskipforward in order to handle requests to skip forward via voice, the application should override the onskipforward callback. optional boolean onskipforward(long offsetseconds); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : offsetseconds : the relative position in seconds. return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onskipforward : function (offsetseconds) { console.log("onskipforward : " + offsetseconds); return true; } }); onsetplayposition in order to handle requests to set play position via voice, the application should override the onsetplayposition callback. optional boolean onsetplayposition(long position); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : position : the absolute position in seconds. return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onsetplayposition : function (position) { console.log("onsetplayposition : " + position); return true; } }); onchangesubtitlemode in order to handle requests to turn the subtitle feature on/off via voice, the application should override the onchangesubtitlemode callback. optional boolean onchangesubtitlemode(mediafunctionmode mode); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : mode : media_function_on : turning on / media_function_off : turning off return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onchangesubtitlemode : function (mode) { console.log("onchangesubtitlemode"); switch(mode) { case "media_function_on" : console.log("function on"); break; default : console.log("function off"); break; } return true; } }); onchangeshufflemode in order to handle requests to turn the shuffle feature on/off via voice, the application should override the onchangeshufflemode callback. optional boolean onchangeshufflemode(mediafunctionmode mode); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : mode : media_function_on : turning on / media_function_off : turning off return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onchangeshufflemode : function (mode) { console.log("onchangeshufflemode"); switch(mode) { case "media_function_on" : console.log("function on"); break; default : console.log("function off"); break; } return true; } }); onchangescreenfitmode in order to handle requests to turn the screen fit feature on/off via voice, the application should override the onchangescreenfitmode callback. optional boolean onchangescreenfitmode(mediafunctionmode mode); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : mode : media_function_on : turning on / media_function_off : turning off return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onchangescreenfitmode : function (mode) { console.log("onchangescreenfitmode"); switch(mode) { case "media_function_on" : console.log("function on"); break; default : console.log("function off"); break; } return true; } }); onzoom in order to handle requests to zoom in/out via voice, the application should override the onzoom callback. optional boolean onzoom(mediazoommode zoom); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : zoom : media_zoom_in : zoom in / media_zoom_out : zoom out return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onzoom : function (zoom) { console.log("onzoom"); switch(zoom) { case "media_zoom_in" : console.log("zoom in"); break; default : console.log("zoom out"); break; } return true; } }); onrotate in order to handle requests to rotate left/right via voice, the application should override the onrotate callback. optional boolean onrotate(mediarotatemode direction); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : direction : media_rotate_left : rotate left / media_rotate_right : rotate right return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onrotate : function (direction) { console.log("onrotate"); switch(direction) { case "media_rotate_left" : console.log("rotate left"); break; default : console.log("rotate right"); break; } return true; } }); onchange360mode in order to handle requests to turn the 360 feature on/off via voice, the application should override the onchange360mode callback. optional boolean onchange360mode(mediafunctionmode mode); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : mode : media_function_on : turning on / media_function_off : turning off return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onchange360mode : function (mode) { console.log("onchange360mode"); switch(mode) { case "media_function_on" : console.log("function on"); break; default : console.log("function off"); break; } return true; } }); onchangerepeatmode in order to handle requests to change the repeat mode via voice, the application should override the onchangerepeatmode callback. optional boolean onchangerepeatmode(mediarepeatmode mode); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : mode : media_repeat_off : repeat mode off / media_repeat_one : repeat this track / media_repeat_all : repeat all tracks return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onchangerepeatmode : function (mode) { console.log("onchangerepeatmode"); switch(mode) { case "media_repeat_one" : console.log("one"); break; case "media_repeat_all" : console.log("all"); break; default : console.log("off"); break; } return true; } }); oncontinuewatching in order to handle requests to launch the application with playing the history track via voice, the application should override the oncontinuewatching callback to play the history track. this callback will be called after launching the application. optional boolean oncontinuewatching(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung device may perform its basic function. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, oncontinuewatching : function () { console.log("oncontinuewatching"); return true; } }); oncustom supports the custom voice assistant action. optional boolean oncustom(domstring jsonobjectstring); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : jsonobjectstring : the string stringified json object. return value : optional boolean : boolean value of whether the app supports this feature. voice assistant action will get the response "{"result_code":"success"}" for true, "{"result_code":"failure"}" for false/undefined. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "list"; }, oncustom : function (jsonobjectstring) { console.log("oncustom : " + jsonobjectstring); try { var customobject = json.parse(jsonobjectstring); for (var key in customobject) { if(customobject.hasownproperty(key)) { console.log("key : " + key + ", value : " + customobject[key]); } } } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); return false; } return true; } }); onrequestcontentcontext in order to support the voice title selection via voice, the application should override the onrequestcontentcontext callback, return the jsonobject string for the current content context list showing. optional domstring onrequestcontentcontext(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : optional domstring : domstring containing jsonobject string for the content context list. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "list"; }, onrequestcontentcontext : function () { log("onrequestcontentcontext "); var result = []; try { var item = webapis.voiceinteraction.buildvoiceinteractioncontentcontextitem(1,1,"test", ["test set", "test title"], true); result.push(item); var item2 = webapis.voiceinteraction.buildvoiceinteractioncontentcontextitem(2,1,"test2", ["test set 2", "test title 2"], false); result.push(item2); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } return webapis.voiceinteraction.buildvoiceinteractioncontentcontextresponse(result); } }); onadditiontolist in order to handle requests to add this context to list via voice, the application should override the onadditiontolist callback. optional boolean onadditiontolist(listitem list); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : list : list_bookmarks : bookmarks / list_watch_later : watch later return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung tv may perform its basic function. since : 6.5 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onadditiontolist : function (list) { console.log("onadditiontolist"); switch(list) { case "list_bookmarks" : console.log("add this context to bookmarks"); break; case "list_watch_later" : console.log("add this context to watch later"); break; default : break; } return true; } }); onremovalfromlist in order to handle requests to remove this context from list via voice, the application should override the onremovalfromlist callback. optional boolean onremovalfromlist(listitem list); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : list : list_bookmarks : bookmarks / list_watch_later : watch later return value : optional boolean : boolean value of whether the app supports this feature. if a callback returns the false/undefined value, or there is no callback implementation for the utterance, samsung tv may perform its basic function. since : 6.5 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onremovalfromlist : function (list) { console.log("onremovalfromlist"); switch(list) { case "list_bookmarks" : console.log("remove this context from bookmarks"); break; case "list_watch_later" : console.log("remove this context from watch later"); break; default : break; } return true; } }); 2.3 voicesearchterm this interface represents information about the voice search term. [nointerfaceobject] interface voicesearchterm { readonly attribute domstring? utterance; readonly attribute domstring? title; readonly attribute domstring? genre; readonly attribute domstring? cast; readonly attribute domstring? contenttype; readonly attribute domstring? from; readonly attribute domstring? to; }; attributes readonly domstring utterance [nullable] the field for the full utterance. readonly domstring title [nullable] the field for the title. readonly domstring genre [nullable] the field for the genre. readonly domstring cast [nullable] the field for the cast. readonly domstring contenttype [nullable] the field for the content type (movie/tvshow). readonly domstring from [nullable] the field for the start date time(iso 8601). readonly domstring to [nullable] the field for the end date time(iso 8601). 2.4 voiceinteractioncontentcontext this interface represents information about the content context for an item. [nointerfaceobject] interface voiceinteractioncontentcontext { attribute long positionx; attribute long positiony; attribute domstring title; attribute boolean bfocused; }; attributes long positionx the field for x-axis position of the item. long positiony the field for y-axis position of the item. domstring title the field for the title of the item. boolean bfocused the field for whether this item has a focus. 2.5 voiceinteractionmanager the voiceinteractionmanager interface is the top-level interface for the voiceinteractionmanager api that provides access to the module functionalities. [nointerfaceobject] interface voiceinteractionmanager { domstring getversion(); void setcallback(voiceinteractioncallback callback); void listen(); domstring getdatafromsearchterm(voicesearchterm voicesearchterm, voicesearchtermfield field); domstring buildcollectiondeeplinkdata(domstring appid, domstring title, domstring payload); domstring buildcollectionshowdata(domstring appid, domstring title, domstring payload, domstring thumbnail); voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem(long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused); domstring buildvoiceinteractioncontentcontextresponse(voiceinteractioncontentcontext[] contentcontextarr); }; methods getversion this method gets the plugin's version number. domstring getversion(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol return value : domstring : domstring return value of plugin's version. exceptions : webapiexception with error type unknownerror in any other error case. with error type securityerror, if the application does not have the privilege to call this method. since : 6.0 code example : try { var version = webapis.voiceinteraction.getversion(); console.log("works with voiceinteraction [" + version + "]"); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } setcallback api to define callback functions for the voice interaction commands. void setcallback(voiceinteractioncallback callback); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : callback : composing the functions to be called for the voice interaction commands. exceptions : webapiexception with error type unknownerror in any other error case. with error type typemismatcherror, if an input parameter is not compatible with its expected type. with error type securityerror, if the application does not have the privilege to call this method. since : 6.0 code example : try { webapis.voiceinteraction.setcallback({ onupdatestate : function () { return "list"; }, onnavigation : function (vn) { console.log("onnavigation" + vn); return true; }, onselection : function (voiceselection) { console.log("onselection" + voiceselection); return true; } }); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } listen api to start listening the voice interaction commands after setting callbacks by setcallback. void listen(); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol exceptions : webapiexception with error type unknownerror in any other error case. with error type securityerror, if the application does not have the privilege to call this method. since : 6.0 code example : try { webapis.voiceinteraction.listen(); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } getdatafromsearchterm api to parse the searchterm from samsung side. domstring getdatafromsearchterm(voicesearchterm voicesearchterm, voicesearchtermfield field); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : voicesearchterm : the voicesearchterm from samsung side as search term. field : the field enum to get the value. return value : domstring : the result string formatted. exceptions : webapiexception with error type unknownerror in any other error case. with error type securityerror, if the application does not have the privilege to call this method. with error type invalidvalueserror, if any input parameter contains an invalid value. with error type typemismatcherror, if an input parameter is not compatible with its expected type. since : 6.0 code example : var title = webapis.voiceinteraction.getdatafromsearchterm(voicesearchterm, "search_term_title"); var genre = webapis.voiceinteraction.getdatafromsearchterm(voicesearchterm, "search_term_genre"); buildcollectiondeeplinkdata api to build data for search collection easily. domstring buildcollectiondeeplinkdata(domstring appid, domstring title, domstring payload); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : appid : the app id to be shown in the search application, and to launch the payload. title : the title to be shown in the search application. payload : the payload value to be passed with application launch request. return value : domstring : the result string formatted. exceptions : webapiexception with error type unknownerror in any other error case. with error type typemismatcherror, if any input parameter is not domstring type. with error type securityerror, if the application does not have the privilege to call this method. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "none"; }, onsearchcollection : function (voicesearchterm) { log("onsearchcollection : " + json.stringify(voicesearchterm)); var result = []; // appname and appid are of the ui application to get the payload on launch. try { result.push(webapis.voiceinteraction.buildcollectiondeeplinkdata("a1b2c3d4ef.mytizenappid", "mytizenapp", "page_id=123456&method=voice")); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } return json.stringify(result); } }); buildcollectionshowdata api to build data for search collection easily. domstring buildcollectionshowdata(domstring appid, domstring title, domstring payload, domstring thumbnail); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : appid : the app id to be shown in the search application, and to launch the payload. title : the title to be shown in the search application. payload : the payload value to be passed with application launch request. thumbnail : the thumbnail url, path to be shown in the search application. return value : domstring : the result string formatted. exceptions : webapiexception with error type unknownerror in any other error case. with error type typemismatcherror, if any input parameter is not domstring type. with error type securityerror, if the application does not have the privilege to call this method. since : 6.0 code example : webapis.voiceinteraction.setcallback({ onupdatestate : function () { console.log("assistant tries to get app state"); return "none"; }, onsearchcollection : function (voicesearchterm) { log("onsearchcollection : " + json.stringify(voicesearchterm)); var result = []; // appname and appid are of the ui application to get the payload on launch. try { result.push(webapis.voiceinteraction.buildcollectionshowdata("a1b2c3d4ef.mytizenappid", "mytizenapp", "page_id=123456&method=voice", "http://myservice.com/content/123456.png")); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } return json.stringify(result); } }); buildvoiceinteractioncontentcontextitem api to build the voiceinteractioncontentcontext of an item. voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem(long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : positionx : x-axis position of the item. positiony : y-axis position of the item. title : the title of the item. aliasarr : the alias titles of the item. bfocused : whether this item has a focus. return value : voiceinteractioncontentcontext : the voiceinteractioncontentcontext object containing an item showing. exceptions : webapiexception with error type unknownerror in any other error case. with error type typemismatcherror, if any input parameters are not compatible with its expected type. since : 6.0 code example : onrequestcontentcontext : function () { console.log("onrequestcontentcontext "); var result = []; try { var item = webapis.voiceinteraction.buildvoiceinteractioncontentcontextitem(1,1,"test", ["test set", "test title"], true); result.push(item); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } return webapis.voiceinteraction.buildvoiceinteractioncontentcontextresponse(result); } buildvoiceinteractioncontentcontextresponse api to build the response of onrequestcontentcontext callback function from voiceinteractioncontentcontext. domstring buildvoiceinteractioncontentcontextresponse(voiceinteractioncontentcontext[] contentcontextarr); product : tv privilege level : public privilege : http://developer.samsung.com/privilege/voicecontrol parameters : contentcontextarr : voiceinteractioncontentcontext objects of the items showing. return value : domstring : the domstring of jsonobject string containing the items showing. exceptions : webapiexception with error type unknownerror in any other error case. with error type typemismatcherror, if any input parameters are not compatible with its expected type. since : 6.0 code example : onrequestcontentcontext : function () { console.log("onrequestcontentcontext "); var result = []; try { var item = webapis.voiceinteraction.buildvoiceinteractioncontentcontextitem(1,1,"test", ["test set", "test title"], true); result.push(item); } catch (e) { console.log("exception [" + e.code + "] name: " + e.name + " message: " + e.message); } return webapis.voiceinteraction.buildvoiceinteractioncontentcontextresponse(result); } 3. full webidl module voiceinteraction { enum voiceapplicationstate { "none", "home", "list", "player", "setting", "search", "unknown" }; enum voicenavigation { "nav_previous", "nav_next", "nav_left", "nav_right", "nav_up", "nav_down", "nav_show_more", "nav_unknown" }; enum voicesearchtermfield { "search_term_utterance", "search_term_title", "search_term_genre", "search_term_cast", "search_term_content_type", "search_term_release_date_from", "search_term_release_date_to" }; enum mediafunctionmode { "media_function_on", "media_function_off" }; enum mediarotatemode { "media_rotate_left", "media_rotate_right" }; enum mediazoommode { "media_zoom_in", "media_zoom_out" }; enum mediarepeatmode { "media_repeat_off", "media_repeat_one", "media_repeat_all" }; enum listitem { "list_bookmarks", "list_watch_later", "list_unknown" }; [nointerfaceobject] interface voiceinteractionmanagerobject { readonly attribute voiceinteractionmanager voiceinteraction; }; webapi implements voiceinteractionmanagerobject; [callback, nointerfaceobject] interface voiceinteractioncallback { optional voiceapplicationstate onupdatestate(); optional boolean onnavigation(voicenavigation voicenavigation); optional boolean onsearch(voicesearchterm voicesearchterm); optional boolean onplay(); optional boolean onstop(); optional boolean onpause(); optional boolean onexit(); optional boolean onselection(long voiceselection); optional boolean ontitleselection(domstring title); optional boolean onfastforward(); optional boolean onrewind(); optional domstring onsearchcollection(voicesearchterm voicesearchterm); optional boolean onchangeappstate(voiceapplicationstate state); optional boolean onchangeprevioustrack(); optional boolean onchangenexttrack(); optional boolean onrestart(); optional boolean onskipbackward(long offsetseconds); optional boolean onskipforward(long offsetseconds); optional boolean onsetplayposition(long position); optional boolean onchangesubtitlemode(mediafunctionmode mode); optional boolean onchangeshufflemode(mediafunctionmode mode); optional boolean onchangescreenfitmode(mediafunctionmode mode); optional boolean onzoom(mediazoommode zoom); optional boolean onrotate(mediarotatemode direction); optional boolean onchange360mode(mediafunctionmode mode); optional boolean onchangerepeatmode(mediarepeatmode mode); optional boolean oncontinuewatching(); optional boolean oncustom(domstring jsonobjectstring); optional domstring onrequestcontentcontext(); optional boolean onadditiontolist(listitem list); optional boolean onremovalfromlist(listitem list); }; [nointerfaceobject] interface voicesearchterm { readonly attribute domstring? utterance; readonly attribute domstring? title; readonly attribute domstring? genre; readonly attribute domstring? cast; readonly attribute domstring? contenttype; readonly attribute domstring? from; readonly attribute domstring? to; }; [nointerfaceobject] interface voiceinteractioncontentcontext { attribute long positionx; attribute long positiony; attribute domstring title; attribute boolean bfocused; }; [nointerfaceobject] interface voiceinteractionmanager { domstring getversion(); void setcallback(voiceinteractioncallback callback); void listen(); domstring getdatafromsearchterm(voicesearchterm voicesearchterm, voicesearchtermfield field); domstring buildcollectiondeeplinkdata(domstring appid, domstring title, domstring payload); domstring buildcollectionshowdata(domstring appid, domstring title, domstring payload, domstring thumbnail); voiceinteractioncontentcontext buildvoiceinteractioncontentcontextitem(long positionx, long positiony, domstring title, domstring[] aliasarr, boolean bfocused); domstring buildvoiceinteractioncontentcontextresponse(voiceinteractioncontentcontext[] contentcontextarr); }; };

      https://developer.samsung.com/smarttv/develop/api-references/samsung-product-api-references/voiceinteraction-api.html
      1. Learn
      2. Developers Podcast

      doc

      Episode 4, Chris Benjaminsen

      season 3, episode 4 previous episode | episode index | next episode this is a transcript of one episode of the samsung developers podcast, hosted by and produced by tony morelan. a listing of all podcast transcripts can be found here. host tony morelan senior developer evangelist, samsung developers instagram - twitter - linkedin guest chris benjaminsen, frvr games, galaxy store chris benjaminsen, founder of frvr, the super successful game publisher with over 70 titles on samsung services. not only do we chat about monetization and game revenue strategies, but how the frvr platform has allowed them to scale their global reach. all music from today's show is from frvr games, composed by rasmus hartvig. listen download this episode topics covered frvr publishing on galaxy store marketing discoverability monetization generating revenue in-app purchase (iap) in-app advertising (iaa) interstitial ads galaxy badge best of galaxy store awards acquiring games/studios diversity and inclusion helpful links frvr - frvr.com frvr careers - careers.frvr.com frvr linkedin - linkedin.com/company/frvr frvr youtube - youtube.com/c/frvrgames galaxy store (gold digger frvr) - galaxy.store/digger1 gold train frvr - goldtrain.frvr.com chris benjaminsen linkedin - linkedin.com/in/chrisbenjaminsen/ chris benjaminsen twitter - twitter.com/benjaminsen galaxy badges - developer.samsung.com/galaxy-store/gsb-promotion samsung iap - developer.samsung.com/iap samsung developer program homepage - developer.samsung.com samsung developer program newsletter - developer.samsung.com/newsletter samsung developer program blog - developer.samsung.com/blog samsung developer program news - developer.samsung.com/news samsung developer program facebook - facebook.com/samsungdev samsung developer program instagram - instagram.com/samsung_dev samsung developer program twitter - twitter.com/samsung_dev samsung developer program youtube - youtube.com/samsungdevelopers samsung developer program linkedin - linkedin.com/company/samsungdevelopers transcript note: transcripts are provided by an automated service and reviewed by the samsung developers web team. inaccuracies from the transcription process do occur, so please refer to the audio if you are in doubt about the transcript. tony morelan 00:01 hey, i'm tony morelan. and this is the samsung developers podcast, where we chat with innovators using samsung technologies, award winning app developers and designers, as well as insiders working on the latest samsung tools. welcome to season three, episode four. on today's show, i'm joined by chris benjaminsen, founder of frvr, the super successful game publisher with over 70 titles on samsung services. not only do we chat about monetization and game revenue strategies, but how the frvr platform has allowed them to scale their global reach. and the music from today's show is from frvr games, all composed by rasmus hartvig, enjoy. hey, chris, welcome to the podcast. chris benjaminsen 00:50 hey, tony. thanks for having me. yeah, so tony morelan 00:52 so i'm excited to chat with you. because, you know, we've had game developers on the podcast, but never a game publisher. let me first ask you though, who is chris benjaminsen? chris benjaminsen 01:02 like? that's a good question. like, if i were to define myself, i think there's like two defining characteristics, like one is i must make things. and the second one is, i detest repetition. so if you come to my place, it's not unlikely i will cook. but it's very unlikely i'm cooking something i made before. so you know, it might be good might not be good, right? but you know, that, that drives and making things like it, it can be origami, it can be computer games that can be like, doesn't really matter, as long as i'm sort of producing something, and then i really don't like doing things twice. right. you know, like, anything that's routine is just boring. tony morelan 01:41 so you're an explorer, then? chris benjaminsen 01:43 i guess. so. i guess so. yeah. tony morelan 01:47 so you're with frvr? what exactly is your role? and what is frvr? chris benjaminsen 01:53 like, like, i'm the i'm the original founder, the company, right? you know, and my role today is mostly around working together with massive companies such as samsung, i lead a team at frvr that does that. and if you're, if you were to describe frvr, as a company, we're a platform and a publisher. okay, so we have a platform that allows game developers to make fantastic games and with all the services that they need to do to do so basically, anything in between a, a game developer and a consumer, and then we also the publisher, we actually make sure that the games get in front of the right user, and they have an opportunity to play those games. tony morelan 02:29 okay, what does frvr stand for? it's an acronym, does it have a deep meaning? chris benjaminsen 02:35 no, it's not like, like, a lot of people are sort of asking us if we have french vr company, which we're not. yeah, but, but like, like, if rbis is technically forever, without the vowels. okay, you can trademark frvr you can trademark forever, at least, not unless you have apple liberal money, right? so. so if we say if i'm yeah, because if you could locally use you sort of the full pronunciation you can actually use the trademark. so there's a bunch of stupid rules there. tony morelan 03:07 interesting. interesting. so before we dive into frvr, tell me about your journey. what led you into the mobile gaming area, and then specifically into creating frvr, chris benjaminsen 03:17 i've been in the, in the games industry for like, more than 20 years, my first job, sort of professional job ever was to make a real time multiplayer games in javascript. and if i'd be honest, my seventh startup in total and my second year, and my third platform company over also have like a long history of sort of building companies in this space. and i've been very fortunate. i never managed to go bankrupt. but one of these companies so far, right, you know, so little bit proud about that. tony morelan 03:48 oh, that's great. it definitely plays into you know, when you first started, you had said that, you know, you're not going to repeat much. so you said seven companies that you've started, chris benjaminsen 03:58 you had all very different companies, and some of them were like, like, like, very small and, and never got successful, anything like that. right? it's just like the companies apparently gets bigger and bigger every time i try. yeah, there might be there might be new startups in the future as well. but for now, if rbis is a very exciting company to work at, and definitely want to want to spend my time. tony morelan 04:20 so i know one of those companies you had started you actually, it was a pretty successful company that you ended up selling. but you came away with that from with a lot of lessons learned, i would say is that correct? chris benjaminsen 04:33 yeah. so like, like, in a previous life, build a platform company that did infrastructure for cash or mobile, social. and in that company, there was a lot of people building games on top of our infrastructure and 1000s of developers right and, and there was there's a few significant learnings from that. so one was that building a company that just charges other people for services is not a particularly good business, a lot of money was made by the developers on top of our platform where we are not making quite a lot of money. so you know, make sure that that you actually participate where, where the value is if you want to be a publisher. and then the second learning was that the successful developers were not the ones who had the best at making games, right? so there's, there's not a strong connection between sort of making games that are fun to play and the economic success that those developers were able to see. so if you want to be successful in the game space, and this is particularly true in the in the mobile game space, you need to be good at a lot of other things that has nothing to do with game development, such as a user acquisition, and revenue optimization, and data and all these things. and that, you know, i don't think there's anything wrong with that. but if you are somebody who really loves making kickass games, you're missing the 90% if you also want to be successful at that. tony morelan 05:57 it's interesting you say that, you know, i had on the podcast a few weeks ago, peter and tobias from biodome games, they have their game gold digger, frvr. yeah. and it was peter, who had a great quote, saying that he was chatting with one of his partners, who had said, you know, for once, can you stop trying to be so artistic in your games and just build a game that can be successful? and, you know, we all had a good laugh at that. chris benjaminsen 06:23 yeah. and, you know, i think all industries are like that, right. you know, you probably have to be good at a multitude of different disciplines to be successful. but, but the games industry, being one of the most valuable entertainment industry, two worlds is, of course, also one of the most competitive and that competitive landscape. it's a very, it's a very hard place for, for most people to compete. and, and the market sentiment is sort of dominated by survival. bias. yeah. right. you know, like, like, the people who won the lottery. yeah. you know, like, like an among us are like flappy birds. so like these, these small teams that had an outsized hit, right, but that's like winning the lottery. good luck with that. yeah. and tony morelan 07:04 i think a great example of that right now is wordle, in the phenomenon behind that. chris benjaminsen 07:08 absolutely. fantastic game, right. you know, and i like these small puzzle games once in a while to come along. i was like, 2048, as well, which was also originally made, i think, by an italian game developer, you know, just as a small example, fantastic, fantastic game as well. yeah, tony morelan 07:25 definitely, in kind of going back to, you know, what i mentioned, peter, and tobias, they said that for them, you know, the key to their success was partnering with someone like frvr, so that they could just focus on creating the game and let everybody on your team handle everything that when it comes to publishing and marketing, so i think there's a huge value with where you guys are in this space. chris benjaminsen 07:47 i hope so. like, that's what we're trying to do. we're trying to allow developers focusing on making fantastic games. and then we took care of all the nitty gritty details of making those games available. and i think we published the 39 platforms. and then while also helping those developers make sure that the right users come into the games. yeah, yeah. because it's not it's not only just about the volume of people who play a game, it's more important to make sure that the right user plays the game. sure, to get the kind of games that i like, it's not necessarily the kind of games that you like, right, for tony morelan 08:17 sure. so let's talk a bit about the history. how long has frvr been in existence? chris benjaminsen 08:22 so i think i think technically, they were written, sort of in the integration of the company was founded in must be 2016. okay. and their written version of frb apps was decided to be the biggest, baddest lifestyle company you have ever heard of, and sort of sort of allowed me to go and travel the world without having to worry about expenses. and it did that it did that very well. like, very successfully. however, like i'd had a corporate job in corporate america, i had moved to san francisco at this point in my life after having sold a previous company and i sort of managed to convince myself that everything that was wrong with my life was working. it turned out everything that was wrong with my life was working for corporate america. and it took me it took me like three weeks and a whole bunch of success to realize that and decide, oh, wow, there's a big opportunity here in what inevitably came if ivr that exists today. yeah, i teamed up with a guy called brian meidell. they joining co-founder came in and we started sort of getting serious about the company a few years after the original founding. tony morelan 09:28 and it was brian actually, who had told peter, hey, for once, put artistic stuff aside and let's focus on you know, how to be successful here. chris benjaminsen 09:36 yeah. and like he's a fantastic executor. right, you know, and that's, like, due to building big teams and sort of running productions. a lot of repetition stuff i don't like right, yes. really good at that. tony morelan 09:48 that's great. so how many employees are at frvr? chris benjaminsen 09:52 yeah, so i think we are 130 now. so as of today, but yeah, like we find ourselves in a situation right now, where we are onboarding around 11 new people a month, so you're growing? yeah, every time you ask that question, the number would have changed? tony morelan 10:08 no, are these people are you focused in one headquarters? are you guys you know, all around the globe? chris benjaminsen 10:13 we have most of our people in in lisbon in portugal. and that's predominantly where we are focusing on hiring okay, you know, post covid, the world has changed. and, you know, we absolutely accept that some people want to be wherever it is they want to be. so we also we also have offices in denmark, we have offices in united kingdom and we have a small office in malta as well, and a small office in spain. so we have we have sort of different opportunities for people who wants to work in an office got it. and then the majority of people are now in in disband portugal. and that's also where we are mostly doing a tony morelan 10:50 hiring you yourself, though you are in the uk. is that correct? yeah, i'm chris benjaminsen 10:53 in london, right? you know, i get to i get to be a special snowflake and decide where i want to live. so i live in. tony morelan 11:01 wonderful. now under the frvr brand. how many game studios do you guys have that you're working with? chris benjaminsen 11:07 we are publisher. right? you know, so? we i think presently we work with around 20. okay, yeah. other studios, right? so it's a non-insignificant amount. but we have high aspirations, we want to get to a place where we can work with hundreds, if not 1000s of developers sure to do fantastic things. tony morelan 11:28 so how many monthly players? do you get playing frvr games on all channels? chris benjaminsen 11:34 i get to it various, right. like, like a lot of our success comes from viral traffic. right. okay. so active users can range from i got a really bad month, 50 million to get month where we were we peek into, like, like 100 plus million mark. wow, tony morelan 11:50 monthly active users. that's crazy. yeah, it's chris benjaminsen 11:53 a lot of people. so far, i think. like, like it's a number we track. we think we've had around 1.6 billion absolute unique for the lifetime of the company. tony morelan 12:03 wow. and that is just in you know, you said the 2016 was the start of frvr. chris benjaminsen 12:09 have you? i failed to remember it might have been 15. right. but yeah, like plus minus a year. sure. tony morelan 12:16 so now let's talk about samsung and galaxy store with frvr, what are some of the popular titles that you guys offer on galaxy store? chris benjaminsen 12:24 so particularly on the galaxy store, like we have, i think we have like 12 games live, their most notice would be it's called tigger, frvr which, which is built by peter and team. and then we have sort of our higher end games like a basketball and a hex. and however, we do work with samsung in other ways, as well, they have this instance type product as well, where we are also present. and we have i don't know; i think we've done like seven or eight different integration with samsung along the year. so we are sort of everywhere on a samsung phone, including the galaxy appstore. tony morelan 12:57 okay, so not just the galaxy app store. but there's other different platforms that samsung offers frvr is involved in. chris benjaminsen 13:04 yeah, so we work with, we work with samsung about building an experience in our first integration with what's in the product called bixby minus one home screen. so when you swipe left on your on your phone, like we will be wearing, we had a cart where there was sort of quick links to our games, okay, we build an instant games type product together with samsung, we work quite a lot of that together. and we have our games live there. we also have integrations with the with the browser. and like we exploring, basically, a big part of what frvr is, rather than trying to drag the user to where we want them to be, say, a mobile app store, we try to take the model and turn it inside out and bring people great games wherever they have already decided to want to be because it's very costly to drag a user somewhere else, right. tony morelan 13:50 i see. so if they're already there, you want to make your game available to them. chris benjaminsen 13:54 yeah, yeah. it's like, you know, if you're, if you're starbucks, right, people won't care if you can only get it in the airport, you actually have to be on a street corner close to where people sort of walk around, otherwise nobody is ever going to drink their coffee. tony morelan 14:05 yeah, that's true. that's true. so how did this relationship with samsung for start? chris benjaminsen 14:10 we met samsung at a at a conference. and they were like, can you give us games in like, four months? i think was the was the original question. and we got the games to them in two days. so wow. so the answer was yes. yeah. tony morelan 14:24 that's a great way to start the relationship. oh, yeah. so why would you say it's important to offer your game on galaxy store? chris benjaminsen 14:31 like, again, you know, that those users there who love the galaxy store, and we want to have our games available to those users in that space and galaxy store is actually well performing? right. you know, it's a samsung product and samsung phones are very high-end devices generally. it's very, not only is it it's great to meet a consumer where they are they are also very high value users when people are playing from the front of samsung galaxy app store. tony morelan 14:54 yeah, in what ways would you say galaxy store has helped you promote frvr games chris benjaminsen 14:59 for is the organic installs a fairly competent product? and it has all the features you would expect as a game developer, right? you know, so, so great access to in app purchases, great access to notifications, great access to distribution, right. but we've also, we also really enjoyed working together with the samsung galaxy team. and we have, like, among other things, we have an frvr category in the galaxy store that sort of exclusive to us. it's only our games. oh, no, no. and we work together on seasonal featuring and to give feedbacks to us, you know, saying, hey, we think it would be fantastic if we could do some something around easter, for instance. and then we go and work on that together and sort of find a, a process that works well together for both of us. tony morelan 15:42 that's great. and i'm sure that banner promotions are part of that. is that chris benjaminsen 15:45 yeah, banner promotion, and i can promotions and like there's a lot of tools that samsung has in the toolbox to help out. right? yeah. and then we also push on the galaxy team to do more. like we, we've sent a lot of feedback on the on the back-end tools and things like that. and fantastically, it has impact, like we get better product. right. so for us, that's a fantastic partnership. tony morelan 16:09 yeah. and that's one of the things that actually pulled me into working for samsung was how open they were to feedback in wanting to improve their platform. fantastic. you know, you'd mentioned gold digger, frvr. those are the guys they won our 2021 best of galaxy store award for best instant play game. awesome game. awesome. guys, we were so happy to give that award. tell me what it did mean for frvr to have one of your games win a best of galaxy store award? chris benjaminsen 16:37 it's a privilege, right? you know, and the credit goes to the game developer, they made that game? yeah. right. you know, we supported them along the way. and, and of course, came with a lot of feedback and help them with technical issues and things like that. but at the end of the day, you know, we have to be honest about the fact that the great games are made by the great developers, right, and also, as a platform publisher, provide the tools to make that a possibility. but games are fundamentally a creative endeavor. and you need massively traded people to make to make those games. sure. i'm, i'm a game developer myself as well, right. you know, and i'm almost more proud of some of the games i've built. and, you know, the very successful company that and if rbis, right, you know, because, you know, so it's sort of like an expression of something where you sat down and said, here's the thing i want to create, and now i've gotten it out. right. and i think to be as impede completely deserves getting that, that recognition from galaxy. tony morelan 17:35 yeah. success for a game definitely revolves around revenue. tell me as far as frvr, what has been your strategy for generating revenue? chris benjaminsen 17:46 like so. so from a, from a technical side, right, you know, we try to we try to make all avenues of generating revenue available in our platform, right. so that means interstitial-based advertisement, it means reward the best advertisement? it means in app purchases, it means subscriptions. it actually does not mean, banner advertisement, we don't do that. because i don't like it. no, really. but you know, yeah, other than that, like, like, we sort of have all the technical capabilities, and then what we find and what we try to optimize for, it's not revenue, we try to optimize for engagement. okay. and there's a multitude of reasons for that, like so. so like, one is the fact that i can't remember the specific number, but it's more than 90% of all value that is captured in the game is made by people who play the game more than once. yeah, right. you really want to have these long engagements with people, right. and another fairly simple reason is it's a lot easier to take a game that has huge engagement, and turn it into a good business than it is to take a game with a with a strong monetization model and turn it into a great game. right? so fundamentally, everything we focus on all our kpis, all our visions, and missions are around building experiences that people want to engage with for a long time. and then revenue is something that happens as a result, they're off, rather than being sort of a driving factor. and because we are good at distribution it because we, we are not sort of participating in the race to the bottom that is cost positive user acquisition on app stores, we can take the privilege that it is to be less aggressively monetizing than some of our competitors. tony morelan 19:22 yeah, yeah. so let's talk about some of the specifics here, when it comes to, you know, different ways to generate revenue. you know, there's developers out there that may just be getting started in this space. and so i want to help explain what some of those are. so ip is in app purchase, kind of explain, like what is in app purchase. chris benjaminsen 19:39 so new in app purchases, if you can somehow convince a user to pay for something in the game, right, you know, and, and how they pay. it's actually quite different across the world. so northern europe or usa, right? america has a distributor for a credit card, okay. but if you're talking about a consumer in india, it's typically through a gift card or something like that. why? they've gone into install and sort of funded a wallet, right. but the fact of the matter is, what essentially ends up happening is you have you have an experience in your game that the user feels is worth the value of paying for. and again, you know, like, like, like talking about engagement in games, right? why would a user be willing to, to sort of exchange money for something in a game? and that's typically related to the user's expectation of also playing this game two weeks from now? right? yes, they're investing. yeah, you're investing in your future experience in this game? right? you know, so. so it's another place where this this long-term engagement becomes very important, right? but a lot of times what people are buying are like, simple things, like more lives, or an item, or whatever it is that sort of, and in some of our games that are multiplayer, we even have people playing for things that are purely sort of cosmetic, buying a different hat, because then other people can see the hat that hat, but the hat, the hat has no function, right? sure. tony morelan 20:57 so it's just being able to create their own identity, you know, within that game, chris benjaminsen 21:02 it's no different than people buying clothes in the real world, you know? tony morelan 21:05 sure, sure. so how do you look at your player demographics for getting the best returns on iap? chris benjaminsen 21:10 i? well, first of all, that's a per game thing. right? you know, we have, we have games that appeal to 50 plus women. and we have games that appeal to like, like, a young male audience. right. so that's, that's very individualized per game. fundamentally, though, there are some there are some core mechanics that always worked really well, if you can proposition a user to, to exchange money for time. yeah. so something where they can progress faster if they if they put money in is typically a very strong mechanic, regardless of who the consumer is. and then, like we do the thing that successful game developers, do, we spend a lot of time looking at data and looking at, you know, what are the flows that leads to a conversion? so somebody's actually putting money into the system? how do we how do we balance those metrics such that we sort of get the most statistical value of, and we use, we use tools such as ad split testing, okay, where you run, run two versions of the game at the same time, and then you measure which one performs better? and then you make that diversion that everybody plays? tony morelan 22:16 yeah, yeah, no, that's great. i've heard that that is a pretty important aspect, not just in the gaming industry, but just with, you know, ads and marketing to do a b testing. chris benjaminsen 22:26 yeah, we even do something. it's called multi variant testing, right. and we should not go into the details, but it becomes very complex very quickly. tony morelan 22:33 sure, sure. so what other mobile game monetization models do you consider like, you know, premium paid apps or paid user acquisitions, you had mentioned that chris benjaminsen 22:43 we did experiment a little bit with premium paid apps, but it's a very, it's a very tough market. and, and it's not, it's not something where we found a lot of a lot of success, like we generally see more successful, and we can just sort of allow anyone to play the games, and not without having that limitation, right. and we do both interstitial based advertisement, which is unprompted and then rewarded video type advertisement, where the user gets a reward for watching an advertisement. but when a user sort of opts to watch an ad, right, you know, so you could imagine that, so this tony morelan 23:14 is during gameplay, there would be a moment where then a video would play, and they would watch that. chris benjaminsen 23:18 yeah. so a simple example could be you know, that you have just died. yeah. and you can revive by watching an advertisement and not paying a coin. okay. right. so giving the user the choice between, say, watching an advertisement and spending a bit of time versus spending a bit of their money, right, you know, so. and it's a very high value format. because the user has elected to watch an advertisement. so you know, the users there, yes, you know, they're engaged. and they're just sitting there waiting, right? so advertisements are typically willing to pay a high price for that type of advertising. tony morelan 23:54 and you'd mentioned interstitial ads. so explain what that is for someone who's new to game development? chris benjaminsen 24:00 yeah. so it's a bit like to have to get on television. so something is happening on your screen, and then suddenly does an advertisement and something else is happening, right? you know, so it's an ad that is that is shown to the user, like interstitial technically means an advertisement that runs before something starts, right. but it's used interchangeably in the games industry to mean like an ad before something starts on ad in the middle of something on that after something happened. okay, we try to be cautious of using those type of advertisements sort of out of order. like we don't want to interrupt a user while they're playing. yeah. so we will typically only put those in. so like, for whatever reason, your game session has ended, and you have just elected to press play again. and that's where we would put in those type of advertisements. you do have games out there, which are you can imagine you're playing a solitaire game and then put an ad pops up in the middle of it right and you have to sit down wait till you can continue your game and we try to stay away from that. tony morelan 24:55 i see. i see. what about subscriptions. have you guys read any subscription models on your games? so, yeah, we've chris benjaminsen 25:00 run a, we run a few experiments here. and it's a relatively new area of monetization for us. but we have run experiments where our games have been sort of presented as a games club. so rather than having advertisement or having, you know, purchases in the game, you can just play them completely for free if you had a subscription through a third party, right. and some of our debug games to the kind of stuff we're building now definitely lends itself well towards being able to support subscriptions. subscriptions to free to play games these days, mostly expresses themselves as season passes. so you like buy a season pass subscription, and then you get like, extra rewards while you play for a period of time. and then that time period is up. and then you know, you can buy the next season pass as well, or continue your subscription or whatever it is, right. you know, that's, that's the model of like, a, like a fortnight or those type of games. tony morelan 25:52 got it. so we've talked about in app purchase, aap, you know, there's another category to monetization called ia, which is in app advertising. and i think, under that falls, the, you know, the rewarded videos, these interstitial ads have also heard of something called offer walls. can you explain what is an offer wall? chris benjaminsen 26:11 yeah, we actually don't think we have any games library or footballs anywhere. but it's, it's basically, you know, you can get a reward in your game for doing another action. right? so again, it's user opt in the use of one something and find alpha wallets typically, like extra coins, or whatever in the game. and to get a get sort of a list of different options for things they could be doing right now to have some level of value. and that can go all the way from, you know, signing up to a website, all the way up to you know, committing yourself to four years of sirius xm radio in the us, oh, really, you know, or whatever. right? you know, and as there's different types of reward levels of that, right. so but they can be significant, right. so like that. it's, it's sort of a way for other companies to interact with that consumer and get them to do something that has value to them and date and pay you for that service. so it's a bit sort of a direct affiliate program or something like okay, okay. yeah. okay. tony morelan 27:11 interesting. so, you know, a lot of what we talked about now have been in game, you know, advertising for monetization. so what about paid user acquisition? so actually going out there and advertising for your game? so you guys are active in that area? chris benjaminsen 27:23 not particularly, it's something we are exploring, and it is something that i believe it's going to be very important for the future of frp. yeah. but historically, it's not something that we done to a huge extent. however, it is an area where we actually partner with the samsung galaxy appstore team, where we were looking at what is the best path for somebody who is publishing on the samsung galaxy app store to find sort of pockets of uses that can be that can be purchased. right? tony morelan 27:51 okay. okay. so of all these different ways that we've talked about when it comes to monetization, what would you say is the most effective way in why? chris benjaminsen 28:00 and so there's many answers to that what has been the most successful for frvr suffice advertisement, that has mostly down to the kind of games that we have been building historically. and the kind of games we've been building historically has mostly been the result of the capabilities for the platforms, our games has been available on, which, by and large, have not supported in app purchases. however, if you were to look at where is the most potential value, it's most definitely in the in-app purchase space, right? like the potential value that you can derive from a single user is larger in app purchases than any other way you can monetize that user, even with subscriptions, right? make some simple math, you know, rewarded video is considered valuable, right. but if you have a player, sort of watching 1000 ads a month, that might sort of in the united states be worth $20, or thereabouts, where $20 is not an uncommon average transactions for a central user to spending in app purchases, right. and people typically buy more than once sort of the opportunity to create a great business around in app purchases is much higher, and opportunity to create a great business purely from advertisement. tony morelan 29:08 got it? what would you say would be some advice that you can give for a developer looking to integrate iap? chris benjaminsen 29:15 like, like, it goes back to what we talked about earlier. right? you know, build deep experiences, right? sure. for like engagements, yeah, long engagements, and then then allow people to buy something that they, you know, feel like they're going to get value from a long period of time. right. and i think an important thing there is you must be trustworthy as a developer. yeah. right. you know, like, like, like, the player must trust you to not to screw them over. so if you have all kinds of other stuff into games, where they feel cheated, they're not going to give you their money. or if you cheat them, they're only going to do it once. right? yeah. you know, so you actually have to provide something that brings real value to the user. otherwise, they're, they're not going to engage with that thing. right. like they're not, they're not stupid. they are very clever. tony morelan 29:57 yeah. so let's talk about a how you guys go about acquiring games for frvr? what do you look for? chris benjaminsen 30:03 like we look for, for great teams. and i think it's important here that we are publisher, right? so we work with developers who take a fair amount of that total risk of building a game. sometimes you find the games, right. but predominantly, we work with great teams that is passionate about the game that they're working on. and that's, that's mostly what we look for. okay. and then we help though, those developers to go and, and build fantastic games, right. but due to the nature of our platform, at least how its structured right? now, you must basically build the game from scratch on top of stuff. so. so we're not a publisher that can sort of accept a game that somebody's already built, and say, yeah, we'll publish that it's more sort of a cool collaborative co development process, where we work together with developers to create fantastic things that work on top of our platform. tony morelan 30:51 you know, i heard somewhere that between 50 to 1000 games are added to the app store's every day. so i know it's a huge competition when it comes to games. what's your strategy for discoverability? chris benjaminsen 31:03 i like as we talked about, go to the user where they are, rather than trying to drag them to the app store where it's very competitive, right. and, like we use, we use all the tricks including branding, like we now have significant volume of people just searching for our games every day, both in app stores and on google, right. and i truly did that basic strategy of saying let's bring our games to where the users are, has been very, very successful for us, and allowed us to sort of get in front of all of these consumers without diving deep into cost positive user acquisition and things like that. and dental labs though, say they're hyper competitive, it gets very, very hard to get your game there, right. and people talk about all of these things like influencer, marketing, and whatever. and they don't call it user acquisition, but that's just what it is. right? you know, it's just a different way of doing it. right. you know, it's all of these hacks to try to get in front of the user. tony morelan 31:54 so are you using tools like creating promotional trailer videos and posting them on youtube? chris benjaminsen 32:00 we do we do that for some of our debug games, like a game like wells frvr. yeah. there's like there's a content team that creates content for social media. that being you know; youtube and facebook and i think we even have posts on tik tok. okay, tony morelan 32:14 so you guys have a ton of experience. now, when it when it comes to publishing games? i'm sure you faced a few challenges. can you share some stories and how you overcame those challenges? chris benjaminsen 32:24 a lot of our challenges is around scale. right? you know, so we have 70 games on 39 platforms. right. wow. and that didn't that in itself is a big number, right? to sort of, sort of manage this, like, that's more than 2000 combinations, almost 3000 combinations, right? we also have all of those games in 20 languages. so when you when you sort of factor in those combinations, that's 50,000 combinations, right? and if you want localize screenshots, yeah, that's no way you could do that with humans, right. and a lot of ways we try to solve with technology, right? that's what the what the frvr platform does, okay, encapsulate just the complexity of trying to do all of these things into sort of a unified platform. and that goes for what is a good experience on the samsung galaxy appstore, like the samsung galaxy appstore has specific capabilities and specific api's and specific sort of things that work particularly well on a platform. and if every developer had to consider that for all the platforms we were on, they would be spending none of their time making great games. so we encapsulate that complexity into our platform. and that's sort of the recipe that makes frvr work. that's sort of removing humans from the equation, basically, tony morelan 33:42 that's interesting. i mean, i can totally see how you guys are able to scale your reach with having so many games, but you've got quite a team behind. so it's not all automated, you still do need to have those employees to support that. chris benjaminsen 33:56 yeah, but like, 95% of those people work on the platform, right? to build the to build the infrastructure, right. and frvr is also a company that's been growing quite a lot, i think, okay, two years ago, we were we were fewer than 20 people right? so a lot of the people who actually worked at frvr now people who joined us in the last year tony morelan 34:15 so what are some of the trends that you've seen in the in the gaming industry chris benjaminsen 34:19 or hotels that there's a lot of them right you know, there's a like i think the status trend i see is when you have say and among us or a fall guys or a flappy birds come out and be successful, like, like older people who try to get success by just following that recipe. right? not realizing that the reasons those game were successful originally were sort of a bit of luck and timing. and typically some external factors, like among us grew with discord and discord grew it among us. yeah, right. and that was sort of sort of the game to play on that platform, right and all the other games in that in that category. by and large failed because it was just like it and not again. but that right and, and a thing i think a lot of people have forgotten is that the game industry is cyclical, right? so you get a new channel it comes out. it's very cheap and easy to get users on it initially. and then that's the value of that platform goes up, it just becomes more and more expensive, right. and people have sort of forgotten. that's how the games industry used to work because mobile came along. yeah. and stuck around for a very long time to do to sort of these stores that were tied to specific devices. right. which, which is something you didn't really have on a on a pc, where there was more open competition on who could sort of have an app store. tony morelan 35:40 yeah, yeah, for sure. so tell me what is in the future for frvr. chris benjaminsen 35:45 a lot more high-quality games? like that's basically our focus right now. we are very fortunate, we just closed out a round funding. wonderful. yeah, thank you. and like, the entire theme of that funding is we need, we need games of a completely different quality, right? so we are we are looking for fantastic studios who can come in and build games with sort of that depth that can support in app purchases. that's the thing that we really want to focus on. we want to want to have games that can have people play for years, not just once, right? tony morelan 36:18 yeah. so as far vr is seeing this growth, what are you guys doing related to diversity and inclusion? chris benjaminsen 36:26 and we do a lot of things, right, like diversity and inclusion is something that we try to sort of have both across our games and across our company culture, right? so it can be everything from i personally created the hex frvr game. so yeah, i got a nice email from somebody said, i love this game, but it can they call us i can see the different things, right. so making sure that you're aware of the different kinds of colorblind people can be sure, sure. and it also it also means a lot for hiring, like, like, what's the best candidate for the job is not necessarily the person that fits the checklist, the best that you see that you put on your yeah, other requirements. yeah, in like diverse teams perform better. so diversity is a is a virtue in the hiring process. and it can be advantageous to hire the more diverse candidate if you have an opportunity to hire too, and like, but it means a lot. like you have to be mindful of it everywhere. those like natural biases, right. now, a simple example of that is that the more bullet points you put on a on a job post about specific requirements, the less likely it is that females would, will apply for a job interesting, like a male candidate would sort of look at a long bullet point and see two things that good and go, yeah, i could totally do this, right? where if fema will see a long list and sort of say, i can only do two of these things i shouldn't apply for this. right. so you have to be mindful of those things all the way. tony morelan 37:52 interesting. yeah, i think giving someone the opportunity to really talk about their personality, and their value is probably the best way to go about finding that that good candidate. chris benjaminsen 38:02 yeah. and it's a big part of our it's a big part of our sort of, sort of, sort of hiring flow is the values. right? you know, we also a, a company in portugal, that doesn't behave like a portuguese company, this particular company, company structure in particular is very hierarchical, right. you know, some people might call it a bit old fashioned. that's not the company we are, that's not the company we want to be. so we want people that resonates with sort of a more flat structure, modern ways of working tony morelan 38:34 wonderful. so if someone is interested, either in working for frvr, or their a game studio that want to bring their games to you, what's the best way for them to reach out to frvr? chris benjaminsen 38:45 like, like, send me an email first, right? you know, and, you know, i'll redirect you to the right person, my email is chris@frvr.com. so it's fairly straightforward, right? like, always happy to chat with people who do fantastic things. tony morelan 38:57 yeah, that's great. and we'll include links in the show notes too much about what we talked about today and into frvr websites. so chris, i got to say, it was great to have you on the podcast. i love learning all about frvr and what you guys are doing but let me ask when you're not working for frp or what is it that you'd like to do for fun? chris benjaminsen 39:15 i find most of my spare time is taken up by you know, walking the dog, or, you know, cooking food if it's some like i'm probably not good at cooking food in the winter but you know, like i like to grill outdoors and whatever right you know, and i actually try to keep a fairly strict work life balance wonderful. so you know i am one of the people who like go into the office but mostly yes a way to not work while i'm at home. tony morelan 39:40 that's great. well hey, we're just about to hit the springtime of the year and soon will come summer so i'm sure you're going to enjoy lots of outdoor grilling when the when the season comes. chris benjaminsen 39:49 hopefully, you never know where they're somewhere in london. right? you know, that might be like two days where it's impossible. that's tony morelan 39:56 awesome. hey, chris, really appreciate you coming on the podcast today. chris benjaminsen 39:59 no, thank do so much for having me. closing 40:01 looking to start creating for samsung, download the latest tools to code your next app, or get software for designing apps without coding it all. sell your apps to the world on the samsung galaxy store. check out developer.samsung.com today and start your journey with samsung. tony morelan 40:17 the samsung developers podcast is hosted by tony morelan and produced by jeanne hsu.

      https://developer.samsung.com/developers-podcast/s03e04-chris-benjaminsen.html
      No Search Results
      No Search results. Try using another keyword.
      • <<
      • <
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • >
      • >>
      Samsung Developers
      Samsung Developers
      Quick Link
      • Android USB Driver
      • Code Lab
      • Galaxy Emulator Skin
      • Foldables and Large Screens
      • One UI Beta
      • Remote Test Lab
      • Developer Support
      Family Site
      • Bixby
      • Knox
      • Samsung Pay
      • SmartThings
      • Tizen
      • Samsung Research
      • SamsungOpen Source
      • Samsung Dev Spain
      • Samsung Dev Brazil
      Legal
      • Terms
      • Privacy
      • Open Source License
      • Cookie Policy
      Social Communications
      • Facebook
      • Instagram
      • Twitter
      • YouTube
      • Buzzsprout
      • Rss
      • Linkedin
      • System Status
      • Site Map
      • System Status
      • Site Map
      • facebook
      • instagram
      • twitter
      • youtube
      • buzzsprout
      • rss
      • linkedin

      Copyright © 2023 SAMSUNG. All rights reserved.