throbber
US009348572B2
`
`a2) United States Patent
`US 9,348,572 B2
`(10) Patent No.:
`Farm etal.
`(45) Date of Patent:
`May 24, 2016
`
`
`(54) REWARDING MOBILE APP INSTALLATIONS
`WITHOUT A SOFTWARE DEVELOPMENT
`KIT IN THE MOBILE APP
`
`.
`.
`.
`(71) Applicant: Tapjoy, Inc., San Francisco, CA (US)
`
`(72)
`
`Inventors: Christopher Paul Farm, San Francisco,
`CA (US); Brian Stebar, San Francisco,
`CA (US); Johnny Chan,San Francisco,
`CA (US); Steve Tan, San Francisco, CA
`(US)
`
`(73) Assignee: Tapjoy, Inc., San Francisco, CA (US)
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`8,458,656 BI*
`8,850,535 B2*
`
`6/2013 Liangetal. ww. TAT/118
`9/2014 Liberman ............ HO4L 9/3231
`713/186
`
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`KR
`KR
`KR
`
`20060018031 A
`20120081404 A
`20120090135 A
`
`2/2006
`7/2012
`8/2012
`
`OTHER PUBLICATIONS
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`USS.C. 154(b) by 0 days.
`
`Korean Patent Office, “Search Report” in application No. PCT/
`US2014/026748, dated Jul. 28, 2014, 14 pages.
`(Continued)
`
`(21) Appl. No. 14/205,807
`(22)
`Filed:
`Mar. 12,2014
`
`(65)
`
`Prior Publication Data
`US 2014/0282497 Al
`Sep. 18, 2014
`
`on
`Related U.S. Application Data
`(60) Provisional application No. 61/793,833, filed on Mar.
`15. 2013

`,
`
`(51)
`
`(2006.01)
`(2006.01)
`(2012.01)
`
`Int. Cl.
`GO6F 9/45
`GO6F 9/445
`G06 30/02
`(52) U.S.CL
`CPC GO06F 8/61 (2013.01); G06Q 30/02 (2013.01);
`GO6F 9/445 (2013.01)
`,
`,
`,
`,
`(58) Field of Classification Search
`CPC ic eeescesessccereereeteesecssesseseeesaes GO06F 8/60-8/70
`USPC loc cceesereescneceseecnetenenseeseneees 717/168-178
`See application file for complete search history.
`
`Primary Examiner — Matthew Brophy
`(74) Attorney, Agent, or Firm — Hickman Palermo Becker
`Bingham LLP
`ABSTRACT
`(57)
`In an embodiment, a method comprises transmitting, from a
`mobile computing device to a server computer, first data
`identifying a selection at the mobile computing device of an
`app that is not associated with an identification module asso-
`ciated with the server computer that would allow the server
`computer to identify the device; receiving, at the mobile
`computing device from the server computer, second data
`identifying zero or more appslackingthe identification mod-
`ule that have been selected previously using the mobile com-
`puting device; determining whether a protocol handler for
`each of the zero or more apps lacking the identification mod-
`ule is in the mobile computing device; in response to deter-
`miningthat a particular protocol handler for one ofthe appsis
`in the mobile computing device, transmitting to the server
`computer a message specifying that the particular protocol
`handleris in the mobile computing device; communicating a
`rewardto any of: a particular oneofthe apps that is associated
`with the particular protocol handler, or a user account asso-
`ciated with the mobile computing device; wherein the method
`is performed by one or more computing devices.
`
`27 Claims, 9 Drawing Sheets
`
`
`
`
`rsaae|Teer
`
`Service Provider
`
`/ 804 Device 1D: Click. noting:
`em
`
`|
`"App with no 1D Module”
`602 Device ID:“Any
`|
`| [__LDibesscts”|804Listof IDM-ess apps|
`
`
`
`U“Glocmmmcsodtsaver |
`[ettmotethandes
`|
`computer at install or open);
`|
`protocol handlers
`| protocol handler become known |
`i
`to.0S
`i
`
`|
`
`610 Receive 10 ofinstalled |
`supported protocol handler|
`ret 42 Communicate reward|
`
`
`
`
`
`
`
`
`Supported
`protocolhandler
`present?
`
`{Repeat untilall
`checked)
`
`Page 1 of 23
`
`ironSource Exhibit 1022
`ironSourceLtd. v. Digital Turbine Inc. PTAB-PGR2021-00096
`
`
`—————— 818 Failure notification, fneeded|
`
`

