U.S. patent application number 14/177823 was filed with the patent office on 2014-08-14 for data collection and targeted advertising systems and methods.
This patent application is currently assigned to Intertrust Technologies Corporation. The applicant listed for this patent is Intertrust Technologies Corporation. Invention is credited to Prasad M. KHAMBETE, Sanjeev TENNETI.
Application Number | 20140229277 14/177823 |
Document ID | / |
Family ID | 41255328 |
Filed Date | 2014-08-14 |
United States Patent
Application |
20140229277 |
Kind Code |
A1 |
KHAMBETE; Prasad M. ; et
al. |
August 14, 2014 |
DATA COLLECTION AND TARGETED ADVERTISING SYSTEMS AND METHODS
Abstract
Embodiments of a mobile device and server system are described.
The mobile devices communicate with the server system and present
targeted content, such as advertisements to the mobile device
users. The content is targeted based on usage statistics stored on
the server system which were previously collected from the mobile
device. The server receives the usage statistics collected from the
mobile device, makes inferences about preferences of users by
tracking application and/or content usage behaviors of the users,
generates recommendations for advertisements targeted toward the
users of the mobile devices based on usage statistics; and
transmits the recommendations to one or more of the mobile devices
for presentation to the user(s).
Inventors: |
KHAMBETE; Prasad M.;
(Cupertino, CA) ; TENNETI; Sanjeev; (San Ramon,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Intertrust Technologies Corporation |
Sunnyvale |
CA |
US |
|
|
Assignee: |
Intertrust Technologies
Corporation
Sunnyvale
CA
|
Family ID: |
41255328 |
Appl. No.: |
14/177823 |
Filed: |
February 11, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12433881 |
Apr 30, 2009 |
8660539 |
|
|
14177823 |
|
|
|
|
61049030 |
Apr 30, 2008 |
|
|
|
61075304 |
Jun 24, 2008 |
|
|
|
61074995 |
Jun 23, 2008 |
|
|
|
Current U.S.
Class: |
705/14.52 |
Current CPC
Class: |
G06Q 30/0254 20130101;
G06F 16/337 20190101; G06Q 30/02 20130101; G06F 16/9535 20190101;
G06F 16/335 20190101 |
Class at
Publication: |
705/14.52 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02 |
Claims
1. A mobile telecommunications device comprising: a display for
displaying content to a user; one or more input devices for
collecting input from the user; and one or more processors adapted
and programmed to communicate with a server system and to present
targeted advertisements to the user, the advertisements being
targeted based at least in part on usage statistics stored on the
server system and having been previously collected from the mobile
telecommunications device.
2. The device of claim 1, wherein the mobile telecommunications
device is intermittently in communication with the server system,
and the one or more processes are programmed to collect the usage
statistics at times including when the mobile telecommunications
device is not in communication with the server system.
3. The device of claim 1, wherein the advertisements are targeted
based upon one or more criteria chosen from the group consisting
of: geographic location of the device, time of day, and demographic
information of the user.
4. The device of claim 1, wherein the processors are further
adapted and programmed to transmit usage statistics collected from
the mobile telecommunications device to the server system using SMS
technology.
5. The device of claim 1, wherein the usage statistics include one
or more types of events selected from the group consisting of: how
many times an advertisement is played, play/stop events, a user
clicking on an advertisement, a user skipping forward and/or
skipping back part of a content item or advertisement, a user
voting for a content item, a user responding to survey associated
with a content item or advertisement with certain response, a user
skipping a survey entirely, a content item being presented in its
entirety, and application and/or content forwarding behaviors of
the users.
6. The device of claim 1, wherein the one or more processors are
further adapted and programmed to communicate with a server system
such that a mobile device identifier can be received from the
server system, and the collected usage statistics associated with
the identifier can be transmitted to the server system.
7. A method for presenting targeted advertisements to a user of a
mobile telecommunications device comprising: collecting usage
statistics from the mobile telecommunications device; transmitting
the usage statistics to a server system; receiving recommended
targeted advertisements from the server system, the advertisements
being recommended by the server system based at least in part on
the collected usage statistics; and presenting one or more of the
recommended targeted advertisements to the user via the mobile
telecommunications device.
8. The method of claim 7, wherein the mobile telecommunications
device is intermittently in communication with the server system,
and the usage statistics are collected at times including when the
mobile telecommunications device is not in communication with the
server system.
9. The method of claim 7, wherein the advertisements are targeted
based upon one or more criteria chosen from the group consisting
of: geographic location of the mobile telecommunications device,
time of day, and demographic information of the user.
10. The method of claim 7, wherein the usage statistics are
transmitted to the server system using SMS technology.
11. The method of claim 7, wherein the usage statistics include one
or more types of events selected from the group consisting of: how
many times an advertisement is played, play/stop events, a user
clicking on an advertisement, a user skipping forward and/or
skipping back part of a content item or advertisement, a user
voting for a content item, a user responding to a survey associated
with a content item or advertisement with a certain response, a
user skipping a survey entirely, a content item being presented in
its entirety, and application and/or content forwarding behaviors
of the users.
12. The method of claim 7, further comprising receiving a mobile
device identifier from the server system, wherein the usage
statistics are transmitted to the server system such that the
server system can associate the usage statistics with the mobile
telecommunications device.
13. A method for identifying a mobile telecommunications device for
purposes of collecting usage statistics and recommending targeted
advertising comprising: collecting usage statistics from the mobile
telecommunications device; receiving a mobile device identifier
from the server system; transmitting the usage statistics to a
server system such that the server system can associate the usage
statistics with the mobile telecommunications device; and receiving
recommended targeted advertisements from the server system, wherein
the advertisements are targeted based at least in part on the
transmitted usage statistics.
14. The method of claim 13, wherein the mobile telecommunication
device is intermittently in communication with the server
system.
15. The method of claim 13, further comprising signing the usage
statistics with a secret key.
16. The method of claim 13, further comprising negotiating with the
server system relating to the transmission of the usage
statistics.
17. The method of claim 13, further comprising verifying that the
mobile device identifier is received from a trusted source.
18. The method of claim 13, wherein the mobile device identifier is
acquired using three or fewer exchange steps between the mobile
telecommunications device and the server system.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a division of U.S. application Ser. No.
12/433,881, filed Apr. 30, 2009, now U.S. Pat. No. 8,660,539, which
claims the benefit of U.S. Provisional Application Nos. 61/049,030,
filed Apr. 30, 2008; 61/074,995, filed Jun. 23, 2008; and
61/075,304, filed Jun. 24, 2008; each of which is also incorporated
by reference herein.
COPYRIGHT AUTHORIZATION
[0002] A portion of the disclosure of this patent document contains
material which is subject to copyright protection. The copyright
owner has no objection to the facsimile reproduction by anyone of
the patent document or the patent disclosure, as it appears in the
Patent and Trademark Office patent file or records, but otherwise
reserves all copyright rights whatsoever.
BACKGROUND
[0003] Mobile service providers typically collect usage information
using server-side techniques. One techniques is to track downloads
from a WAP portal/web-server when users visit a web-site optimized
for viewing on the mobile phone. A drawback of this technique is
that it does not provide fine-grained information regarding how
users actually consume the content. Such information would be
useful in order to better tailor service offerings to user needs.
Another technique for collecting usage information is by tracking
the delivery of SMS (Short Message Service) messages. A drawback of
this technique is that it typically assumes that the recipient
views each SMS message that is delivered. This assumption can be
very inaccurate, however, since many users delete spam SMS messages
without viewing them.
[0004] In the absence of reliable usage information, a common form
of mobile advertising is via SMS spamming. In many locales where
incoming SMS messages are free, advertisers purchase bulk SMS
sending capacity and spam users with SMS advertisements. Users
often delete these advertisements without viewing them. Some
evidence suggests that some consumers do not want to pay for
content but would be willing to watch advertisements in exchange
for not paying for the content. Some consumers even enjoy watching
advertisements.
SUMMARY
[0005] The following is a non-limiting summary of some of the
inventive aspects of some embodiments the systems and methods
described herein:
[0006] In one embodiment, a mobile telecommunications device
includes a display for displaying content to a user; one or more
input devices for collecting input from the user; and one or more
processors adapted and programmed to communicate with a server
system and to present targeted advertisements to the user, the
advertisements being targeted based at least in part on usage
statistics stored on the server system and having been previously
collected from the mobile telecommunications device.
[0007] In another embodiment, a server system for collecting usage
statistics and recommending targeted advertisements includes one or
more processors adapted and programmed to receive usage statistics
from a plurality of mobile telecommunications devices, to analyze
the usage statistics and to generate therefrom recommendations for
advertisements targeted to users of the mobile devices, wherein the
one or more processors automatically make inferences about
relatedness of the users by tracking application and/or content
forwarding behaviors of the users, and recommending products and/or
services to users based at least in part on the relatedness of the
users.
[0008] In another embodiment, a method for presenting targeted
advertisements to a user of a mobile telecommunications device
includes collecting usage statistics from the mobile
telecommunications device; transmitting the usage statistics to a
server system; receiving recommended targeted advertisements from
the server system, the advertisements being recommended by the
server system based at least in part on the collected usage
statistics; and presenting one or more of the recommended targeted
advertisements to the user via the mobile device.
[0009] In another embodiment, a method for recommending targeted
advertisements to users of mobile telecommunications devices
includes receiving usage statistics collected from the mobile
telecommunications devices; making inferences about relatedness of
the users by tracking application and/or content forwarding
behaviors of the users; generating recommendations for
advertisements targeted toward users of the mobile devices based in
part on the relatedness of the users; and transmitting the
recommendations to one or more of the mobile telecommunications
devices.
[0010] In another embodiment, a method for identifying a mobile
telecommunications device for purposes of collecting usage
statistics and recommending targeted advertising includes
collecting usage statistics from the mobile telecommunications
device; receiving a mobile device identifier from a server system;
transmitting the usage statistics to the server system such that
the server system can associate the usage statistics with the
mobile device; and receiving recommended targeted advertisements
from the server system wherein the advertisements are targeted
based at least in part on the transmitted usage statistics.
[0011] In another embodiment, a server system for collecting usage
statistics from mobile telecommunications devices includes one or
more processors adapted and programmed to transmit a mobile device
identifier to a mobile telecommunications device, receive usage
statistics from the mobile device, and verify that the received
usage statistics originated from the mobile device based at least
in part on an association of the mobile device identifier and the
received usage statistics.
[0012] As used herein the term "mobile phone" or "mobile device"
refers generally to any electronic device used for mobile voice or
data communication, and includes, without limitation, devices known
by other names such as cellphones, handphones, cellular phones,
cells, mobiles, wireless phones, cellular telephones, mobile
telephones, cell telephones, smartphones, gaming devices, personal
digital assistants, and the like.
[0013] Other inventive aspects of the systems and methods described
herein are described below. It will be appreciated that in some
embodiments, only some of the inventive aspects described above
might be included. It will be appreciated that these systems and
methods are novel, as are applications thereof and many of the
components, systems, and methods employed therein. It should be
appreciated that embodiments of the presently described inventive
body of work can be implemented in numerous ways, including as
processes, apparatuses, systems, devices, methods,
computer-readable media, and/or as a combination thereof. Several
illustrative embodiments are described below.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The inventive body of work will be readily understood by
referring to the following detailed description in conjunction with
the accompanying drawings, in which:
[0015] FIG. 1 is a diagram showing various elements of system for
data collection and the measurement of usage statistics in the
context of targeted mobile advertisements;
[0016] FIG. 2 shows an example of a user interface for a branded
application associated with a particular television show, according
to one embodiment;
[0017] FIG. 3 shows an example of a deck-based mobile phone user
interface;
[0018] FIG. 4 shows an example of a piece of content and an
associated advertisement;
[0019] FIG. 5 shows major entities and their relationship in an
illustrative database schema, according to some embodiments;
[0020] FIG. 6 shows a `user` entity and related entities, according
to some embodiments;
[0021] FIG. 7 shows a `content` entity, which represents content
items, and related entities, according to some embodiments;
[0022] FIG. 8 shows entities used in content organization,
according to some embodiments;
[0023] FIG. 9 shows the entities `advertiser`, `advertisement` and
`purchase order`, according to some embodiments;
[0024] FIG. 10 shows the entities involved in order fulfillment in
some embodiments;
[0025] FIG. 11 shows the entities involved in coupons and location
sensitive ads in some embodiments;
[0026] FIG. 12 shows how raw schematic data gets collected,
according to some embodiments;
[0027] FIG. 13 shows a basic three-pane layout used in one
embodiment;
[0028] FIG. 14 shows an illustrative interface for performing user
management, according to some embodiments;
[0029] FIGS. 15, 16 and 17 show illustrative interfaces for an
advertiser, advertisement, and ad-purchase order, respectively,
according to some embodiments;
[0030] FIG. 18 shows a content provider interface, according to
some embodiments;
[0031] FIG. 19 shows a channel interface screen, according to some
embodiments;
[0032] FIG. 20 shows a feed interface screen, according to some
embodiments;
[0033] FIG. 21 shows a reservation interface screen, according to
some embodiments;
[0034] FIG. 22 shows an allocation interface screen, according to
some embodiments;
[0035] FIG. 23 shows a modify-allocation interface screen,
according to some embodiments;
[0036] FIG. 24 shows a coupon interface screen, according to some
embodiments;
[0037] FIG. 25 shows a location ad interface screen, according to
some embodiments;
[0038] FIGS. 26a and 26b are a flowchart showing steps for a mobile
content service to provide a mobile identity and to protect/verify
usage data, according to some embodiments;
[0039] FIG. 27 is another flowchart showing steps for a mobile
content service to provide a mobile identity and to protect/verify
usage data, according to some embodiments;
[0040] FIG. 28 shows the layout of a system for tracking the
behavior of mobile consumers, according to some embodiments;
[0041] FIG. 29 is a diagram illustrating locations corresponding to
location-sensitive ads for a target user for a particular time of
day, according to some embodiments;
[0042] FIG. 30 is a diagram showing inferred relationships between
users; and
[0043] FIG. 31 is a diagram illustrating SMS message routing of a
shared or recommended application or content between users,
according to some embodiments.
DETAILED DESCRIPTION
[0044] A detailed description of the inventive body of work is
provided below. While several embodiments are described, it should
be understood that the inventive body of work is not limited to any
one embodiment, but instead encompasses numerous alternatives,
modifications, and equivalents. For example, without limitation,
while several of the illustrative embodiments described below are
in the context of targeted mobile advertisements, it will be
appreciated that the systems and methods described herein are
readily applicable to other contexts as well, including, without
limitation, non-mobile contexts, and contexts involving the
targeting of content other than advertisements (e.g., entertainment
content, news and informational content, etc.). In addition, while
numerous specific details are set forth in the following
description in order to provide a thorough understanding of the
inventive body of work, some embodiments can be practiced without
some or all of these details. Moreover, for the purpose of clarity,
certain technical material that is known in the related art has not
been described in detail in order to avoid unnecessarily obscuring
the inventive body of work.
[0045] Targeting advertisements and other content to a user based
on relevance is a more effective way of getting the user's
attention than sending spam. Systems and methods are presented for
facilitating the collection of usage information and/or other data,
and/or for facilitating targeted advertising and/or other content.
Systems and methods are described herein that, in some embodiments,
could be used to attract mobile phone users and/or to provide a
platform for targeted advertisement and/or audience measurement
using digital rights management ("DRM") technology such as that
described in commonly assigned, co-pending U.S. patent application
Ser. No. 11/583,693, filed Oct. 18, 2006 (Publication No.
2007/0180519 A1) ("the '693 application"), and/or the DRM
technology and/or service orchestration technology described in
commonly assigned U.S. patent application Ser. No. 10/863,551
(Publication No. 2005/0027871) ("the '551 application") (the
contents of both the '693 application and the '551 application are
hereby incorporated by reference in their entirety herein). It will
be appreciated that these systems and methods are novel, as are
many of the components, systems, and methods employed therein.
[0046] The collection of usage information is one application that
greatly benefits from the use of trusted computing. A system that
collects usage statistics typically needs to ensure that the data
are accurately collected and can be trusted. For example,
advertisers will typically want an assurance that the collected
information was integrity-protected (e.g., that it was not altered
or tampered with) after collection. Mobile users' may want their
privacy protected, and/or regulations of some locales may require
that user's privacy be protected.
[0047] Many of the embodiments described herein overcome some or
all of the problems of current technology used in mobile usage data
collection by enabling the collection of authentic and accurate
client usage data. The collected data can be analyzed by a backend
system and used to provide targeted advertisements, promotional
offers, and the like to users who may be interested in receiving
them, thereby increasing system efficiency and contributing to a
more satisfying user experience.
[0048] In one embodiment, a system is provided that includes client
applications on the PC and/or mobile platforms and a corresponding
service backend infrastructure. The client application measures
usage information and relays this information to the service
backend. The collected data is correlated with other information,
such as, e.g., demographic data, and used to deliver targeted
advertisements or other information to the user. The client reports
the collected usage information using a suitable return channel,
such as, e.g., SMS or a web-based protocol. The targeted
advertisements may be delivered separately, or with an associated
piece of content.
[0049] In some embodiments, the measurement and collection of usage
statistics, even when the user is mobile or offline, is enabled. A
DRM engine can be used to enable the application to record such
usage statistics. Encoding and compressing techniques can be used
on the collected usage statistics, and/or the usage statistics can
be sent in multipart messages if they exceed any applicable size
limits. Alternatively, or in addition, on some embodiments usage
statistics can be collected and analyzed at the service
backend.
[0050] Some advantages of some preferred embodiments of the systems
and methods described herein include, for example:
[0051] (1) Service providers can use the usage statistics to
determine the effectiveness of content services and to customize
their offerings based on this feedback. For example, service
providers could charge a premium for advertisements shown with
popular content, as determined by analyzing usage statistics.
[0052] (2) Consumers will have more relevant content and offerings.
Consumers will be shown advertisements that are of interest to
them, which will improve their user experience. Consumers may also
be offered the choice of advertisement-free content services.
[0053] (3) Advertisers can realize savings by delivering
advertisements to targeted users, rather than broadcasting them via
spam. In some embodiments, the advertisers will be able to see from
collected usage information whether or not an advertisement was
actually viewed.
[0054] (4) Content providers can track the popularity of their
offerings within the fast-growing mobile user base, which is
currently not effectively tracked.
[0055] Illustrative Implementation Details
[0056] Content Encryption
[0057] In some embodiments, no content encryption is used. In other
embodiments, content can be encrypted using any suitable technique,
such as those described in the '693 application and the '510
application. Possible reasons for not encrypting the content
include:
[0058] (1) Encryption is often ineffective at protecting content.
Plaintext versions of encrypted content often become available to
consumers regardless of whether encryption was initially used.
[0059] (2) Currently, consumers are used to transferring
unencrypted content freely between devices and playing the content
on different devices without any constraints. Thus, using
unencrypted content can help avoid creating a user experience that
will be perceived to be worse than what consumers are currently
accustomed to.
[0060] (3) Mobile phone manufacturers have built barriers to entry
into their platforms that can make it difficult for third party
application developers to create applications with codec hooks. The
traditional route of deployment via device manufacturers or systems
integrators can be difficult. By not requiring encryption,
non-traditional paths can be used to deploy third-party
applications via direct download by subscribers without having to
go through device manufacturers or carriers.
[0061] (4) In embodiments where the content that is pushed to users
is of relatively ephemeral value (e.g., clips from network TV
shows), there is less of a need for encryption.
[0062] In one embodiment, a consumer's mobile device will include a
DRM engine such as that described in the '551 application and/or
the '693 application, and will respect control information related
to metering and ad-insertion (e.g., licenses including obligations
and/or callbacks of the type described in the '693 application).
The mobile device will report the collected statistics using a
suitable return channel such as, e.g., SMS and/or a web services
protocol such as that described in the '551 application.
[0063] In one embodiment, an application is provided for the PC
and/or mobile platform. Network television shows featuring quizzes
or contests have gained a huge following and viewership, and have
generated a very large volume of user feedback in terms of votes
cast. In one embodiment, the application would enable a user to
download content clips with embedded advertisements from a network
television show and to transfer these clips to his or her cell
phone (or tethered phone) or to directly download the clips to the
phone (e.g., to a 3G phone).
[0064] Although interest in a network TV show may be one of the
factors that could initially motivate a user to download the
application to his or her PC and/or mobile phone, in order to
engage and maintain the attention of the user the application will
preferably provide some value to the user in terms of making some
activities easier. In one embodiment, the feature set for the
application could include capabilities such as some or all of the
following: (1) enable users to automatically download excerpts
and/or clips from new episodes of shows; (2) enable consumers to
consume content offline or on the go; (3) offer free ringtones
corresponding to a clip and make it easy to set the ringtone on the
phone; (4) enable consumers to send a ringtone from the show to
another mobile phone (e.g., to a friend); (5) make it easy to vote
for a particular contestant on a show from within the application;
and/or (6) provide trivia, jokes, and background information about
the show.
[0065] In one illustrative embodiment, a system is provided that
includes some or all of the following components:
[0066] (1) A PC-based player application and RSS feed listener for
downloading show excerpts, clips, advertisements, licenses, and/or
the like, and for providing a mechanism to transfer content and
ringtones to a tethered device (e.g., a mobile phone). For example,
the application could send ringtones to a mobile phone using
SMS.
[0067] (2) A mobile phone application, or a suite of mobile phone
applications, customized for low-end, intermediate, and high-end
phones, respectively.
[0068] Alternatively, in some embodiments, for simple, low-end
phones that are only capable of receiving ringtones, a dedicated
mobile application is not used. In such embodiments, the SMS
delivery report obtained from the SMS gateway can be used to track
which ringtones, for example, a particular user received.
Advertisements may be inserted into the ringtone SMS.
[0069] For intermediate, mid-range phones that are more capable
than low-end phones, but that may have a slow network connection,
different applications can be provided for different platforms
(e.g., for Java-enabled phones and Symbian phones). In the case of
Java-enabled phones, a stripped-down, mobile version of the PC
application can be provided on which content (e.g., audio and
ringtone content) is side-loaded. The application may come with a
pre-personalized DRM engine and may store metering data in secure
storage. An SMS adapter can be used to read this data and
periodically upload it via SMS to the service backend. A Symbian
version of the mobile phone application can also be provided that
provides similar functionality.
[0070] For high-end phones, such as 3G smart phones with fast
network connectivity, a full-featured, mobile version of the PC
application can be used, with a built-in DRM engine and service
orchestration stack. Such an application can be functionally
equivalent to the PC application, but preferably has a user
interface that is customized for the phone screen form factor.
[0071] (3) A backend infrastructure. In preferred embodiments, the
backend infrastructure may include some or all of the following
functionality: feed generation; ad insertion for static and/or
dynamic ads; generation of ringtones from audio clips (e.g.,
Truetone ringtones for the Nokia platform); packaging tools for
packaging content and associated license(s) requiring metering
and/or ad-insertion (e.g., via the obligation and/or callback
mechanisms described in the '693 application); SMS gateway and
web-based front-end/web-service interface to enable a PC-based
application to send a ringtone via SMS to the phone; a mechanism to
collect metering data sent via SMS and organize it in a database
for analysis; and offline tools for analysis and correlation of
received metering and usage information with other data in order to
more effectively draw inferences about user behavior. For example,
usage data indicating ad viewing preferences could be correlated
with demographic data (such as, e.g., age and income) to help
identify a target segment of the population for a particular
product.
[0072] A more detailed example embodiment is described below in
connection with FIG. 1, which is a diagram showing various elements
of an illustrative system for data collection and measurement of
audience usage statistics for use, e.g., in targeted mobile
advertising. Service backend 110 includes a report generator 118,
database 116, packager 120, SMS gateway 122, and an I-ITTP
Server/RSS Feed Generator 112. In one example, a PC application
running at the service backend 110 targets users that have a PC 114
and a mobile phone to which users copy content through a data
cable, e.g., by mounting the mobile phone in the USB mass storage
mode on the PC.
[0073] Many network television shows currently have official web
sites, but they are often relatively slow to load over the network.
This makes them less usable, especially in view of the fact that
some households have slow dial-up links and/or relatively slow,
shared Internet connections. Accordingly, in some preferred
embodiments, a PC application can be locally installed on the
user's PC 114 (e.g., a Microsoft WINDOWS-based PC), and can use
network bandwidth to download content/metadata via RSS and provide
a better user experience especially in a disconnected mode.
[0074] In preferred embodiments, a DRM client is included on the PC
and/or mobile phone, and could, e.g., be pre-personalized with a
personality and/or fixed user node of the type described in the
'693 application.
[0075] FIG. 2 shows an example of a user interface 210 for a
branded application associated with a particular television show
(e.g., the "Sa Re Ga Ma Pa" application), according to one
embodiment. For example, the application could be running on a
user's PC, such as PC 114 in FIG. 1.
[0076] Content/Metadata Download
[0077] In one embodiment a PC application running on a PC, such as
PC 114 of FIG. 1, has a user interface, such as user interface 210
of FIG. 2, and an RSS feed listener that provides a content
download URL and metadata for the content. In one embodiment, the
application periodically listens to the feed and automatically
downloads content and metadata, e.g., from database 116 of FIG. 1.
In some embodiments, the PC application could also include a
button/menu item to perform such operations "on demand." This could
be useful for consumers who do not have an "always on" Internet
connection.
[0078] In some embodiments, the PC application might support some
or all of the following:
[0079] (1) Automatically download news items and trivia related to
a show in order to encourage users to use the system more.
[0080] (2) Support simple searches for content, e.g., using a basic
search scheme (e.g., words, list of words, wildcards using `*`,
etc.)
[0081] (3) Support the transfer of content to a tethered device.
Alternatively, or in addition, the user could directly mount the
mobile phone as a USB mass storage device and just use the file
explorer to copy files. A convenience provided by enabling transfer
as a tethered device is that the content and metadata would be
copied to the phone at the right location and with the right
directory structure (e.g., the location and directory structure
that the mobile application expects to see).
[0082] (4) Support sending ringtones to phone. In one embodiment,
the application includes an interface for enabling the user to send
a ringtone to the phone (possibly with some protection against
automated bots). A user selects the phone type (e.g., brand/model),
enters the phone number, and sends the ringtone with a personalized
message. In one embodiment, a static ad text/graphic could also be
inserted automatically by the backend.
[0083] Mobile Applications
[0084] In preferred embodiments, at least two categories of mobile
applications are supported:
[0085] 1) A limited feature-set application for tethered devices;
and
[0086] 2) A full-featured mobile application (e.g., an application
that is equivalent in functionality to the PC application described
above).
[0087] In some embodiments, the user interface of the mobile
applications could be "deck"-based, with buttons at the bottom to
navigate to menus and submenus.
[0088] FIG. 3 shows an example of a deck-based mobile phone user
interface. As shown in FIG. 3, the interface on mobile phone 310
provides left and right arrow buttons 312 and 314, respectively,
which are used to navigate between content items, the `Play` button
316 and `Vote` button 318 are self-explanatory, and the `Bell` icon
320 is for setting a ringtone corresponding to the currently
selected content item.
[0089] In one embodiment, the limited feature-set mobile
application has the following special features: (1) a DRM engine
pre-personalized and pre-registered to a given user; (2) an SMS
adapter to upload metering data; and (3) a media player application
to play plaintext content, and which is capable of parsing DCF/PDCF
files, evaluating licenses, and supporting DRM functionality such
as obligations and calibacks.
[0090] In one embodiment, the full-featured application has all the
features of the limited feature-set application, plus a complete
service orchestration stack such as that described in the '551
application (e.g., the NEMO stack), and the ability to participate
fully as a client in a system such as the Marlin Broadband
ecosystem.
[0091] Backend Infrastructure
[0092] In one embodiment, functions of the backend infrastructure
110 of FIG. 1 include feed generation, ad insertion, content
packaging, an SMS gateway, metering and usage data upload, and data
analysis and correlation.
[0093] Feed Generation.
[0094] Generates an RSS feed that clients will consume. In one
embodiment, the feed may contain information to enable the clients
to automatically download content.
[0095] Ad-Insertion.
[0096] In one embodiment, there are two points for ad-insertion:
(1) insertion into the content (e.g., statically and/or
dynamically); and (2) out-of-band delivery (e.g., via SMS).
Examples of out-of-band delivery include delivery as part of a
ringtone, and delivery as a regular advertisement.
[0097] Content Packaging.
[0098] In some embodiments, relatively simply licenses are used. In
other embodiments, relatively rich licenses, such as those
described in the '693 application and/or U.S. patent application
Ser. No. 12/178,543, "Dynamic Media Zones Systems and Methods,"
filed Jul. 28, 2008 (Publication No. 2009/0031431 A1) (the contents
of which are hereby incorporated by reference), can be used, e.g.,
to enable dynamic ad insertion. In one embodiment, DCF/PDCF can be
used as the container format.
[0099] Metering/Usage Data Upload.
[0100] In one embodiment, SMS is used as the return channel (RC)
for uploading usage data to the backend infrastructure. In some
embodiments, data can be encoded and compressed for efficiency.
[0101] Data Analysis and Correlation.
[0102] The data that has been uploaded is extracted from the SMS
Gateway, decompressed, decoded, and then loaded into a database for
further analysis. Correlation of the uploaded data with other
sources of data, such as, for example, demographic data, can be
powerful. An example is provided below:
[0103] Analysis of Collected Metering/Usage Data.
[0104] FIG. 4 shows an example of a piece of content 412 and an
associated advertisement 410 (e.g., an advertisement for an
automobile). Assume, for the sake of illustration, that data
analysis showed the following: (1) the user played the
advertisement 410 multiple times; (2) the user rewound and played
back some segments of the advertisement 410 multiple times; and (3)
the user replayed the advertisement 410 a few days after initially
viewing the content 412. In this example, the user's behavior
indicates that the user found this advertisement interesting. The
fact that the user came back to the content item and played the
advertisement again probably implies that it was not a fleeting
interest. The parts of the advertisement that were replayed
probably indicate something of special interest. These types of
analyses can help identify users that are interested in a
particular product.
[0105] Correlation with Demographic and/or Other Data.
[0106] Correlating the above data with other data, such as
demographic data or data previously collected about the user, could
provide further validation of the metering data analysis. For
example, if demographic data in the example discussed above showed
the user to be someone from a middle income household with
children--a household that does not own a car or owns one car--then
it could be a strong indicator that the user is thinking of buying
a car. A targeted advertisement by other means, such as a sales
call, might produce a favorable outcome for the merchandiser in
this case. Perhaps a car loan company might be interested in
sending its advertisement material to the user. Or perhaps a car
dealership might make an offer to trade-in the user's old car. The
collected data, after analysis and correlation, can yield valuable
information that could be sold to potential consumers of this
information.
[0107] License Generation Tools.
[0108] In one embodiment, downloaded content is associated with a
license, although the content itself may not be encrypted. In an
embodiment in which licenses such as those described in the '693
application are used, the application evaluates the license in
order to get the ESB containing metering obligations (if any). In
one embodiment, a fixed license could be inserted that just has
metering obligations. In other embodiments, more sophisticated
controls could be used. A lot of information can be obtained purely
through metering data, and sophisticated ad-support is an extra.
For example timestamps in the metering data can be used to
determine if the user watched an ad or not, how many times the user
watched the content item, etc.
[0109] Tamper Resistance.
[0110] Since, in some embodiments, content will not be encrypted,
there may not be a strong incentive to hack the system's software
and/or hardware. As a result, sophisticated tamper resistance may
not be necessary in some embodiments. In some embodiments, applying
any suitable form of code obfuscation to the PC application (e.g.
using Themida) and/or to the mobile application may be
sufficient.
[0111] Ringtone Formats and Conversion.
[0112] The type of ringtone that a mobile phone requires (e.g.,
monophonic, polyphonic, or Truetone) typically depends on the
mobile set hardware. The ringtone can be delivered to the phone
either through the data cable (if the user has a PC), or, more
commonly, via SMS. The SMS encoding formats for ringtones vary
across phone manufacturers, and are known to those of skill in the
art.
[0113] SMS Adapter.
[0114] The only return channel available on some mobile phones is
the SMS channel. On mid-range phones (e.g., Java-enabled phones
with a slow network connection) an SMS adapter could be provided to
pull the metering data from the DRM client and upload it via SMS to
the backend.
[0115] SMS Gateway Selection.
[0116] In a preferred embodiment, the SMS gateway
application/service provider that is selected would be scalable to
large SMS loads.
[0117] Charges for SMS.
[0118] In some situations, using SMS as a return channel has a cost
associated with it (e.g., in some locations, incoming SMS is free,
whereas outgoing calls carry a charge). Therefore, in these
situations, it may be better to upload data less frequently, or via
a different mechanism.
[0119] Advertisement Allocation
[0120] In some embodiments, an auction-based mechanism can be used
to fill ad-slots. In one embodiment, the ad-slots are sold via a
Dutch auction. An auction-based mechanism enables a service to get
a better price for advertisement real estate, which could otherwise
be hard to price in new and emerging advertisement delivery
channels, such as mobile advertising, or for advertisements
associated with new content channels in established delivery
channels, for which pricing models are not well-developed. In
preferred embodiments, the system would also make use of
standby/backup advertisements. Standby advertisements are
advertisements for which the ad-slots are sold at a deep discount,
but which only get to run on a contingency basis if any ad-slots
are otherwise unfulfilled via the primary allocation
mechanism(s).
[0121] Constraints for ad-slot allocation include targeting
constraints and adjacency constraints. Adjacency constraints may be
broken down into (a) distance constraints (e.g. the maximum or
minimum allowable distance between advertisements), and (b) mutual
exclusion constraints (e.g. advertisements of a particular type, or
for a particular product, manufacturer, or advertiser may not
appear with another advertisement of a particular type, product,
manufacturer, or advertiser).
[0122] According to some embodiments, a simple tagging mechanism
allows simple wildcards to be used to specify mutual exclusion
constraints. Mutual exclusion constraints are a type of constraint
which an advertiser may wish to use to exclude advertisements for
competing products when its advertisement is being shown. For
example, a soft drink manufacturer may want to exclude banner ads
for its competitors' products while an advertisement for its soft
drink is being played.
[0123] The advertisement allocation problem can be modelled using a
mathematical programming language such as AMPL in terms of an
objective function (e.g., revenue generated) and several
constraints. The advertisement allocation problem is typically a
non-linear discrete optimization problem which does not currently
have good numerical methods to solve it. The non-linear discrete
optimization problem can be broken down into a series of linear
discrete optimization problems by converting some variables into
parameters and solving the problem for a range of values of these
parameters. A linear discrete optimization problem can be solved
using standard algorithms such as those from the branch-and-cut and
branch-and-bound categories of algorithms. Finally the local maxima
for each sub-problem can be compared to arrive at a global maximum
for the objective function.
[0124] Backend for Advertisement-Supported Content Delivery
Platform.
[0125] According to some embodiments, systems and methods described
herein are used in a backend system for an advertisement-supported
content delivery platform. In certain embodiments, some or all of
the following functionality can be supported: (1) content upload;
(2) content packaging; (3) advertisement upload; (4) advertiser
registration; (5) purchase order placement for ad-units (e.g.,
ad-slots); (6) order fulfillment (e.g., including reservation of ad
slots for an advertiser and assigning an individual advertisement
to a particular slot); (7) RSS feed generation; (8) promotions and
coupon management; (9) survey-based advertisements; and/or (10)
report generation.
[0126] Embodiments of the systems and methods described herein can
be used to provide the infrastructure for managing the placement of
advertisements, performing audience measurements, and targeting
advertisements.
[0127] In the discussion below, the following terms will generally
have the following meanings:
TABLE-US-00001 Ad-magazine A collection of ads tied to a content
item Ad-unit (bullet) A slot representing a fractional rental of
ad-placement real-estate (e.g. 1/5 of the banner real estate for
any single content item for a week) MAP Minimum Ad-unit Price RP
Retail Price (price for outright purchase) CPM Click Per Mille
(cost of ad for 1000 views) CTR Click Through Rate
[0128] Embodiments of the systems and methods described herein aim
to develop an advertisement-supported content delivery system for
mobile users, and can be used to deal with ephemeral content, such
as that produced by popular network shows (e.g., singing
competitions, dancing competitions, quiz shows, reality TV show
competitions, etc.).
[0129] Because of the time-dependent nature of these shows there is
a significant "flash crowd problem" with the viewership. The
traditional models for advertisements, such as CPM or CTR, tend to
break down for these types of events. The bursty nature of the
audience responses (such as votes sent in by fans) has a
substantial impact, and needs to be addressed by the architecture
of the system in order to handle the bursty loads.
[0130] There is tremendous viewer interest in these shows and
because of the phenomenal growth in the number of mobile phone
users, the patterns of consumption of the content are changing
dramatically. This shift in consumer behavior poses many
challenges, and provides a unique opportunity for content delivery,
audience measurement, and targeted advertisement. Embodiments of
the systems and methods described herein try to address these
current and evolving needs of consumers.
[0131] Advertisements.
[0132] Referring again to FIG. 3, the screen layout of an
illustrative client application is shown. The button bar 340 at the
bottom has buttons for navigating through content and (left and
right buttons 312 and 314, respectively) and a vote button 318 that
is used for voting on the content display screen or for recording
user-clicks (e.g., as described below in the discussion of
survey-based ads). Also included in the illustrative embodiment
shown in FIG. 3 are a logo icon 330, ticker ad field 332,
video/content icon 334, information ticker 336, and animated GIF
ad-banner 338.
[0133] In some embodiments, the client can be capable of showing
the following types of marketing messages: (1) text-based ads; (2)
graphical, animated GIF banner ads; (3) survey-based ads; (4)
market-research surveys; (5) location-sensitive ads; and (6) OOB
(sent via SMS) advertisements.
[0134] Text Based Ads.
[0135] Examples include simple, textual tickers, such as a top
ticker. Top tickers are an example of an animated ticker, which are
generally more effective than plain, static textual ads.
[0136] Graphical, Animated GIF Banner-Ads.
[0137] These are analogous to the familiar Internet banner ads.
[0138] Survey-Based Ads.
[0139] These are ads placed occasionally between content items
(e.g., these can be shown when the user presses the Next Button 314
to go to the next content item). Since a survey question could be
annoying, in a preferred embodiment, they should not be used very
frequently. Also, in one embodiment, the user will have a choice to
not respond to the survey question by not pressing the middle
button and pressing "Next" to go to the next content item instead.
Survey-based ads can be useful because they provide a means to
realize higher value Click-Through (CT) advertisements.
[0140] Survey ads could contain items that ask questions such as:
(1) a question about the visual ad in the previous content item
(e.g. "Would you be interested in learning more about product X?");
(2) "Rate the product in the previous ad on a scale of 1-5" (radio
button selection followed by middle button click); or (3) "Do you
like product X? Yes/No". The survey screens could also be
independent of the previous screen and be pure market research
surveys.
[0141] Location-Sensitive Ads.
[0142] A location-sensitive ad may be delivered to the user based
on where he is located at that point in time. For example: ads for
a nearby store, coupons for a nearby restaurant containing a
promotion code, and/or the like. These context-sensitive ads could
be user-configurable (e.g., users may indicate a preference to
opt-in or out when they register, or as part of ongoing account
management).
[0143] Ad Delivery/Download.
[0144] In some embodiments, advertisements will be delivered along
with the content. The tethered model is probably the most practical
model for content and advertisement delivery today, as wireless
network Internet speeds are relatively slow. This is especially
true in some markets (e.g., India) where the 3G spectrum has not
yet been opened. Also, wireless Internet access is typically
relatively expensive and some users do not have it as part of their
mobile phone plan. For this reason the following may be useful: (1)
Internet Cafes where users can download music and/or other content;
and (2) special mobile phone kiosks to sync content (e.g., mobile
phone charging stations in locations such as bus stations, commuter
train stations, and airports). Kiosks could be set up at these
locations to enable users to download content to their mobile
phones. Kiosks could also be placed at strategic locations in major
cities through independent operators (e.g., coffee shops, outside
college campuses, STD-ISD Centers (i.e. manned telephone booths),
etc.).
[0145] Viral Application Distribution.
[0146] To facilitate wide distribution of the mobile phone
application, viral distribution can be encouraged, for example, as
follows: (1) a user presses a `send` button while he is running the
application; (2) the user is shown a text box to enter his friend's
mobile phone number at the bottom of the screen; (3) the user
enters the number and presses OK; (4) the application sends an SMS
to the backend with the friend's number; (5) the backend composes
an SMS containing a link to download the application and sends it
to the friend; (5) the friend clicks on the link to download and
install the application; and (6) the downloaded application could
contain "teaser" content and ads (e.g., very small clips of content
and ads) so that the user will get a flavor of what the application
does, and a request to sync the phone with the latest content,
e.g., over the network or at the nearest Internet cafe or
kiosk.
[0147] In one embodiment, the backend will track the forwarding
requests for the application, thereby learning information
regarding relationships between users, which it can store in its
database. This information can, for example, be used for
friends-and-family targeting (described in more detail below).
[0148] Ad Placement.
[0149] In preferred embodiments, the mobile application has
real-estate for showing ads--real estate that will be wasted if an
advertiser is not lined-up. Measurement and ad-targeting are
value-added services that can be used to obtain better rates for
ads.
[0150] Today, due to the bursty nature of dialing, a significant
fraction of SMS messages are lost. If these messages could be
delivered, it would be valuable to the carrier. In one embodiment,
requests could be timestamnped, and store-and-forward could be used
to defer sending a message if the network was busy.
[0151] Ad Pricing
[0152] Minimum Ad-Unit Price (MAP).
[0153] In one embodiment, the system attempts to ensure that ad
real-estate is not wasted (i.e., that there is someone lined up to
place an ad in a given slot). The system enables this by having a
minimum price for a single ad-unit. The operator of the system
approaches potential advertisers and asks them to be on the
contingency list. An advertiser can be on the list if he commits to
purchase X amount of ad-units for a discounted price. The
advertisers' ad will be placed only if there is a spot available.
The minimum price could be based on the market price of similar
services, with a discount applied to the price. In some
embodiments, a certain fraction of the ad-units could be reserved
for free public service announcements.
[0154] Retail Price (RP).
[0155] This is the regular list price that a customer pays if he
wishes to buy the spot outright. The retail price could be a fixed
price that is set for an ad-unit. The actual sales price could be
more or less than the retail price depending on factors such as
demand for the ad-unit, promotions and discounts, price reductions
(e.g., for public service advertisements), etc.
[0156] Dutch Auction.
[0157] In one embodiment, if any ad-units are unsold at a
predefined time before a certain event (e.g., two weeks before the
airing of a popular television show), these ad units could be sold
by Dutch auction. In one embodiment, the initial price range could
be RP-MAP. Bids are accepted until all unsold ad-units get sold. In
one embodiment, everyone pays the lowest bidder's price (the lowest
bid that won). If an ad-unit is in high demand, the actual sales
price could go above the retail price.
[0158] Targeted Ads.
[0159] In one embodiment, targeted ads (e.g., ads targeted to a
particular demographic) have a higher buy-it-now price. If they are
purchased, they get removed from the ones to be subsequently
sold--the rest are auctioned off or sold at the minimum price.
[0160] Demographic Targeting.
[0161] In one embodiment, the system will enable advertisers to
target audiences by demographic groups (e.g., young professionals;
families without children; working adults ages 40-60; adults older
than 60, etc.)
[0162] Geographic Targeting.
[0163] In one embodiment, the system will enable advertisers to
target audiences by geographic zones (e.g., the West Coast, the
Northwest, the Midwest, the South, the East Coast, the Northeast,
the Southeast, etc.).
[0164] Local Targeting.
[0165] Local Targeting could be done as follows: (1) the mobile
phone application records the user's location periodically; (2) the
mobile phone application sends this information to the backend
(e.g., when it uploads usage data); (3) when the back-end receives
the data containing the area in which the user travels, it will use
ads from the local targeting pool and send them to the user the
next time the user does a sync; (4) when the user comes within x
miles of a location, it will pop-up the corresponding local
advertisement (e.g., an ad for a pizzeria, with the coupon in it;
in one embodiment, a one-line message saying that a coupon is
available for the local eatery will be shown; the popup is
preferably relatively unobtrusive); (5) the user will have the
choice to click on the advertisement (e.g., if the user clicks on a
coupon, the application will record the click, and this information
could be used to bill the advertiser); (6) if the user ignores the
pop-up ad it will go away (timeout) in some suitably define
timeframe (e.g., after 20 seconds).
[0166] To address subscriber concerns that collected data will be
shared with third parties, in some embodiments, the service could
provide a guarantee in the privacy policy that, except as required
by law, the service will not disclose identifiable user information
to third parties.
[0167] Friends-and-Family Targeting.
[0168] In some embodiments, advertisers can be given the option for
"demographic+" targeting, which targets a particular demographic,
and also, e.g., the friends of people in that demographic (e.g., to
two degrees of separation, or any other suitable number of
degrees).
[0169] Usage Measurement
[0170] In preferred embodiments, usage data is collected by the
mobile phone client application regarding some or all of the
following: (1) how many times a content item was viewed (e.g., can
be used to infer number of ad views for banner, text ads, video
ads, etc.); (2) user clicks on local ads, survey ads, etc.; (3)
user location data; (4) ad viewing data regarding dynamically
inserted ads.
[0171] Content Identification
[0172] Watermarking.
[0173] In some embodiments, a content watermarking scheme can be
used to identify content. For example, the watermark could be 32
bit wide, with 8 bits reserved for a content version and 24 bits
reserved for an ID. The watermark is preferably computationally
easy to read using the mobile client application, yet hidden and
difficult for the user to remove and/or change.
[0174] Content ID.
[0175] GIF banner ads and textual ticker data can be packaged with
their associated content, as they are typically fairly small (e.g.,
5-6 kilobytes for an animated GIF banner). For example, if an
MPEG-4 based format such as 3 gp is used, simple ads could be put
into the udta atom. This would make it easier to deliver and manage
ads and make it slightly harder for users to remove the ads. The
udta atom could have a byte to indicate the first ad to display and
a counter (updateable by the player) to indicate the next ad to
display.
[0176] In one embodiment, different versions of the same content
are created to have different starting ad numbers. This is done to
ensure fair treatment of all banner/text ads.
[0177] According to some embodiments, video ads are also a part of
the content, although in some embodiments the size of the ad should
be relatively small as the ads will be repeated in some content
items. In one embodiment, one video ad would be static encoded into
the video track, while any others would be included in a separate
top level atom.
[0178] Counting Rotating Ads.
[0179] In one embodiment, ads are rotated (e.g., a different ad is
shown when user changes the page, or a different ad is shown based
on a timer). The mobile phone application counts the number of
times the user sees the content item and reports this information
to the backend. The backend can then use the content version and
the counter to deduce how many times each ad was shown.
[0180] System Architecture
[0181] User Management.
[0182] In one embodiment, a system is provided that supports three
tiers of membership: (1) anonymous users, (2) signed-up users, and
(3) paying subscribers.
[0183] Anonymous Users.
[0184] When a user downloads content from an Internet cafe or
kiosk, he or she has the choice to either: (1) use a user name and
password if he or she has signed up; or (2) use a fixed user name
and password (e.g., a separate one could be created for each cafe
location). This makes it easy for people to download content
without signing up (e.g., if someone does not want to go through
the hassle of signing up). In one embodiment, anonymous users do
not get some extras that signed up users get, but are able to
download content and ads. In another embodiment, measurements are
made for all users--anonymous or signed up--and sent via SMS to the
backend. For example, the user's number (e.g., TON, NPI, and number
tuple) could be used to identify the user.
[0185] Signed-Up Users.
[0186] In one embodiment, users will be able to sign up for the
service, e.g., with an email and mobile phone number. This could,
for example, be done as follows: (1) the user enters details (e.g.,
first name, last name, email address, location, sex, age, marital
status, number of children, mobile phone number, and/or the like).
The user name could be the mobile phone number and a separate
password could be created for each mobile phone number; (2) the
user gets an email confirmation containing a link, which he or she
clicks on to confirm the email address, which results in SMS being
sent to his mobile phone; and (3) the user asks the SMS message to
complete the registration. In some embodiments, limits could be
place on signing up (e.g., a maximum of 10 mobile phones could be
registered with a given email address each day (e.g., to prevent
bot attacks)). According to one embodiment, signed up users get
some extras such as the ability to send ringtones from a show to
their mobile phone, or the ability to receive behind-the-scenes
information, trivia, bloopers, etc.
[0187] Paving Subscribers.
[0188] According to some embodiments, some subscribers pay for
premium content. In this case, a DRM-protected PC client may also
be used.
[0189] Ad-Space Sales
[0190] In one embodiment, the system provides a mechanism to enter
bids for ad-spaces (e.g., untargeted ads, in one embodiment). In
one embodiment, the system picks the top bids, informs bidders if
they won or lost, and publishes the price (open for all to
see).
[0191] Ad-Selection
[0192] Untargeted Ads.
[0193] In one embodiment, once winning bids are selected, those
ads, along with any additional ads sold for the minimum price, will
be put into pools (e.g., one ad each for text, banner and video).
In one embodiment, ads will be randomly selected and placed into
ad-magazines (e.g., one per content item). A selected ad will be
removed from the pool. This process is continued until all ads are
assigned to magazines.
[0194] Targeted Ads.
[0195] In one embodiment, for targeted ads (e.g., ads that target a
particular group of users), if the ad space is partially sold, the
rest of the ads will be scheduled using the bid-price to order the
ads in priority order. In one embodiment, the remaining spaces to
be filled for targeted users equals the total (for the target
group), minus ads sold, minus public service ads. These will be
filled with ads using bid-price to prioritize the ads (minimum
price ads come last).
[0196] Content Packaging.
[0197] In one embodiment, once an ad magazine is associated with a
content item, different versions of the content will be packaged
with different starting numbers for the text, banner, and video
ads. Targeted users form a different class for the content and
ads.
[0198] Ad and Content Delivery.
[0199] In one embodiment, the different versions of each content
item will be served out in a round-robin fashion to distribute the
ads evenly.
[0200] System Design
[0201] In preferred embodiments, the backend seeks to ensure
maximum use of the real estate available for ad-placement. A
benefit of certain embodiments of the systems and methods described
herein is the information about content consumption and
ad-viewership that can be collected from users. This data is
valuable by itself, and can also be used to develop inferences
about user behavior and preferences over a period of time. These
inferences could then be used to better tune or target
advertisements.
[0202] In some embodiments, some or all of the following design
considerations may be applicable:
[0203] 1. Operators are the Primary Users of the Backend.
[0204] Some parts of the system could be exposed to external
parties (e.g. content management functionality could be exposed to
content providers and advertisement management and placement
functionality could be exposed to advertisers). However external
parties probably cannot be assumed to learn how to use the system
as the system is only one of the many channels through which their
content and/or ads get distributed. These external parties would
typically be expected to contact the service through traditional
means. For example: (1) content providers would typically expect a
simple FTP drop for content in a common format (possibly full
screen resolution) as well as metadata. The service would be
expected to take this content and format it and any metadata to
make it suitable for the mobile platforms; (2) advertisers would
typically send a purchase order for ad-space by phone or by fax;
and (3) operators or some other types of users will typically want
to be able to check each content item and advertisement manually to
ensure there is editorial control over the content and
advertisements.
[0205] 2. Ad-Viewership is Closer to the Television Model than the
Internet Model:
[0206] Preferred embodiments of the systems and methods described
herein deal with ephemeral, time-sensitive content, such as that
related to a television game show. User interest in this type of
content is high around the time the show airs, but drops off almost
completely some time after the show. The content itself is not very
valuable after the event. The user interest and the corresponding
ad-viewership for this type of content on the mobile application is
expected to closely follow the television audience. In contrast,
Internet ad-viewing for a well-known web-site happens more or less
at an even rate. Internet advertisements can follow the
cost-per-impressions model. In the case of television, the ad-space
is sold as a whole without directly counting the number of
impressions. The ratings system for television from Nielsen is an
indirect measurement of audience which is used by advertisers to
determine the price of an ad slot.
[0207] 3. Content Items May not be Available at Ad-Sales Time:
[0208] Content for some shows is taped very close to the date of
airing of the show. Advertisers do not know in advance what the
exact content is going to be. They only know the genre of the show
and the type of content aired in the past.
[0209] 4. Advertisements May not be Available at Ad-Sales Time:
[0210] Advertisers would typically upload/submit the advertisement
once they get confirmed ad-space. Advertisers could also choose to
have a set of stock advertisements uploaded to the system for use
in various content feeds.
[0211] 5. Constraint for Ad-Spaces are Available at the Time an
Ad-Space Order is Booked:
[0212] Although advertisements may be submitted much later, in one
embodiment, any constraints that the advertiser needs to put on
ad-placement generally need to be made available at the time of
ad-space booking.
[0213] 6. The Backend is a Back-Office System:
[0214] The backend system is used to record orders for ad-space and
to process them. The end-result of the order processing is a set of
RSS feeds and packaged content and advertisements that these feeds
refer to. Once the feeds, packaged content, and advertisements are
generated, these could be hosted at a data center on HTTP servers,
or distributed to edge servers. Download statistics from the data
center will be periodically brought back and uploaded into the
backend system for analysis and reports.
[0215] System Users.
[0216] System users will typically include the following: (1)
operators--feed content and advertisements into the system; (2)
system administrators--configure and maintain servers;
advertisers--typically don't have access to the system; typically
place purchase orders for ad-slots via telephone or fax
(alternatively, in some embodiments, some of the system interfaces
could be exposed for use by these remote users); (3) content
providers--typically content providers require a very simple
interface for submitting content (e.g. an ftp mechanism to upload
content). The system operators take this uploaded content and,
after proper checks, use the system to package the content; and (4)
end-users (e.g., consumers of the content)--typically download the
content and RSS feeds from the public Internet infrastructure.
[0217] FIG. 5 shows entities and their relationships in an
illustrative database schema in accordance with some embodiments.
The major entities in the system are as follows: (1) users (e.g.,
consumers/end users); (2) content (including content, tags and
content type, channels, channel categories, feeds, and content
providers); (3) advertisers (e.g., including advertisers and
ad-purchase orders); (4) order fulfillment entities (e.g.,
including advertisements, ad-spot reservations and ad-assignment;
(5) group and location ads; and (6) raw statistical data.
[0218] The discussion below focuses on each of the major entities
in the system and provides details about their relationship to one
another, and use cases that affect these entities.
[0219] Users
[0220] FIG. 6 shows the `user` and related information, according
to some embodiments. In one embodiment, a user entity is tracked by
the following attributes:
[0221] username
[0222] password
[0223] first name
[0224] last name
[0225] phone number
[0226] GUID
[0227] The user may optionally provide extra demographic and
geographic information (e.g., via a form that is filled-in at
sign-up), such as: [0228] age [0229] gender [0230] marital status
[0231] number of children [0232] income level--range of family
income [0233] profession [0234] email [0235] postal address [0236]
geographic location--this could be inferred from the address,
however, a geographic location refers to the region-category of the
address.
[0237] For anonymous users of the system many of the optional
tracking attributes may not be available initially. However this
information could get filled in over time (e.g., via information
collected through surveys) or through other channels (e.g.,
external sources of demographic data such as operator provided
customer data containing demographic information).
[0238] Tracking Users.
[0239] In one embodiment, users can get recorded into the system in
at least two ways: (1) signed-up users--in this use case the users
enter all or some of their details in a form and submit the form
when signing up; and (2) anonymous users--these are users who
either directly download the mobile client or get the client when a
friend forwards the application to them. They then go to an
Internet cafe and "anonymously" sync up their mobile phones with
the content. The PC application generates a GUID) and places it on
the mobile phone. Subsequently, the phone sends a "Call-Home
Message" to the backend which associates the GUID with the mobile
phone number
[0240] Updating Users.
[0241] In one embodiment, operators are able to update user data
(e.g., for managing lost/stolen passwords, and/or otherwise
updating user records).
[0242] Importing Demographic Data.
[0243] In one embodiment, demographic data (if made available from
external sources) is formatted and entered into the system. e.g.,
through database update scripts.
[0244] Dynamic Categories.
[0245] In one embodiment, user behavior and preference data is
continuously collected and analyzed. Over a period of time this
data can help in categorizing the users into dynamically defined
categories. These categories can be used to target advertisements
more effectively. Some examples of dynamic categories are frequent
consumers of sports content, frequent responders to surveys,
frequent consumers of promotions/coupons, frequent buyers of items,
and/or the like.
[0246] In one embodiment, users can be classified as belonging to
these dynamic categories based on inferences from analyzed data.
The categories themselves can be dynamic, and could be added,
modified, and/or deleted dynamically. There is a certain amount of
fine-tuning that gets done as the system collects data, which is
analogous to setting up a store and coming to know your customers
really well over time. When you know the customers, the store can
recommend or target the customers with products they think the
customer might like.
[0247] Content
[0248] Content Tags, and Content Type.
[0249] FIG. 7 shows the `content` entity, which represents content
items and related items, according to some embodiments. In one
embodiment, a content item is associated with 0 to N tags that can
be used to search the content item. A content item is of a
particular mime-type (e.g. audio/Mp3, video/3 gp, etc). In one
embodiment, a content item may have the following attributes:
[0250] id--unique id
[0251] content_provider_id--id of the content provider that
submitted this content
[0252] provider_generated_id--id used by the provider to identify
this content item
[0253] name--user friendly name for the content item
[0254] description--verbose description
[0255] duration
[0256] content type
[0257] image_url--artwork for content item
[0258] mobile_image_url--artwork created for the mobile phone
platform
[0259] In one embodiment, backend operators will test/verify and
enter/update the content item data at content intake time (e.g.,
adding content uploaded by the content provider, e.g., to an ftp
site). The operator may also organize the content into channels,
feeds, etc. as described in more detail below.
[0260] Channels, Feeds, Items, and Categories.
[0261] FIG. 8 shows entities used for content organization,
according to some embodiments. In the example shown in FIG. 8, the
entities are: channels 810, feeds 812, feed items 814, and channel
categories 816. In one embodiment, a content item may appear in
zero or more feeds, and a channel may have zero or more feeds
associated with it (e.g., the channel could be `Dance Contest` and
feeds associated with the channel could be `Week1`, `Week2`,
`WeekN`, etc.). In one embodiment, a channel can belong to zero or
more channel categories, and channel categories are used to search
for channels using the PC application.
[0262] Advertisers
[0263] Advertisers, Advertisements, and Purchase Order.
[0264] FIG. 9 shows the entities `advertiser`, `advertisement` and
`purchase order` in context, according to some embodiments. In the
example shown in FIG. 9, the `purchase order` is associated with
the advertiser, even though it is typically the operator who will
enter it (e.g., as a sales order for the system). In other
embodiments, other relationships between the entities shown in
FIGS. 5-12 could be used.
[0265] In some embodiments, information regarding an advertiser is
typically entered into the system by an operator. In some
embodiments, an interface could be exposed for remote advertisers
to register themselves into the system. An advertiser can place a
purchase order for N ad-slots (various types) for a particular
feed. Note that the actual content item is usually not known when
the advertiser places the order for ad-slots (e.g., ads-slots are
often sold in advance of the taping of a show). The advertiser
usually decides to advertise on a particular channel based on the
popularity, ratings, or general type of content served by that
channel. In one embodiment, the sale price for ad-slots is
initially set to NULL, and gets filled in when order fulfillment
occurs.
[0266] Referring to FIG. 9, in one embodiment advertisers have the
following attributes: (1) ID (e.g., a unique ID); (2) name; (3)
address; (4) billing address; and/or (5) contact information for
one or more contacts. The advertisement entity represents different
types of ads (e.g., with some de-normalization, for efficiency).
Advertisements are typically uploaded after the sales and
reservation step of order fulfillment has occurred (e.g., if an
advertisement is specially made for a specific show/event);
however, an advertiser may choose to upload stock advertisements in
advance. Thus, in one embodiment, the process of uploading
advertisements can be delinked from the order placement and
reservation step during order fulfillment. The advertisements
entered are an input to the ad-assignment step of the order
fulfillment process. The ad-assignment step thus uses the existing
inventory of advertisements for each advertiser.
[0267] In one embodiment, advertisement 914 has the following
attributes: (1) ID (e.g., a unique ID); (2) advertiser_id--id of
the advertiser that submitted this advertisement; (3)
ad_type_id--type of ad (e.g., text, video, video+survey, banner,
pure survey, etc.); (4) ad details--(e.g., text, banner file URL,
or video ad file URL); and (5) information regarding whether the ad
is a standby ad (e.g., an ad that gets placed if there is space
available).
[0268] Order Fulfillment Entities
[0269] Ad-Reservation and Ad-Allocation (Assignment).
[0270] FIG. 10 shows the entities involved in order fulfillment in
one embodiment. Each feed-item is associated with a fixed number
(e.g., up to 5) ad-slots 1010 which comprise the ad-magazine for
the feed-item of a particular type of ad. For example, feed-item
`Artist XYZ, Song #2` may be associated with one text ad magazine,
one banner ad magazine, and one video ad magazine. In this example
embodiment, each ad magazine would have five slots for five ads.
The ad-slot represents a unit of the advertisement real estate for
each feed-item. Ads in each ad-magazine are rotated, and the first
ad is rotated in a round-robin fashion in the feeds in order to
avoid favoring any particular ad in the ad-magazine. Ad-slots get
filled with advertisements via the order fulfillment process. In
one embodiment, order fulfillment takes place in two steps: (1)
reservation--reservation of ad-slot(s) for an advertiser; and (2)
allocation (or assignment)--actual mapping of an advertisement to a
reserved ad-slot.
[0271] In one embodiment, an ad-purchase order starts in a `new`
state and goes through `reserved`, `allocated`, and `confirmed` or
`cancelled` states. In one embodiment, a purchase order may be
cancelled at any time until the sale is confirmed, at which time it
goes into the `confirmed` state. In one embodiment, this function
can be called manually (e.g., to manually confirm the purchase) or
automatically (e.g., an order gets automatically confirmed after a
cut-off date passes, such as a cut-off date before the feed goes
live, which could beset in the system based on business rules).
[0272] Ad-Slot Reservation
[0273] Order Selection.
[0274] During the reservation phase ad-slots get reserved. One or
more Purchase Orders may be selected for order fulfillment.
Multiple orders are typically selected at the end of the bidding
process--in this case the order fulfillment process sorts the bids
by price (high to low) and then proceeds to fulfil the orders from
the top to the bottom until all the available slots are reserved. A
single order may also be selected for order fulfillment--the use
case for this is an advertiser directly purchasing ad-space for the
full retail price.
[0275] Ad-Slot Reservation.
[0276] A very simple scheme for reservations could be to allocate
slots to all advertisers who qualify for a particular feed in a
round-robin fashion until their orders are satisfied (unreserved
slots will be filled later from a pool of standby advertisements).
When there are more constraints on the reservation the problem
becomes one of optimization--the overall goal of the optimization
is to maximize the ad-revenue (e.g., to leave as few slots
unreserved as possible).
[0277] Reservation Constraints.
[0278] In one embodiment, constraints for reservations fall into
two categories: those that relate to the user and those that relate
to the advertisements themselves. In this document the first type
of constraint is referred to as a `Targeting Constraint` and the
second type of constraint is called an `Adjacency Constraint`
[0279] Some examples of Targeting Constraints could include: (1)
Reserve ad-space that targets a certain geographic, demographic or
dynamic user group instead of the general population; and (2)
Reserve ad-space that targets a certain age group or income level
instead of the general population.
[0280] Adjacency constraints could include conditions such as: (1)
Require that an advertisement for a particular advertiser appear at
least X content-items apart (e.g., to avoid user fatigue); (2)
Require that an advertisement for an advertiser appear no more than
X content-items apart (to ensure that the impression of the
advertisement does not fade in the mind of the user); (3) Require
that a banner ad for one advertiser never appear together with a
video ad for another (e.g., for a competitor); and (4) Require that
a certain banner and text ad appear together in order to reinforce
each other. Note that the specific advertisement itself may be
uploaded at a later date; however, in one embodiment, the
constraints are specified up-front at reservation time as they
cannot readily be taken into account at ad-allocation time.
[0281] Specifying Constraints.
[0282] Users should be able to specify constraints in a clear and
easy way to use the system effectively. A simple tagging mechanism
that allows simple wildcards could be used to specify constraints.
For example let us assume that the advertisements are tagged with
some unique tags.
[0283] For example: V-ABC-XYZ-Ad23--Video Ad #23 for Advertiser XYZ
from advertising agency ABC; and B-EFG-JKL-Ad35--Banner Ad #35 for
Advertiser JKL from advertising agency EFG. When placing an
ad-space order line for the ABC-XYZ video ad, the constraint could
be specified as `*-*-!JKL-*` to mean that the banner ad magazine
for the content item may not contain an ad from advertiser JKL.
[0284] User Pools.
[0285] End-users for whom the system has optional information
available fall into certain pools or target groups. All other users
are considered part of the untargeted pool of users. When an
advertiser buys an untargeted ad-space, he is trying to reach the
untargeted pool. If there is ad-space left in the targeted pool,
some of those (usually more sought after) users might also be
served the untargeted ads but that is not guaranteed. A targeted
ad-space on the other hand specifically is intended to reach the
target audience it seeks to reach. In preferred embodiments, users
in the target group are guaranteed to be served the targeted
advertisement.
[0286] Ad-Slot Allocation.
[0287] Ad-slot allocation refers to the mapping of a particular
advertisement from an advertiser to the slot reserved for the
advertiser. In preferred embodiments, the system should allow the
following ways to allocate ad slots: (1) Automatic ad-slot
allocation: The system should be able to produce an allocation
automatically; (2) Manual editing of the allocation table should be
allowed--this will allow an operator to manually tweak or fine-tune
an allocation; and (3) Importing the allocation table should be
allowed: This will allow the allocation scheduling to be performed
using an external tool (e.g. a mathematical library that is
designed for this purpose) and the results could be imported into
the system.
[0288] Ad-Selection.
[0289] An advertiser may choose to select some of the
advertisements in the pool for certain channels and not for certain
other channels. This is expected to affect a relatively smaller
number of advertisements. For example--some ads are meant to be
used only for a special or finale in the show but not for regular
episodes.
[0290] Coupons and Location Sensitive Ads
[0291] FIG. 11 shows the entities involved in Coupons and Location
Sensitive Ads. Coupons 1110 may be categorized by type (e.g.,
`Food`, `Sports`, `Footwear`, `Gift items` etc.). A local ad that
offers a coupon may be created for a particular geographic location
by providing the coordinates and the effective radius. The
description attribute for the location sensitive ad refers to the
text displayed to a user in a pop-up while offering to display the
location sensitive ad. If the user affirms that he would like to
see this ad, the corresponding coupon is displayed by the
application. Otherwise the location sensitive ad popup is
dismissed.
[0292] Raw Statistical Data
[0293] FIG. 12 shows how raw statistical data gets collected
according to some embodiments. Event records 1210 for different
event types (e.g., Play, Stop, Skip, Vote, Survey, Ad-Rotation) and
associated event data (e.g., items selected in a Survey submission
event) is recorded as part of the event data. Content download
events are also recorded and this data is collected and uploaded to
the database. The raw statistical data is analyzed and correlated
with demographic data to derive inferences about user behavior and
preferences. Currently, content services typically only measure
ad-impressions by counting the number of downloads from the server
side. Embodiments of the systems and methods described herein can
provide better metrics by measuring actual viewings of
advertisements by the client. For example, if the ads for a feed
item started from Ad #3 in the ad-magazine with 5 ads, and the
Ad-rotation event counted 6 rotations then we can tell that Ad #3
was shown twice and all the other ads were shown once.
[0294] Illustrative User Interface Screens
[0295] Basic Screen Layout.
[0296] FIG. 13 shows a basic three-pane layout in accordance with
one embodiment. The left (tree) panel 1310 gives access to the
major functions. Each tree node opens to show individual items in
that category. Selecting a function group/item changes the contents
of the search panel and the detail panel. The contents of the
search panel 1320 change based on what is being currently displayed
in the detail panel. The detail panel 1330 shows the forms for
performing the selected function item/function group.
[0297] User Management.
[0298] FIG. 14 shows an illustrative interface 1410 for performing
user management, in accordance with some embodiments.
[0299] Ad Management
[0300] Ad-Management Sub-Items.
[0301] FIGS. 15, 16 and 17 show illustrative interfaces for an
Advertiser, Advertisement, and Ad-Purchase Order, respectively,
according to certain embodiments. In one embodiment, the
`Ad-Management` node in the tree panel in FIG. 13 has the following
child nodes: Advertiser (see, e.g., interface 1510 in FIG. 15);
Advertisement (see, e.g., interface 1610 in FIG. 16); and
Ad-Purchase Order (see, e.g., interface 1710 in FIG. 17).
[0302] Advertisement.
[0303] Referring to the illustrative embodiment shown in FIG. 16,
the Ad Detail Pane 1620 contents change with the radio button
selection for Ad-type. The `Standby Ad` box 1630 is checked when an
ad will be used for order fulfillment if there are any ad-slots
left unfilled (e.g., ads that will be billed at the Minimum
Ad-space Price); (3) `Tag` box 1640 is a user-provided unique ID
for the advertisement (e.g., mandatory if it is a Survey Ad) or for
use in enforcing constraints in ad-space reservation/allocation;
(4) When the `Text Ad` radio button is selected, the pane shows a
text area to enter a Text Ad; (5) For Video Ads, the pane shows the
following: a text box to enter video URL, a file selection button
next to it (e.g., a button that shows the File selection dialog),
and a drop-down box to select a Survey Ad to associate with this
video ad; (6) For Banner ads the pane shows the following: a text
box to enter a IJRL, and a file selection button next to it (e.g.,
a button that shows the file selection dialog); (7) For Survey Ads
the pane shows the following: a text box to enter a survey
question, a radio button with options to select the type of survey
(e.g., radio-button based or check-box based), and a grid to enter
survey items.
[0304] Ad-Purchase Order.
[0305] Referring to FIG. 17, the Purchase Order screen 1710 allows
advertisers (or operators entering data for the advertiser) to
enter a purchase order for ad-slots. A purchase order can be placed
for one or more feeds in a single channel or multiple channels. The
targeting pane 1720 allows the user to choose the type of
targeting. The adjacency constraint pane 1730 can be used to
specify the adjacency constraints (e.g., how far apart the
advertiser wants its ads to be). The purchase order list grid 1740
enables the purchaser to place an order with multiple items. The
Adj. Tag column in the purchase order list 1740 can be used to
specify a constraint for keeping two ads together (e.g. a text ad
and a banner ad will be shown together--they go in the same
position in the ad-magazine). In one embodiment, text and banner
ads, for example, may rotate faster than video ads, and thus
linking a video ad to a text ad will only ensure that they go to
the same feed item; however the ads may not always get shown
together.
[0306] Content Management
[0307] Content Management Sub-Items.
[0308] In one embodiment, the `Content-Management` node in the tree
panel of FIG. 13 has the following child nodes: (1) Content
Provider; (2) Content; (3) Channel; and (4) Feed.
[0309] Content Provider.
[0310] FIG. 18 shows an illustrative content provider screen
1810.
[0311] FIG. 19 shows a channel interface screen 1910, in accordance
with some embodiments.
[0312] FIG. 20 shows a feed interface screen 2010, in accordance
with some embodiments.
[0313] Order Fulfillment
[0314] FIG. 21 shows a reservation interface screen 2110, in
accordance with some embodiments. Note that one or more purchase
orders may be selected for reservation. In one embodiment, if more
than one purchase order is selected, the orders are sorted by
bid-price and fulfilled in that sequence.
[0315] FIG. 22 shows an allocation interface screen 2210 in
accordance with some embodiments. The ad exclusion panel 2212
allows some ads to be excluded for allocation (e.g., exclude ads
that are to be used only for specials or season finales). The
screen layout 2210 could be changed if the requirement is to choose
advertisements rather than to exclude advertisements for
allocation. Allocation can be done in a single pass or multiple
passes (e.g., one pass each for advertisers, one pass for each
purchase order, etc.) As long as the reservation exists it can be
filled in a number of passes. When the final pass is being
performed (for example, if a checkbox indicating it is the final
allocation is checked), any remaining slots will be filled using
standby ads.
[0316] FIG. 23 shows a modify allocation interface screen 2310,
according to some embodiments. Screen 2310 allows a user to
manually tweak the ad-allocation. The user will be allowed to
override the allocation. If the user's change violates a constraint
used in reservation, he will be shown a warning but would still be
given the choice to go ahead and save the change.
[0317] According to some embodiments, the ad-space allocation could
be computed using an external mathematical library and the results
of the allocation could then be directly imported into the
system.
[0318] FIG. 24 shows a coupon interface screen 2410, according to
some embodiments.
[0319] FIG. 25 shows a location ad interface screen 2510, according
to some embodiments.
[0320] Reports and Analysis
[0321] Reports for Advertisers.
[0322] The following are examples of types of reports for
advertisers, according to some embodiments: (1) Impressions (e.g.,
number of views) for an advertisement (e.g., how many times was an
advertisement actually shown to users). Figures could be broken
down by age, gender, income, geographic location, marital status,
etc.; (2) Number of downloads--how many times was an advertisement
actually downloaded; (3) Number of survey responses per 1000 views
of an advertisement--how many of the viewers responded to the
survey; (4) Survey response frequency histogram--how did
respondents respond to survey question X; and (5)
Location-sensitive ad viewing--location-sensitive ad viewership
data (e.g., with numbers broken down by gender, income level, age,
etc).
[0323] Data Analysis Reports.
[0324] The following are examples of type of data analysis reports,
according to some embodiments: (1) User Activity--in one
embodiment, this will provide a graph of active users broken down
by age, gender, income level, location, or dynamic group. User
activity is measured as a percentage of feeds viewed by the user.
For example, in one embodiment a user who is 50% active is one that
has seen half the feeds that he downloaded to his mobile phone.
Examples include activity by age, gender, income level, region, and
dynamic group; (2) Viewership measurement--number of users who
viewed a particular channel, feed or content item. Examples include
viewership by channel, feed, content item and content tag; and (3)
Viewer habits--e.g., what users are watching at present. Examples
include percentage shares of each channel by user, region, age, and
gender.
[0325] Ad-Reservation Example
[0326] To further illustrate some embodiments, an example is given
of the use of an external mathematical library for the reservation
of ad slots for a given episode. In this example, the reservation
problem for a typical episode for a channel is described. A
description is given of the building of a mathematical model for
the problem using AMPL. The use of a suitable solver to solve the
problem and a brief interpretation of the results is given.
[0327] Problem Description.
[0328] Assume that the feed (weekly episode) for a particular
channel has ten content items. Each content item is associated with
five of each type of ad (e.g., text-ads, banner-ads, and
video-ads), thereby yielding space for 50 text-ads, 50 banner-ads
and 50 video-ads.
[0329] Tables 2-4 show data for untargeted ads. The orders are
sorted by price.
[0330] For targeted ad-space orders the mechanism for describing
and solving is basically similar. In the case of targeted orders,
the orders would first be sorted into lists containing orders with
the same target group. After this point the allocation process
remains the same.
[0331] Let us also assume that the standby ad rates for Video,
Banner and Text ads are $1000, $200 and $100 per slot
respectively.
TABLE-US-00002 TABLE 2 Video Advertisements Adver- Ad- #Slots Bid
Target Adjacency tiser Type Ad-Tag Required Price group Constraint
ABC Video V-ABC- 5 20,000 None !B-*- Corp. ZZZ-1 TUV-* Video V-ABC-
3 20,000 None !B-*T-* F-23 && !T-*T-* EFG Video 20 8,000
None min ad- Corp. distance = 2 (inclusive) 10 8,000 None XYZ,
Video 7 7,500 None None Inc. QRS Video 15 7,000 None None Corp.
[0332] As shown in Table 2, ABC Corp. had placed a bid for five
slots for the ABC-ZZZ video ad and would like to have the slot only
if an add for TUV Corp. will not appear with it; ABC Corp. has
another bid for 3 slots for ABC-F ads; the constraint condition is
that the ad be not paired with a text or banner ad for T Corp.; EFG
has a bid for 20 slots with a minimum ad-distance of 2; EFG has
another bid for 10 slots with no constraints; and XYZ and QRS have
placed unrestricted bids for 7 and 15 slots, respectively.
[0333] Banner Advertisements
TABLE-US-00003 TABLE 3 Banner advertisements Adver- Ad- #Slots Bid
Target Adjacency tiser Type Ad-Tag Required Price group Constraint
ABC Banner B-ABC- 20 2,000 None !V-*- Corp. TUV-32 ZZZ-* EFG Banner
B-EFG- 10 2,000 None None Corp. TM-23 Banner 20 1,500 None None
Banner 10 500 None None XYZ, Banner 20 500 None None Inc. QRS
Banner 15 400 None None Corp.
[0334] As shown in Table 3: ABC Corp. has placed a bid for 20 slots
for the ABC-TUV Banner Ad and would like to ensure that these never
get paired with a video ad for ZZZ Corp.; EFG Corp. has placed a
bid for 10 slots for TM Corp. Banner Ads, with no constraints; and
EFG, XYZ, and QRS have other bids for banner ads which are not
constrained.
TABLE-US-00004 TABLE 4 Text Advertisements Adver- Ad- #Slots Bid
Target Adjacency tiser Type Ad-Tag Required Price group Constraint
ABC Text T-OM- 30 1,000 None None Corp. PEP-32 Text T-OM- 10 1,000
None None TM-23 EFG Text 20 300 None None Corp. XYZ, Text 10 300
None None Inc. Text 20 300 None None QRS Text 200 None None
Corp
[0335] As shown in Table 4: ABC Corp. has placed a bid for 30 slots
for PEP Text Ads and 10 TM text ads; and (2) EFG, XYZ, and QRS have
bids for text ads which are not constrained.
[0336] The goal of the allocation is to maximize the total
ad-revenue from all three types of ads.
[0337] Model Building.
[0338] The following is an illustrative description of the problem
and its expression in a modelling language known as "A Modeling
Language for Mathematical Programming" (AMPL). In modeling this
illustrative ad-space reservation example, the description includes
expressing sets, parameters, variables, the objective function, and
constraints.
[0339] Sets.
[0340] There are two sets in the ad-space: (1) a set of content
items with which the ad-magazine (of a particular type) is
associated; and (2) a set of N slots in the ad-magazine. This can
be written in AMPL notation as follows:
[0341] set CONTENT_ITEMS; # set of content items
[0342] set AD_MAGAZINE_ITEMS; # set of items in the ad-magazine
[0343] Parameters.
[0344] The parameters that take part in the problem are:
[0345] #--parameters for the ad-space reservation--
[0346] param VIDEOAD_STANDBY_RATE;
[0347] param BANNERAD_STANDBY_RATE; [0348] param
TEXTAD_STANDBY_RATE;
[0349] Variables.
[0350] The ad-space allocation for each video/banner/text ad can be
modelled using a 10.times.5 matrix of binary numbers which is the
allocation map. If the value of the element is 1 the slot is
assigned for that video/banner/text ad. Otherwise the slot is not
assigned for that advertisement. These are the variables in the
allocation problem.
[0351] #--allocation maps for video ads--
[0352] var ABC_VID_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0353] var ABC_VID_AD.sub.--2{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0354] var EFG_VID_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0355] var EFG_VID_AD.sub.--2{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0356] var XYZ_VID_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0357] var QRS_VID_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0358] #--allocation maps for banner ads--
[0359] var ABC_BAN_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0360] var EFG_BAN_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0361] var EFG_BAN_AD.sub.--2{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0362] var EFG_BAN_AD.sub.--3{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0363] var XYZ_BAN_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0364] var QRS_BAN_AD.sub.--1{(CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0365] #--allocation maps for text ads--
[0366] var ABC_TXT_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0367] var ABC_TXT_AD.sub.--2{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0368] var EFG_TXT_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0369] var XYZ_TXT_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0370] var XYZ_TXT_AD.sub.--2{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0371] var QRS_TXT_AD.sub.--1{CONTENT_ITEMS,
AD_MAGAZINE_ITEMS}binary;
[0372] Another set of variables is the selling price for the slots
which is determined as a result of the allocation. However this
variable can only take a fixed set of values (e.g., the sale price
is the bid price for the lowest priced bid that was accepted).
[0373] It is much easier to solve the problem if these variables
are converted into parameters. The problem can then be broken down
into a set of simpler problems and the global maximum can be
obtained by selecting the problem for which the combination of
parameters gives the highest ad-revenue.
[0374] #--price per slot (evaluated as a result of evaluating the
bids for the slots)
[0375] param VID_SLOT_SALE_PRICE;
[0376] param BAN_SLOT_SALE_PRICE;
[0377] param TXT_SLOT_SALE_PRICE;
[0378] The number of unsold slots for video/banner/text ads is
another variable in the problem. There could be constraints on it
(e.g. a certain number of slots must be kept free for public
service ads). In this example, it is assumed that the number of
unsold slots is a parameter, with a value of zero.
[0379] #--unsold slots--
[0380] param VID_UNSOLD_SLOT_NBS;
[0381] param BAN_UNSOLD_SLOT_NBS;
[0382] param TXT_UNSOLD_SLOT_NBS;
[0383] Objective Function.
[0384] The goal of the process is to maximize the sum of the
ad-revenue from all three types of ad-space sales. This is our
objective function. This can be expressed as follows:
TABLE-US-00005 # -- objective function -- maximize TOTAL_AD_REVENUE
: (sum {i in CONTENT_ITEMS, j in AD_MAGAZINE_ITEMS}
(ABC_VID_AD_1[i, j] + ABC_VID_AD_2[i, j] + EFG_VID_AD_1[i, j] +
EFG_VID_AD_2[i, j] + XYZ_VID_AD_1[i, j] + QRS_VID_AD_1[i, j]) *
VID_SLOT_SALE_PRICE) + (sum {i in CONTENT_ITEMS, j in
AD_MAGAZINE_ITEMS) (ABC_BAN_AD_1[i, j] + EFG_BAN_AD_1[i, j] +
EFG_BAN_AD_2[i, j] + EFG_BAN_AD_3[i, j] + XYZ_BAN_AD_1[i, j] +
QRS_BAN_AD_1[i, j]) * BAN_SLOT_SALE_PRICE) + (sum {i in
CONTENT_ITEMS, j in AD_MAGAZINE_ITEMS} (ABC_TXT_AD_1[i, j] +
ABC_TXT_AD_2[i, j] + EFG_TXT_AD_1[i, j] + XYZ_TXT_AD_1[i, j] +
XYZ_TXT_AD_2[i, j] + QRS_TXT_AD_1[i, j]) * TXT_SLOT_SALE_PRICE) +
(VID_UNSOLD_SLOT_NBS* VIDEOAD_STANDBY_RATE) + (BAN_UNSOLD_SLOT_NBS*
BANNERAD_STANDBY_RATE) + (TXT_UNSOLD_SLOT_NBS*
TEXTAD_STANDBY_RATE)
[0385] Constraints.
[0386] The solution is constrained by the following
constraints:
[0387] 1. A slot in an ad-magazine can be reserved for one order
only.
TABLE-US-00006 # -- no double-allocations -- subject to
VIDEOAD_ALLOC_CONSTRAINT_ONCE {i in CONTENT_ITEMS, j in
AD_MAGAZINE_ITEMS} : 0 <= (ABC_VID_AD_1[i, j] + ABC_VID_AD_2[i,
j] + EFG_VID_AD_1[i, j] + EFG_VID_AD_2[i, j] + XYZ_VID_AD_1[i, j] +
QRS_VID_AD_1[i, j]) <= 1 : subject to
BANNERAD_ALLOC_CONSTRAINT_ONCE {i in CONTENT_ITEMS, j in
AD_MAGAZINE_ITEMS} : 0 <= (ABC_BAN_AD_1[i, j] + EFG_BAN_AD_1[i,
j] + EFG_BAN_AD_2[i, j] + EFG_BAN_AD_3[i, j] + XYZ_BAN_AD_1[i, j] +
QRS_BAN_AD_1[i, j]) <= 1 : subject to
TEXTAD_ALLOC_CONSTRAINT_ONCE {i in CONTENT_ITEMS, j in
AD_MAGAZINE_ITEMS} : 0 <= (ABC_TXT_AD_1[i, j] + ABC_TXT_AD_2[i,
j] + EFG_TXT_AD_1[i, j] + XYZ_TXT_AD_1[i, j] + XYZ_TXT_AD_2[i, j] +
QRS_TXT_AD_1[i, j]) <= 1 :
[0388] 2. Constraints for mutual exclusion for advertisements.
TABLE-US-00007 # -- adjacency (mutual exclusion) constraints --
subject to MUTEX_TUV_ZZZ_ADS {i in CONTENT_ITEMS, j in
AD_MAGAZINE_ITEMS, k in AD_MAGAZINE_ITEMS} : 0 <=
(ABC_VID_AD_1[i, j] + ABC_BAN_AD_1[i, k]) <= 1 :
[0389] 3. Distance constraints--distance constraints are similarly
specified using the allocation map for the advertisement for which
the distance applies.
TABLE-US-00008 # -- adjacency (distance) constraints -- # -- for
the minimum distance (ad has to be at least two feed-items apart) -
subject to MIN_DIST_EFG_VIDEO_ADS_1 {i in 2..9, j in
AD_MAGAZINE_ITEMS} : EFG_VID_AD_1[i, j] <= 1 - sum{i0 in
DISTANCE_1_OFFSETS} (sum{j0 in AD_MAGAZINE_ITEMS)
(EFG_VID_AD_1[i-i0, j0])) :
[0390] 4. Ordered quantity--limits are placed on the allocation by
the quantity ordered for each type of ad-space. These constraints
are modelled as follows:
TABLE-US-00009 # -- max number of allocated slots -- # -- Video ---
subject to ABC_VID_AD_1_QTY : 0 <= sum (i in CONTENT_ITEMS, j in
AD_MAGAZINE_ITEMS} (ABC_VID_AD_1[i, j]) <= ABC_VID_AD_1_MAX_QTY
:
[0391] Solving the Problem.
[0392] Available Tools--for problems that involve integer variables
like the one described above, numerical methods in the "Branch and
Bound" category are the most effective. It is important to
formulate the objective function and constraints as linear
constraints because numerical methods for integer problems with
non-linear constraints/non-linear objective function are not very
well-developed. The numerical techniques for linear problems are
well-developed and these algorithms converge reasonably fast.
[0393] For non-linear problems most of the techniques used consist
of variations of the basic Newton's method. Since these method use
derivatives, solvers should relax the integrality of the variables
during computation. The result obtained is therefore in real number
space and may require some post-processing (rounding etc) for
interpretation. The post-processing can move the solution very far
from the computed optimum. Due to this, sensitivity analysis should
be performed for the solution. Because of all these difficulties,
formulating the problem using linear constraints is useful.
[0394] Choice of Solver--the solver used for this example problem
is the CBC solver (http://www.coin-or.org/Cbc/cbcuserguide.html)
available under CPL. A CBC solver is hosted by NEOS
(http://neos.mcs.anl.gov/neos/solvers/milp:Cbc/ampl.html). This
solver is used for solving the example problem.
[0395] Results.
[0396] Tables 5-7 below summarize the results for video-ads, banner
ads and text-ads in this example.
TABLE-US-00010 TABLE 5 Video-Ad Reservation Table Item# Item# Item#
Item# Item# Item# Item# Item# Item# Item# 1 2 3 4 5 6 7 8 9 10 Ad1
XYZ1 QRS1 ABC2 QRS1 EFG2 ABC1 QRS1 EFG1 Ad2 EFG1 QRS1 EFG2 QRS1
EFG2 QRS1 ABC2 ABC1 QRS1 QRS1 Ad3 XYZ1 ABC1 EFG2 XYZ1 XYZ1 QRS1
QRS1 EFG2 QRS1 Ad4 EFG2 XYZ1 XYZ1 QRS1 ABC2 EFG2 XYZ1 EFG2 Ad5 EFG2
ABC1 QRS1 EFG1 QRS1 EFG2 EFG1 QRS1 ABC1
[0397] The following results for video ads were obtained:
(ABC1)==5; sum(ABC2)==3; sum(EFG1)==4, only 4 are spots get
reserved because of distance constraints; sum(EFG2)==10;
sum(XYZ1)==7; and sum(QRS1)==15. Note that some slots are left
unfilled because all the purchase orders are filled (subject to
constraints). These will get filled by "Standby" Video Ads in
preferred embodiments.
TABLE-US-00011 TABLE 6 Banner-Ad Reservation Table Item# Item#
Item# Item# Item# Item# Item# Item# Item# Item# 1 2 3 4 5 6 7 8 9
10 Ad1 ABC1 EFG2 QRS1 QRS1 EFG2 ABC1 QRS1 EFG2 XYZ1 XYZ1 Ad2 QRS1
XYZ1 QRS1 ABC1 EFG3 EFG1 EFG2 EFG2 QRS1 XYZ1 Ad3 ABC1 EFG2 EFG3
EFG3 EFG1 QRS1 EFG2 EFG2 XYZ1 QRS1 Ad4 QRS1 EFG3 EFG3 QRS1 EFG2
ABC1 EFG3 XYZ1 QRS1 QRS1 Ad5 ABC1 XYZ1 QRS1 EFG2 QRS1 XYZ1 EFG1
XYZ1 QRS1 XYZ1
[0398] The exclusivity of TUV banner with ZZZ Video Ads can be seen
from the above table. In this example, no constraints were put
favoring the higher priced bids over lower priced bids. Hence ABC1
is not given more slots over the other banner ads. This can be
fixed by adding tighter constraints in the model.
TABLE-US-00012 TABLE 7 Text-Ad Reservation Table Item# Item# Item#
Item# Item# Item# Item# Item# Item# Item# 1 2 3 4 5 6 7 8 9 10 Ad1
XYZ2 EFG1 ABC2 ABC2 ABC1 XYZ1 XYZ2 XYZ2 EFG1 EFG1 Ad2 ABC1 ABC2
EFG1 XYZ2 EFG1 XYZ2 EFG1 EFG1 XYZ2 ABC2 Ad3 ABC2 QRS1 EFG1 EFG1
XYZ1 XYZ2 ABC2 ABC2 XYZ1 ABC1 Ad4 EFG1 QRS1 XYZ2 ABC1 XYZ2 ABC2
XYZ1 QRS1 ABC1 EFG1 Ad5 EFG1 XYZ2 XYZ1 XYZ1 EFG1 XYZ2 ABC1 EFG1
EFG1 QRS1
[0399] Mobile Identification System and Methods
[0400] An advertisement-supported mobile content service will
typically need to identify the mobile device while uploading usage
statistics to the backend service. One way is for mobile
applications to probe the mobile device itself for identifying
properties. However a mobile device identifier is not uniformly
available to applications on all mobile devices, and in many cases
the number (if available) may not be unique.
[0401] For example, on mobile phones there are identifying
properties such as IMEI (International Mobile Equipment Identity)
or MEID (Mobile Equipment Identifier) for mobile phones. However
these properties are not uniformly available across all mobile
devices. Furthermore, it is possible to burn a different IMEI
number in a mobile device. Since IMEI was originally designed to
identify and blacklist stolen mobile devices, device theft usually
involves cloning the IMEI of a legitimate phone into a stolen
device. According to some industry estimates about 10% of the IMEI
numbers are not unique. In the case of mobile phones, IMSI
(International Mobile Subscriber Identity) is a more "sticky"
identifier for the mobile consumer since it follows the subscriber
even when the subscriber changes/upgrades his mobile device.
However IMSI is generally not available to mobile applications and
does not exist for other mobile devices.
[0402] Hence there is a need to provide a mobile identity for a
mobile device. In the case of mobile phones it is preferable if the
mobile identity can be correlated with the IMSI number for mobile
phones, as IMSI is more closely tied with the mobile consumer.
However, there preferably should be a balance between the need for
a mobile identity and the need to protect the privacy of consumers.
To some extent the requirements for the mobile identity are
determined by the cultural mores of a locale. For example, in some
cultures it may be acceptable to assign a unique identifier to a
mobile device so long as the unique identifier is not directly
identified with a physical person (e.g., an anonymous identifier
that cannot be traced back to a person). In some cases it may be
acceptable for the backend service to personally identify the
consumer as long as the service takes care to anonymize the data
when it discloses any aggregated or non-aggregated information to
outside third parties for conducting its business (e.g., aggregated
reports for usage statistics, statistics broken down by categories
of users etc.). In some other locales it may not be acceptable to
assign a unique identifier to a mobile device. The identifier may
need to be some sort of group identifier (e.g., an identifier that
identifies the user as belonging to a geographic region, a category
of users, an age group, etc.). The classification of the user could
be done using actual data (e.g., inferring geographic region by IP
address) or using user-provided information (e.g., answers to
survey questions provided by a user, information voluntarily
provided by a user during signing up, etc.). The classification of
the user could be dynamic and could potentially change over time
based on the user's responses to survey questions.
[0403] In one embodiment, a backend service provides its consumers
(advertisers, content providers, content aggregators) an assurance
that the usage data that it collects and reports is authentic and
accurate. This can be achieved, e.g., by signing the usage data
using a secret key. A simple mechanism to provide a mobile client
with a secret key is to have a baked-in (e.g., permanently or
semi-permanently installed at application manufacture or
download/installation) secret. However, a baked-in secret will not
necessarily be unique since users often copy the mobile application
from device to device. Also it is preferable for the backend
service and the mobile device to agree upon a secret key rather
than relying upon baked-in secrets since over time even the best
tamper resistance can be broken and the secret key will become
known. Diversification would provide some help in this context.
Diversification of the client application is valuable regardless of
any other factors; however, practical considerations often limit
the total number of diverse mobile application binaries.
[0404] A constraint for many mobile devices is that they are only
intermittently connected to a public network. Traditional protocols
such as TLS that rely on a network connection in order for the
device to obtain a unique personality/identity from the backend
cannot be used if there is no network connection.
[0405] Embodiments of the systems and methods described herein
address some or all of these issues.
[0406] FIGS. 26a and 26b are a flow chart showing steps for a
mobile content service to provide an appropriate mobile identity
and to protect/verify the usage data, according to some
embodiments. The Mobile client is only intermittently connected to
a network. In step 2610, the mobile client may be tethered to a PC
in a USB mass storage mode or it may be directly connected to a
network at the time it gets connected. In step 2614, if the mobile
device is tethered to a PC in a mass storage mode, then the mobile
application cannot directly talk to servers over the network. In
this situation the mobile application will store the composed
messages at a well-known location in the mobile device filesystem.
In step 2616, the message is delivered to the backend-service on
behalf of the mobile device by the PC sync application that runs on
the tethering PC the next time the PC-Sync operation occurs. The
server's response would be similarly stored in the filesystem of
the mobile device. The next time the mobile device runs it would
read the server response and would compose a message and store it
in the filesystem for the server (to be delivered by the PC Sync
application when it occurs the next time). The filesystem location
on the mobile device thus acts like a drop box. In step 2612, if
the mobile device is capable of and connects to the network
directly then the protocol messages could be directly exchanged
between the mobile client and the server. In step 2618, the mobile
client generates a new key Ks-usage for signing/encrypting the
usage data and stores it locally in an encrypted form using the
Ks-share which is the baked-in shared secret. Tamper resistance is
used to protect the baked-in secrets in the mobile device. In step
2620, the mobile client chooses p, g and chooses a random number
`a`. It remembers `a` by storing it in an encrypted form in its own
secure storage. In step 2622, the mobile client computes A=g a mod
p; and composes the first message M1 (Client->Server) containing
the following:
[0407] M1=Enc(Ks-share, nonce|p|g|A|Ks-share-ID|"m1.dat")
[0408] Ks-share-ID=id for Ks-share
[0409] Nonce=32 bit nonce
[0410] p=public key of the personality node baked into the mobile
client
[0411] g=typically chosen to be 5
[0412] a=a random number at least 100 digits long
[0413] In step 2624, if the mobile client gets connected to the
network using the USB mass storage mode, it may not be able to send
the message on its own. In this case it will store the composed
message in a well-known location on the file system of the mobile
device. If the mobile client gets directly connected to the network
it could send this message directly to the backend service. In step
2626, when the mobile device is connected to the network M1 is sent
to the server side (either by the device itself or by the tethering
PC). In step 2630, the server side selects a secret integer b and
computes B=g b mod p. It computes the Diffie Hellman ("DH") secret
key using Kdh=A b mod p=(g a mod p) b mod p=g ab mod p. It
generates a mobile identifier mobile-id which is either a unique
identifier or a group identifier and it then computes the following
response S2 which is sent to the Client in step 2631:
[0414] data=data-length|mobile-identifier|Enc(Ks-share,
nonce|B|"s2.dat")
[0415] S2=data|Enc(Kpriv, HMAC(Kdh, data))
[0416] The server will also store the (mobile-identifier Kdh,
nonce) locally for future use. The usage data (if any) is also
uploaded at this time--the data is signed and/or encrypted with
Ks-usage. Ks-usage is not known to the server at this time but it
will just store the data as having originated from the
mobile-identifier.
[0417] In step 2632, if the mobile app has directly connected to
the server then it can respond to the message with M2. In step
2624, if the mobile device does not directly connect to the network
but does so only through being tethered to a connected PC in the
mass storage mode, it may not be able to respond to the server
right away, but will do so the next time the mobile app runs. At
this point it can compute Kdh and verify the data in S2. If the
data does not verify it aborts the transaction and the process
begins all over again. If the data verifies then it knows it has
agreed upon Kdh with the server side. It will compose the third and
last message M3 with the following data:
[0418] M3=Enc(Kdh, nonce|Ks-usage|mobile-identifier|"m3.dat")
[0419] In step 2636, when it receives M3, the server side can
re-verify M1, S2 (if it was a tethered device) and check that the
values stored (mobile-identifier, Kdh, nonce) match. Next it can
use Kdh to decrypt M3 and obtain Ks-usage. In step 2638, it will
then store Ks-usage in the tuple locally:
[0420] (mobile-identifier, Kdh, nonce, Ks-usage)
[0421] At this point the transaction for providing the mobile
identity is complete. In step 2640, if the process fails at any
point either side can abort the transaction. The transaction can
restart the next time the mobile client connects. In step 2642, if
Mobile client aborts transaction: It deletes the files (if the
messages were stored as files--as in the case of a tethered mobile
device) and restarts the process. In step 2644, if the Server side
aborts the transaction: It deletes the files (if the messages were
stored as files--as in the case of a tethered mobile device OR
indicates that it has aborted the transaction to provide the mobile
identity to the client if the client directly connects to it) and
skips/fails the data upload. The mobile client then begins the
process the next time it gets a chance to do so.
[0422] The backend-server may choose to use a group-identifier
instead of a unique identifier depending on the local cultural
requirements. This group identifier may be chosen based on actual
data (e.g. geographic region group chosen based on the IP-address
of the synchronizing PC/Mobile client) or may be user selected
(directly or indirectly based on the user's responses to survey
questions or data provided by the user at signing up time).
[0423] The user's group-identifier could change over time based on
his survey-responses he sends back to the service. It is possible
for the server to "downgrade" to a group-identifier from a unique
identifier after sampling the user's responses for a period of time
to infer the user's classification group. Another scenario is a
periodic process of "renewal" of the mobile identity to obtain an
assurance that the mobile device continues to be a valid client of
the service. In these cases the server can force the client to redo
the transaction for obtaining a new mobile identifier. The mobile
client will report the old and new mobile identifiers back to the
server as part of the usage data to correlate the old identifier
with the new identifier. If the mobile device is a mobile phone
then it can also send the old/new identifiers back to the service
backend via the SMS channel which in addition to correlating these
two identifiers also enables the backend-service to associate the
IMSI number with a mobile identifier if that is appropriate for the
locale.
[0424] Thus, a protocol such as that described above can operate
within the constraints of an intermittently connected mobile
device, even when the mobile client application does not directly
connect to the backend service.
[0425] Client generates a secret key for signing usage data. In one
embodiment, this secret key is never stored in the clear but stored
in an encrypted form using a baked-in secret key. The mobile
application has tamper resistance applied to it to protect the
baked-in secret key.
[0426] The Client and the backend service perform a Diffie-Hellman
key-exchange to agree upon a key for transmitting the secret key
for signing usage data from the mobile client to the backend
service. The secret key agreed upon using DH is used to encrypt the
secret key while transmitting it to the backend service. In one
embodiment, this key is never used again.
[0427] The server provides a mobile device identifier on the device
as part of the protocol. The server provided identifier is signed
with a PKI signature using the private key of the backend
service.
[0428] The mobile client verifies the PKI signature on the
server-provided identifier to ensure that it has obtained the
identifier from a trusted service.
[0429] The server provides the mobile identity at the same time as
it engages in the Diffie Hellman key exchange. This makes it
possible to acquire the mobile identity by exchanging three message
steps. (Mobile->Server [M1], Server->Mobile[S2],
Mobile->Server[M3]).
[0430] An approach used for identity/individualization for a mobile
client is described herein. In the context of systems and methods
such as those described herein above, a mobile client may need to
be individualized and provided with a unique identity by the server
side. The mobile client can use this identifier to submit usage
statistics to the server. For example, an advertisement supported
mobile content service may need to provide an assurance to its
consumers (advertisers, content providers and aggregators) that the
usage statistics it provides are accurate and authentic, and the
content service might need to collect usage data using a suitable
mobile identifier and the data may need to be signed by the mobile
client application (and optionally encrypted). The mobile
identifier could be a unique identifier or a group identifier based
on cultural mores and local requirements. Embodiments of the
systems and methods described herein enable a mobile content
service to provide an appropriate mobile identity and to
protect/verify the usage data in order to meet these goals.
[0431] The following description is organized as follows: (1)
Mobile Client Identity--this section describes the attributes that
may be used for mobile client identity; (2) Individualization
Requirements and Constraints--this section deals with the
requirements for individualization and the constraints present on
the mobile handset in various embodiments; and (3)
Individualization Approach--this section describes the approach to
use for individualization in some embodiments.
[0432] Table 8 shows various abbreviations used in this detailed
description.
TABLE-US-00013 TABLE 8 Abbreviations MIDP Mobile Information Device
Profile IMEI International Mobile Equipment Identity - handset
identifier used to identify handsets in GSM and UMTS networks MEID
Mobile Equipment Identifier - globally unique identifier that
identifies a mobile device in a CDMA network IMSI International
Mobile Subscriber Identity GSM Groupe Special Mobile - the
prevalent standard for mobile telephony in Europe and most of the
world. GSM divides the allocated frequency spectrum into a number
of channels (carrier frequencies). Each channel is used in a
baseband mode of communication - TDMA is used for transmitting
speech channels (8 in full rate 13 kbps and 16 in half rate 5.6
kbps). GSM and CDMA are considered to be 2.sup.nd generation (2G)
Wireless technologies. 1G refers to analog wireless telephony. The
term 2.5G is used to refer to GSM networks that have added
capability for packet switching in addition to circuit switching
for increased capacity. CDMA Code Division Multiple Access - a
spread spectrum based technology from Qualcomm that increases the
bandwidth by using a broadband type of communication that uses the
entire spectrum. CDMA is less prevalent and is being replaced in
parts of the world by GSM [http://en.wikipedia.org/wiki/
Comparison_of_mobile_phone_standards] GPRS General Packet Radio
Service - uses a packet switched radio network (2.5G) to
send/receive data. Data rates from 56-114 kbps are supported by
GPRS EDGE/ Enhanced Data Rate for GSM Evolution - a bolt on
Enhanced technology for 2G and 2.5G networks that enhances GPRS the
data rates to 236.8 kbps for four timeslots. EDGE requires base
station subsystem upgrades and handsets that are capable of
coding/decoding in the new modulation scheme (PSK/8) used for EDGE.
EDGE networks are often called 2.75G networks, EDGE is the most
commonly deployed wireless networking technology currently in the
world. However not all handsets support EDGE. Evolved Another set
of HW/SW upgrades to EDGE can EDGE increase download data rates to
1 Mbps. As of 2008 many network and infrastructure providers have
made investments in this area but device manufacturers have not
come out with handsets that support this and there are no
commercial networks supporting Evolved EDGE. Evolved EDGE is
considered to be an alternative to 3G networks. HSPA High Speed
Packet Access - HSPA is part of the 3G standard and uses a
different frequency spectrum than 2G networks. HSPA has two
existing standards HSDPA (High Speed Downlink Packet Access) which
gives up to 14.4 Mbps download speed and HSUPA (High Speed Uplink
Packet Access) 5.76 Mbps theoretically but typically of the order
of 1 Mbps. Currently the 3G spectrum has not been opened in a
number of countries such as India or China
[0433] As used in this detailed description, the term
"Individualization" refers to a process of assigning a unique
identifier to a mobile handset, and the term "Personalization"
refers to a process of assigning a unique DRM personality to a
device in a DRM system such as described in the '693
application.
[0434] Mobile Client Identity
[0435] In preferred embodiments, the server side needs to uniquely
identify a mobile handset in order to record usage statistics for
each unique handset. In one embodiment, the requirement is only
that each handset be uniquely identifiable by the server side. This
unique identifier may be obtained by probing the client. The
identity could be also be assigned to the handset by the server
side or generated using inputs from the client and the server. It
is also desirable that the identifier be associated with the IMSI
number (as described below).
[0436] IMEI
[0437] The first place to look for a unique identifier would be the
mobile phone itself. This section describes the attributes that can
be probed from the environment that is available on the mobile
client and which could be used to identify a handset.
[0438] In GSM and UMTS networks IMEI or its recent variant IMEI/SV
is used to uniquely identify handset hardware. IMEI consists of a
14-digit number followed by a single digit Luhn check digit code as
shown in Table 9.
TABLE-US-00014 TABLE 9 Luhn check digit codes Digits (most
significant first) Purpose for which used 1-2 Reporting body
identifier (centrally assigned numbers, loosely follow the country
code) 3-8 Six digit code assigned to manufacturers by the GSM. The
digits 1-8 are known as the Type Allocation Code (TAC) 9-14 Six
digit serial number for the model 15 Luhn check digit
[0439] IMEI/SV uses a two-digit software version in addition to the
14-digit IMEI. The original purpose for having IMEI was to track
and blacklist stolen handsets. However it is possible to burn a
different IMEI number in stolen handsets. According to some
estimates about 10% of the IMEI numbers are not unique as a result
of this.
[0440] MEID
[0441] CDMA networks use an identifier called MEID which is
analogous to the 14 digit IMEI (except that digits are
hexadecimal). MEID was created to replace the 32-bit FCC ESN codes
which are close to being exhausted.
[0442] Probing IMEI/MEID Via J2ME
[0443] IMEI/MEID numbers can be probed on a mobile phone using
system properties. Unfortunately not all phones support the
properties and the name of the property varies across handsets
manufactured by different manufacturers. Examples are shown in
Table 10.
TABLE-US-00015 TABLE 10 System Property for IMEI Manufacturer
System Property for IMEI Nokia phone.imei (older handsets)
com.nokia.IMEI (newer handsets) Sony-Ericsson com.sonyericsson.imei
Motorola com.motorola.IMEI Samsung com.samsung.imei Siemens
com.siemens.imei
[0444] Nokia has been slow to support this property. On the S40
platform this property is available only if the application is
signed by the Manufacturer/Operator. On the S60 no special signing
is required but the property is only supported on S60 3.sup.rd
Edition devices. For example, see,
http://wiki.forum.nokia.com/index.php/How_to_get_IMEI_in_Java_ME.
[0445] In conclusion IMEI/MEID is not uniformly available and is
not guaranteed to be unique. Therefore a mobile phone client cannot
depend on using IMEI/MEID for mobile client identity although it
could be part of a "fuzzy identifier"
[0446] IMSI
[0447] IMSI can be useful for identity since it identifies a mobile
consumer most closely. IMSI consists of: (1) Mobile Country Code
(MCC); (2) Mobile Network Code (MNC); and (3) And Mobile Subscriber
Identification Number (MSIN).
[0448] In GSM networks the IMSI is linked to the SIM card and goes
with the subscriber even when the handset is changed. With mobile
phone number portability the IMSI number has become a more "sticky"
identifier that identifies the mobile consumer very closely.
[0449] The counter example is the usage of prepaid SIM cards. Users
of these SIM cards tend to discard the SIM card once the minutes
are used up and activate new SIM cards. In this type of usage
scenario users do not mind the inconvenience of a changing phone
number. This type of usage is thought to be much less frequent and
IMSI is by and large a very good identifier for mobile
consumers.
[0450] Individualization Requirements and Constraints
[0451] Further detail will now be provided of mobile client
individualization and some constraints that may be encountered on
the mobile phone platform.
[0452] Limited/Undependable Network Connectivity
[0453] By definition CLDC implies limited connectivity. In practice
network connectivity is even more challenging. Currently Internet
connectivity for mobile phones is limited, slow, undependable and
often expensive.
[0454] Data Connectivity via Carrier's Radio Network
[0455] Data connectivity via a carrier's radio network is often
slow (typically 56 Kbps for GPRS) and this can go up to
.about.236.8 Kbps for EDGE (although fewer handsets support
EDGE).
[0456] Data connectivity through a carrier's radio network can be
expensive. Many consumers do not have a data plan because of this
reason. Prices have not fallen as much in markets where competition
is less and subscriber churn is limited due to service contracts.
Another factor is that the access to the Internet is via the
carrier's WAP gateway which effectively makes it a walled
garden.
[0457] High speed 3G networks are currently at least a year or two
away in markets like India. Because of these reasons data
connectivity via a carrier's radio network cannot be assumed to be
present for a mobile device. Where present it is likely to be very
slow and controlled to some extent by carriers.
[0458] WLAN Connectivity
[0459] WLAN connectivity via Wi-Fi or Wi-Fi with WiMAX
interconnectivity between wireless hotspots could be another option
for wireless devices. A problem with WLAN connectivity for mobile
phones is that it is not available everywhere and not all handsets
have radios that support WLAN connectivity. Using a WLAN connection
typically requires the user to enter a passkey/passcode and this
can be difficult on a typical phone keypad, although many phones
allow you to store the connection information so that one does not
need to enter it repeatedly. However if one is mobile and moving
between many hotspots this can be cumbersome to use unless there is
a municipal Wi-Fi network that covers the entire locality with the
same passkey everywhere.
[0460] Impact on Individualization/Personalization
[0461] In summary, given current technology, the individualization
of the mobile client preferably needs to happen when the mobile
client is tethered to the PC as mobile network connectivity is very
limited/undependable.
[0462] In some DRM systems, the client is
pre-personalized/pre-registered because it may never be connected
directly to a network. This is typically done using personality
node (P)+service-user node (U)+P->U link that is baked in into
the client application. DRM licenses will be bound and targeted to
the service-user node. After the client application is installed it
needs to be individualized.
[0463] Limited Secure Storage
[0464] Secure storage is typically one of the requirements of a DRM
client. A DRM client often requires a secure storage to store
secrets.
[0465] Storage can be secured by encrypting it (especially if it is
stored in a public location). Having a private storage location
that is only accessible to the application is more preferable
because it cannot be obtained by running the code in a debugger or
in a virtual machine. If the private location cannot be accessed
without tampering physically with the device and on-device
debugging is not possible then this is a reasonably secure
solution.
[0466] Two possibilities for secure storage for J2ME application
clients are:
[0467] 1. Private location in the filesystem: Each MIDP application
has access to a private location in the filesystem pointed by the
system property--"fileconn.dir.private". However this property is
not supported uniformly across all devices. For example S60 devices
support this property but S40 devices do not support it. Vendor
support for this property needs to be identified by
manufacturer/model. Also on certain phones (e.g., Sony Ericsson)
the filesystem location is not "private" but seen by a USB host
when the mobile phone is mounted in the USB mass storage mode.
Hence this may not be a very viable option for mobile phones.
[0468] 2. Private Record Store using the RMS (Record Management
System): RMS is currently believed to be supported on all MIDP
phones. The records are stored in a binary format that is
proprietary to each manufacturer. J2ME apps are signed and they are
identified by the (signed) hash which is unique for each
application. The J2ME JVM only permits the J2ME app to access
Record Stores that it creates and marks as private. To break into
RMS the attacker would need to circumvent JVM security and/or
locate and decode the binary RMS data. Hence using the private
record store should be reasonably secure. RMS is widely available
and could be suitable for use as a secure storage. However as per
the MIDP specification implementations are only required to provide
a minimum of 8 Kbytes of RMS storage. Thus RMS storage is likely to
be very limited on some devices.
[0469] Diversified (Not Globally Unique) Client
[0470] One approach to deal with individualization could be to
assign a unique personality node to each application binary that
gets installed. This may not be practical in many situations,
however, as it would typically require the server side to compile a
very large number of client application binaries. Also users often
copy binaries from handset to handset and relying on the baked in
personality for a unique identifier may not be sufficient. Thus, in
some preferred embodiments, the client application is diversified
but not globally unique.
[0471] SMS is Secure but Short
[0472] The SMS return channel is a secure path with a guaranteed
delivery (within certain limitations). However the payload size for
an SMS PDU is very short (140 8-bit bytes). Multi-part messages are
possible, but SMS incurs cost to the user and should preferably be
used relatively sparingly.
[0473] Either Client Sync or App Run May Occur First
[0474] The mobile client may be run either before or after the
first PC-sync operation. What this implies is that the
individualization protocol should work irrespective of what event
happens first. The sequence could be either:
[0475] 1) [0476] Mobile client runs [0477] First PC Sync [0478]
Mobile client runs
[0479] . . .
[0480] or
[0481] 2) [0482] First PC Sync [0483] Mobile Client runs [0484]
Second PC Sync
[0485] . . .
[0486] Usage Data Reporting Requirement
[0487] The client application will typically need to ensure that
the usage data reported back to the server is authentic and
accurate. In one embodiment, the client is pre-personalized.
However, in preferred embodiments these baked-in personalities
alone are not used to encrypt or sign the usage data.
[0488] Individualization Approach
[0489] In some embodiments, each client comes with a baked-in
shared personalization secret. This shared personalization secret
is used to bootstrap the client into a personalized client. Once
personalization happens the client gets a unique personality. Each
client can then acquire nodes, links, and licenses. Licenses are
bound and/or targeted to the acquired personality/user nodes.
[0490] The personalization protocol uses session keys and only uses
the secret key to encrypt the session keys to minimize plain-text
and cipher-text attacks to obtain the secret key. It also uses a
nonce to prevent message alteration attacks. The shared secret is
diversified so that reverse engineering of a client will not
prevent all the clients from being personalized (only a group of
clients will be affected due to "blacklisting"). In practice
though, detecting that a particular shared secret was compromised
because of the reverse engineering of the client would be typically
very hard to determine and blacklisting some un-personalized
clients would be difficult.
[0491] Preferred embodiments of the client application described
herein above will typically need to be pre-personalized with a
fixed (but diversified) set of personality nodes and a single
common user node (the service node). The licenses in the content
are bound and targeted to the service node. The controller in the
DRM license is signed using PKI by the license server. The client
application verifies this signature and uses the metering
obligations in the license to meter the usage. The PKI signature
ensures that the client meters what the server asked it to
meter.
[0492] The client application also typically needs to ensure that
the usage data it reports back is authentic and accurate. For
example, in preferred embodiments it needs to use a different key
to sign/encrypt the data than the baked in ones which are similar
in position to the shared secret in traditional
personalization.
[0493] In a preferred embodiment, the approach used for the
individualization protocol is: (1) Do not use baked in secrets for
signing/encryption of usage data; (2) Generate signing key on
client and store it in secure storage (running the app outside the
device will not have access to the secret key); (3) Use DH Key
exchange with server authentication for agreeing upon a secret DH
key which is used to send the signing key to the server; and (4)
The server generates a GUID and plants it on the client as part of
the DH exchange.
[0494] DH Key Exchange with Server Authentication
[0495] The client application and the server side will be able to
agree on a shared secret key via a Diffie Hellman key exchange.
[0496] Mobile Client Runs First
[0497] FIG. 27 is a flow chart showing steps for a mobile content
service to provide an appropriate mobile identity and to
protect/verify the usage data, according to some embodiments. In
particular, FIG. 27 shows steps in the case where the mobile client
runs before the first sync the following happens. In step 2710, the
mobile client generates a new key Ks-usage for signing/encrypting
the usage data and stores the following in the secure storage:
[0498] Enc(Ks-share, 4 bytes to store
random-length|random-bytes|Ks-usage)
[0499] Where Enc means Encryption using AES CBC mode
[0500] Ks-share is the Scuba Sharing Symmetric key for the 8pus
personality node
[0501] random-length is the length of the random bytes (between 0
and 16 bytes)
[0502] random-bytes is an array of random bytes random-length
long
[0503] Note that in some cases it may be useful to store the fuzzy
fingerprint parameters here. According to one embodiment, the
hash(FP params) is conveyed to the server and to include it in
signature computation for usage data. This is used to provide some
assurance that the same client that was involved in the
individualization was the one that generated the usage data.
[0504] In step 2712, the mobile client chooses p, g and chooses a
secret a. In step 2714, the mobile client computes A=g a mod p; and
stores p, g and A on a fixed location in the filesystem (m1.dat)
containing the following:
[0505] Enc(Ks-share, nonce|p|g|A|Ks-share-ID|"m1.dat")
[0506] Ks-share-ID--id for Ks-share
[0507] Nonce=32 bit nonce
[0508] It will also store the same value in the secure storage. In
step 2716, at PC-Sync the PC client sends the m1.dat to the server
side. In step 2718, the server side selects a secret integer b and
computes B=g b mod p. It computes the DH secret key using Kdh=A b
mod p=(g a mod p) b mod p=g ab mod p. In step 2720, the server side
generates a GUID guid and it then computes the following, which is
sent to the client as S2, in step 2721:
[0509] data=data-length|guid|Enc(Ks-share, nonce|B|"s2.dat")
[0510] and stores the following in s2.dat
[0511] data|Enc(Kpriv, HMAC(Kdh, data))
[0512] The server will also store (guid, Kdh, nonce) for future
use. In step 2722, the usage data (if any) is uploaded--the data is
signed and/or encrypted with Ks-usage. Ks-usage is not known to the
server at this time but it will just store the data for the guid.
The next time the mobile app runs it can compute Kdh and verify the
data in s2.dat. If the data does not verify it deletes m1.dat,
s2.dat and the process begins all over again. If the data verifies
then it knows it has agreed upon Kdh with the server side. It will
store m3.dat with the following data:
[0513] Enc(Kdh, nonce|Ks-usage|guid|"m3.dat")
[0514] At the next PC-Sync time, in step 2724, the server side can
re-verify m1.dat, s2.dat and check that the values stored (guid,
Kdh, nonce) match. Next, in step 2726, it can use Kdh to decrypt
m2.dat and obtain Ks-usage. It will then store Ks-usage in the
tuple
[0515] (guid, Kdh, nonce, Ks-usage)
[0516] At this point the individualization process is complete. If
the process fails at any point the following happens: (1) if mobile
client aborts transaction: It deletes the files and restarts the
process; and (2) if merver side aborts the transaction: It deletes
the files and skips the data upload. The mobile client begins the
process the next time it runs.
[0517] PC Sync Happens First
[0518] If PC Sync happens first, there is no usage data to upload
and nothing happens. The process starts when the mobile app is run
the first time.
[0519] Usage Data Signing/Encryption
[0520] Usage data would be signed using the Ks-usage and the
signature would be encrypted using Ks-share in each data payload.
During sync the PC client posts (m1.dat, s2.dat, m2.dat and usage
data). The data could be verified and accepted after verification
(offline not synchronously during data upload). In some embodiments
the usage data may be encrypted.
[0521] Renewal
[0522] Server could force the re-individualization by deleting the
cookies (m1.dat, s2.dat, m3.dat) if the Kdh or Ks-usage was
compromised for any reason or periodically just as a part of the
standard operating procedure.
[0523] In some embodiments, a call home message could be forced at
renewal. In other embodiments, if the old guid is linked with the
new one--and the renewal was a periodic renewal (not because the
keys were compromised), we could skip the call home message.
[0524] Reverse Engineering of Client
[0525] The reverse engineering of clients and the disclosure of the
secret keys can be fairly hard to detect.
[0526] A compromised client could be used to clone a client that
submits junk data to the server side. To guard against this
possibility, sanity checks could be performed on the uploaded data
and compromised clients could be either forced to renew and/or the
data could be ignored. The compromised clients could also be
shunned (e.g., no content updates are given to compromised
clients).
[0527] IMSI to GUID Correlation (Call Home Message)
[0528] After the individualization procedure is completed the
client application could send an SMS message to the server side
(Call Home Message) containing the GUIDI) and a maybe a hash of the
fuzzy fingerprint parameters. The envelope information of the SMS
message can be used to correlate the IMSI number to the GUID.
[0529] If we get demographic or other data about the subscriber
from other sources in which subscribers would likely be identified
using the IMSI then we could use the correlation between IMSI and
GUII) to correlate the usage data with the demographic data and
draw better inferences/target advertisements better.
[0530] Governance Model.
[0531] An example will now be described for a governance model. A
content item contains a DRM license that includes usage rules,
which specify what usage data is to be collected. For example,
usage rules can include: (1) what events must be recorded; (2)
whether to show a survey to a user or not; and (3) how often must
the data be sent back.
[0532] The client follows the governance model--it respects the
rights and obligations specified in the DRM license. The mobile
client signs the collected usage data and protects the integrity of
this data. The data is sent back at the earliest opportunity. This
can happen in two ways: (1) at PC-Sync time: When a user syncs up
his mobile phone with a PC, this usage data is transmitted back to
the Service Backend. The data could be optionally encrypted for
privacy; and (2) alternatively the data may be sent back over SMS
channel (if the user remains offline for a period longer than the
one specified in the obligation for reporting the usage data back).
The SMS channel could be considered a private channel and may not
require encryption.
[0533] FIG. 28 shows the layout of a system for tracking the
behavior of mobile consumers, according to some embodiments. Unlike
WAP portal based data collection, the described system tracks the
behavior of mobile consumers as they consume content on the go.
Unlike SMS spamming an accurate and authentic usage data is
provided that is actually measured on the client.
[0534] The system records events that capture a user's interaction
with the content item. A metering system measures Play/Stop events
to meter a user's content consumption data. A conventional
application of metering is a service that charges the user based on
the metered content usage. On the other hand, the present system is
concerned with measuring and tracking not only the content
consumption but also the user's interest in the content item. A
user's interaction with the content item is one of the best
indicators of the user's interest.
[0535] In order to track the user's interests and behavior
higher-level player events are recorded by the mobile client. Some
examples of these events are: (1) User Clicked on a
banner-advertisement; (2) User Skipped Forward/Skipped Back part of
the content/advertisement; (3) User Voted for a content item; (4)
User responded to a Survey associated with a content item or
advertisement with respond X/User skipped the survey entirely; (5)
End of Media (User saw the entire content item).
[0536] ESB Structure.
[0537] The present system uses an obligations framework such as
that described in the '693 application to specify what events must
be recorded by the client. The client receives these obligations as
part of an ESB (Extended Status Block) when it evaluates the
license 2830 embedded in the content item 2832. Example of ESB in
pseudo code:
TABLE-US-00016 extendedStatusBlock EsbOK = esb{ globalFlags = 0;
esbCategory = ACTION_GRANTED; eshSubCategory = 0; localFlags =
OBLIGATION_NOTICE | ... cacheDuration valueList = { Obligations =
valueList { } }
TABLE-US-00017 TABLE 11 Name Type Description Type Description
urn:marlin: ValueList Integer Version - currently zero
bluefin:data-collection Integer Flags - extension flags currently
zero. Flags may be used in future to extend the events to be
recorded Integer ReportingInterval - interval for reporting the
usage data back to the server (in seconds) Integer EventList - a
bit-field that indicates what events are to be recorded Bit Index
(0 is LSB) Name Description 0 EVENT_TYPE.sub.-- Record when a user
START starts playback 1 EVENT_TYPE.sub.-- Record when a user STOP
stopped playback 2 EVENT_TYPE.sub.-- Record when the PAUSE user
paused the playback 3 EVENT_TYPE.sub.-- Record when user CLICK
clicked, on a banner advertisement 4 EVENT_TYPE.sub.-- Record when
user SKIP_BACK skipped back in the content item 5 EVENT_TYPE Record
when SKIP_FORWARD skipped forward in the content item 6
EVENT_TYPE.sub.-- Record when a user VOTE votes for the content
item (in addition to directly submitting the vote via SMS) 7
EVENT_TYPE.sub.-- Show the survey SURVEY event when this flag is
set to the user and record the user's response (if any) or a user
no-response status if the user does not respond 8 EVENT_TYPE.sub.--
Record when a user END_OF_MEDIA completely views a content item
[0538] Data Collection and Delivery Framework
[0539] HTTP Channel
[0540] Referring to FIG. 28, the mobile client 2812 records usage
data to the local filesystem on the mobile handset. This data is
cryptographically signed (integrity protected) by the mobile
client. At the time of content download to the mobile client either
via PC Sync or via direct OTA (Over the Air) download this data is
transmitted to the service backend 2820 via HTTP POST The mobile
client 2812 (or the PC acting on behalf of the mobile client) may
optionally encrypt this data to protect privacy of the data during
transit.
[0541] SMS Channel
[0542] Alternatively the data may be sent via SMS to the service
backend 2820. SMS is ubiquitous and the mobile client 2812 can
always use SMS, however there is often a cost associated with
sending SMS messages. Hence the mobile client tries to use HTTP
whenever possible but will use SMS if the client remains offline
(not connected to a wireless internet, and not sync'd with the PC)
for a period longer than the reporting interval specified in the
data collection obligation specified in the license 2830. SMS has
limitations on the message size--the SMS PDU cannot exceed 140
bytes. The usage data may be segmented if it exceeds the limit. The
data is compressed before sending it via the SMS channel to reduce
the SMS usage.
[0543] Use of the Service Backend to Target Advertisements.
[0544] The usage data collected by the system is analyzed offline
using statistical data mining and analysis techniques. Mobile users
may be classified into categories using the analysis. A user may
belong to more than one category and can have varying degrees of
affinity to each of the categories to which it belongs. A user may
also submit demographic data to the system to be included in some
self-selected category. Demographic data (either from public
sources or from partner companies) may also be submitted to the
service backend 2820 in order to better target advertisements to
users who might be interested in the products and services
advertised. The service backend 2820 makes use of the inferred
categories and demographic data to serve advertisements that are
targeted to that category or demographic group/
[0545] Location Sensitive/Time of Day Sensitive Targeted Local-Ad
Delivery.
[0546] The described system enables advertisers to place location
sensitive advertisements. FIG. 29 is a diagram illustrating
locations corresponding to location sensitive ads for a target user
for a particular time of day, according to some embodiments. A
location sensitive advertisement, for example L4, is attached to a
geographical location (GPS coordinates) and a region of activation
(radius from the GPS coordinates, for example R4). The
advertisement is presented to the mobile user 2910 when the mobile
user comes within the region of activation, for example 2930 for IA
having radius R4. Arrow 2920 represents the path of the mobile user
2910. In the example shown in FIG. 29, there are also regions of
activation associated with location sensitive ads L1, L2, L3, and
L5 having radii R1, R2, R3 and R5 respectively.
[0547] Presenting a location sensitive advertisement to a user when
the user is in the area of activation is very timely and effective
because the user can make use of this information in his immediate
neighbourhood at the time that it is presented.
[0548] As an example of location sensitive advertisements consider
an advertiser who wishes to place a promotional advertisement (such
as a coupon) with the described system. The system enables an
advertiser to submit promotional advertisement material and to
associate it with one or more geographical locations (these could
be store locations). According to some embodiments, the system also
allows the advertisement to be associated with a time window for
presentation (time of day). The advertisement can also be targeted
to a particular target group as is the case with all advertisements
in the described systems.
[0549] When the user in the target group (who is likely to be
interested in the promotional advertisement) is within the region
of activation during the time window the promotional advertisement
is presented to the user as a pop-up. The timeliness of the
advertisement and its location sensitivity and the relevance of the
promotional message to the target user together produce an increase
in the effectiveness of the advertisement.
[0550] The advertisement in the example could be a coupon for a
pizzeria to be shown around lunchtime that is tied to GPS
coordinates of the pizzeria locations in the vicinity of the user.
When the target user comes within the region of activation, he is
shown the promotional advertisement which is very likely to be
relevant to the user and can result in a greater chance of a sale
(better ad-to-sale realization rate for the advertisement which
makes this a valuable mechanism for advertising)
[0551] Different mobile phone platforms provide application
programming interfaces (APIs) for applications to enable the system
to callback the application when the mobile device is within a
certain radius of the location. For example the J2ME platform
provides Java binding for the API. An example of the use of the API
is given in the following code: [0552] 1. Additional Information is
specified for each advertisement that is attached to a
location:
TABLE-US-00018 [0552] public LocationAdEntry(double lattitude,
double longitude, float accuracy, int adNumber, int timeOfDay,
String adFeed, String adInfo) { this.lattitude = latitude;
this.longitude = longitude; this.accuracy = accuracy;
this.timeOfDay = timeOfDay this.adNumber = axNumber; this.adFeed =
adFeed; this.adInfo = adInfo; this.doNotShow = false; }
[0553] 2. A location listener is added to listen for user location
events for each location:
TABLE-US-00019 [0553] private void
addLocationAdProximityListener(LocationProvider lp, LocationAdEntry
entry) { if (null != lp) { Coordinates coords = new
Coordinates(entry.lattitude, entry.longitude, Float.NaN); try {
LocationProvider.addProximityListener(this, coords,
entry.accuracy); } catch (Exception ex) {
TraceLogger.out.println("adding proximity listener failed! -" +
ex.getMessage( )); ex.printStackTrace( ); } } }
[0554] 3. When the location event occurs the application shows the
location sensitive advertisement:
TABLE-US-00020 [0554] private void handleProximityEvent(Coordinates
coords) { double lattitude = coords.getLatitude( ); double
longitude = coords.getLongitude( ); TraceLogger.out.println("PE:
Lattitude =" + lattitude); TraceLogger.out.println("PE: Longitude
=" + longitude); LocationAdEntry entry =
getLocationAdEntry(lattitude, longitude); if
(isTimeOfDayForAdvertisement(entry)) { displayLocationSensitiveAd(
); } }
[0555] Tracking Relatedness of Mobile Users.
[0556] The mobile client application enables users to share the
mobile client application with their friends by forwarding the
application while they are using it via SMS. Users can also share
and recommend content items that they like using this mechanism.
The ability to share and enjoy a content item with friends and
peers makes the user experience much more interactive and enjoyable
to users.
[0557] Viral distribution of content from user to user is an
attractive mechanism for content providers who wish to achieve a
wide dissemination of their content. This form of distribution is
also useful for advertisers as they can potentially reach a wider
audience for their marketing messages via this mechanism.
[0558] While users make use of this feature the system keeps track
of the forwarding behavior and infers the relatedness of users
based on their application/content forwarding behavior. These
inferences are used to recommend content items that may be
interesting to users as well as to target advertisements to users
who share similar interests and preferences as regards to the
content they consume.
[0559] The inferred relationships between users can be further
classified and qualified by the categories of the content items
that they share and recommend. The system reduces the inferred
relationship to a measure called "user affinity" which is a numeric
measure that quantifies the strength of the inferred relationship.
As users forward more and more content of the same type to the same
recipient the affinity grows stronger. As more time elapses between
the forwarding events the affinity between users grows weaker.
[0560] For example, a simple measure of affinity is computed as
follows: raw affinity value=number of items.times.effectiveness
index/(average time elapsed between forwarding events in days).
[0561] According to some embodiments, the raw affinity value is
normalized to a range between 0 and 100 for easy comparison based
on the range of values for a particular category of content.
According to some further embodiments, the affinity measurement is
further refined by taking into account more variables such as the
distribution of the time elapsed between forwarding events, time of
day for forwarding behaviors etc.
[0562] The effectiveness index is a measure of how effective the
inferred relationship was in targeting advertisements (measured
indirectly from statistical data analysis of users' responses to
similar advertisements). Better measures of affinity can be
developed by statistical data analysis techniques on data collected
over a longer time period.
[0563] FIG. 30 is a diagram showing inferred relationships between
users. The users, for example users 3010, 3012 and 3014 are
indicated by circles. The inferred relationships between the users
are represented by the connecting lines. The thickness of the
connecting lines indicates the affinity of the relationship. For
example, the affinity of the relationship between user 3010 and
3014 is relatively strong, and the affinity of the relationship
between user 3012 and 3014 is relatively weak.
[0564] Keeping track of application and content forwarding
behaviors is useful because it enables the system to better
understand the tastes and preferences of the user base. It enables
the system to better target the advertisements and recommendations
by correlating the user preferences to user relatedness.
[0565] FIG. 31 is a diagram illustrating SMS message routing of a
shared or recommended application or content between users,
according to some embodiments. User 3110 shares/recommends the
application and/or content with one of his friends User 3112 via
SMS through the described mobile client application. The SMS
message is sent to the short code for the service backend by the
application with context information (application version, client
attributes probed from the handset, phone number of the buddy,
content id etc).
[0566] The SMS message is routed by the SMS Data Network 3116 and
the SMS Gateway 3118 to the service backend 3114. The backend 3114
records who has forwarded the content to whom and the context
information before composing and sending out an SMS message to the
intended recipient informing him that his friend has recommended
the application/content item to him. The SMS message travels via
the SMS gateway 3118 and the SMS Data Network 3116 to the recipient
user 3112.
[0567] According to some embodiments, the SMS message also contains
a URL for OTA (Over the air) download of the mobile client. The
recipient can click on this URL and download the mobile client to
his handset. The application may also contain a teaser or
abbreviated version of the recommended content item.
[0568] Although the foregoing has been described in some detail for
purposes of clarity, it will be apparent that certain changes and
modifications may be made without departing from the principles
thereof. It should be noted that there are many alternative ways of
implementing both the processes and apparatuses described herein.
Accordingly, the present embodiments are to be considered as
illustrative and not restrictive, and the inventive body of work is
not to be limited to the details given herein, which may be
modified within the scope and equivalents of the appended
claims
* * * * *
References