`

`US 9,348,572 B2
`
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`9,069,979 B2*
`6/2015 Srinivasan ............. GO6F 21/62
`
`2003/0084439 Al*
`5/2003 Perkinset al... TAVATT
`2010/0280955 AL* 11/2010 Ross veces: GO6F 21/34
`705/64
`2011/0185354 AL*
`7/2011 Tanneretal. occ TAT/AT8
`SerOsee AL
`OMT ASCEAcen 705/141
`2012/0191569 Al*
`7/2012 Shah cess G06Q 30/0641
`705/26.41
`2013/0036458 Al*
`2/2013 Liberman ............. HO4L 9/3231
`726/6
`3/2013 Thavasi ............... GO6F 21/31
`7126/7
`3/2013. Thavasi vcs GO6F 21/32
`726/7
`
`2013/0067546 A1*
`2013/0067547 AL*®
`
`2013/0191887 AL*
`
`2014/0025469 Al*
`
`2014/0188980 Al*
`2014/0236742 Al*
`
`*
`
`2014/0282358 AL®
`2014/0282497 AL*
`
`7/2013 Davis ccc HO4L 63/0823
`72615
`1/2014 Mishuku........... G06Q 30/0225
`705/14.26
`........... 709/203
`7/2014 Longhenry etal.
`8/2014 Sakuma cesses G06Q 30/0277
`705/14.73
`7
`9/9
`9/2014 Mowaltt acrscrwrcen OOood
`9/2014 Farmetal. weecessceeee TIT/178
`
`OTHER PUBLICATIONS
`«ots
`a
`Claims in Korean application No. PCT/US2014/026748, dated Jul.
`2014, 6 pages.
`
`* cited by examiner
`
`Page 2 of 23
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 1 of 9
`
`US 9,348,572 B2
`
`eseqejeqOLT
`
`PIT
`
`
`
`JayndwogJaAlas
`
`901
`
`uonnquisigddySOT
`
`Jajndwo4
`
`b‘Sld
`
`
`
`BulAjquap|aa|Aeq
`
`
`
`Wuyvol
`
`
`
`JOOSGENKZT
`
`OMAN
`
`JaseapySOT
`
`Jajndwo9
`
`col
`
`algo
`
`ad1Aeq]
`
`cOL
`
`sIgoW
`
`adlAeq
`
`Page 3 of 23
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 2 of 9
`
`US 9,348,572 B2
`
`
`
`
`
`abedgan772
`
`qlac1aq
`
`aseqeye;“Be=qejeqOLL[woo'folder-mam‘*6'9]
`
`ejeq/,<e0edseweu>y/:,.dde,=Je1ye>
`
`MUDPL?
`
`
`
`JayndwogJealased
`
`eye
`
`
`
`SOL1B|PUBH[OD0}O1dBO?
`
`
`
`JE|PUEH[090}01,FOZ
`
`éOld
`
`
`
`Sd1A9QSIIGOWZOT
`
`Page 4 of 23
`
`yOL
`
`wunMasSOe
`
`
`
`Bulkjquap|ealAeq
`
`vi
`
`qlao1naq
`
`ddy3sulqZ0Z
`
`JOAlasGaNZEL
`
`
`
`uleWOpJO}“BS
`
`woo'holde}
`
`ylOMISN
`
`ql1Asq
`
`‘
`
`
`
`PEGIIED‘JOLNUSPISDIASP95)
`
`
`aeenea|‘yepasied
`
`
`
`BegWWe91deou9}uy
`
`JISMOlGO12
`
`eed
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 3 of 9
`
`US 9,348,572 B2
`
`
`
`pajeje!pue‘yqssJapiaoidaolasesuimpoxuy‘ddyEGF
`
`
`
`
`
`
`
`JepiAoidBd1AeSUjIMpayeloosse
`
`
`
`QdIAapUOpalsjsiBalYpayeysulaeJajpueyjooojoud
`
`
`
`paysneuxe|qun
`
`
`jooojoldyxeuALLOTE
`
`
`
`adIAap0]JsanbassasnedpajogjasUaYyM
`
`
`
`-B]eppue‘jeqe|e‘VayNUep!jodo}O/de
`
`
`
`
`
`sapnjoutyeu)Yul]sulBJUODoBedganFOF
`
`
`
`sanbeypaziuBooauun
`
`SolAep
`
`JoasuodsaoNBOE
`
`SU}SHOAU!0}JAWOOF
`
`g[iIqoway}uo}sanbal
`
`
`
`Ve‘Sid
`
`
`
`abedgamsassacoeSalAapaligoZe
`
`
`
`
`
`
`
`BOIASPSOAIBDLJaINdWODJANESHZE
`
`
`
`
`
`
`
`
`
`
`
`Guawebebus-aJo]‘“Ba)ddepuodas0}
`
`yoeg||edBIAB}eppueJayluapl
`
`
`
`sayquep!eaeenbiunsule}goyasOTE
`
`BjepJeyjopuesaynuaplsaiAapsessedyqs-jeuondaBTS
`
`
`
`
`
`
`BIASWO}
`
`
`
`PUBJOAJAS0}YORGII20sejnoexeyasSTF
`
`
`
`eleppueseyjuaplsolaapsepiaoid
`
`
`apooddeaageuseBujuunsyqsjouoyounsPre
`
`
`
`
`
`Jayguep!jooojoiduopeseg‘peljeysulIVejpuey
`
`
`
`jaqeHuiyoyewHuyosjepuopaseqjsenbausidacaqul
`
`
`
`
`
`
`
`
`
`jos0}01dSayonulAjeonewoNesolAepayiqoy|ZTE
`
`
`
`
`
`eveOg
`
`geSls
`
`Wwol4
`
`vee
`
`Page 5 of 23
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 4 of 9
`
`US 9,348,572 B2
`
`jooojoidumouyBulfyloadsTYSplAdldZPE
`
`
`
`
`919009[e007BIEP8101SHEE
`
`
`
`ddejouoyeyeysulasneyOPe
`
`JUSWASILOANRBIA
`
`ajqnedwodeUlIMpelqeue
`
`
`
`Jajpueyjooojold
`
`
`
`
`
`semjeuddeo}uojoun)uojejsibespue
`
`JUSWWASIL@APeBIApaljelsul
`
`vLE401g
`
`OLVVE
`
`VE“Old
`
`abelo}s
`
`
`
`OPIS-JBAIESpepsjesSem
`
`
`
`ddeyoiumBuneoipul
`
`S|jesulJesOE
`
`
`
`ddepayloads
`
`
`
`9019VE“OsSUSSHISIA~OJOST]BEE
`
`
`
`ZOEJEPIAOIdBdIAJASJO
`
`
`
`ulujimabedgan,
`
`AISBdlAlaS
`
`
`
`
`
`ddeA1aaoasiq(991A8pUOpuno|
`
`ae‘Sis
`
`ajquedwodON)OFF
`
`
`
`Ja|pueyjosojold
`
`Page 6 of 23
`
`
`
`JasnyonysulJoasnedZEEE
`
`
`
`
`
`$iyeu}ddepayloads|je}Sul0}
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 5 of 9
`
`US 9,348,572 B2
`
`3zp|JOSANOWSIN
`
`2
`
`FOVYOLSWOMNIV
`
`snd
`
`
`
`MYOMLANFOVAYSLNIvOr
`
`
`
`NOLLVOINNWNOSYOSS300"d
`
`ySls
`
`AV1dSI
`
`VIP
`
`
`
`SOIASGLAdNI
`
`OV
`
`yOSYND
`
`TOXLNOD
`
`Page 7 of 23
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 6 of 9
`
`US 9,348,572 B2
`
`puesyeysulddyHG
`
`EM488090S
`
`
`(aplAoiddIAJ8S0}JUas
`ejepadlaapou)suedo
`LYdivesST
`
`ddyOTS
`
`ddy71S
`
`asieapy
`
`605
`
`
`
`‘qlddy‘gq,salaeqOFS
`
`
`
`‘Buyjou‘49119
`
`v2INPOWGIOUYIMddy,,
`
`(payeysul)ddyOG
`
`UOHeOyHUap|PCS
`
`
`
`BIIAIBSJO}a/NPo|
`
`JODIAO!d
`
`plemay
`
`
`
`SOA,JO}
`
`[O90}014OTS
`
`Jajpuey
`
`
`
`HunjeisdoFTG
`
`wa}shS
`
`
`
`JaNdwo4yJeAlasOOT
`
`
`
`
`
` aa1neqSuyndwogajigowZOSG‘Old
`
`
`
`
`
`jooojoidsesiboy7ZS
`
`Jajpuey
`
`Page 8 of 23
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 7 of 9
`
`US 9,348,572 B2
`
`
`
`siajpuey|ooo}oJd
`
`809
`
`payoddns
`
`ie|gunyeoday)
`
`(payoeyo
`
`
`
`papaauJ!‘uoHeoyoueinesO79
`
`ijuasaid
`
`
`Jajpueyjooojod
`
`
`Jajpueyjooojoidpayoddns
`
`
`
`PJEMA!BJESIUNWWODZT9
`
`»éS¥O1J9SSOCI
`
`JOsoUaSeldJO}SEO[10d909
`
`SJa|pUeYjOdO}OJdWay}pue
`
`sddessel-iql101S!1POO
`
`ou)suadopuesyeisulddy#15
`
`J8AJOS0]payeoluNWWOdeyep
`
`
`
`
`
`Auy,,:G|891N9qZ09
`
`
`
`
`
`‘Buljou‘49119:q}8a1AeqTO9
`
`v8|NPOWG}ouYIMddy,
`
`(payeysul)ddyFOS
`
`JO}9INPOWAIFES
`
`
`
`JEPIAOIgBIIAI8S
`
`
`
`JajndwodJaAlasO07
`
`9‘SIs
`
`Page 9 of 23
`
`‘(UedoJO|je}SulJea}Ndwos
`
`P9|JEISUlJO|SAls9ayOLO
`
`SOoO}
`
`
`
`UMOUYBLUODAQJa;pUeYjod0}O/d
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 8 of 9
`
`US 9,348,572 B2
`
`alosddyOT7
`
`
`
`JayndwogJanespyPTZ|
`
`WasSO!90Z
`
`i|
`
`re ee
`
`
`
`
`
`ddyaosddy907
`
`
`
` rs||auayosTNWoIsngZTZIPoo.NNNJ(iasmaapy)ddyOTZ
`
`
`
`a
`
`(aysiiqnd)ddyPOZ
`
`Page 10 of 23
`
`
`
`
`

`

`U.S. Patent
`
`May24, 2016
`
`Sheet 9 of 9
`
`US 9,348,572 B2
`
`
`
`JENdWODJaAIESpyPLT
`
`
`
`
`
`aosddyOTE(9)
`
`(ploupuy)8‘OJ
`
`cr
`
`i|i|||
`
`
`(Jasmeapy)ddyO18
`re|(iaysiqnd)ddyFoe
`ddyaosddy09
`|xdSPlopuyS08||
`9019ZOS
`
`Page 11 of 23
`
`
`
`

`

`US 9,348,572 B2
`
`1
`REWARDING MOBILE APP INSTALLATIONS
`WITHOUT A SOFTWARE DEVELOPMENT
`KIT IN THE MOBILE APP
`
`BENEFIT CLAIM
`
`This application claims the benefit under 35 U.S.C. §119
`(e) ofprovisional application 61/793 ,833, filed Mar.15, 2013,
`the entire contents of which are hereby incorporated by ref-
`erence asif fully set forth herein.
`
`FIELD OF THE DISCLOSURE
`
`The present disclosure generally relates to data processing
`techniques for connecting data associated with mobile web
`browser activiies and data associated with native mobile
`
`device application activities.
`
`BACKGROUND
`
`The approaches described in this section are approaches
`that could be pursued, but not necessarily approaches that
`have been previously conceivedor pursued. Therefore, unless
`otherwise indicated, it should not be assumedthat any of the
`approaches described in this section qualify as prior art
`merely by virtue of their inclusion in this section. Tracking
`the activities of users that download and engage with com-
`puter program applications (“apps”) for mobile computing
`devices is an important goal of such app vendors. One
`approach used to track such activities is to obtain unique
`device identifiers for the end users’ mobile computing
`devices. The unique device identifiers in the context of
`APPLE IPHONEdevices running APPLE’s iOS operating
`system take a variety of forms,
`including UDID, MAC
`Address, advertisingIdentifier, Vendor ID, and other equiva-
`lent values or fields that are sufficiently unique to identify
`individualdevices (collectively, “UIDs”). In current practice,
`server computers that are in contact with Apple iOS based
`apps are able to request and obtain any of these UID values
`from mobile computing devices, however, only the UDID is
`accessible by mobile browsers on Apple iOS based devices
`through a provisioning profile. Therefore, on Apple iOS
`devices, the ability to associate app-based activities with
`browser-based activities for individual users is hindered
`
`whenever app-based activities do not have access to the
`UDIDofa given device.
`A protocol handler provides communication services
`allowing one computing device or software application to
`send data to other devices or software applications under
`specific communication rules specified by the protocol.
`Simple Mail Transfer Protocol (SMTP) and File Transfer
`Protocol (FTP) are examples of protocols that may be asso-
`ciated with protocol handlers, which interpret messages or
`requests that conform to those protocols. Protocol handlers
`have been used for the purpose of launching apps or passing
`data on or between mobile computing devices or other
`devices. For example, it has been possible fora first app to
`invoke a function of a second app by using an inter-app
`messaging facility to send a request, formatted according to
`the second app’s protocol. However, these mechanisms are
`not alwayspractical in particular contexts.
`
`SUMMARY
`
`The appended claims may serve as a summary ofthe inven-
`tion.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In the drawings:
`FIG.1 illustrates a networked computer system arrange-
`ment that may be used to implement an embodiment.
`FIG.2 illustrates further details of an embodiment of the
`
`system of FIG.1.
`FIG. 3A illustrates a computer-implemented process that
`maybe used to implement an embodiment.
`FIG. 3B illustrates another embodiment of a computer-
`implemented process that may be used to implement an
`embodiment.
`
`FIG.4 illustrates a computer system that may be used to
`implementaspects of an embodiment.
`FIG.5 illustrates a networked computer system that may be
`used to implement IDM-less distribution of an advertiser’ s
`apps using apps on mobile computing devices which have
`identification modules (IDMs)installed in a publishing app.
`FIG.6 illustrates a process of configuring apps on mobile
`computing devices to support distribution of advertisements.
`FIG. 7 illustrates request and response communication
`between a device, ad server computer, and app store in an
`embodiment in which APPLE IOSis the operating system of
`the mobile computing device.
`FIG. 8 illustrates request and response communication
`between a device, ad server computer, and app store in an
`embodiment in which ANDROIDis the operating system of
`the mobile computing device.
`
`DETAILED DESCRIPTION OF EXAMPLE
`EMBODIMENTS
`
`In the following description, for the purposes of explana-
`tion, numerousspecific details are set forth in order to provide
`a thorough understanding of the present invention. It will be
`apparent, however, that the present invention may be prac-
`ticed without these specific details. In other instances, well-
`knownstructures and devices are shown in block diagram
`form in order to avoid unnecessarily obscuring the present
`invention.
`
`1. General Overview
`
`In an embodiment, a data processing method comprises:
`during a first execution ofa first app that is configured with an
`identification module, the first app requesting one or more
`advertisements from an ad server computer; receiving, from
`the ad server computer, an electronic advertisement compris-
`ing areference to a second app, wherein the second appis not
`configured with the identification module; displaying the
`electronic advertisement within thefirst app; receiving input
`selecting the electronic advertisement; sending to the ad
`server computer a message specifying that
`the ad was
`selected; receiving andinstalling the second app, wherein the
`second app is configured with an app-specific software unit;
`during a second executionofthe first app, receiving from the
`ad server computera list of app-specific software units that
`are paired with one or more click identifiers that are associ-
`ated with the device, wherein each of the click identifiers
`indicates a previousselection ofan app that is not configured
`with the identification module; determining whetherthe sec-
`ond app is installed by matching an identifier of the app-
`specific software unit of the second appto the list of app-
`specific software units that was received from the ad server
`computer; in response to detecting that the second app is
`installed, sending an app ID for the second appto the ad server
`computer and receiving a reward.
`
`Page 12 of 23
`
`

`

`US 9,348,572 B2
`
`3
`In one feature,the first app and second app are configured
`for operation with APPLE IOSoperating system software and
`wherein the app-specific software unit is a registered custom
`URLscheme.
`
`In one feature,the first app and second app are configured
`for operation with ANDROID operating system software and
`wherein the app-specific software unit is an app-specific soft-
`ware package.
`In one feature, the method further comprises receiving the
`selection of the app via an offer wall that is hosted bythefirst
`app. In one feature, the method further comprises storing the
`first data at the server computeraspart of a recordofpotential
`app conversion transactions. In one feature, the click identi-
`fiers comprise click keys. In one feature, the reward com-
`prises any one or moreof: virtual goods; virtual services; or
`badgesor other virtual objects.
`In an embodiment, a method comprises transmitting, from
`a mobile computing device to a server computer, first data
`identifying a selection at the mobile computing device of an
`app that is not associated with an identification module asso-
`ciated with the server computer that would allow the server
`computer to identify the device; receiving, at the mobile
`computing device from the server computer, second data
`identifying zero or more apps lacking the identification mod-
`ule that have been selected previously using the mobile com-
`puting device; determining whether a protocol handler for
`eachof the zero or more apps lacking theidentification mod-
`ule is in the mobile computing device; in response to deter-
`mining that a particular protocol handler for one ofthe appsis
`in the mobile computing device, transmitting to the server
`computer a message specifying that the particular protocol
`handleris in the mobile computing device; communicating a
`reward to any of: a particular one ofthe apps that is associated
`with the particular protocol handler, or a user account asso-
`ciated with the mobile computing device; wherein the method
`is performed by one or more computing devices.
`Embodiments may also encompass computer apparatus,
`non-transitory data storage media storing instructions which
`when executed cause performing the disclosed methods, and
`other features and aspects that will become apparentfrom the
`following description.
`
`2. Structural & Functional Overview
`
`FIG.1 illustrates a networked computer system arrange-
`ment that may be used to implement an embodiment. In an
`embodiment, the computer system generally comprises one
`or more mobile computing devices 102, a network 104, at
`least one server computer 106 coupled to a database 110, one
`or more app distribution computers 105 and one or more
`advertiser computers 108.
`Each of the computing devices 102 comprises a smart-
`phone,tablet computer, netbook computer, laptop computer,
`or other movable computer, or computing devices that are
`typically stationary such as desktop computers or worksta-
`tions. Examples include APPLE IPHONEand IPAD devices,
`ANDROIDdevices, etc. Typically wireless links couple the
`mobile devices 102 to network 104, which broadly represents
`one or more local area networks, wide area networks, inter-
`networks, global interconnected internetworks such as the
`public internet, or a combination thereof. For purposes of
`illustrating a clear example, two (2) mobile devices 102 are
`shown in FIG. 1 and one cloud symbolrepresenting network
`104 is shown, but practical implementations may use thou-
`sands or millions of mobile devices and any numberofinter-
`connected networks.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`App distribution computer 105 is associated with a devel-
`oper, author or publisher of a mobile device application com-
`puter program or app, or a distribution channel such as a
`centralized app downloading service; examples include the
`APPLE APP STORE and GOOGLEPLAYservice. The app
`may be a gameapp, utility app, product-related app, or other
`app. Typically the app developer, author or publisher desires
`to provide advertising within the graphical user interface
`displays of the app, or is willing to enable certain functions,
`options or features in the app in exchange for display of
`advertising within the app. The advertiser computer 108 may
`serve ads to apps installed on mobile devices 102 directly or
`the server computer 106 may serve the ads. In somecases the
`apps require integration of an identification module for
`proper operation with the advertiser computer 108.
`Server computer 106 may be owned and operated by an app
`vendor, advertising network operator, or other party other
`than users who ownor operate the mobile devices 102. In an
`embodiment, server computer 106 hosts at least a web server
`112 and a device identifying unit 114, which is configured to
`perform the processes herein associated with obtaining
`device identifying information from the mobile devices 102.
`In oneparticular embodiment, server computer 106 is asso-
`ciated with an advertising networkservice that directs adver-
`tisements to apps that use or are coupled to an identification
`module provided by or associated with the server computer
`that would allow the server computerto identify the device. In
`various embodiments, the identification module may com-
`prise an application programminginterface (API) or software
`development kit (SDK) defined by the advertising network
`service. An API or SDKare merely convenient examples; the
`identification module may comprise any executable code seg-
`mentthat the server computerassists in placing on the mobile
`computing device for interaction with an app using the tech-
`niques herein.
`In a commercial embodiment, the service is Tapjoy, Inc.,
`San Francisco, Calif. Advertisers associated with computer
`such as advertiser computer 108 place advertisements with
`the service provider. Publishers, such as software developers,
`game developers, or vendors of products or services, cause
`authoring and publication of apps that may provide non-
`advertising functions, suchas games. The publishing apps use
`or are associated with the API or SDKdefined by the service
`provider. The service provider routes advertisements from
`advertiser computer 108 to the apps via the API or SDK.
`Compensation flows between the advertiser, service provider,
`and publishers according to known advertising compensation
`models. Users of mobile devices 102 benefit from use of the
`apps and exposure to products or services that may interest
`them. For example, users may receive rewards, and advertis-
`ers may benefit from greater integration of apps and services
`that the advertisers offer. Users also interact with ads served
`from network 104.
`Server computer 106 may be coupledto a database 110 that
`is configured to store data obtained from the mobile devices
`102.
`FIG.2 illustrates further details of an embodiment of the
`
`system of FIG. 1. In an embodiment, one of the mobile
`devices 102 hosts, executes or otherwise comprisesa first app
`202, second app 206, and mobile web browser 210. First app
`202 registers a protocol handler 204 with the mobile operat-
`ing system and 105 the app distribution computer. Theregis-
`tered protocol handler 204 is configured to respond to mes-
`sages or requests that are tagged with a protocol identifier
`prefix that routes messages directly to thefirst app 202 orits
`registered protocol handler 204. Thefirst app 202 also utilizes
`SDKcode 205 that is configured to perform special process-
`
`Page 13 of 23
`
`

`

`US 9,348,572 B2
`
`5
`ing, further described herein, when messages or requests in
`the protocol also include a label or namespace value that
`signifies a request for special processing. Second app 206 has
`a registered second protocol handler 208 that is configured to
`respond to messages or requests that are tagged with a pro-
`tocol identifier that uniquely identifies the second apporits
`protocol handler 208. Second app 206 may comprise SDK
`code 207 that is configured to perform special processing for
`requests in the second protocol that include the label or
`namespacevalue that signifies special processing, as further
`described.
`
`For purposesofillustrating a clear example, FIG. 2 shows
`two apps 202, 206, protocol handlers 204, 208, and instances
`of SDK code 205, 207, but other embodiments may include
`any number of apps based upon the amount of memory or
`other storage that is available in the mobile device 102. For
`purposesofillustrating a clear embodiment, FIG. 2 does not
`show distribution platforms that may be used to assign the
`protocol handlers to the OSinstallations. Further, for conve-
`nience, FIG. 2 refers to code 205, 207 as SDK code, but in
`other embodiments the code 205, 207 may comprise any
`other identification module that the server computer can
`place, or assist in placing, on the mobile device to assist in
`determining certain identifying information as
`further
`described herein.
`
`SDK code 205, 207typically is statically linked or dynami-
`cally linked to the rest of the code of the first app 202 and
`second app 206, respectively, at the time that a developer
`prepares production versions of executables ofthe first app
`and second app. Consequently, at runtime, the SDK code 205,
`207 runs as native code in the mobile device 102. However,
`the source code for SDK code 205, 207 typically is defined by
`the owneror operator of the server computer 106 and is not
`always known to the app developer, author or publisher,
`except possibly with respect to public interfaces or APIs that
`the owneror operatorof the server computerelects to publish
`or disclose.
`
`Browser 210 may comprise a program, application, or
`script configured to send and receive HTTP requests and
`responses and to render HTML documents in a display unit of
`the mobile computing device 102. For example, browser 210
`mayrequest a web page 212, such as a home pageor other
`page ofthe domain www.tapjoy.com, commercially available
`from Tapjoy, Inc., San Francisco, Calif., which may contain
`one or more links 214, which are configured and used as
`further described herein.
`
`In the embodiment of FIG. 2, server computer 106 com-
`prises a web server 112 that is configured in the server com-
`puters of the public Domain Name System (DNS)as respon-
`sive to HTTP requests that
`include the domain name
`tapjoy.com, or the equivalent. Web server 112 may operate
`underthe control or direction ofa device identifying unit 114,
`which may comprise logic or program codethat is configured
`to perform the server-side operations that are further
`described herein with respect to FIG. 3A.In particular, device
`identifying unit 114 is configured to generate web page 212 as
`described below and to generate one or more links 214,
`dynamically if necessary, as further described herein for FIG.
`3A.
`
`FIG. 3A, FIG. 3B illustrate embodiments of a computer-
`implemented process that may be used to implement an
`embodiment. For purposesofillustrating a clear example, the
`process of FIG. 3A, FIG. 3B is described herein with refer-
`ence to the system of FIG. 1, FIG. 2, but other embodiments
`maybe used in connection with different computer arrange-
`ments that yield equivalent or similar functional results.
`Page 14 of 23
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`Referring first to FIG. 3A, at block 302, a mobile device
`accesses a web page associated with a service provider. For
`example, mobile device 102 of FIG. 1, FIG. 2 accesses the
`webserver 112 of the server computer 106. In one particular
`example, an IPHONE device user might use the SAFARI
`browser built into the IPHONE device to access the website
`www.tapjoy.com. Typically the mobile device 102 accesses
`the web page associated with the service provider for pur-
`poses of confirming an app that the mobile device previously
`downloaded.
`Block 303 indicatesthatat least one mobile app, which has
`been linked with the service provider’s SDK,andhas a pro-
`tocol handler, has been installed on the device. For example,
`at any time prior to execution of block 304 and subsequent
`functional blocks, a user of the mobile device selects, down-
`loads andinstalls a mobile app that has been linked with the
`service provider’s SDK by the app publisher, and that
`includesa related protocol handler.
`In an embodiment, the protocol handler associated with the
`mobile app is configured to use or respond to messages,
`requests or calls that identify a particular protocol associated
`with the mobile app, and the SDKis configured to process
`certain kinds of requests that carry a particular label or
`namespace value that has been defined by the service pro-
`vider, owner or operator of server computer 106. For
`example, at the time of compiling an executable production
`version of the app, the app publisher authors and/or registers
`a protocol handlerfor the app’s protocol, and alsostatically or
`dynamically links the app with executable code comprising
`the API or SDK,so that the resulting app executableis inte-
`grated with executable code for functions of the API or SDK.
`For purposesof illustrating a clear example, the following
`description refers to performing certain functions using an
`SDKthatis integrated with the protocol handler and/or app.
`The protocol handler comprises a program,set of routines,
`or other program codethat can respondto requests that carry
`protocolidentifiers associated with that particular handler. In
`an embodiment, the owner or operator of server computer
`106, or the services it provides, requests or requires publish-
`ers of apps to use orregister a protocol handler thatis desig-
`nated within their app before the publishers are able to use
`services, such as an advertising network, that are offered
`through the server computer. Typically the app publisher pro-
`vides a copy ofthe designated app or protocol identifier to the
`owneror operator of the server computer 106 for reference,
`validation or other purposes. Consequently, the server com-
`puter 106 is aware ofthe identity ofall apps andtheir protocol
`handlers that are configured to use services of the service
`provider that ownsor operates the server computer, and can
`seek to address the app as needed.
`An example of a protocol identifier, for a protocol handler
`associated with a mobile app named App1, is “app1://’. Other
`examples are described in other sections of this document. At
`the time ofinstallation, the protocol handler registers with the
`operating system ofthe mobile device using registration func-
`tion calls that are defined by the operating system. Through
`registration, the operating system creates a recordofthe exist-
`ence of the protocol handler and the protocol identifier with
`whichit is associated. Thereafter, when an inbound request
`arrives that specifies a particular protocol identifier, the oper-
`ating system is capable of passing the request to a protocol
`handler that matches the specified protocolidentifier.
`Asindicated in block 304, the web page that was accessed
`at block 302 contains a request link that includesa particular
`protocolidentifier, a label, and data. In an embodiment, a user
`of the mobile device invokes the request link by selecting a
`function, button or other GUI widget associated with com-
`
`

`

`US 9,348,572 B2
`
`8
`generating a succession of requests 214, each identifying a
`different possible protocol handler previously registered with
`the mobile device by an app publisher, until the mobile device
`is able to invoke a corresponding installed and designated
`protocol handler. Any numberof links may be created and
`used and in a practical embodimentdozens of apps and pro-
`tocols might need to betested.
`Blocks 306, 308, 310, 312, 304 represent a loop that cor-
`responds to the iterative protocol testing process outlined
`above. In an embodiment,at block 306, the web page config-
`ured as seen at block 304 issues a request by providing a link
`that is formatted according to a particular protocol. In an
`embodiment, requests have the format of a uniform resource
`identifier (URI). An examplelink 1s: app1://tapjoy_register/
`100423b44cd3387a33 where “app1”is a protocol identifier,
`“tapjoy_register” is a label or signaling string or namespace,
`and “100423b44cd3387a33”is a data value that is useful in
`
`7
`pleting a designated process. For example, the user may have
`directed the browser 210 to contact a web page 212 hosted by
`the server computer 106 that guidesthe user through a process
`ofregistering with a service provided by the server computer.
`The registration process might involve collecting, among
`other things, a username and/or email address for purposes of
`identifying the holder of an accountor the user of a device. At
`the conclusion of the registration process, the web page 212
`might contain a prompt such as, “To complete registration,
`click here to continue.”In responseto selecting the prompt,
`the link 214 is invoked.
`The data in link 214 may be any data that is necessary for
`performance of any of the other functions that have been
`previously described. For example, the data may comprise a
`click identifier that indicates a location within the web page,
`a function that the user invoked by making a selection, or
`other information about what the user was doing or attempt-
`ing to do. Additionally or alternatively, the data may represent
`any other available information about the device or the user
`suchas user e-mail address or username, or other values. The
`data need not permanently identify the device; for example,
`the data could include a temporary identifier such an adver-
`tisingIdentifier. In an embodiment, links or requests are com-
`municated from the mobile device to the server computer 106
`using a protocol that is stateless in the manner that HTT

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket