U.S. patent application number 15/243680 was filed with the patent office on 2017-02-23 for system for high volume data analytics and data ingestion.
This patent application is currently assigned to Nanigans, Inc.. The applicant listed for this patent is Nanigans, Inc.. Invention is credited to Joshua Allen Breckman, Claude Denton, Travis Hansen, Per Anders Sandell.
Application Number | 20170052652 15/243680 |
Document ID | / |
Family ID | 57731250 |
Filed Date | 2017-02-23 |
United States Patent
Application |
20170052652 |
Kind Code |
A1 |
Denton; Claude ; et
al. |
February 23, 2017 |
SYSTEM FOR HIGH VOLUME DATA ANALYTICS AND DATA INGESTION
Abstract
A system and user interface capable of effectively manipulating
high volumes of data is provided. The system and/or user interface
is specially-configured to aggregate large data volumes and
translate the large data volumes into summary information
associated with navigable categorizations (e.g., categorizations
linked to selectable visualizations in the user interface) and
groupings of management functions that enable dynamic selection and
visualization of portions of the large data volumes. In one
particular example, the system and/or user interface is adapted to
generate selectable panels having a plurality of management tools
displayed coextensive with portions of the large volumes of data.
Such panels may be particularly useful for managing a placement
(e.g., an advertisement) while reviewing or managing large amounts
of information, such as ad placement and performance information
for hundreds or thousands or advertisements including placements on
third party systems.
Inventors: |
Denton; Claude; (Lexington,
MA) ; Sandell; Per Anders; (Boston, MA) ;
Breckman; Joshua Allen; (Arlington, MA) ; Hansen;
Travis; (Southborough, MA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Nanigans, Inc. |
Boston |
MA |
US |
|
|
Assignee: |
Nanigans, Inc.
Boston
MA
|
Family ID: |
57731250 |
Appl. No.: |
15/243680 |
Filed: |
August 22, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15206581 |
Jul 11, 2016 |
|
|
|
15243680 |
|
|
|
|
15166815 |
May 27, 2016 |
|
|
|
15206581 |
|
|
|
|
15166852 |
May 27, 2016 |
|
|
|
15206581 |
|
|
|
|
15166815 |
May 27, 2016 |
|
|
|
15166852 |
|
|
|
|
15166852 |
May 27, 2016 |
|
|
|
15166815 |
|
|
|
|
62239145 |
Oct 8, 2015 |
|
|
|
62208241 |
Aug 21, 2015 |
|
|
|
62190451 |
Jul 9, 2015 |
|
|
|
62168303 |
May 29, 2015 |
|
|
|
62239145 |
Oct 8, 2015 |
|
|
|
62208241 |
Aug 21, 2015 |
|
|
|
62190451 |
Jul 9, 2015 |
|
|
|
62168303 |
May 29, 2015 |
|
|
|
62239145 |
Oct 8, 2015 |
|
|
|
62208241 |
Aug 21, 2015 |
|
|
|
62190451 |
Jul 9, 2015 |
|
|
|
62239145 |
Oct 8, 2015 |
|
|
|
62208241 |
Aug 21, 2015 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06F 16/248 20190101;
G06Q 30/0276 20130101; G06Q 30/0244 20130101; G06F 3/04842
20130101; G06Q 50/01 20130101; G06F 16/285 20190101; G06F 16/9535
20190101; G06F 16/958 20190101; G06Q 30/0251 20130101; G06F
2203/04803 20130101; G06F 3/04847 20130101; G06Q 30/0277 20130101;
G06F 3/0485 20130101; G06Q 30/0242 20130101; G06F 3/0481
20130101 |
International
Class: |
G06F 3/0481 20060101
G06F003/0481; G06Q 30/02 20060101 G06Q030/02; G06F 3/0485 20060101
G06F003/0485; G06F 17/30 20060101 G06F017/30 |
Claims
1. A system for generating and displaying a graphical user
interface for high volume data analytics, the system comprising: at
least one processor operatively connected to a memory, the at least
one processor when executing, is configured to: receive advertising
metrics; analyze and group the advertising metrics into an
advertising demographic hierarchy; determine summary information
for the advertising metrics in each level of the advertising
demographic hierarchy; and generate a navigable user interface
display comprising: at least one selectable drawer associated with
a hierarchical group of advertising metrics, wherein the at least
one selectable drawer includes a display of a title of a respective
hierarchical group; and wherein the at least one selectable drawer
is associated with a respective summary view of the advertising
metrics within the hierarchical group.
2. The system of claim 1, wherein the navigable user interface
display includes a first portion configured to display advertising
metrics, and a selectably visualizable second portion configured to
display management functions for placements managed with the
system.
3. The system of claim 2, wherein the second portion is configured
to be displayed with a visualization of moving into the display
screen from a side edge of the display screen, responsive to
selection.
4. The system of claim 2, wherein the second portion organizes
management functions into a plurality of groupings including at
least attribute functions and attribute subgroupings; filter
functions and filter subgroupings; and metric visualization
functions with metric subgroupings.
5. The system of claim 4, wherein the plurality of groupings are
display in the second portion in a visualization order, such that
data associated with each sub grouping is configured to display in
the first portion of the display reflecting the ordering of the
groupings and subgrouping shown in the second portion of the
display.
6. The system of claim 2, wherein the second portion of the display
is accessible by at most one click or computer operation in the
user interface.
7. The system of claim 6, wherein the second portion of the display
is accessible by at most one click or computer operation in the
user interface regardless of content being shown in the first
portion of the display.
8. The system of claim 4, wherein the metric visualization
functions available in the second portion of the display are
configured to generate visualization of FB Action metrics in the
first portion of the display responsive to selection.
9. The system of claim 8, wherein the visualization of the FB
Action metrics occurs responsive to selection of a first sub
grouping in the second portion of the display to trigger
visualization of respective metrics available in the first sub
grouping within the first portion of the display, and responsive to
selection of one or more of the respective metrics in the first sub
grouping.
10. The system of claim 9, wherein the first portion of the display
includes a main body, a separator visualization for controlling a
display boundary of the main body and an adjacent display portion,
and a minor portion adjacent to the separator comprising at least a
portion of the adjacent display portion.
11. The system of claim 10, wherein the user interface is
configured to maintain the ordering of information in the second
portion of the display when displaying the associated data in the
first portion of the display.
12. The system of claim 11, wherein the ordering is maintained in
at least the main or minor portion of the display.
13. The system of claim 1, wherein the at least one selectable
drawer includes a display of a membership number associated with
the respective hierarchical group.
14. The system of claim 1, wherein the system specifies the
advertising demographic hierarchy to include at least a first
hierarchy level corresponding to a strategy grouping of ad plans, a
second hierarchy level corresponding to an ad plan organizing a
group of placements, and at least a third hierarch level for
organizing the placements.
15. The system of claim 14, wherein the system is further
configured to access and display the advertisement hierarchy
according to a first default display absent user intervention,
wherein the first default display, displays the hierarchy organized
based on strategy group, with the strategy group displaying one or
more ad plans, and with the one or more ad plans displaying the
associated placements.
16. The system of claim 15, wherein the system displays a second
display of the advertisement hierarchy responsive to user
specification, wherein the user specification re-orders the levels
of the hierarchy.
17. The system of claim 16, wherein the system is configured to
execute filtering operations responsive to re-order the levels of
the hierarchy and display at least the first, second, and third
levels of the hierarchy dynamically in any order responsive to user
selection of the order.
18. The system of claim 17, wherein the system is further
configured to save properties of the hierarchy as a temporary view
accessible in an administration display bar.
19. The system of claim 18, wherein the system is configured to
save currents views until deleted responsive to user selection in
the administration display bar.
20. The system of claim 19, wherein the administration display bar
is configured to be visualized responsive to selection in the user
interface.
21. The system of claim 20, wherein the administration display bar
when triggered is configured to display from a left side of the
screen and display over currently visualized advertising
metrics.
22. The system of claim 1, further comprising a rendering engine,
executed by the at least one processor configured to selectively
render hierarchical groupings and selected sub-sets of the
hierarchical data, wherein the rendering engine is further
configured to organize massive data structures, into recursive
hierarchies of rows, such that the recursive hierarchies define
sub-sets of the hierarchical data, and a first sub-set of the
hierarchical data can be displayed in a web browser on an end user
system, and wherein the rendering engine triggers loading and/or
display of a second sub-set of the hierarchical data responsive to
scrolling via the web browser.
23. The system of claim 22, wherein the rendering engine is
configured to separate a large number of data element into a first
level of row groupings, wherein the first level of row groupings is
selected based on a capability to quickly render the first level
groups.
24. The system of claim 23, wherein all data to be displayed is a
first one of the first level groupings is analyzed to further
segregate the data of the first one of the first level groupings
into at least second level row groupings.
25. The system of claim 24, wherein a first one of the second level
groupings is analyzed to determine is further sub-groupings are
required, and segregating the data of the first one of the second
level groupings in response to a positive determination, and
displaying or loading the data from the first one of the second
level groupings in response to a negative determination.
26. The system of claim 23, wherein the rendering engine is
configured to recursively segregate the large number of data
elements into multiple levels of row groupings beyond the first
level, responsive to determining that the data organized by the
first level grouping exceeds a threshold amount.
27. The system of claim 26, wherein the rendering engine loads or
displays a first one of a sub-level grouping in a user interface
responsive to determining that the first one of the sub-level
grouping meets any display criteria.
Description
RELATED APPLICATIONS
[0001] This application is a continuation-in-part of and claims
priority under .sctn.120 to U.S. patent application Ser. No.
15/166,815, entitled "GRAPHICAL USER INTERFACE FOR HIGH VOLUME DATA
ANALYTICS," filed on May 27, 2016, and Ser. No. 15/166,852,
entitled "SYSTEM FOR HIGH VOLUME DATA ANALYTIC INTEGRATION AND
CHANNEL-INDEPENDENT ADVERTISEMENT GENERATION," filed on May 27,
2016; each of which applications claims priority under 35 U.S.C.
.sctn.119(e) to U.S. Provisional Application Ser. No. 62/168,303
entitled "GRAPHICAL USER INTERFACE FOR HIGH VOLUME DATA ANALYTICS,"
filed on May 29, 2015, U.S. Provisional Application Ser. No.
62/190,451 entitled "SYSTEM AND METHOD FOR ACCOUNT INGESTION,"
filed on Jul. 9, 2015, U.S. Provisional Application Ser. No.
62/208,241 entitled "SYSTEM FOR HIGH VOLUME DATA ANALYTICS AND DATA
INGESTION," filed on Aug. 21, 2015, and U.S. Provisional
Application Ser. No. 62/239,145 entitled "SYSTEM FOR HIGH VOLUME
DATA ANALYTIC INTEGRATION AND CHANNEL-INDEPENDENT ADVERTISEMENT
GENERATION," filed on Oct. 8, 2015; U.S. patent application Ser.
No. 15/206,581, entitled "SYSTEM AND METHOD FOR ACCOUNT INGESTION,"
filed on Jul. 11, 2016 claims priority under 35 U.S.C. .sctn.119(e)
to U.S. Provisional Application Ser. No. 62/190,451 entitled
"SYSTEM AND METHOD FOR ACCOUNT INGESTION," filed on Jul. 9, 2015,
U.S. Provisional Application Ser. No. 62/208,241 entitled "SYSTEM
FOR HIGH VOLUME DATA ANALYTICS AND DATA INGESTION," filed on Aug.
21, 2015, and U.S. Provisional Application Ser. No. 62/239,145
entitled "SYSTEM FOR HIGH VOLUME DATA ANALYTIC INTEGRATION AND
CHANNEL-INDEPENDENT ADVERTISEMENT GENERATION," filed on Oct. 8,
2015; and this application claims priority under 35 U.S.C.
.sctn.119(e) to U.S. Provisional Application Ser. No. 62/208,241
entitled "SYSTEM FOR HIGH VOLUME DATA ANALYTICS AND DATA
INGESTION," filed on Aug. 21, 2015, and U.S. Provisional
Application Ser. No. 62/239,145 entitled "SYSTEM FOR HIGH VOLUME
DATA ANALYTIC INTEGRATION AND CHANNEL-INDEPENDENT ADVERTISEMENT
GENERATION," filed on Oct. 8, 2015, all of which previously
identified applications are incorporated herein by reference in
their entirety.
BACKGROUND
[0002] A variety of platforms exist to manage complex advertising
networks. Under many conventional approaches no unified management
system completely integrates management systems having different
formats, different analysis metrics, and different functionality or
control operations. Further, portability of existing networks is
severely limited by the differing formats and differing operations
established to manage the existing networks.
SUMMARY
[0003] According to various aspects of the present invention, a
user interface capable of effectively manipulating high volumes of
data is provided. The system and/or user interface is specially
configured to aggregate large data volumes and translate the large
data volumes into summary information and incorporate navigable
categorizations that enable dynamic selection and visualization of
portions of the large data volumes. Such interfaces may be
particularly useful for managing large amounts of information, such
as ad placement and performance information that is generated
within an advertising network. In some embodiments, the system and
user interface enables management of hundreds, and even hundreds of
thousands of currently executing placements in real time. The
management functions can trigger actions on various content
provider systems to modify, control, and even create new placements
in real time, for example, as performance data is captured and/or
analyzed on the system.
[0004] For example, according to one embodiment, an interface may
be provided that is a data-centric pivot table that allows dynamic
navigation between layers of ad placement information where deeper
layers are accessed to provide access into more specific
information. The underlying data can be organized into hierarchical
structures and the user interface optimized to leverage the data
hierarchies. For instance, a user may be presented an interface
that allows a user to navigate through performance analysis data
(e.g., ad placement performance information) visualized according
to hierarchical structures to locate specific ads and their
performance within the hierarchical view. The specific ad
information that is displayed may include performance information
specific to the filters used to navigate to the specific ad. Such
an interface is beneficial, as it permits an advertising manager to
quickly locate relevant ad placement details through a data-driven
interface. It is further realized that providing management
functions organized in similar or parallel hierarchies generates an
intuitive structure for both the data and numerous management
operations that enhance use of the system, reduce time/computer
operations needed to find data, reduce time/computer operations
needed to access data, reduce user error in selecting management
functions, and reduce user error in navigating to desired
management functions. According to some embodiments, the
corresponding reduction in user error yields a far more efficient
system. For example, even minimal reductions in user error is
magnified over a massive user base and translates directly into
reduce computation, reduce memory allocation, and greater
systematic efficiency.
[0005] In one embodiment, the interface may include the ability to
present an inline summary of an ad placement within a tabular view
of the performance data. Summary information associated with the
displayed ads may be changed dynamically depending on the filters
or other user selections within the interface. Such capabilities
may permit a user (an advertising manager or other user type that
manages ad placements) to quickly locate relevant ads within the
user interface that relate to the displayed placement performance
data.
[0006] According to one aspect, the user interface is specially
configured to manage, aggregate, and dynamically select data for
visualization responsive to constantly updating data feeds (e.g.,
live placement data associated with an advertising network). In one
example, the dynamic nature of the received data, and allowing a
user to selectively control their view of the changing data
provides improvement over some conventional systems. In one
implementation, a database management component is configured to
receive the dynamic data feeds, translate the dynamic data feeds
into standardized formats, and group the dynamic data into
dynamically selectable and displayable elements.
[0007] According to one aspect of the present invention, a
visualization interface may be provided that includes a web-enabled
pivot table used to analyze and present ad performance data.
According to one embodiment, advertisers may use such a pivot table
to view, sort through, and visualize multiple dimensions of
campaign data. Such tables, according to various embodiments, are
configured with the attributes and metrics that matter by adding
predefined audiences, creative elements, data-related attributes or
placement details, followed by the metrics that determine campaign
success. Once the selections within the interface have been made,
the user may be permitted to simply drag and drop to re-order
metrics to create a customized campaign dashboard. Such interfaces
may be modified to include a summary view associated with a
specific ad within the table based on specific user selections
within the pivot table. This permits, for example, a user to
selectively create a dashboard using certain metrics while at the
same time seeing the specific ad placements and their associated
summaries according to the configured dashboard. For instance, if
an advertiser wants to see which creative was performing the best,
the user is permitted to sort by key metrics (e.g., ROI, LTV, CTR,
CPC, etc.) and locate specific summary view information relating to
those placements.
[0008] According to various aspects, the system for managing and
displaying high data volume analytics can be integrated with data
ingestion subsystems. The data ingestions systems can be configured
to access existing platforms, capture advertising networks made of
advertising nodes or adverting placements. The ingestion subsystems
can be configured to capture and format high volumes of data into
native formats usable by the user interface discussed above.
According to various aspects, an ingestion subsystem is provided
for ingesting existing advertisement networks. In some embodiments,
the ingestion subsystem is specially configured to capture data
from known advertising platforms (e.g., FACEBOOK, TWITTER, etc.)
and further tailored to capture specific data proceed on those
systems (e.g., FACEBOOK action data).
[0009] In one embodiment, the ingestion subsystem is specially
configured to capture existing advertisements, advertising
campaigns, or any existing marketing accounts, and aggregate,
translate, and/or associate the existing information into an
automated management system or a consistent management system.
Various embodiments of the ingestion subsystem enable users to port
large advertising campaigns or large volumes of advertisements into
an automated management system. According to some implementations,
it is also realized that a need exists not only for porting
advertisements or advertising campaigns between service providers,
but also a need exists to effectively port historic data generated
by different service providers. According to one embodiment, in
order for such transitions to be effective, various embodiments
enable immediate use of the ported historic data to optimize and/or
automate execution of advertisements and/or advertising networks
and management functions (e.g., end spend, modify advertisement,
bid up position, etc.).
[0010] In various embodiments, the ingestion subsystem is
configured to capture and translate advertising information from a
first provider format into a destination format associated with an
automated management and performance analysis system. The
destination format is configured to enable predictive optimizations
on the execution and management of individual advertisements,
groups of advertisements, and entire advertising campaigns.
[0011] Conventional systems attempt to provide for portability of
advertising campaigns between providers. These systems provide for
moving advertisements, however, conventional systems typically fail
to integrate historical data into any new functionality provided,
among other issues. Accordingly, various embodiments of the
ingestion subsystem are configured to translate historical data
into a format usable by a destination management system. In some
embodiments, after porting advertising campaigns by the ingestion
subsystem, a new management system can operate on historical data
to predict performance and/or optimize execution of advertisements.
After the ingestion subsystem has translated an advertising
campaign, the destination management system can then enable any
level of service. For example, the destination management system
can incorporate, or not, historical data into performance
predictions, determinations of bid value, automated bidding
control, shutting down advertisements, creating new advertisements,
etc. According to one embodiment, user roles are defined and the
destination management system to provide varying levels of
automated assistance and analysis information. In some embodiments,
regardless of the service level being employed, the ingestion
subsystem captures and associates any historical information made
available by the first service provider with the destination
management system format, so that all the historic information is
later useable
[0012] According to one embodiment, the ingestion subsystem is
specially configured to capture advertisement data (e.g., existing
ads, performance values, historic information, any management
rules, etc.) for a service provider having a first format for data
organization. In some embodiments, the first format can be
pre-defined and the ingestion subsystem can translate or associate
the first formation to a destination format for advertising data.
In one example, the system is specially configured to capture
information from the known FACEBOOK platform. The ingestion
subsystem is configured to translate and/or associate any available
advertising information into the destination format, and store any
of the translated and/or associated advertisements and/or
historical information on a destination advertisement management
system. In further embodiments, how the historic information is
employed by the destination advertisement management system depends
on an assigned user role and service level.
[0013] According to another aspect, the high data volume analytic
system is configured to handle and display results from millions of
attributes and data values that are constantly being updated. Under
conventional approaches such implementations (e.g., using PHP
script to create a plain HTML table with one million rows)
immediately result in problems. The problems include requiring
downloading of hundreds of megabytes (depending on row size) to
load the table and data. When loaded in a browser, the browser will
create millions and millions of DOM elements and run out of memory.
Under such strain, the browser will freeze and crash.
[0014] Conventional solutions to such an approach include paging
long tables for loading into web browsers. However, in such
settings, usability of that volume of data is questionable at best.
From a usability point of view, simply having a million rows loaded
is effectively a waste of resources, as a user can never reasonably
view all of the data or records.
[0015] According to one embodiment, the high data volume analytics
system handles both issues. In one environment, the data volume
that must be handled and understood by the end user is based on
creating and managing thousands, hundreds of thousands, and
millions of ads or ad placements. The "ad" can include a creative
design and some targeting parameters that can be automatically
distributed to an ad network (e.g., FACEBOOK). Automation enables
the system to distinguish between ads that have good value, and ads
that are likely throwing money away--equally important, in some
examples, is that the system can convey high volumes of data to an
end user, understandably and manageably, through customized
displays.
[0016] In some embodiments, the user interfaces operate as
web-enabled pivot tables. The user interfaces allow user to select
portions of data and pivot intuitively into different segments of
data, navigate from summary views into highly detailed data
attributes seamlessly, and link management functions contextually
to the data being viewed. According to one embodiment, the system
provides the ability to navigate and manage massive amounts of data
intuitively.
[0017] Further, under the automated analysis provided good ads
survive (e.g., meet performance targets), and bad ads are killed
(e.g., system automatically pauses any spending and/or placement
with an ad network). In parallel, the system presents these massive
volumes of data in accessible and navigable data visualizations (as
described in greater detail below). The automation operations for
selecting good advertisements and eliminating bad are automatically
executed by the system constantly and are reflected in the displays
of the data. The result is constantly evolving data and data
structures, and correspondingly evolving user interfaces that
convey the changes on managed ad placements (i.e., ads).
[0018] According to one aspect, a system for generating and
displaying a graphical user interface for high volume data
analytics is provided. The system comprises at least one processor
operatively connected to a memory, the at least one processor when
executing, is configured to receive advertising metrics; analyze
and group the advertising metrics into an advertising demographic
hierarchy; determine summary information for the advertising
metrics in each level of the advertising demographic hierarchy
(e.g., advertising location, advertising target, advertising type,
age group, budget pool, strategy group, ad set, individual
placement, gender, custom audience, relationship, among others);
and generate a navigable user interface display comprising: at
least one selectable drawer associated with a hierarchical group of
advertising metrics (e.g., site, budget pool, strategy group, ad
set, placement, among other options), wherein the at least one
selectable drawer includes a display of a title of a respective
hierarchical group; and wherein the at least one selectable drawer
is associated with a respective summary view of the advertising
metrics within the hierarchical group.
[0019] According to one embodiment, the navigable user interface
display includes a first portion configured to display advertising
metrics, and a selectably visualizable second portion configured to
display management functions for placements managed with the
system. According to one embodiment, the second portion is
configured to be displayed with a visualization of moving into the
display screen from a side edge of the display screen, responsive
to selection. According to one embodiment, the second portion
organizes management functions into a plurality of groupings
including at least attribute functions and attribute subgroupings;
filter functions and filter subgroupings; and metric visualization
functions with metric subgroupings. According to one embodiment,
the plurality of groupings are display in the second portion in a
visualization order, such that data associated with each sub
grouping is configured to display in the first portion of the
display reflecting the ordering of the groupings and subgrouping
shown in the second portion of the display.
[0020] According to one embodiment, the second portion of the
display is accessible by at most one click or computer operation in
the user interface. According to one embodiment, the second portion
of the display is accessible by at most one click or computer
operation in the user interface regardless of content being shown
in the first portion of the display. According to one embodiment,
the metric visualization functions available in the second portion
of the display are configured to generate visualization of FB
Action metrics in the first portion of the display responsive to
selection. According to one embodiment, the visualization of the FB
Action metrics occurs responsive to selection of a first sub
grouping in the second portion of the display to trigger
visualization of respective metrics available in the first sub
grouping within the first portion of the display, and responsive to
selection of one or more of the respective metrics in the first sub
grouping.
[0021] According to one embodiment, the first portion of the
display includes a main body, a separator visualization for
controlling a display boundary of the main body and an adjacent
display portion, and a minor portion adjacent to the separator
comprising at least a portion of the adjacent display portion.
According to one embodiment, the user interface is configured to
maintain the ordering of information in the second portion of the
display when displaying the associated data in the first portion of
the display. According to one embodiment, the ordering is
maintained in at least the main or minor portion of the display.
According to one embodiment, the at least one selectable drawer
includes a display of a membership number associated with the
respective hierarchical group.
[0022] According to one embodiment, the system specifies the
advertising demographic hierarchy to include at least a first
hierarchy level corresponding to a strategy grouping of ad plans, a
second hierarchy level corresponding to an ad plan organizing a
group of placements, and at least a third hierarch level for
organizing the placements. According to one embodiment, the system
is further configured to access and display the advertisement
hierarchy according to a first default display absent user
intervention, wherein the first default display, displays the
hierarchy organized based on strategy group, with the strategy
group displaying one or more ad plans, and with the one or more ad
plans displaying the associated placements. According to one
embodiment, the system displays a second display of the
advertisement hierarchy responsive to user specification, wherein
the user specification re-orders the levels of the hierarchy.
[0023] According to one embodiment, the system is configured to
execute filtering operations responsive to re-order the levels of
the hierarchy and display at least the first, second, and third
levels of the hierarchy dynamically in any order responsive to user
selection of the order. According to one embodiment, the system is
further configured to save properties of the hierarchy as a
temporary view accessible in an administration display bar.
According to one embodiment, the system is configured to save
currents views until deleted responsive to user selection in the
administration display bar. According to one embodiment, the
administration display bar is configured to be visualized
responsive to selection in the user interface. According to one
embodiment, the administration display bar when triggered is
configured to display from a left side of the screen and display
over currently visualized advertising metrics.
[0024] According to one embodiment, the system further comprises a
rendering engine, executed by the at least one processor configured
to selectively render hierarchical groupings and selected sub-sets
of the hierarchical data, wherein the rendering engine is further
configured to organize massive data structures (e.g., data tables
with greater than 100,000 rows), into recursive hierarchies of
rows, such that the recursive hierarchies define sub-sets of the
hierarchical data, and a first sub-set of the hierarchical data can
be displayed in a web browser on an end user system, and triggering
loading and/or displaying of a second sub-set of the hierarchical
data responsive to scrolling via the web browser. According to one
embodiment, the rendering engine is configured to separate a large
number of data element into a first level of row groupings, wherein
the first level of row groupings is selected based on a capability
to quickly render the first level groups (e.g., 8, 9, 10, 11, 12
row groups, among other options).
[0025] According to one embodiment, all data to be displayed is a
first one of the first level groupings is analyzed to further
segregate the data of the first one of the first level groupings
into at least second level row groupings. According to one
embodiment, a first one of the second level groupings is analyzed
to determine is further sub-groupings are required, and segregating
the data of the first one of the second level groupings in response
to a positive determination, and displaying or loading the data
from the first one of the second level groupings in response to a
negative determination. According to one embodiment, the rendering
engine is configured to recursively segregate the large number of
data elements into multiple levels of row groupings beyond the
first level, responsive to determining that the data organized by
the first level grouping exceeds a threshold amount (e.g., over
10-100 rows of data, volume of data cannot be quickly (<1 second
rendered). According to one embodiment, the rendering engine loads
or displays a first one of a sub-level grouping in a user interface
responsive to determining that the first one of the sub-level
grouping meets any display criteria (e.g., lower than threshold
number of rows, displayable in <1 second, etc.).
[0026] According to one aspect, a system for high volume data
visualization is provided. The system comprising: at least one
processor operatively connected to a memory, the at least one
processor when executing, is configured to manage display of high
data volumes in a user interface; a user interface ("UI") component
configured to: display high volume data analytics; and display
information dimensions associated with advertisements in a
selectable pivot table display. According to one embodiment, the UI
component is further configured to: receive current advertising
metrics; analyze and group the current advertising metrics into an
advertising demographic hierarchy (e.g., advertising location,
advertising target, advertising type, age group, budget pool,
strategy group, ad set, individual placement, gender, custom
audience, relationship, among others) configured for display in a
selectable visual interface.
[0027] According to one embodiment, the UI component is further
configured to dynamically generate visual displays on historical
advertising metrics responsive to user selection of information
dimensions (e.g., descriptive information for the advertisements or
information associated with the advertisements) associated with one
or more advertisements. According to one embodiment, the UI
component is configured to display metrics selections that are
associated with data operations for calculating data values on the
displayed data. According to one embodiment, the UI component is
configured to display attribute selections, wherein the attribute
selections cause the at least one processor to execute GROUP BY
functions of the displayed data. According to one embodiment, the
UI component is further configured to display summary information
for the advertising metrics in each level of an advertising
demographic hierarchy (e.g., advertising location, advertising
target, advertising type, age group, budget pool, strategy group,
ad set, individual placement, gender, custom audience,
relationship, among others). According to one embodiment, the UI
component is further configure to generate a navigable user
interface display including at least one selectable drawer
associated with a hierarchical group of advertising metrics (e.g.,
site, budget pool, strategy group, ad set, placement, among other
options), wherein the at least one selectable drawer includes a
display of a title of a respective hierarchical group; and wherein
the at least one selectable drawer is associated with a respective
view of advertising data within the hierarchical group.
[0028] According to one aspect, a computer implemented method for
generating and displaying a graphical user interface for high
volume data analytics is provided the method comprises receiving,
by at least one processor, advertising metrics based on executing
placements; analyzing and grouping, by the at least one processor,
the advertising metrics into an advertising demographic hierarchy;
determining, by the at least one processor, summary information for
the advertising metrics in each level of the advertising
demographic hierarchy (e.g., advertising location, advertising
target, advertising type, age group, budget pool, strategy group,
ad set, individual placement, gender, custom audience,
relationship, among others); and generating, by the at least one
processor, a navigable user interface display comprising at least
one selectable drawer associated with a hierarchical group of
advertising metrics (e.g., site, budget pool, strategy group, ad
set, placement, among other options), wherein the at least one
selectable drawer includes a display of a title of a respective
hierarchical group; and wherein the at least one selectable drawer
is associated with a respective summary view of the advertising
metrics within the hierarchical group.
[0029] According to one embodiment, the method further comprises
generating the navigable user interface display to include a first
portion configured to display advertising metrics, and a selectably
visualizable second portion configured to display management
functions for placements managed with the system. According to one
embodiment, the method further comprises displaying the second
portion with a visualization, the visualization reflecting moving
into the display screen from a side edge of the display screen,
responsive to selection. According to one embodiment, the method
further comprises organizing management functions into a plurality
of groupings including at least attribute functions and attribute
subgroupings; filter functions and filter subgroupings; and metric
visualization functions with metric subgroupings. According to one
embodiment, the method further comprises displaying the plurality
of groupings in the second portion in a visualization order, such
that data associated with each sub grouping is configured to
display in the first portion of the display reflecting the ordering
of the groupings and subgrouping shown in the second portion of the
display.
[0030] According to one embodiment, the method further comprises
providing access to the second portion of the display by at most
one click or computer operation in the user interface. According to
one embodiment, the method further comprises providing access to
the second portion of the display by at most one click or computer
operation in the user interface regardless of content being shown
in the first portion of the display. According to one embodiment,
the method further comprises generating visualization of FB Action
metrics in the first portion of the display responsive to selection
of the metric visualization functions available in the second
portion of the display. According to one embodiment, the method
further comprises generating the visualization of the FB Action
metrics occurs responsive to selection of a first sub grouping in
the second portion of the display and triggering visualization of
respective metrics available in the first sub grouping within the
first portion of the display, and responsive to selecting of one or
more of the respective metrics in the first sub grouping.
[0031] According to one embodiment, the method further comprises
generating the first portion of the display with a main body, a
separator visualization for controlling a display boundary of the
main body and an adjacent display portion, and a minor portion
adjacent to the separator comprising at least a portion of the
adjacent display portion. According to one embodiment, the method
further comprises maintaining with the user interface the ordering
of information in the second portion of the display when displaying
the associated data in the first portion of the display. According
to one embodiment, the method further comprises maintaining the
ordering in at least the main or minor portion of the display.
According to one embodiment, the at least one selectable drawer
includes a display of a membership number associated with the
respective hierarchical group.
[0032] According to one embodiment, the method further comprises
specifying the advertising demographic hierarchy to include at
least a first hierarchy level corresponding to a strategy grouping
of ad plans, a second hierarchy level corresponding to an ad plan
organizing a group of placements, and at least a third hierarch
level for organizing the placements. According to one embodiment,
the method further comprises accessing and displaying the
advertisement hierarchy according to a first default display absent
user intervention, wherein the first default display, displays the
hierarchy organized based on strategy group, with the strategy
group displaying one or more ad plans, and with the one or more ad
plans displaying the associated placements. According to one
embodiment, the method further comprises displaying a second
display of the advertisement hierarchy responsive to user
specification, wherein the user specification re-orders the levels
of the hierarchy.
[0033] According to one embodiment, the method further comprises
executing filtering operations responsive to re-order the levels of
the hierarchy and display at least the first, second, and third
levels of the hierarchy dynamically in any order responsive to user
selection of the order. According to one embodiment, the method
further comprises saving properties of the hierarchy as a temporary
view accessible in an administration display bar. According to one
embodiment, the method further comprises saving currents views
until deleted responsive to user selection in the administration
display bar. According to one embodiment, the method further
comprises generating a display of the administration display bar
responsive to selection in the user interface.
[0034] According to one embodiment, the method further comprises
generating a visualization of the administration display bar when
triggered entering into the display screen from a left side of the
screen and display over currently visualized advertising metrics.
According to one embodiment, the method further comprises
selectively rendering hierarchical groupings and selected sub-sets
of the hierarchical data, wherein selectively rendering includes
organizing massive data structures (e.g., data tables with greater
than 100,000 rows), into recursive hierarchies of rows, such that
the recursive hierarchies define sub-sets of the hierarchical data,
and a first sub-set of the hierarchical data can be displayed in a
web browser (e.g., conventional browser) on an end user system, and
wherein the rendering engine triggers loading and/or display of a
second sub-set of the hierarchical data responsive to scrolling via
the web browser. According to one embodiment, the method further
comprises separating a large number of data element into a first
level of row groupings, wherein the first level of row groupings is
selected based on a capability to quickly render the first level
groups (e.g., 8, 9, 10, 11, 12 row groups, among other
options).
[0035] According to one embodiment, the method further comprises
analyzing all data to be displayed is a first one of the first
level groupings, wherein analyzing includes further segregating the
data of the first one of the first level groupings into at least
second level row groupings. According to one embodiment, the method
further comprises analyzing a first one of the second level
groupings to determine further sub-groupings are required, and
segregating the data of the first one of the second level groupings
in response to a positive determination, and displaying or loading
the data from the first one of the second level groupings in
response to a negative determination. According to one embodiment,
the method further comprises recursively segregating the large
number of data elements into multiple levels of row groupings
beyond the first level, responsive to determining that the data
organized by the first level grouping exceeds a threshold amount
(e.g., over 10-100 rows of data, volume of data cannot be quickly
(<1 second rendered). According to one embodiment, the method
further comprises loading or displaying a first one of a sub-level
grouping in a user interface responsive to determining that the
first one of the sub-level grouping meets any display criteria
(e.g., lower than threshold number of rows, displayable in <1
second, etc.).
[0036] According to one aspect, a computer-readable media, that
contains instruction that when executed cause a computer system to
perform a method for generating and displaying a graphical user
interface for high volume data analytics, is provided. The method
comprises receiving, by at least one processor, advertising metrics
based on executing placements; analyzing and grouping, by the at
least one processor, the advertising metrics into an advertising
demographic hierarchy; determining, by the at least one processor,
summary information for the advertising metrics in each level of
the advertising demographic hierarchy (e.g., advertising location,
advertising target, advertising type, age group, budget pool,
strategy group, ad set, individual placement, gender, custom
audience, relationship, among others); and generating, by the at
least one processor, a navigable user interface display comprising
at least one selectable drawer associated with a hierarchical group
of advertising metrics (e.g., site, budget pool, strategy group, ad
set, placement, among other options), wherein the at least one
selectable drawer includes a display of a title of a respective
hierarchical group; and wherein the at least one selectable drawer
is associated with a respective summary view of the advertising
metrics within the hierarchical group. According to some
embodiments, various computer-readable media contain instructions
that when executed perform each of the method embodiments described
above.
[0037] Still other aspects, embodiments, and advantages of these
exemplary aspects and embodiments, are discussed in detail below.
Moreover, it is to be understood that both the foregoing
information and the following detailed description are merely
illustrative examples of various aspects and embodiments, and are
intended to provide an overview or framework for understanding the
nature and character of the claimed aspects and embodiments. Any
embodiment disclosed herein may be combined with any other
embodiment in any manner consistent with at least one of the
objectives, aims, and needs disclosed herein, and references to "an
embodiment," "some embodiments," "an alternate embodiment,"
"various embodiments," "one embodiment" or the like are not
necessarily mutually exclusive and are intended to indicate that a
particular feature, structure, or characteristic described in
connection with the embodiment may be included in at least one
embodiment. The appearances of such terms herein are not
necessarily all referring to the same embodiment. Various aspects,
embodiments, and implementations discussed herein may include means
for performing any of the recited features or functions.
BRIEF DESCRIPTION OF THE FIGURES
[0038] Various aspects of at least one example are discussed below
with reference to the accompanying figures, which are not intended
to be drawn to scale. The figures are included to provide an
illustration and a further understanding of the various aspects and
examples, and are incorporated in and constitute a part of this
specification, but are not intended as a definition of the limits
of a particular example. The drawings, together with the remainder
of the specification, serve to explain principles and operations of
the described and claimed aspects and examples. In the figures,
each identical or nearly identical component that is illustrated in
various figures is represented by a like numeral. For purposes of
clarity, not every component may be labeled in every figure. In the
figures:
[0039] FIG. 1 is block diagram of an example system, according to
one embodiment;
[0040] FIG. 2A-C are block diagrams of example systems, according
to one embodiment;
[0041] FIG. 3 is an example view of a user interface, according to
one embodiment;
[0042] FIG. 4A-B are example views of user interfaces, according to
one embodiment;
[0043] FIGS. 5-13 are example views of user interfaces, according
to some embodiments;
[0044] FIGS. 14-21 are example views of user interfaces, according
to some embodiments
[0045] FIGS. 22A-B are example views of user interfaces, according
to some embodiments;
[0046] FIGS. 23A-B are example views of user interfaces, according
to some embodiments;
[0047] FIGS. 24A-B are example views of user interfaces, according
to some embodiments;
[0048] FIGS. 25A-B are example views of user interfaces, according
to some embodiments;
[0049] FIGS. 26A-B are example views of user interfaces, according
to some embodiments;
[0050] FIGS. 27A-B are example views of user interfaces, according
to some embodiments;
[0051] FIGS. 28A-B are example views of user interfaces, according
to some embodiments;
[0052] FIGS. 29-30 are example views of user interfaces, according
to some embodiments;
[0053] FIG. 31A-B are example views of user interfaces, according
to some embodiments;
[0054] FIG. 32 is an example process flow, according to one
embodiment;
[0055] FIG. 33 is a block diagram of an example specialized
computer system, according to one embodiment;
[0056] FIG. 34 is block diagram of an example system, according to
one embodiment;
[0057] FIG. 35 is block diagram of an integrated system, according
to one embodiment;
[0058] FIGS. 36A-36J are screenshot images showing various user
interfaces, according to some embodiments;
[0059] FIG. 37 is a flow chart illustrating an example process,
according to one embodiment;
[0060] FIG. 38 is a flow chart illustrating an example process,
according to one embodiment;
[0061] FIG. 39 is a flow chart illustrating an example process,
according to one embodiment; and
[0062] FIGS. 40-60 show screen captures of user interface screens,
according to some embodiments.
DETAILED DESCRIPTION
[0063] According to some embodiments, system components, user
interface elements, and user interface displays are provided to
facilitate interaction with and to expedite display of any data
associated with system managed media objects (e.g., placements). In
one embodiment, a user interface capable of effectively
manipulating high volumes of data is implemented. The system and/or
user interface is specially configured to aggregate large data
volumes and translate the large data volumes into summary
information and incorporate navigable categorizations within the
data that enables dynamic selection and visualization of portions
of the large data volumes. Such interfaces may be particularly
useful for managing large amounts of information, such as ad
placement and performance information that is generated within an
advertising network associated with ad campaigns. Further,
organizations of the underlying data enables improved
visualizations, reduced retrieval time, reduced computational
delays, and reduces the computational efforts required by the
system to display the large data volumes. In one example,
visualization of data based on cached data structures enables
consistent views of dynamically changing data. In other examples,
cache invalidation protocols limits the need to re-load data while
triggering updates where existing data sets diverge past a
threshold amount. These implementations improve over some known
systems which fail to provide consistent data views, and that do
not address data divergence issues in consistent views.
[0064] According to one embodiment, an interface may be provided
that is visualization of a data-centric pivot table that allows
dynamic navigation into more specific information, such as ad
placement information. The visualization can be limited to portions
of the high data volumes, with subsequent portions being identified
by the system and retrieved only as a user scrolls through a first
set of information. For instance, a user may be presented an
interface that allows a user to navigate through performance
analysis data (e.g., ad placement performance information) to
locate specific ads and their performance within a hierarchical
view. According to one embodiment, pivot table visualizations
enable superior customization of data over some known approaches,
and enable reduction in data visualization (e.g., with focus views
and storing of view configurations, among other options) and the
associated computations that would be required to visualize the
same information in other conventional systems.
[0065] Examples of the methods, devices, and systems discussed
herein are not limited in application to the details of
construction and the arrangement of components set forth in the
following description or illustrated in the accompanying drawings.
The methods and systems are capable of implementation in other
embodiments and of being practiced or of being carried out in
various ways. Examples of specific implementations are provided
herein for illustrative purposes only and are not intended to be
limiting. In particular, acts, components, elements and features
discussed in connection with any one or more examples are not
intended to be excluded from a similar role in any other
examples.
[0066] Also, the phraseology and terminology used herein is for the
purpose of description and should not be regarded as limiting. Any
references to examples, embodiments, components, elements or acts
of the systems and methods herein referred to in the singular may
also embrace embodiments including a plurality, and any references
in plural to any embodiment, component, element or act herein may
also embrace embodiments including only a singularity. References
in the singular or plural form are not intended to limit the
presently disclosed systems or methods, their components, acts, or
elements. The use herein of "including," "comprising," "having,"
"containing," "involving," and variations thereof is meant to
encompass the items listed thereafter and equivalents thereof as
well as additional items. References to "or" may be construed as
inclusive so that any terms described using "or" may indicate any
of a single, more than one, and all of the described terms.
[0067] FIG. 1 shows an example of a system 100 for generating and
displaying a graphical user interface for high volume data
analytics. The system receives advertising metrics 102 from any
number of advertising platforms or publishers of advertisements. A
data analytic and grouping component 104 is configured to process
the received metrics and store the data according to, for example,
advertising type, advertising groupings, advertising targets. In
one example, the analytic and grouping component captures
information on the advertising type, advertising groupings,
advertising targets from a database engine 108, determines the
appropriate associations, and the database engine stores the
associated data and any summarizations or calculations on those
values in a database. In one embodiment, the user interface
component 106 is configured to provide a visual representation of
pivot tables executed against the database. Each view of the
database can be likened to a new pivot table, where each view
performs specific selections on the database data and presents
analysis on the current selections.
[0068] According to one embodiment, the system presents a unified
user interface layer 110 that is presented to users of the system.
The user interface layer 110 is configured to organize and display
the variety of summary views 112 (e.g., views 400, 600, 1400 of
FIGS. 4A, 6, and 14 respectively); the variety of detailed views
114 (e.g., FIGS. 22-31); and any management functions 116 and/or
views.
[0069] Further, various aspects of the invention may be practiced
with one or more advertising automation systems shown by way of
example in FIG. 2A. In particular, system 200 can be configured for
processing high volumes of advertising-related events in a
distributed advertising network. Such events may be originated by
one or more sources and may be of various types (e.g., pixel events
202, S2S (server to server tracking) events 204, mobile events 206,
etc.) that are received and handled by a web queue tier 208. The
system may also include various components, such as a component
that performs user resolution functions (determining users across
multiple platforms e.g., 210), a component that determines
attributions 212 (e.g., by observing impression/click histories and
tracking conversions/actions), among other functions. The system
may have other components, such as components that perform CRM
functions, receive product/inventory information, real time
structured data (e.g., real time bid (RTB) data (e.g., bids, wins,
clicks)), and receives offline conversion events or other
information that may be used to analyze performance of particular
ads. For instance, there may be components that perform offline
analysis of performance data to determine higher level functions,
such as optimized bidding and budgeting of ads. In some
embodiments, mobile measurement partners (MMP) and respective
application programming interfaces (e.g., MMP APIs 214) can be
integrated into the system to facilitate attribution management,
data capture, events information, etc.
[0070] According to one embodiment, FIG. 2A illustrates an
embodiment of a data measurement and attribution layer integrated
into the system. The bottom blocks (e.g., 202, 204, 206) illustrate
examples of the sources of user interaction data. For example,
javascript pixels are used to communicate website interaction
events for individual users to the system. In another example, a
mobile software development kit ("SDK") is similarly used to
communicate mobile app interactions. In another example, there is
also an interface to capture server to server based events, where a
server belonging to an advertiser or content provider entity can
directly provide respective data to the system.
[0071] As illustrated, each of the example sources communicate with
a set of servers, for example in the second layer of the figure
(e.g., the "web queue tier" at 208). The web queue tier 208
includes globally distributed web servers which provide load
distribution, queuing, and cookie management, so that the end
user's browser or mobile app is not slowed down waiting for the
completion of the attribution process (e.g., data tracking and
identification of associated users and/or actions).
[0072] In one example the web queue tier is a set of servers
implementing user resolution and attribution operations. User
Resolution at 210 includes a plurality of servers configured to
utilize tokens collected by the data sources to synthesize an
internal identifier which is unique to each user. According to one
embodiment, the synthesizing of the internal identifier does not
connect to identifiable information about that user, but rather
provides a way to connect events over time to determine which
interaction events should be aggregated together for performance
reporting. In Attribution Management 212, a group of servers are
configured to evaluate each tracked interaction in light of a
respective user's history in order to determine which
advertisements or content, if any, should receive credit for
causing the interaction. According to one embodiment, the system
currently implements a "last touch" attribution model, but others
are possible (e.g., first touch attribution model, weighted
attribution models, hybrid attribution models, among other
options). For mobile app interactions, various embodiment of the
system are configured to automatically query other servers via
mobile measurement partnership ("MMP") APIs to determine the best
attribution. Based on the data returned form MMP APIs, the system
identifies a best attribution and stores the attribution
information.
[0073] According to some embodiments, the user interface layer 110
is configured to generate and present tailored views to end users,
where the views include navigable visualizations of advertising
data. For example, the user interface layer can generate a user
interface that is a data-centric pivot table that allows dynamic
navigation into more specific information, such as ad placement
information through navigable data representations, wherein each
data representation can be selected in the user interface to
dynamically alter the data displayed or navigate into further
detailed selections.
[0074] For example, a user may be presented an interface that
allows a user to navigate through performance analysis data (e.g.,
ad placement performance information) to locate specific ads and
their performance within a hierarchical view. The specific ad
information that is displayed may include performance information
specific to the filters used to navigate to the specific ad. Such
an interface is beneficial, as it permits an advertising manager to
quickly locate relevant ad placement details through a data-driven
interface. In one embodiment, the interface may include the ability
to present an inline summary of the ad placement within a tabular
view of the performance data. Summary information associated with
the displayed ads may be changed depending on the filters or other
user selections within the interface. Such capabilities may permit
a user (an advertising manager or other user type that manages ad
placements) to quickly locate relevant ads within the user
interface that relate to the displayed placement performance
data.
[0075] FIG. 2B illustrates data management systems and functions
executed by the system. According to one embodiment, the system 200
is configured to receive, analyze and return processed analytics to
online advertisers, by aggregating respective data from the
measurement and attribution layer (e.g., illustrated in FIG. 2A).
In one embodiment, the system implements a set specialize servers
(e.g., 222) configured to provide information about interactions
aggregated by advertisement, attribution time, and interaction
time--these aggregations can be referred to as of time cohort
rollups which can include aggregation of related information or
information that can be grouped based on similarity.
[0076] In further embodiments, the system can be configured to
combine this information with data drawn from advertising publisher
APIs (e.g., 224) and RTB data streams (e.g., 232), as well as
various advertiser data sources (e.g., conveying conversion events
at 234), such as customer relation management ("CRM") systems
(e.g., 228) and product and inventory feeds (e.g., 226). FIG. 2B
illustrates these data sources connecting to a set of data clusters
(e.g., 230). In one embodiment, the data clusters 230 include
storage systems that provide a variety of mechanisms of access to
the integrated data with different performance characteristics
suitable for different applications using the data. In one example,
a MySql cluster can be configured to support functions and displays
of the high volume analytics systems. In another example, the other
systems (e.g., Hadoop, Aerospike, etc.) support real-time bidding
and performance modeling and optimization.
[0077] Various embodiments of the system enable one or more of or
any combination of: processing and rendering of analytics on 600
million conversion events each day; globally (DNS) balanced web
tier; manage cookies; handle redirects and containers; accept and
queue events; user resolution; horizontally scalable processing;
multiple tokens and/or levels of authority for accessing and/or
visualizing data; device bridging by first party ID; MMP API
integrations; bridge click-to-install gap; attribution
management--for example, based on user impression/click/event
history; in another example attribute is defined by last click but
other models possible. Further embodiments enable one or more of or
any combination of: processing 600 million conversions/day; 100
thousand RTB events/second; 400 million user records; 100 million
feed elements; 10 million MMP API data rows/day; mixed granularity
(e.g., by event, user, product, ad time); storing real-time
structured data, for user management, attribution, RTB match;
execute map/reduce and/or ETL frameworks; which can be used for
modeling and exploration; and can include low latency rollups
(e.g., information aggregations) which provide merged cohort data
with time information, which the system can use for reporting
and/or API decisions.
[0078] Yet other embodiments are configured to execute one or more
or any combination of the following: unique interface paradigm
which provides visualization of live performance context data while
executing management functions, editing existing placements, etc.;
context-specific actions and visualizations for live campaigns and
directly integrate live analytics views; fast, configurable
analytics interface responsive to user input; API triggering
responsive to user interface input; multi-layer, multi-dimensional
aggregation of performance/placement data; comprehensive ad
attributes and metrics; powerful sorting and filtering in
responsive user interface; variable time frames and granularity
associated with data aggregates accessible and tunable in the user
interface; graphic and tabular views; near real-time reporting
(e.g., with hour granularity, minute granularity, etc.); and
tailored performance even for large campaigns and wide time
windows. Still other embodiments enable one or more of or any
combination of: a custom procedural query engine; queries against
generic object hierarchy; building result trees with multi-layer
aggregation and, for example, loading of tree segments to optimize
fast visualization; attribute and metric filtering at any tree
layer; persistent result set management; smart object/data and
result set caches to optimize visualizations; pre-loading of
frequently used data; object definition and data access plug-ins;
client-side data browser and object manager; interfaces to server
API for analytics access; smart client-server scrolling (e.g.,
incremental loading of data); dynamic attribute and metric panels;
context/selection-specific action menus and panels; load and pivot
ad-level lifetime campaign data visualized in under one second;
remains responsive for time-based analysis over GBs of data; and a
dynamically load balanced, fault tolerant cluster.
[0079] FIG. 2C is an example block diagram showing data analytic
components and workflow executions. FIG. 2C shows the same
components of the system that enable various features of the system
and/or user interface displays. For example, models definitions
(e.g., 252) describing the organization of placement metadata
(e.g., 266 detailing, for example, how to find the creative
elements of an ad from an ad id in a data row) and code to fetch
data from the system, as well as provide signals for cache
invalidation (e.g., 254) when key data changes. In one example,
data is loaded and cached for display in the user interface. The
data is cached to facilitate access, while cached, monitoring
processes review cached data for changes (e.g., real time data
feeds can constantly update data). By invalidating a cached entry
or data object the system forces loading of the most up to date
information in the user interface, and for example, when the user
is accessing administrative functions/UIs, and/or where the real
time data in not part of the active display.
[0080] In one embodiment, the query engine implements in-memory
queries against aggregate advertising data (e.g., loaded from FIG.
2B) stored in an object/data cache (e.g., at 262). The engine can
be specialized for flexible dimensional aggregation, such that the
underlying (ad, attribution_time, event_time, etc.) data can
readily be analyzed based on ad properties and time window
aggregates. As the query engine answers queries, it stores results
in a result set cache (e.g., 264) so that the results for a
specific UI session do not change unexpectedly as data is
updated.
[0081] The analytics user interfaces cane be implemented through a
javascript client side app (e.g., 260) with a corresponding
server-side API (e.g., 258) that interfaces with the query engine
(e.g., 256). The JS app issues data requests to the API (e.g., 258)
as users configure aggregation, filtering, and date range settings,
and then manages data fetched via the API from the matching result
sets to provide high performance on the client while operating
within reasonable client memory limits.
[0082] According to one aspect, the user interface is specially
configured to manage, aggregate, and dynamically select data for
visualization responsive to constantly updating data feeds (e.g.,
live placement data associated with an advertising network). The
dynamic nature of the received data allows a user to selectively
control their view of the changing data, for example by creating
and saving user interface views. In one implementation, a database
management component is configured to receive the dynamic data
feeds, translate the dynamic data feeds into standardized formats,
and group the dynamic data into selectable and displayable
elements.
[0083] According to another aspect of the present invention, a
visualization interface may be provided that includes a web-enabled
pivot table used to analyze and present ad performance data.
According to one embodiment, advertisers may use a pivot table to
view, sort through, and visualize multiple dimensions of
advertising or groups of advertising data. Such tables, according
to various embodiments, are configured with the attributes and
metrics that are specifically tailored to user's needs by adding
predefined audiences, creative elements, data-related attributes or
placement details, followed by the metrics that determine campaign
success. Once the selections within the interface have been made,
the user may be permitted to simply drag and drop displayed
elements to re-order metrics and/or to create a customized campaign
dashboard. Such interfaces may be modified to include a summary
view associated with a specific ad within the table based on
specific user selections within the pivot table. This permits, for
example, a user to selectively create a dashboard using certain
metrics while at the same time seeing the specific ad placements
and their associated summaries according to the configured
dashboard. For instance, if an advertiser wants to see which
creative was performing the best, the user is permitted to sort by
key metrics (e.g., ROI, LTV, CTR, CPC, etc.) and locate specific
summary view information relating to those placements.
[0084] An example interface template for a inline summary view is
shown in FIG. 3. FIG. 3 illustrates an example format and
organization for an inline user interface display that can be
triggered to display in a pivot table visualization or in
conjunction with a tabular visualization, for example, of
performance data. In one example, the inline display can be
rendered by the user interface as an embedded row spanning the
length of any available columns in a current visualization
(discussed in greater detail below).
[0085] In one example, the inline user interface display can
include an ad preview portion for the inline display 352.
Proximately displayed at 354 is a hierarchy display for accessing
information on the ad placement being previewed, where the
advertisement information is stored according to hierarchical
layers. The hierarchy display 354 can be configured to enable
navigation between visualizations on the inline display showing
respective layers and associated detail. In one example, responsive
to selection in the hierarchy at 354 an inline detail portion of
the display 356 provides additional information on the ad placement
relevant to the selection made in 354. In another example, the
default display shown in 356 is shown based on the first level of
the hierarchy selected in 354.
[0086] The display template can also include further selection
menus to facilitate navigation within, for example, the inline
display. In one embodiment, display section 354 includes vertically
arranged display of hierarchy objects, and each hierarchy object is
associated with a display in section 356. In another embodiment, a
horizontally displayed inline menu section 357 can enable further
navigation through placement information (e.g., via hierarchy
object selection at 358), definitional selections associated with a
given placement (e.g., via selection at 360), targeting information
(e.g., via selection at 362), and may optionally include additional
information menus (e.g., at 364) to access information not
categorized in the preceding options.
[0087] Further examples of the user interfaces are shown and
described in FIGS. 4A, 4B,-49, which can be arranged based on the
master template 350. Shown in FIG. 4A, is an embodiment of a user
interface 400 that may be used to display ad information to a user.
The user interface 400 is specially configured according to
minimizing the data volume required to convey necessary management
information for an advertising network. Some difficulties in
managing advertising networks include the high volume of constantly
changing data that often needs to be reviewed by a network manager
in order to make decisions on how to change, update, terminate, or
suspend any number of a high volume of advertising placements. In
various embodiments, maintaining contextual information associated
with a placement shown in user interface 400 enables visualization
of data faster. As data is updated in real time, the contextual
display likewise render the data faster that implementations that
use separate windows or display for managing additional views. In
further embodiments, inline displays paired with additional
contextual information on the same placements reduces the need to
render as many visualizations, and further eliminates the need to
return to prior screens to capture the details information that is
maintained through navigation in the inline display.
[0088] Summary view 400 includes an example of a view tailored for
understanding and summarizing metrics associated with individual
advertisements. In one embodiment, view 400 is configured to be
introduced into a data-centric pivot table that allows dynamic
navigation into more specific information. In one example, view 400
is generates a row in the data-centric pivot table and sized to
span the width of available columns in the data-centric pivot
table. At 401, a preview of a specific ad is shown to provide a
visual indicator and/or reference for a specific advertisement. A
second portion of the display 400 includes a plurality of drawers
(e.g., 402-410). According to one embodiment, each of the plurality
of drawers is a navigable data and visual structure, that is
executable via selection in the user interface.
[0089] The plurality of drawers are arranged in the visual display
400 based on a hierarchy of groupings. In the example, the
hierarchy includes a site grouping--value "AllModern"; Budget Pool
grouping with value--"Gateway"; strategy group grouping with value
"Gate Desk Feed CPC" (Cost Per Click); ad set grouping with an
unique identifier for the ad set; and placement grouping with an
unique identifier for the placement. Each drawer having more than
one member in its associated grouping is configured to display
membership information, for example, the number of members of the
grouping. In one embodiment, the summary view 400 includes a
longitudinal menu 418 for selecting a display format of the summary
400. In one example, the display format includes a first default
view showing an object hierarchy. The currently selected display
format can be highlighted in the longitudinal menu 418, for
example, at 420. Object 422 is also configured to transition the
user interface to summary 400 via selection on 422.
[0090] In further embodiments, each drawer (e.g., 402-410) includes
an active state and a passive state. In a passive state grouping
information, specific value, and membership number information can
be displayed. Once selected, for example, by hovering with a user
interface pointer or clicking with a user interface pointer--each
drawer triggers display of an associated visualization, for
example, the active state of the placement drawer triggers a
display at 412.
[0091] In some embodiments, the drawer is associated with a
plurality of information views. Each view operates as a dynamic
selection of data from the database that presents summary and/or
aggregate information or in some alternative views and management
information that can be used to add, modify, delete, and/or update
advertising placements. At 412 is shown some additional detailed
information relating to the placement being visualized. In some
examples, an initial view can include placement number, current
bid, date created, a current bid type, ad group name, stop loss
credit (for reactivating ads that would otherwise fail stop loss
criteria), and an associated Facebook or other advertising source
identifier. In some embodiments, selections made within summary
view 400 are reflected in real time on the data-centric pivot
table, that summary view 400 is integrated into. According to one
aspect, the immediate connection between changes made in the
summary view and the data-centric pivot table ensure accuracy in
entered information (e.g., facilitates user understanding of
context for each selection) and reduce errors in data entry as
users reviews and/or manipulates thousands of advertisements.
[0092] The views associated with a respective drawer in the active
state can also include a graphical representation of the principal
information for that view. In the initial view 412, the principle
information being conveyed to the user is bid amount for the
advertising placement. At 414, the initial view displays recent
bids, bid time, and bid amount in a graphical form, so that the
user is immediately provided a reference and recent historical
window to understand how the current bid amount relates to the
placement. Each active drawer view (e.g., initial view 412) can
include links to underlying information being displayed/summarized
in the view (e.g., at 416 a user can navigate to the underlying
information being conveyed by the view).
[0093] According to some embodiments, each active drawer can be
associated with a plurality of views and can include additional
summarizations of additional views. For example, FIG. 4B, includes
a second view associated with the budget pool drawer 404. According
to one embodiment, the layout of the views associated with each
respective drawer is specially configured to appear consistent
between drawers, share a basic organization, and convey summary
information in a comparable format. The consistent views as a user
navigates through a multitude of advertisements and associated data
ensure better understanding across larger amounts of data and
directly results in reduced errors in management functions and data
modification and/or entry in the user interface. In some
embodiments, selection of the object hierarchy at 422, triggers the
display of a second vertical menu 428 (e.g., comprising a plurality
of drawers). According to some embodiments, the first longitudinal
menu provides access to additional views (e.g., an object hierarchy
view (e.g., FIG. 4A), and a creative details view (e.g., FIG. 6), a
targeting view (e.g., FIG. 14). Each additional view can be
associated with vertically displayed menus, that enable further
refinements of each view, as discussed in greater detail below.
[0094] According to one embodiment, FIG. 4B shows an example
transition to detailed information on a specific placement via
selection of "Placement" 450 in the user interface. To facilitate
navigation, selection in the user interface vertical menu 454 is
highlighted at 456 with a visual indicator that tracks the current
view based on selection on a hierarchy level (e.g. in menu 454).
Optional menu options can be visualized, responsive to user
selections in the user interface. In one example, "Additional
Details" at 452 is visualized responsive to a transition into the
"placement" hierarchy via selection at 450. The additional detail
option at 452 enables access to additional information (e.g., view
log, placement performance, and/or old placement details.
[0095] Various embodiments describe the summary views implemented
as inline displays. According to some embodiments, the same
functions can be implemented as overlay displays. According to one
example, the overlay displays are positioned in the user interface
to enable visualization of contextual information associated with a
placement being reviewed in the overlay display.
[0096] According to another embodiment, shown at 504 in FIG. 5 is a
view 500 for conveying budgeting information across the gateway
grouping. Included with the summary data at 506 is a graphical
representation of the total budgetary information with reference to
the portion of the total budgetary information made up by the
strategy group at 508. Responsive to accessing detailed information
and/or selecting "Placement" in the vertical menu 510, the system
is configured to display action control s at 512. The action
controls are configured to start and stop advertisement bidding
and/or execution in real time. For example, selection of 502
triggers the action control to transition between active and paused
states depending on a beginning state of the action control. In the
illustrated example, 502 is in a paused state, thus, selection at
502 triggers a transition to an active state. In response to the
transition to an active stated the system is configured to
communication with a hosting system for the respective placement
and activate any bidding instructions for executing the respective
advertisement. In one example, the placement can be hosted on the
known FACEBOOK platform, and the transition to active state is
configured to cause the system to communicate with the FACEBOOK
platform via an API executed on the system, that triggers bidding
as defined on the system (e.g., in the placement details) and
monitors spend and tracks performance of the placement. Transitions
to a paused state perform similar operations in reverse (e.g.,
triggering an API to communicate with a hosting platform to suspend
bidding activity). As any changes are made in the summary view, so
too does the data-centric pivot table update any corresponding
record in real time.
[0097] According another aspect, the high data volume analytic user
interface is further configured to manage creation and/or
modification of advertising placements or ads. The user interface
includes selections for navigating to "creative details" associated
with an advertisement. Similar to the view 300, view 600 includes a
preview of an advertisement 602, and a set of user interface
drawers 604-618. Each drawer is selectable in the user interface
and configured to present an associated view or associated
information in an adjacent portion of the user interface (e.g., at
620). The highlighted portions of the user interface examples shown
in FIG. 6-FIG. 13 identify the selected drawer via the highlighting
and show the associated view with each drawer. As shown in FIG. 6,
a creative details view can include a vertically oriented menu at
622, reflecting each selectable portion (e.g., 604-618) of an
advertisement or placement that can be modified. In some examples,
creative details view 600 can enable creation of a new placement or
modification of an existing one. For example, as shown in FIGS.
7-15 selection within vertically oriented menu 622 enables an end
user to navigate through portions of an existing (or new)
placements, edit any defined portions (or create new portions), and
responsive to leaving the creative details views, the system is
configured to capture any changes, any new data, new information,
and trigger a respective API that, for example, instantiates a new
placement on a third party system (e.g., FACEBOOK) according to the
user definitions, or in another example, updates an existing
placement via execution of a respective API.
[0098] According to one embodiment, similar to changes made in view
400, changes in view 600 are reflected in the data-centric pivot
table in real time. Additionally, as new data is captured by the
system (e.g., via one or more APIs connected to respective hosting
systems) entries in the data-centric pivot table update and provide
real time contextual information, while a user is navigating
summary views and/or summary information shown inline. In further
embodiments, the system can delay updating of information to avoid
confusion. For example, the system can operate on cached data
and/or cached date results, and new data received by the system
will not be updated until a cache invalidation event occurs. Cache
invalidation can be executed based on detecting a period of time
has elapsed, or identifying a threshold number of changes have
occurred, among other options.
[0099] FIGS. 14-21 provide additional examples of user interface
views. In particular, FIGS. 14-21 provide example interfaces for
summarizing targeting information associated with a particular
advertisement, advertisement group, etc. In the example of FIG. 14,
user interface 1400 provides a preview view of the advertisement
being analyzed (e.g., similar to views 400 and 600). Interface 1400
also provides summary information associated with consumer target
of the selected advertisement at 1404. The system and/or user
interface arranges target audiences into hierarchical groupings and
presents the membership numbers accordingly (e.g., location with
value US; age with value 25-35; gender with value male, female;
custom audiences with value 4.14 LaS (e.g., a customized grouping
of users that may be created, for example, responsive to a listing
of attributes to an advertising server (e.g., providing a listing
of email addresses and receiving Facebook user names within a
defined group)); and relationship with a value of
"single"--1408-1416).
[0100] Additional views summarize the targeting information for a
viewing user differently (e.g., 1500, FIG. 15). Each categorization
is selectable to view information on categories (e.g., view 1600,
FIG. 16) and can be navigated via selection in the user interface
at 1602. View 1700, FIG. 17 shows the information associated with
selection of Location 1702. FIGS. 18-20 likewise show views
associated with selection of respective hierarchical groups. FIG.
22 is another example view of targeting information 2200. View 2200
displays information on each applicable hierarchical group and
membership information on each group via a visual indicator
associated with each group. In one example, each visual indicator
(e.g., 2202-2210) can be sized relative to the associated
information (e.g., membership numbers).
[0101] According to other embodiments, the user interface can
include additional detailed displays of advertising metrics and/or
data associated with managing an advertising network or campaign.
FIGS. 22-31 illustrate various examples of user interfaces and
organization of detailed advertising metrics.
[0102] Shown at FIGS. 24-28 are examples of summary inline displays
that can be accessed by users while in the detailed views. In one
example, FIG. 24 shows a performance view within a pivot table that
is configured to display performance data associated with
particular advertisements. Actions may be performed with particular
entries based on the selected ad placement. For example, in the
interface shown in FIG. 24, a right click of a pointing device over
a particular selected placement in the displayed data-centric pivot
table, cause the system to perform one or more actions. For
instance, a "Placement Summary" action may be selected that permits
the user to see specific information associated with a particular
ad (e.g., FIG. 24 shows the result of a selection of the "Placement
Summary" option within the interface). Such a summary may include a
preview of the ad, details relating to the creative, placement
attributes, placement structure and status, and targeting
information associated with this particular ad, among other ad
summary information.
[0103] Other actions may be selected, including a menu option to
access detailed logging activity. In one examples, a menu titles
can specify "AI Logs" (e.g., at 2204 in FIG. 22), which transitions
the system to detailed logging information tracked by the system
showing the automatic placement of ads according to artificial
intelligence functions. More generally, various embodiments of the
system are configured to tailor machine learning algorithms based
on prior user's data. In one example, selections made in the user
interface are tracked by the system constrained by a current state
of the system that is associated with each selection. Machine
learning matching and/or fitting can be used to predict what
information subsequent users will find useful by matching similar
or same states to various subsequent user contexts. The system can
be configured to include matching information fields based on such
learning algorithms. In some examples, user interface views can be
tailored to highlight such fields, and/or tailored to include or
exclude information fields based on matching.
[0104] Further, other actions may be performed, such as applying
additional filters to the display (e.g., via the "Add Filters"
action), isolating or eliminating certain ad placements from the
display (e.g., via the "Only show this Placement ID" action or the
"Exclude this Placement ID" action), or displaying detailed
placement performance relating to the selected ad placement (e.g.,
via the "Placement Performance" action).
[0105] The summary overlays displays aggregate the information
being viewed in the detailed view organized based on the management
function (e.g., FIG. 24 Creative Details 2402, Placement Attributes
2404, Placement Structure & Status 2406; and Targeting 2408)
for a selected advertisement. FIG. 24 illustrates an example
in-line user interface element introduced into a table based
visualization of placement data (e.g., data-centric pivot table).
As shown the inline display is configured to span the length of a
row and expand automatically the height of a row to accommodate the
in-line display. Multiple in-line displays can be accessed in the
user interface and can facilitate direct comparison without
requiring the user to navigated through other screens to have
access to the same comparison information. The inline display can
also be configured to be navigable, for example, FIGS. 4A, 4B-21
show additional embodiments of example displays that can be access
from table based views and inline line displays similar to FIG. 24.
In other embodiments, the views shown in FIG. 4A, 4B-FIG. 21 can be
displayed as an overlay window, shown in proximity (e.g., just
below or above) a row in a table based view of associated detailed
placement data so that the detailed placement data is shown as
context in conjunction with the overlay windows.
[0106] According to one embodiment, a visual indication of a
separator bar 2410 is shown. The user interface can be configured
to be responsive to user actions associated with repositioning the
separator 2410, so that a first portion of the display 2412 and a
second portion of the display 2414 can be dynamically manipulated.
For example, in response to the translation of the separator 2410
(e.g., moving the separator 2410 left or right in the display),
additional advertisement data or metrics can be hidden or displayed
in either of the first portion 2412 or the second portion of the
display 2414. FIG. 24 shows advertisement metrics 2416-2420 as
including spend data 2416, impressions 2418, and clicks 2420, among
other data columns of the tabular display. The first portion of the
display can include metrics such as placement identifier 2422,
placement status 2424, image 2425, Ad Plan 2426 (e.g., hierarchical
grouping of placements and budget groups), budget pool 2428 (e.g.,
hierarchical grouping of placements based on common budget),
strategy group (e.g., hierarchical grouping of placements under
common management control), audience information 2430 (e.g.,
reach--showing number of discrete or not users shown placement),
current bid 2432, and current spend limit basis 2434 (e.g., cost
per click).
[0107] In some embodiments, translation of the separator 2410 can
trigger the user interface to automatically resize information
displayed in the first and/or second portion of the view in the
display, and in some examples, enable the user interface to
continue to visualize the current advertising parameters 2416-2420,
while introducing additional relevant information in the first
portion of the display by manipulating the separator 2410. In some
embodiments, detailed information fields are ordered automatically
by the system and responsive to manipulations of the separator
2410, the detailed information is introduced into the display based
on the system based ordering (e.g., spend 2416, impressions 2418,
clicks 2420, etc.). In some alternatives, the system and/or user
interface retains information on any modifications to a view that
and end user selects, including for example, user specified
ordering of column and/or selection/exclusion of columns to be
displayed. In one example, the modifications to the view (e.g.,
data ordering, selected data elements, removed data elements,
separator position, etc.) can be retained as a temporary view. The
temporary view can be preserved across multiple logins, etc. but
can also be subject to any latter modifications. In further
embodiments, any changes a user wishes to maintain can be saved as
user named views and made accessible through the user
interface.
[0108] According to one embodiment, the operation/translation of
separator bar 2410 is configured to operate only on the first
portion and second portion of the user interface. In one example,
the separator 2410 does not affect the display of an integrated
summary view regardless of resizing the first portion and/or second
portion of the display.
[0109] FIG. 32 illustrates an example process for displaying
summary information contextually. Process 3200 beings with
receiving, advertising metrics from at least one API connected to a
third party content provider at 3202. Where the metrics can be
analyzed and grouped at 3204 into an advertising demographic
hierarchy. In some embodiments, part of the analysis at 3204 can
include determining summary information for the advertising metrics
in each level of the advertising demographic hierarchy (e.g.,
advertising location, advertising target, advertising type, age
group, budget pool, strategy group, ad set, individual placement,
gender, custom audience, relationship, among others) or in others
determining summary information can be a separate step 3206.
Process 3200 continues with generating a navigable user interface
display at 3208 comprising at least one selectable drawer
associated with a hierarchical group of advertising metrics (e.g.,
site, budget pool, strategy group, ad set, placement, among other
options), wherein the at least one selectable drawer includes a
display of a title of a respective hierarchical group. When
selected the at least one selectable drawer is associated with a
respective summary view of the advertising metrics within the
hierarchical group that is then displayed. In one embodiment,
responsive to selection of a view summary data control, process
3200 continues at 3210 with integrating the summary view into a
first display of advertising metrics arranged in a tabular format.
In one example, integrating occurs responsive to user selection in
the user interface (e.g., of a view summary data control), In
another example, the act of integrating into the first display
optionally includes expanding a row of the tabular format to
accommodate the summary view, and spanning the summary view across
a plurality of columns of the first view.
[0110] FIG. 26 illustrates another example display structure for a
display focused on reducing information overload by only displaying
information in one group selected at 2602, which can be displayed
responsive to selection of that group (e.g., at 2604). FIGS. 29-30
display example views of detailed information for a particular
advertisement or advertising group based on received advertising
metrics that are analyzed and/or summarized by the system into the
preceding displays.
[0111] In other examples, summary information views can be combined
with other graphical summarization information. For example, FIG.
31 illustrates and example view 3100 combining summary information
views with detailed graphical analysis of a particular
advertisement. The user interface simplifies comparison of summary
information (which can be used as a benchmark) with individual
performance (e.g., over time).
[0112] In some examples, the system and/or user interface
facilitates the consumption of large volumes of data associated
with advertisement placement and execution. For example, the user
interface provides a placement summary (e.g., FIG. 24) that users
can access to view granular information on the creative (e.g.,
2402), placement attributes (e.g., 2404, ad structure (e.g., 2406),
and targeting (e.g., 2408) detail for individual ads. When
comparing ad performance, the placement summary can be used to view
attributes of any ad such as, delivery location, audiences you are
targeting, bid type, bid amount, among other information.
[0113] Another option provided in some embodiments includes
visualizations of the performance of an individual placement over
time. In one example, selection in the user interface triggers the
system to display a table and chart of how that ad placement
performed over time. The display can dynamically refresh during
viewing as additional advertising metrics are received by the
system. In one example, the placement summary also provides
additional information such as, logged information that allows a
user to see more detail about optimization logic applied to a
placement. In one embodiment, the logged information includes
system automated tuning selections and/or updates made on existing
placements. For example, machine learning algorithms are configured
to optimize return on spend (e.g., by optimizing for click through,
conversion, sales, etc. relative to dollars spent). In addition,
the user can also view ad placement on advertising platforms (e.g.,
Facebook) to see comments, likes, and shares.
[0114] According to another aspect, generation of logical groupings
of advertising types provides selectable options in the user
interface that facilitate advertising management. Each grouping is
responsive to mouse over operations to display information for
matching. The Ad Type groupings remain the same across any view,
and are selectable within the user interface to display how each ad
will be presented on Facebook.
[0115] In various examples, extremely long urls are handled by the
system by creating shorter visualizations of the long urls.
[0116] Historic data may be captured and associated with data
structures on the destination system to enable dynamic and
interactive displays of the historic data. The interfaces can be
configured to merge current data with historic data to facilitate
user access to information. The dynamic displays can be responsive
to user selection of data dimensions (e.g., information associated
with ads, metadata, further information associated with the
descriptive information, etc.). In some embodiments, the system
generates interfaces that enable easy selection of data dimensions
(e.g., right click to add available data dimensions, or drag and
drop data descriptors into a visual display). The interfaces can
then dynamically generate and redisplay advertisement information
as new data dimensions are incorporated, removed, repositions,
and/or re-ordered. In some embodiments, the interfaces may be
browser-based applications written in a variety of programming
language including, but not limited to Java, Javascript, PHP, among
others. Such an architecture (e.g., the Data Analytics and Workflow
Architecture) may be designed to handle many events in a scalable
manner. Raw data may be stored in a relational database (e.g.,
MySQL) as the vast majority of the data is relational in nature and
databases such as MySQL provide ACID transactions.
[0117] According to one embodiment, to achieve the performance
required and support multi-tier pivoting, the system may be
configured to load all of the required MySQL data into memory. In
one embodiment, the system may break the information (e.g., data
dimensions) into two types: [0118] Placement metadata such as
creative, and audience [0119] Performance time based data
[0120] Placement metadata may be stored in memory and, according to
one embodiment, the placement metadata is immutable. Loading this
data often requires joins across many tables and can be slow,
however, it is appreciated that once in memory, the data can be
accessed very quickly. Recent performance data may be kept in
memory while older data is retained based on user access. The data
may be refreshed regularly, or changes to data may be streamed into
the architecture to ensure the query results represent real-time
metrics.
[0121] A query engine acts upon the data in memory using data
agnostic actions (i.e. group, sort, where, having). In one example,
because the data volumes for advertising metrics are so large, an
infrastructure may be provided that is capable of handling billions
of events and aggregating the information into displays that are
capable of being acted upon in real time by users (e.g., ad
managers). Information may be aggregated and for use in pivot
tables that can be presented to users within a management
interface. Such pivot tables may access a tree-like data structure
having multi-layer aggregation that permits attribute and metric
filtering at any layer. To this end, a custom procedural query
engine may be provided that is capable of generating this tree-like
structure. The infrastructure itself may be underpinned by a
dynamically balanced fault tolerant server structure. For example,
a load balancer may be provided that distributes load to one or
more nodes which performs various functions (such as tree
generation/management and SQL operations on a MySQL database).
[0122] It is noted that, according to one implementation, the data
model and data access layers are completely decoupled from the
query engine. The paths given to the query engine refer to fields
within the object using reflection and support expressions against
those fields. This allows for using the architecture to analyze
other future data objects beyond just placements.
[0123] The query engine may use a procedural language to process
the data. Below is an example:
[0124] GET(1234)
[0125] WHERE(EQUAL,placement.audience.minage,15)
[0126]
GROUP(placement.audience.gender,placement.creative.title)
[0127]
SORT(0,placement.creative.image,DESC,placement.bidtype,ASC)
[0128] ATTACH(1234,TODAY,HOUR)
[0129]
HAVING(1,GREATER_THAN,placementperformance.clicks/placementperforma-
nce.impressions,0.5)
[0130] In this case, placement metadata for site 1234 is utilized
and first filters out any placements whose audience's minimum age
is 15. The results are then grouped by audience gender and creative
title and sorted by image and bid type. Attach then combines
metadata with today's time based performance data and groups it by
hour. Finally, the having step filters any aggregate data for each
hour to only include those whose click through rate is greater than
50%. Data is represented as a tree with aggregate summaries at each
non-leaf node. The result is that loading Placement Analysis for a
customer in a conventional architecture with 1 million placements
would take between 20-30 minutes, while the architecture is capable
of executing a more complex query in under 2 seconds.
Example Ingestion Subsystems And Methods
[0131] According to one embodiment, an ingestion subsystem is
configured to automate capture of advertisement information from
the known FACEBOOK platform. In other embodiments, the ingestion
subsystem is configured to automate capture of advertisement
information from other systems (e.g., GOOGLE, YAHOO, etc.). Shown
in FIG. 36A, is an embodiment of a user interface and user
interface screens (e.g., I100) that may be used to display
ingestion information to a user. The user interface is specially
configured to walk the user through the steps of automatically
capturing information from an outside advertising service provider.
In this example, the user interface display I100 is tailored
specifically to the FACEBOOK platform. In other embodiments,
additional user interfaces can be presented to the user by the
ingestion subsystem to determine which outside provider has
advertising data to be captured. Responsive to identification of
the provider, the ingestion subsystem can use tailored user
interfaces show to the user based on the identified provider.
[0132] UI I100 is configured to walk the user through a first phase
of the ingestion process (e.g., Setup Import I102). At I104, the
user is prompted to identify the site for which the user wishes to
import the advertising data. The site specified by the user is used
by the destination system to define an advertising site and
associate the site with any number of advertisements, that can be
further organized by budget pool. Each budget pool represents a
logical organization of advertisements that can be managed together
(e.g., manage advertising spent by budget pool, view revenue by
budget pool, accounting by budget pool, etc.). At I106, the user is
prompted to assign a budget pool to the information to be imported.
In various embodiments, the budget pool associated for each
advertisement is an editable field that the user can modify, for
example, after import. At I108, the user is prompted to specify a
time window for the information to be imported. In some
embodiments, the time window may be specified via a drop-down menu
containing popular choices for time window input values such as
"last 28 days", or "last 7 days", or any suitable time window value
for the user's ingestion process. In FIG. 36B, user interface I110
shows the UI with user entered information. Upon selection of I112,
the ingestion subsystem is configured to advance to a next phase of
the ingestion process (e.g., Configure Actions, FIG. 36C,
I122).
[0133] UI I120 illustrates an example display for facilitating
capture and configuration of existing advertising actions from, for
example, a FACEBOOK account. The UI is configured to organize
actions from the service provider and the management system into
sections of the display. For example, at I124 the UI displays
available system actions, and applies an ordering to those actions
the system determines to be of the most importance. According to
one embodiment, the ingestion subsystem is configured to analyze an
advertising account of another provider (e.g., a FACEBOOK account)
and identify advertising actions configured on that account. For
example, advertising actions can be defined based on rules. The
rules can be defined with conditions and at least one action to
take, responsive to the condition occurring or not occurring.
[0134] According to one embodiment, the system is configured to
automatically identify system based actions (e.g., defined by
programmatic language, logical execution conditions, visual based
programming, etc.) to identify a condition predicate (e.g., a test
condition) and a resulting operation tied to the condition
predicate. The resulting operation can include complex management
functions, individual actions to take with respect to a placement
(e.g., pause placement, bid up placement, bid down placement,
etc.), or trigger status change (e.g., alert to management,
increase value, decrease value, etc.). In some examples, the
ingestion subsystem is specially configured to parse displays on an
access system to identify execution logic or condition statements
and match that execution logic and/or condition statements to
potential operations to be performed on placements. Matching
between existing operations and ingested operations can be executed
based on a target platform. For example, a known platform may have
a multitude of known actions. Some of the known actions may include
consistent formats that can be used to reduce execution complexity
during matching. Known operations can be searched first for matches
before any complex matching logic or machine learning based
approaches to identifying and implementing ingested actions.
[0135] In some embodiments, the ingestion subsystem list identifies
service provider actions and presents an ordering of the available
system actions in the UI at I126. In one embodiment, the system can
be configured to organize the service provider actions into
management system actions based on whether each action is important
for performance. In yet other embodiments, the ingestion subsystem
can apply different weightings based on defined rules or
information extracted from historical performance and generate an
ordering based on weighted evaluations (e.g., the system assigns
the highest weight to predefined actions, the next weight value to
most triggered actions, etc.)
[0136] Returning to the example UI I120, the system is configured
to automatically identify the highest ranked actions and display
those actions in window I126. The UI I120 specifies that the
actions will be used by the destination system to optimize
advertising performance and/or management. In further embodiments,
the destination system can limit the number of actions that are
considered in generating optimization and/or analytic
information.
[0137] According to one embodiment, the ingestion subsystem is
configured to capture any action in window I126, so that each
action will be captured by the destination system. However, as
indicated in the UI 120 (at I128--"actions below this line cannot
be used for optimization"), some actions will only be made
available for reporting of the action but not for use in optimizing
management of the advertisement(s). Selection of I130 triggers the
ingestion subsystem to transition to a next phase of the ingestion
process which may include, e.g., downloading of the advertisement
information (e.g., ads, rules, performance, historic performance
data, etc.). FIG. 36D illustrates another example UI I140,
configured to educate the user on the download phase, and provide
the user an option to have execution occur in the background.
Selection at I142 triggers the ingestion subsystem to start
downloading. In other embodiments, the UI I140 can also include a
"Begin in Background" button to trigger downloading operations that
run in the background of the user's computer.
[0138] FIG. 36E shows another example UI I150. UI I150 displays an
indicator showing the progress of the download operation (e.g., at
I152). In some embodiments, UI I150 can also include displays
configured to educate the user on use of the destination system,
and/or educate the user on performance analytics that will be made
available on the destination system. In one example, window I154
shows information on using analytic dashboards of the destination
system, information on the available performance analytics,
information on automated management of an advertising campaign,
among other options.
[0139] FIG. 36F shows an example UI I160 configured to display
responsive to completing capture of information from the outside
advertising service provider (e.g. FACEBOOK). Once data capture
(and any transformation and associations between source and
destination formats) is complete, the ingestion subsystem is
configured to request that the user validate the captured
information.
[0140] FIG. 36G shows an example UI I170. In this example, the
ingestion subsystem is configured to display summary information on
the captured data and request user validation (e.g., via selection
at I172). UI I170 can display information on current live ads
captured, total ads imported, and average daily spending (e.g., at
I174). The display information can also include account demographic
information (e.g., client name, site name, source account
information, and budget pool assignment--at I178). In other
examples, graphical information can also be displayed to facilitate
validation (e.g., at 176). FIGS. 36H, 36I, 36J show additional
examples of user interfaces (e.g., I180, I182, and I184) that the
ingestion subsystem can utilize to capture data from outside
advertising services. At I186, the ingestion subsystem can provide
information on optimization of conversion type events identified in
the data to be captured. In some embodiments, the ingestion
subsystem can be configured to give the highest rank to conversion
type events. The conversion type events can then be used by the
destination system to optimize management and performance of the
imported advertisements. Generally speaking, conversion is
associated with converting site visitors into paying customers. In
various embodiments, the ingestion subsystem is configured to
identify the conversion event(s) based on identified actions or
acts that are meaningful to the user (e.g., trigger payment events
based on user activity). Some examples of such meaningful
conversion actions are: registering for an account on a site,
viewing a product from a search listing, adding items to a
"shopping cart," installing a mobile apps or games, and reaching a
certain level of completion in a game.
Example System
[0141] FIG. 34 shows an example of an ingestion subsystem 34100 for
capturing, translating and/or associating existing advertising data
from an outside advertising service provider to a destination
advertising management system. According to one embodiment, the
system is configured to receive account information 34102 for an
existing advertising account serviced by an outside provider.
According to one embodiment, the system 34100 can include an
ingestion engine 34104. The ingestion engine can be configured to
access outside advertising providers using the account information
34102 and capture advertising data (e.g., 34118, 34120, and 34122)
from one or more providers. In some embodiments, the ingestion
subsystem is specially configured to capture information from
specific providers (e.g., FACEBOOK). The system can capture
advertising data through one or more application programming
interfaces (APIs) (e.g., 34112--FACEBOOK API, non-vendor specific
APIs--34114, and/or capture data directly--116 (e.g., via queries,
exports, direct downloads, robot crawling).
[0142] According to one embodiment, the ingestion engine 34104
and/or system 34100 can include components specifically configured
to execute functions as part of a process of capturing advertising
data from one or more advertising service providers for use in a
destination advertisement system. For example, the system can
include an authorization component 34106 configured to use account
information 34102 to authorize the system to capture information
from an outside service provider. In another example, the system
and/or ingestion engine 34104 can include a user interface
component 34110. The user interface component can be configured to
generate user interfaces that facilitate capture of existing
advertising information (e.g., as described in FIGS. 36A-36J). In
other examples, the user interface component 34110 can generate
universal user interfaces configured to interact with multiple
vendor APIs or non-vendor specific APIs to capture advertising
data. The universal user interface can also be configured to
facilitate capture of information from users to enable direct
capture of information from an outside provider where no APIs are
available.
[0143] In further embodiments, the ingestion subsystem 34100 and/or
ingestion engine 34104 can also include a translation component
34108. The translation component 34108 can be configured to build
associations between a first provider format for advertising data
and a destination formation for advertising data. In some examples,
the translation component includes information on data structures
used by a first provider (e.g., FACEBOOK) and mappings to data
structures used in on the destination system. The translation can
then capture and fill destination formatted data structures
containing all of the previous advertising information. In further
embodiments, the translation component 34108 enables the
destination system to use the historical advertising information as
if it were originally created on the destination system.
[0144] According to one embodiment, FACEBOOK is configured with a
strict object hierarchy in their data model. Each advertising
account contains Campaigns, which contain Ad Sets, which contain
Ads. In conventional implementation targeting, budgeting, and
bidding are allowed at the adset level in their data model, and
further ads are unique only in creative (and may also contain
override bids). By ingesting existing advertisements (e.g., into
ingestion subsystem of FIG. 34), the system enables more complex
data structures for the existing advertisements and enables
improved algorithmic control over each element of the complex data
structures. For example, the ingested campaign management model is
much more flexible, where targeting, bidding, budgeting, and
creative may all be set at the Placement (e.g., ad level) level for
each advertisement (which maps to a Facebook Ad--as discussed is
not capable of targeting, bidding, and budgeting in the FACEBOOK
system), and in addition placements may be organized and manually
manipulated using a variety of organizational concepts including:
grouping by targeting or creative feature, generic tagging, or by
automation groupings, comprising Strategy Groups and Budget
Pools.
[0145] When, for example, a Facebook Ad account is imported, the
data structures corresponding to the Ad account are mapped to
placements (e.g., individual ad objects) that are collected (e.g.,
automatically organized) into an "ingestion" Budget Pool and
Strategy Group, and can later be moved according to whatever
campaign management strategy suits the customer. The system can
automatically manage the placements via the ingestion budget pool
and strategy group, and also provide user interface prompts to
enable end users to move placements into different groups and pools
or create new strategy groups or budget pools. The system is
configured to automatically manage any level of the end mapping
organization structures holding the placements. In one embodiment,
the ingestion subsystem maps each of the data structure elements
from the FACEBOOK data models into the placement hierarchy of the
ingestion subsystem via table based mappings.
[0146] FIG. 35 is a block diagram of an integrated system including
an ingestion subsystem 35202 coupled to a performance analytic
subsystem 35204, which may include a performance summary subsystem
35206 (e.g., as described U.S. patent application Ser. Nos.
15/166,815 and 15/166,827, entitled "GRAPHICAL USER INTERFACE FOR
HIGH VOLUME DATA ANALYTICS," filed on May 27, 2016, in U.S. patent
application Ser. No. 15/166,852, entitled "SYSTEM FOR HIGH VOLUME
DATA ANALYTIC INTEGRATION AND CHANNEL-INDEPENDENT ADVERTISEMENT
GENERATION," filed on May 27, 2016, Provisional Patent Application
62/168,303 filed on May 29, 2015 incorporated by reference herein
in their entirety). Any number of users can access the integrated
system 35200 using any number of computing devices (e.g.,
35208-35214--mobile devices, laptops, desktops, tablets, smart
phones, etc.). The users can connect to the integrated system over
network 35216, which can include any of the following elements or
any combination of the following elements: local area networks,
wide area networks, private networks, virtual networks, and which
can include or comprise the Internet.
[0147] According to various embodiments, the ingestion subsystem
34100 or subsystem 35202 can be configured to execute a variety of
functions to capture existing advertisement information.
[0148] An example process flow for capturing information from an
outside advertising provider is described below. In one embodiment,
the ingestion subsystem 34100 or subsystem 35202 can be specially
programmed to execute the example process flow. In other
alternatives the integrated system 35200 can executed the example
process flow. Other embodiments can execute different process flow
and can execute different process flows based on the outside
provider.
Example Embodiments for Vendor Specific Implementation
[0149] In one embodiment, users select functions for FACEBOOK Ad
Account Import. The functions enable ingestion of ads, ad campaigns
(groupings of ads), creative assets or "creatives", and more from
Power Editor, Ads Manager, or even another preferred marketing
developer ("PMD") (for example as long the assets were on the Open
Graph--Open Graph is a protocol that enables web pages to become a
rich data object in a social graph. For FACEBOOK, Open Graph
enables any web page to have the same functionality as other
objects on the FACEBOOK platform). Power Editor, Ads Manager, or
PMD are advertising management systems, and their respective
information can be ported via the ingestion subsystem in the
destination format.
[0150] Once the advertising data is imported into the destination
format, the destination system (e.g., 35204, FIG. 35) can implement
performance analysis to analyze and compare campaign performance by
filtering, sorting, and pivoting on the campaign metrics and
details as if those ads, campaigns, etc., were originally created
on the destination system.
[0151] In some embodiments, new performance analysis data
structures and information are made available once the historic
advertising information is imported and/or translated. For example,
new data and attributes can include: [0152] Strategy Group CPA
Limit--The CPA goal associated with a Strategy Group using CPA
bidding [0153] Strategy Group Max Bid--The maximum bid value over
the course of the campaign [0154] Strategy Group Yield Goal--The
target goal set up within the Strategy Group [0155] Budget Pool
Lifetime Budget--The amount of lifetime spend allocated for a
Budget Pool
[0156] According to one embodiment, these new attributes enable
additional insight and algorithmic over strategy control groups and
budget pools that are not available in other advertising systems
(e.g., FACEBOOK). Other additional features include interactive
displays for creative group dialog box--users can view more content
within the creative group organizational units within advertising
networks and/or budget pools. The dialogue boxes include drop down
selection of data and metrics allowing users to pivot information
displays dynamically.
[0157] Aspects of the present disclosure relate to some benefits of
some embodiments, and implementation associated with ingesting
advertisements from the known FACEBOOK platform. The following
examples include various steps implemented in some embodiments for
ingesting data from FACEBOOK accounts. The following embodiments
and example process flows describe user scenarios, data flows, and
integration with publically available FACEBOOK APIs that enable
processing and downloading of the advertisement data made available
on the FACEBOOK platform. Different embodiments can provide
different flows, and interactions with other service providers can
also require integration with other APIs. However, the following
example flows are used to illustrate aspects of the invention and
the invention should not be limited to the following examples.
[0158] In a first example flow, a process to ingest and sync
FACEBOOK Ad account data into Nanigans Ad Engine is described. In
this example, FACEBOOK Ad Account ingestion will download existing
ads running in Power Editor into Ad Engine for consolidation,
analysis, and more. Some of the benefits customers may receive from
utilizing FACEBOOK Ad Account ingestion are: [0159] Consolidate
FACEBOOK Ad Campaign Reporting: Easily view all FACEBOOK Ad
campaign information in one solution, and take advantage of
Nanigans advanced Business Intelligence capabilities using
Performance Analysis. [0160] Aggregate Campaign Data for Any
Attribute/Metric: Utilize any of the 80+ reporting attributes
available within Performance Analysis to drill-down into campaign
and ad performance using an excel like pivot table that offers
speed and flexibility in your reporting. Seamlessly compare
performance of different creatives with the numerous attributes
available in Performance Analysis. [0161] Utilize ROI-Driven
Budgeting and Optimization: For any further ad campaigns created in
Ad Engine you can take advantage of Nanigans automation algorithms
for budgeting and optimization to help make the most of every ad
dollar. [0162] Automate Ad Creation; Testing, and Bidding: Using
Nanigans Ad Engine you can define the elements of a campaign
(image, copy, targeting, etc.) and Ad Engine will automatically
build all of the available ad combinations for you. In addition,
after you define your campaign goals, Ad Engine will automatically
bid and budget accordingly to maximize your campaign
performance.
[0163] In this example, FACEBOOK Ad Account ingestion will download
existing ads that are running in Power Editor and create a new
Budget Pool inside Ad Engine for all of the placement data, then
automatically create Goals and Rules for each different Ad Type.
All historical data can be found within performance Analysis. Any
creative such as images, etc. that was used within ads will be
automatically downloaded and can be used within newly created Ad
Plans. Additionally, this ingestion process allows users to take
current ads managed in Power Editor and manage them within Ad
Engine via Goals and Rules without having to repush or make changes
to the ads.
[0164] FIG. 37 is a flow chart illustrating an example FACEBOOK Ad
Account ingestion process 37600 as the following steps describe.
Note that while in certain steps, numerical values such as the
number of days, the number of accounts are given, though they are
for illustrative purposes only. Any suitable numeric values may be
used in an embodiment in accordance with aspects of the present
disclosure.
[0165] Step 37601: Selecting an Ad Account: [0166] From the Ad
Account page you will see a new option next to credentials to
"Import". [0167] Selecting Import will kick-off a wizard to import
data from your FACEBOOK Ad Account into Nanigans Ad Engine.
[0168] Step 37602: Site Selection: [0169] Select a site you would
like to import data for.
[0170] Step 37603: Settings and Review: [0171] Ensure all of your
FACEBOOK Ad Account and Site data is correct and select the time
period for data to import. [0172] The options for importing time
periods into Ad Engine are: [0173] 7 Days (previous 7 days from
current date) [0174] 28 Days [0175] 90 Days [0176] Lifetime
(includes all Power Editor data from the life of the FACEBOOK Ad
Account)
[0177] Step 37604: Conversion Setup: [0178] Select and prioritize
up to 7 conversion events for optimization, and 8 for reporting.
[0179] By default all conversion events are setup with 28 day
click, 1 day impression attribution window. The attribution window
can be adjusted in the Conversion Setup window. [0180] Note: Ad
Engine can be configured to automatically select some conversions
for optimization and reporting based on site setup and FACEBOOK
Account. The UI enables re-ordering and removing these conversions
as necessary.
[0181] Step 37605: Downloading Data into Ad Engine: [0182] In this
step data will begin to be downloaded from FACEBOOK and imported
into Ad Engine. The progress bar will show you how much of the
process of downloading has been completed. [0183] Under the
progress bar Ad Engine will highlight key features of the product
with helpful "how to's" on how to begin utilizing each feature. You
can exit this download window while in progress and the download
will occur in the background. A button will appear in the top-right
bar of Ad Engine next to Notifications, clicking this will recall
the wizard so you can view the progress of downloading data.
[0184] Step 37606: Finalizing Data Import: [0185] Once all of your
FACEBOOK Ad Account data has been downloaded the final step of the
process is to Review and Confirm your data. Ad Engine will display
the following data once the download has been completed: [0186] Ads
Currently Live [0187] Total Ads imported [0188] Average Daily Spend
[0189] Graph (will show either Spend, Impressions or Clicks for
imported time period) [0190] Once you have confirmed your data, you
can view all FACEBOOK ad account information within Performance
Analysis by clicking the blue "OK, Take Me To Reporting"
button.
[0191] In the example of process flow above, Performance Analysis
is a feature that may enable advertisers to quickly get a holistic
picture of campaign performance. Featuring an advanced pivot table,
Performance Analysis, enables quick visualization and dive-into
deep campaign metrics and view just the data that matters to you.
In addition to viewing and saving custom reports--you can directly
optimize and take action within your ad campaigns from Performance
Analysis.
[0192] Another feature described in the example process flow above
is Automatic Ad Building. Using Nanigans Ad Engine you no longer
have to manually create every ad placement. Simply define the
elements of your campaign--such as image, ad copy, link, and
targeting then Ad Engine will automatically build all of the
possible combinations for the ad types you specify. Whether you are
creating 10 ads, or 10,000 ads Ad Engine saves you time building
your ads and then optimizing for your business goals.
[0193] A third feature of the Nanigans Ad Engine described in this
example is Revenue Optimization. Nanigans may enable one to
optimize ad campaigns using Predictive Lifetime Value.TM. (pLTV)
for the acquisition of profitable customers that lead to immediate
and long term ROI. Move beyond proxy metrics to real results using
Ad Engine and our algorithms that help you minimize spend, and
maximize revenue.
[0194] Scheduling is a fourth feature described in this example
process. Nanigans Ad Engine offers the flexibility to schedule your
ad campaign for specific hours, days, weeks, or months. Whether you
want to run a campaign only during weekdays, only on weekends, or
only during business hours you have the ability to run your ad
campaign within Ad Engine and have the system automatically
determine when it is optimal to do so.
[0195] A fifth feature, FBX Product Feeds, allows one to manually
upload a spreadsheet, or specify an automated product feed and
automatically create ads within FACEBOOK Exchange (FBX). Using Ad
Engine and FBX you gain the benefit of dynamically resizing product
images to optimize display settings for placements
automatically.
[0196] A sixth feature, Reporting API, automatically pulls-in
reporting data and syncs it within your internal business systems.
The Nanigans reporting API enables you to automatically pull
campaign data and sync it within your own internal business systems
as often as you want it. Whether you want holistic campaign data or
event-level information for targeting you can seamlessly get this
information from the Nanigans Reporting API.
[0197] Dashboard is another feature used in this example process,
where a customer may get a snapshot of performance marketing data
that is important to your business such as spend, ad type, and
placement location across all ad campaigns. No diving into
reporting, or collecting data--the Ad Engine dashboard gives you a
holistic view of all your advertising information in one place.
[0198] FIG. 38 is a flow chart illustrating an example setup flow
38700 that includes data capture for use with full service access
(i.e., complete functionality made available on historic data) and
describes process elements to cover sales information and on
boarding (i.e., activating) new clients. Given customers who are
using FACEBOOK's advertisement management tools (e.g., Power
Editor), the user of the destination advertisement management
system should be able to view all the spend (i.e., all monetary
outlays on advertising within a network or budget pool) side by
side with PowerEditor metrics. In the alternative, the destination
system should provide for tools to import those ads and/or ad
information in the destination system.
[0199] The sales and onboarding process flow beings with [0200]
Step 38701: Question: "Would you like to import existing account
data to Ad Engine": received response options "Yes" or "Not Now";
[0201] if "Not Now" exit flow; else [0202] Step 38702: If "Yes" the
user is presented with a screen that has them either select an
existing site or create a new site; [0203] new site flow includes
generating a new site object under which the advertising
information is organized; [0204] Step 38703: Post site selection or
Creation, "Campaign Options" appears: [0205] a name option is
display for user input or selection of the budget pool and for the
template that system utilizes; [0206] advanced options will include
a time window of data to download. Options are 387 days, 14 days,
28 days, and 90 days (other embodiments enable time windows of one
year or more--in one example default is 90 days); [0207] system
displays "Go Back" option and "Continue to Next Step" option for
user selection; [0208] Step 38704: Action Set Up (system queries
account level of FACEBOOK data to find all existing actions
(including inactive); [0209] a user interface screen appears for
the users to order the system identified actions (ordered action
are used by the system to create a light weight funnel (i.e.,
filter) for optimization); [0210] system displays "Select Actions
to Track" option and present default order by sum of actions (see,
e.g., FIG. 36C); [0211] Example of default ordering
includes--largest sum of actions to smallest sum of action when
presenting the list [0212] users can re-order the actions via drag
and drop and/or trash ones they don't want to insert into tracking
orders; [0213] in one example user has two options one for "reset"
which restores any changes and "Ok, I got it. Let's move on and
review everything"; [0214] in some embodiments, a default set of
assumption are made for flow execution at step 38704--the default
assumption can include any one or more of:
[0215] for actions--app install/mobile app install,
offsite_conversion, link click, page like, and for engagement
actions--pushed out; [0216] Step 38705: Data downloading: [0217]
while the data is downloading, show a progress bar (if progress can
be calculated); [0218] the dialog can include text for example
"This may take a few minutes. We will send you an e-mail when the
download is complete."; [0219] in another example, under the
progress bar, show a carousel-esque scrolling photo panel of 5 or
so advertisement management features; [0220] Step 38706: data is
downloaded: once the data is imported, an email goes out to the
user to let them know the data is imported and they need to come in
and complete set up. Also this message appears on screen if the
user has not closed the browser window. This Screen shows the sum
of total spend Imported, the daily spend for the last 387 days, the
number of ads imported, with a breakout of how many of them are
"active." User provide option to move forward "Ok, just one more
step"; [0221] Step 38707: Review: next a screen shows a review
panel with metadata, ad count and spend and the mapped actions
(mapped action refer to actions identified by definition on the
system as conversion events), and a graph of the last 387 days of
spend; option: "Ok, take me to Reporting"; [0222] Step 38708:
Product Tour--the user is shown Performance Analysis and a light
overview via app cues sits on top of New PA that covers: reporting,
bidding, budgeting, and additional features offered by the
destination system (e.g., Nanigans Ad Engine)
[0223] FIG. 39 is a flow chart illustrating another example process
flow 39800 that describes another use case for advertisement
information ingestion. The process flow begins with: [0224] Step
39801: sign up form. The form can request name, company, email
address, password, site name, vertical, direct or agency, and terms
of service to accept. The company name becomes client identifier,
site specified name is use to populate the site name filed (also
used as application id), email validation email is sent on the
completion of this step contains a code. To conclude user is
provided option, "Continue Sign Up." [0225] Step 39802:
Validation--includes display of an input box for the code that is
emailed in the previous step:
[0226] Options for "Back" and "Next" are shown--next is grayed out
until the input boxes are filled in; [0227] Step 39803: FACEBOOK
Account Set Up: button for "Link FACEBOOK Account to Ad Engine" is
shown; [0228] one example used oAuth protocols to generated a pop
up display to input authentication information for FACEBOOK account
and data capture; [0229] once the account is authorized, the option
to Name the account gains focus and an input box is show for name;
[0230] validation that an email address is there; [0231] user is
then show options "Back" and "All Set! Let's keep going"; [0232]
Step 39804: Start Data Import: display splash page and message "We
will now start downloading your Ad Account, this may take a few
minutes. We will send you an email when the download is complete";
[0233] a small hyper link button to toggle advanced options exists;
[0234] advanced options are configured to let the user select time
window of data to download. Options are 7,14,28 and 90 (in days).
An example default is 28 days; [0235] user shown option "Let's Go!"
to continue; [0236] Step 39805: data downloading: while the data is
downloading, show a progress bar; [0237] under the progress bar,
show a carousel-esque scrolling photo panel of 5 or so destination
system features (e.g., Nanigans AdEngine features--performance
analytics, cohort, dashboard, etc.); [0238] Step 39806: Action Set
Up: screen appears for the users to order their FACEBOOK actions to
create a light weight funnel (filter); [0239] example advancement
includes a "Select Actions to Track" option shown in display;
[0240] UI can include default order by sum of actions, largest to
smallest when presenting the list where users can re-order the
actions via drag and drop and trash ones they don't want to insert
into tracking orders; [0241] to continue user shown two options one
for "reset" to restores any changes that were done to the order and
"Ok, I got it. Let's move on and review everything"; [0242] Step
39807: Your Data is downloaded: once the data is imported, an email
goes out to the user--summary information can be displayed here to
show the sum of total spend imported, the daily spend for the last
7 days, the number of ads imported, with a breakout of how many of
them are "active."; [0243] example option to advance in
flow--select "Ok, just one more step"; [0244] Step 39808: Review:
next a screen shows a review panel with naming conventions, Ad
Count and Spend and the mapped actions; [0245] example to advance
flow--user presented options for "Back" or "Ok, take me to
Reporting"; [0246] Step 39809: Product Tour--the user can be shown
features of the destination management system, including for
example, performance analysis and a detailed overview via
application cues of reporting functions, bidding, budgeting
functions, and additional features offered by the system (e.g.,
Nanigans' Ad Engine) [0247] Step 39810: follow up--upon completion
of the wizard (i.e., steps 39801-809) the user is placed fully into
the product; a "Congratulations Email" is sent and the user can
analyze the imported data used the new features provides by the
destination advertising management system.
[0248] Examples of general data flow elements for ingestions
include (any number or combination of the follow elements can be
used in various process flows): [0249] a boolean option display
requesting download existing (live) ad groups and associated data;
[0250] data download options includes trailing time options, 7
days, 14 days, 28 days, and 90 days with default to 28 days; [0251]
other examples enable download all data (not time range input);
[0252] trigger oAuth 2.0--display a window to grab the username and
password; and [0253] authorization process can be implemented to
remain on destination system web site, i.e. retrieve data from
target systems rather than transition and capture.
[0254] In other examples, ingestion process execution can also
include universal object creation--to make sure all the meta data
tied to a placement exists. For example, data fields created for
universal objects can include: Ad Plan (hidden object);
"Allocation" (`Simple` template), Ad Plan Policy object aka
Strategy Group; Budget Pool (new BP--require naming in flow, no
daily budget needs to be set in advance); Ad Plan Pricing;
Pricing.
[0255] In further examples, advertising campaign downloads can
include operations to fetch campaign names, id, objective, and
status. Adset downloads can include operations to fetch adset
names, id, status, budget_cents, start_date,end_date, and
parent_campaign_id. Once captured, the process can execute mapping
operations to find parent data objects in the destination system
and associate the preceding fields into a structure table. Query ad
group from downloaded information to obtain: ad group end point to
find ads and fetch adgroup name, id, status, bid_cents, and
objective. Once captured, the process can execute operations to
find a parent data object on the destination system and write
structure_id row to a placements table and put row in
placement_set_links table, as well as placement_relations, and
placement_pricings. Additional operations are configured to detect
"ad type" (this is in the creative object as define by FACEBOOK).
In one example, the system is configured to operate as a reverse
compiler to take FACEBOOK specialized data and map it to sets.
According to one embodiment, a set is a data model object which
includes FACEBOOK's creative and also includes targeting data.
Using a broader (i.e. more inclusive data model) enables
functionality across a plurality of advertising systems that extend
the options available through various conventional systems. When
the destination system (e.g., Nanigans' AdEngine) deploys ads, the
ads are compiled or pushes from the universal data objects into the
FACEBOOK data model. Ingestion reverses this approach and
translated FACEBOOK's data model into the universal form of the
destination system.
[0256] In further examples, responsive to importing creatives
(FACEBOOK data object), the system captures: Title, Body, Image,
Post Text, Caption, Description, and post id and maps to the
universal data object. Also captured and mapped are conversion
specification data, tracking specification data, keyword sets and
any virtual target creations. Additional details can be captures
and mapped, including: page posts, add to Library.opengraph_actions
and objects tables based on conversion, specifications and/or
tracking specifications.
[0257] Other data capture based actions can include: [0258] set
Creation [0259] use each element to create records in "sets" table,
set_details too . . . and update placement-relations [0260]
placement record creation and incorporate assorted links [0261]
Bid, bid type and budget fetch from ad group and campaign [0262] ad
plan set links (site_id, ad_plan_id, set_id, etc.) [0263] create
actions [0264] scan all the "actions" across the graph, create a
list of "actions" [0265] present list of actions in order for the
user to select to set up, allow the users to drag and drop them in
a stack rank order to create the "funnel" concept [0266] fetch
stats: if possible fetch stats in hourly intervals for the select
time period, and if not, fetch daily stats and note during the
import process hourly stats won't be available historically but
will be there going forward.
[0267] In various embodiments, the system includes a predictive,
analytics, and optimization executables interposed between an
advertisement representation layer and the campaign configuration
layer. The predictive, analytics, and optimization layer may be
configured to provide one or more advertisement parameter
suggestions automatically. In various embodiments the destination
format is configured to enable predictive optimizations on the
execution and management of individual placements, budget pools,
strategy groups, and entire advertising campaigns. In some
embodiments, after ingesting advertising campaigns, a new
management system can operate on historical data to predict
performance and/or optimize execution of advertisements and/or make
one or more suggestions. Automation enables the system to
distinguish between ads that have good value (methods and systems
for determining value are described in Co-Pending U.S. patent
application Ser. No. 14/324,992, entitled PREDICTING CONSUMER
LIFETIME VALUE, filed on Jul. 7, 2014, which is incorporated by
reference herein in its entirety), and ads that are likely throwing
money away--equally important, in some examples, is that the system
can convey high volumes of data to an end user, understandably and
manageably, through customized displays.
[0268] The system and UIs provided enable definition of advertising
parameters for any ad placement. The UI can include contextual
displays of a plurality of existing placements and the associated
data can be captures and used to population data fields for the
parameters for an ad placement. As the parameters are defined they
can be passed through a gatekeeper server, which can be configured
to reduce the received parameters to a core ad or placement
representation, which can be used to establish a management ad
representation configured to enable management of a plurality of
channel specific ads or placements and/or associated functions,
where the placements can be generated from the core representation.
In one example, the management placement representation is
configured to enable management across, for example FACEBOOK via an
API, FACEBOOK EXCHANGE, MOPUB, TWITTER, etc. Each modification to
the placement and/or execution of a management function (e.g., bid
up, bid down, pause, re-target audience, re-deploy placement, etc.)
can return performance information from the respective channels and
map to data structures native to the ingestions system. The UI can
be configured to visualize the returned information, for example,
using the management placement representation.
[0269] According to some embodiments, historical data can take a
while to ingest, and the machine learning model is configured to
wait until the data is available. In some example accounts take
less than a day to ingest, although large accounts can take
substantially longer. According to some embodiments, data analysis
is available for whatever data has completed ingest (e.g., a
complete advertisement has been ingested) as the ingest is in
process, but the system is configured to provide automatic
operations as recommendations until the entire ingestion process
has been completed. In another embodiment, the user can specify on
the system, and the system is configured to automatically control,
advertisements as they are ingested (and entire ingestion not
complete), an options for the system to take over automatic control
during ingestion.
[0270] For example, according to one embodiment, an interface may
be provided that is a data-centric pivot table that allows dynamic
navigation into more specific information, such as ad placement
information. For instance, a user may be presented an interface
that allows a user to navigate through performance analysis data
(e.g., ad placement performance information) to locate specific ads
and their performance within a hierarchical view. The specific ad
information that is displayed may include performance information
specific to the filters used to navigate to the specific ad. Such
an interface is beneficial, as it permits an advertising manager to
quickly locate relevant ad placement details through a data-driven
interface. In one embodiment, the interface may include the ability
to present an inline summary of the ad placement within a tabular
view of the performance data. Summary information associated with
the displayed ads may be changed depending on the filters or other
user selections within the interface. Such capabilities may permit
a user (an advertising manager or other user type that manages ad
placements) to quickly locate relevant ads within the user
interface that relate to the displayed placement performance
data.
[0271] In further implementations, the ingestion subsystem is
configured to capture new FACEBOOK metrics and readily translate
the new metrics into performance analysis fields that are
selectable in the high data volume user interface. Selection of any
of the new metrics enables visualization of the action metrics
within data pivot table displays. In some embodiments, the data
fields are displayed such that various fields of the display
elements are selectable to filer the data to display, group the
data to display, and merge data fields in the display, among other
options.
[0272] In some embodiments, the user interfaces operate as web
enabled pivot tables. Under the automated analysis provided by the
system good ads survive (e.g., meet performance targets), and bad
ads are killed (e.g., system automatically pauses any spending
and/or placement with an ad network). In parallel, the system
presents the massive volumes of data associated with those ad
placements in accessible and navigable data visualizations (as
described in greater detail below). The automation operations
executed by the system for selecting good advertisements and
eliminating bad are executed automatically on the system, for
example, constantly. The result is evolving data and data
structures, and correspondingly evolving user interfaces that
convey the changes on managed ad placements (i.e., ads).
[0273] According to some embodiments, end users should be able to
readily see where any spending is occurring, and readily understand
what features worked best so that future ad placements can perform
even better. According to one aspect, the high data volume system
implements data access and visualization tools that can include a
thin wrapper over MySQL or other relational database formats. In
some examples, the data is accessed through a number of "views"
(e.g., built for example using GROUP BYs or clustering
functionality), on which any number of filters can be applied
(e.g., filters can be executed by WHERE clauses). In one example,
the filters can be visually selected in user interface display to
dynamically tailor ad placement information to the user's needs.
Further, the views can be dynamically modified, and data views
reorganized accordingly. In some examples, any selected view can be
translated to database selection statements or groups of statements
(e.g., SQL or other database logic statements), and the results are
loaded onto the screen. In one example, the system renders one
screen worth of rows at a time, and every row is a fixed
height.
[0274] In further embodiments, the data access and visualization
architecture is re-designed to accomplish any one of or any
combination of the following targets: [0275] Enable drilling (e.g.,
data selection, data filtering, data grouping, data refinement,
among other options) into data to cut a variety of ways that are
simple selections in user interface displays, and include rendering
of drilling operations into data in a multi-level table (e.g.,
similar to a pivot table). [0276] Generate result sets (e.g.,
initial views, drilled into views, filtered views, etc.) and
display results in less than a second, regardless of Internet
connection and computing device (e.g., smartphones, 3G connections,
etc.). [0277] Manage tables, data, and attributes of thousands,
hundreds of thousands, and millions of rows--and do so at any level
of display to the user's device. [0278] Data cells and
visualization of the data in the user interface include support for
variable height cells, rows, columns, etc., and can further
dynamically manage complex content (e.g., a preview of an ad
placement, among other options). [0279] Scrolling in the user
interface should behave like a webpage (e.g., regardless of data
volume). For example, scrolling should not lock to the top of each
cell--and, for example, the user interface must be configured to
handle really tall cells without comprising the visualization of
other data. [0280] changing the sorts on results needs to be
incredibly fast.
[0281] In one embodiment, an inefficient implementation is
described to emphasize how unique and efficient the use of
recursive row groupings are. The inefficient implementation
includes generation of a "row group" widget for any set of 50 rows.
In its initial state, the widget is configured to start empty and
attempt to approximate a height for a given display. If the scroll
window of the browser gets close to the widget, the widget is
configured to fetch the row data (e.g., preload) to make sure the
data is ready for visualization. As the widget becomes visible on
the screen, the widget is configured to fill itself with row data.
As the widget goes off-screen, it is configured to adjust the
height estimation, and empty itself out again.
[0282] In some examples, row group widgets were sufficient for
loading and displaying data. However, in a preferred embodiment,
rather than building one "row group" for every 50 rows, a recursive
implementation causes the system to first generate 10 "row groups"
and divide all rows of data evenly among the row groups. For
example, the first "row group" is responsible for rows 1-100,000,
the second for rows 100,001-200,000, and so on. In some
embodiments, a row height estimator enables enhanced visualization
of the massive amount of data and provides for seamless transition
between the row groups.
[0283] According to one embodiment, if a "row group" is visible and
spans more than 10 rows, instead of filling memory or the UI with
all 100,000 rows, the system subdivides the main row group into
subsidiary "row groups" again. At each stage of data loading and/or
visualization of each large group of data can be divided into a
first hierarchical level, a first sub-level, a second sub-level,
and further sub-levels until a manageable number of rows is
achieved. In some embodiments, by applying this algorithm
recursively, the system reduces need for over 20,000 DOM elements
(for a million rows) for inefficient systems down to approximately
60 DOM elements utilized in a display that allows users to access
one million rows.
[0284] In further embodiments, searching for row groups that should
be loaded into memory or shown the UI is executed by the system as
a tree search that generates and returns results incredibly fast.
In one example, the system reduces the problems associated with
loading and displaying a million rows into a logarithmic solution.
In terms of a logarithmic solution, increasing the data size
handled by the recursive row group solution by 10 fold adds only 10
new DOM elements to the execution. Thus, the problem is resolved up
and until the point that backend delivery sets a processing
ceiling, and also where the maximum height of a page that a browser
can render is limited to approximately 32 million pixels.
[0285] In some embodiments, the underlying functions of row
rendering and height approximation can be implemented with a
variety of solutions. For example, there are many approaches for
rendering that can include traditional table elements, sized
"divs," or more complex solutions like "display:box." The various
approaches can be integrated with recursive row grouping to build,
load, and display massive lists of an arbitrary number
elements.
[0286] According to one embodiment, the recursive display of ad
placements can be specifically tailored to facilitate management
and review of FACEBOOK ("FB") actions. In one embodiment, the
recursive display can be tailored to include the FB actions within
ingested advertisement and/or advertisement campaigns. In some
examples, the actions can include FB audience network, FB defined
actions, social actions, and video metrics. These actions, can be
based on the FB metrics available for advertisement campaigns,
track user engagement on the FB audience network and within FB
owned properties, including video and social interactions.
[0287] Each of these data fields can be displayed in the UI for
selection. The new metrics are ingested into the system and can be
rendered in performance analysis views, where users can view
reports based on pre-existing campaigns that are now visualized as
any number of groupings of ad placements. Ingestion followed by
visualization enables visualization and navigation of data and/or
data attributes including those actions from FB advertising network
("FAN"), social, video, and custom actions defined native to FB.
According to some embodiments, the system can trigger APIs that map
to custom actions native to FB or other content host systems (e.g.,
via integration with public facing APIs made available on the
respective content host systems. This enables the UI and/or system
to present a consistent management interface that controls
placements and specific actions associated with them regardless of
the content host or advertising channel being used. In one example,
various data attributes and data values can be ingested from FB
(e.g., FB actions) and translated and/or mapped into the system for
high data volume analytics. Although FB actions may be used, it is
appreciated that any information identifying specific application
related user actions for an advertisement may be ingested by a
system that performs performance analysis of advertisements and the
information may be visualized according to one aspect of the
present invention.
[0288] According to one embodiment, the system includes an API
configured to communicate with a graph based data structure exposed
by third party APIs. In one example, the system and/or API is
configured to communicate with a Graph API--a representation of the
information on Facebook composed of: nodes--basically "objects"
such as a User, a Photo, a Page, a Comment; edges--the connections
between those "objects", such as a Page's Photos, or a Photo's
Comments; and fields--info about those "objects", such as a
person's birthday, or the name of a Page and map the retrieved data
into the hierarchical data structures native to the system (e.g.,
advertising demographic hierarchy (e.g., advertising location,
advertising target, advertising type, age group, budget pool,
strategy group, ad set, individual placement, gender, custom
audience, relationship, etc.). In some examples, the system API is
configured to communicate using at least HTTP. The API is also
configured to generate access tokens to pass security functions
executed by the Graph API. In further embodiments, the system can
continuously request updated information from the Graph API
associated with placements being executed on the FACEBOOK platform.
In yet other embodiments, the system API is configured to request
publication or execution of placements through the Graph API, for
example, to execute optimization functions/operations identified on
the system. In other embodiments, the system can direct integrate
with the Graph API or other content host APIs without need of an
internal API.
[0289] In some embodiments, based on pre-existing advertisements
(e.g., campaign level management with a FB audience network or
advertisements that have defined custom actions) the FB metrics are
ingested by the system, translated, and viewable in the user
interface displays for navigation, filtering, grouping, and
generating custom metrics that will be displayed within the
management interface in subsequent sessions. The reporting features
in the user interface enable more granular information on the
performance of FB audience network, and social and video campaigns,
beyond what the FB platform provides. In some embodiments, the user
interface enables creation of custom metrics, and in particular
creation of custom metrics based on FB actions. According to one
embodiment, the user interface enables creation of custom metrics
within three clicks of a mouse or within three executions of user
interface operations within the performance analysis display of the
user interface. In other embodiments, the system may take any
number of actions with respect to advertisements, and the actions
can be determined automatically in responsive to analysis of FB
action information relating to those advertisements.
[0290] FIGS. 40-60 include examples of user interfaces for
interacting with high volumes of placement data. The user
interfaces shown include navigable data structures, and FIG. 54
includes display bars for selecting FB actions (e.g., in the right
display bar 7505) within the placement data. Upon selection of the
displayed elements, for example, at 7502 the user is able to create
custom data metrics based on associated FB actions. The user
interface also enables point and click creation of custom metrics
on any displayed data attribute, combinations of data attributes,
and/or introduction of new data attributes, which can yield data
calculations on the selected data. For example, if a user wants FAN
cost per impression, the user selects the FAN Spend data attribute
and selects division by FAN Impressions to yield the custom metric
FAN cost per impression. In one example, the new metric is then
displayed in the main body of the user interface 7504. In some
embodiments, custom metrics are persistent and remain in the UI
until removed by the user.
[0291] After the FAN cost per impression metric is created, the
metric is consistently available and can be shared across a
management team with a single selection in the user interface. In
further embodiments, the high volume data analytic system groups
users to enable management of advertising accounts, advertising
sites, advertising networks, and can be customized to provide group
access and specific permissions for each user, even at the level of
ad placement. In various embodiments of the analytic system,
advertisements can be managed as individual placements. The user
interface displays the individual placements, enables editing,
manipulation, and/or customization of each attribute of the
placement. Further, the placements are organized in various
hierarchical levels. Ingestion operations typically include capture
of grouping, organization, and/or hierarchy definitions.
[0292] For example, FIG. 40 includes organizations on Strategy
groups and includes FB Ad Campaign 2014 and FB Ad Campaign--2013 09
in the main body of the display 6002. As shown, each group can be
expanded in the UI via selection. Within the groupings, additional
levels can exist--for example placements are grouped under Ad Plan.
Each can be selected and reported on in the UI individually,
collectively, and in any combination. The UI is further responsive
to user actions to reposition displays via separator 6004. In
response to manipulation of 6004, additional metrics can be
displayed by sliding left, and displayed metrics can be hidden by
sliding right.
[0293] In various embodiments, the UI simplifies access to the
ingested FB metrics. In some examples, the UI flags metrics that
are actively being used in the FB platform for prioritized display
in the UI. In further examples, if an ingested campaign includes a
campaign that has video placements, the respective video FB action
metrics will now be viewable in the UI, and the corresponding data
attributes available for selection to filer, merge, or customize
visualization of data. Portions of the UI for FB action metrics are
also shown in FIG. 61. For example, FIG. 41 includes a list of FB
action metrics that can each be selected. Responsive to selection,
the respective placements associated with the action metrics are
displayed in the main body of the UI for further interaction. The
UI enables advanced selections to further refine target audience
(e.g., FIG. 61). Different audience segments are easily navigated
with one or two clicks in the UI (e.g., see FIG. 61).
[0294] Ingested FB action metrics can be shown in multiple views
and multiple attribution windows. The UI enables visualization of
FB's default attribution window (e.g., 28-day click, 1-day view).
With a single click in the UI the default view can be changed to
individual attribution windows of 1-day click, 1-day view, 7-day
click, 7-day view, 28-day click, and 28-day view. Each display of
attribution in the window is individually selectable in the UI as
shown in FIG. 61.
[0295] Other interactions with the high volume data are likewise
simplified in the UI. For example, shown on FIG. 41 is a basic
action function set. Selection of a Summary group in the main body
of the UI 6202 (e.g., CPC Strategy Group [230] at 6203) opens the
display of the underlying elements of the group 6204 to the
placement level at 6205. Other groupings within the Summary Group
can also be expanded in the UI via selection (e.g., at 6206). This
data can be recursively organized (as discussed above with respect
to row groups) enabling quick access to any data the user wishes to
display. With the placements selected, an action bar display is
shown on the right side of the screen at 6208. Each selection in
the action bar 6208 triggers the respective action for the selected
placements. FIG. 42 shows a higher level view of the strategy
groups at 6304. Responsive to selection of adjust bid 6306 in the
action window 6304, the UI transitions to the display show at FIG.
41. As also shown in FIG. 41, actions may be executed on multiple
placements simultaneously. Any action selected in 6208 can be
executed on the respective placements selected in the main body of
the UI display. For example, individual placements can be selected
in the UI (FIG. 43) at 6402 and any action shown in the placement
action bar 6404 can be executed on the selected placement.
[0296] The data displayed via the UI can be customized responsive
to user selection. In one example, the user may select various
combinations of data dimensions creating their own display for any
multi-dimension groups they build. For example, shown on FIG. 44,
the main body of the display organizes information on placements
into information hierarchies (at 6506), where each hierarchy level
can be displayed as a row in the UI, and sublevels within the
hierarchies can be indented. In the right side of the display
screen 6504, shown are all available attribute sets (e.g., groups
of data attributes associated with the placements in the main
display 6502). In various embodiments, the system enables selection
of multiple attributes and/or attribute groups to pivot the data
being displayed in the main body of the display 6502. In some
embodiments, the attribute selections can be made across any of the
hierarchical groupings shown in the main body 6502. In the bottom
portion of the attribute display bar any selected attributes and/or
attribute set groups are displayed. Each display elements in the
bar 6504 can be manipulated via further selection, edited, and/or
deleted. In further embodiments, the ordering of functions in the
display bar 6504 is maintained when the respective attributes are
displayed (e.g., to the right of 6004 (FIG. 40). In some
embodiments, ordering is enforced based on functional grouping
(e.g., filters, attributes, metrics) first, then based on
subgroupings within each functional grouping (e.g., FIG. 54 Cost,
FB Actions, Return & Rates, Volume), and then based on listings
of selectable elements (e.g., visualized list or FB actions
7514).
[0297] According to one embodiment, more generally, the function
groupings are organized in a first level, each subgrouping within
each function grouping is organized and ordered, as needed, second
sub groupings with the first subgroupings are organized and ordered
until the actual measurement object is visualized. This approach
provides not only for consistent visualization of massive amounts
of data (so that it is readily understood (unlike many conventional
approaches)), but also so the steps necessary to access data in the
management visualizations are consistent (as opposed to many
conventional approaches).
[0298] According to other embodiments, to facilitate selection of
any desired attribute, the attribute display bar (e.g., 6604, FIG.
45) can include a search tool 6606. The search tool provides an
interface with any of the associated attributes for the placements
and/or groupings of placements shown in the main body 6602 of the
UI. Type ahead functionality can also be provided in the search
tool (e.g., FIG. 46) and type-ahead matches shown in the UI at
6702. To facilitate user selection, descriptive dialogue bubbles
(e.g., 6706) can be displayed, for example, based on the user
hovering a displayed pointer over an attribute selection option,
6704. Once the attribute is selected (e.g., creative preview shown
at 6802, (FIG. 47) in the selected attribute display), the
placement data display is dynamically re-configured to include the
newly selected attribute and/or attribute sets at 6804. According
to some embodiments, the UI is configured to provide holistic and
intuitive organization of functions that enable the user to easily
drill into any aspect of the advertising campaign.
[0299] Further, the organization of functions shown enable easy
transition into and out of detailed visualizations. The transitions
are configured, in some examples, to limit the inputs needed from a
user to access information and/or modify displayed information. For
example, the user interface displays and organizes management
functions in logical groupings, where the display is configured to
"slide" (e.g., a visual animation of entering the screen) into the
user interface display responsive to selection. Shown on FIG. 40 at
6006 are selectable groupings of management functions. The
groupings can include "Chart," "Data," "Filters," "Metrics," and
"Today." The groupings provide quick access to management functions
organized by logical groupings. Each logical grouping is designed
to facilitate selection of common functions to enable a streamlined
selection and further drilling into data analytics. For example,
attribute functions and example selections with that logical group
are illustrated in FIGS. 44-50.
[0300] In further embodiments, selected attributes can be further
edited, for example, by selecting 6806. Responsive to selection of
an edit function (e.g., 6806), the UI transitions to an overlay
display for directly editing attribute selections within an
attribute set, as shown in FIG. 48. The edit attribute display 6902
organizes available attribute options hierarchically (e.g., using
recursive row groupings). The display 6902 includes a search tool
6904 for easy selection within the available attributes. The right
side of the display 6906 shows any selected attributes. In some
embodiments, as attributes are selected the greyed out display 6908
of the placements underlying display 6902 can visible change,
responsive to attribute selection. Once complete, selection of
"cancel" or "ok" returns the system to a placement view (e.g., FIG.
47). Available attributes that do not have corresponding
information can be shown in the Edit Attribute Display (e.g., 7002
FIG. 49), however such selections can be greyed out (e.g., 7004,
7006, and 7008) to visually indicate to the user that such
selections will have no effect on displayed data. The UI can also
support drag and drop operations of any attribute or attribute
group (e.g., FIG. 50).
[0301] According to one embodiment, the Attribute functions
available in the UI enable selection, modification, and/or grouping
of the data the user wishes to analyze. In another the Filter
functions enable the user to selection within that main data set to
analyze sub-sets of the data matching specific criteria. In various
embodiments, the user can transition between attribute functions
and filtering functions to dynamically broaden, narrow, shift,
and/or merge data sets for review among other options. Thus it is
appreciated that while attribute functions, and filter functions
(as well as others) are described separately, the operations work
together to facilitate any move within the data or transitions to
other data sets.
[0302] Shown in FIG. 51, is a filter selection bar 7204 that can be
used to manipulate the data displayed in the main body of the UI at
7202. As discussed above, the user can select from any available
management option, including those shown at 7206 to actively
manipulate the displayed data. In some embodiments, the filters
displayed in bar 7204 can include hierarchy aware filters. In one
example, the filters listed are determined by the system based on a
position in the hierarchical display of the data in the main body
of the user interface 7202. In further embodiments, the filer bar
7204 includes a search tool for accessing a filter, sub-filter, or
custom filter executable against the current data set. Selected
filters shown are at the bottom of bar 7204 at 7210. The selected
filters can be edited (e.g., via selection of 7212 or removed 7214.
In other embodiments, filtering can be applied at any level of the
data hierarchy.
[0303] According to other embodiments, the user interface can also
provide global views of ad placement being managed by the high data
volume analytic system. FIG. 52 includes a global visualization of
ad placement data. FIG. 53 illustrates a user interface showing
graphical visualizations of the selected data at 7402, first level
organization of strategy groups of ad placements 7204, and default
attribute columns for the associated data at 7206. At 7408, a user
can select the metrics on which the data in 7402 is graphed. The
user interface is configured to display both rows and columns of
data tailored to a display in which the data in rendered. In some
examples, the column and/or row size is dynamically determined to
optimize visibility of the displayed information (e.g., columns and
rows can be hidden where the data volume comprises the ability to
read the data).
[0304] According to some embodiments, the user interface can
transition into a management display responsive to selection of a
management function group (e.g., 7506 "Metrics"). Shown in FIG. 64
is a metrics display bar 7505. In the bar 7505 users can view,
expand, navigate, and/or search metrics, for evaluation and/or
manipulation of current data being displayed in the main body of
the UI at 7504. At 7502 are the newly available FB action metric
tailored to access ingested FB data. In the bottom portion of bar
7505, shown are the selected metrics at 7508. The metrics at 7508
can be removed via selection of, for example, 7510. The metric
types can be categorizes (e.g., Cost--7512, FB actions--7514,
Return & Rates--7514, and Volume--7518 among other options) to
facilitate user selections. Likewise search tool at 7520 enables
text searches for specific metrics.
[0305] FIG. 55 illustrates a plurality of selected groupings in the
metrics display bar 7604. The listing of metrics is in 7604 is also
reflected in the column displayed in the main body of the UI 7602
at 7606. Re-ordering in either portion of the display triggers the
UI to re-order in the opposite side of the display. The selected
metrics shown in 7604 can be dragged and dropped to re-order, to
remove metrics, etc.
[0306] Each of the available FB actions is included as a selectable
metric in, for example display bar 7704. For example, FB actions
associated with dimensions and specific time windows are shown at
7706. Any selection 7704 can be used to manipulate the display of
data in the main body of the UI at 7702. Other potential FB action
metrics are shown in FIG. 57 at 7806. FIG. 58 illustrates
additional functions with respect to the metrics bar. A user may
maintain metric information in memory and simply hide display
column via selection of 7902. Further users can use the UI to
generate custom formulas at 7904. The custom formulas can include
combinations of any available metric. The custom formulas remain
assessable to the user until deleted. In further embodiments,
custom metrics can be shared among users in an administrative
group.
[0307] In further embodiments, custom views can also be shared
across users in an administrative group. For example, each url
shown in the user interface (e.g., 8008), can be captured and
transmitted to other users. Via the share url, other users can
access the same view, metrics, etc. In some embodiments, the shared
url will require authentication and verification of permission to
access the shared view (e.g., user must be in the same
administrative group and authenticate). FIG. 59 illustrates
additional management functions displayed as a left side bar. The
management functions displayed in the left side bar 8002 are
organized based on being administrative in nature as opposed to
function for operations on the data or for visualizing elements of
the data, etc. As shown, the user interface is configured to save
current views at 8004, and further enables access to previously
save views, for example, at 8006.
[0308] FIG. 60 illustrates additional management functions provided
by the system. At 8202, the management function bar includes "Data"
at 8204. Responsive to selection of 8204 a drop down list of
functions to execute are shown. The functions can manage the data
displayed (e.g., time of click, time of conversion) or how the data
is displayed (e.g., display comfortable, display compact, reset
column widths). Further, users can export any view of their
data.
[0309] According to another aspect, the system is specially
configured to enable consistent views of data and data results. In
one embodiment, data result views can be configured to display
snapshots of result data. The snapshot of result data is an image
of the result set taken at the time that query, filter, attribute
merge, etc., is executed. The snapshot of result data enables, for
example, the use to see a consistent view of their ad placement
data even as the underlying data is changing.
[0310] Some embodiments include additional enhancement to the user
interface displays. For example, the UI can be configured to
display information header rows as sticky rows. Rather than
completely freezing the header row in the table based display, a
sticky row continues to be visualized as long as a data row within
the grouping is visualized, but once the sub data row is rolled up,
continued scrolling is configured to move the sticky row responsive
to scrolling. In other embodiments, the user interface is
configured to detect display characteristics for an end user device
and size the UI displays (including e.g., row sizing, column
sizing, graph sizing, etc.) accordingly.
[0311] According to one aspect, a visualization interface may be
provided that includes a web-enabled pivot table used to analyze
and present ad performance data. According to one embodiment,
advertisers may use such a pivot table to view, sort through, and
visualize multiple dimensions of campaign data. Such tables,
according to various embodiments, are configured with the
attributes and metrics that matter by adding predefined audiences,
creative elements, data-related attributes or placement details,
followed by the metrics that determine campaign success. Once the
selections within the interface have been made, the user may be
permitted to simply drag and drop to re-order metrics to create a
customized campaign dashboard. Such interfaces may be modified to
include a summary view associated with a specific ad within the
table based on specific user selections within the pivot table.
This permits, for example, a user to selectively create a dashboard
using certain metrics while at the same time seeing the specific ad
placements and their associated summaries according to the
configured dashboard. For instance, if an advertiser wants to see
which creative was performing the best, the user is permitted to
sort by key metrics (e.g., ROI, LTV, CTR, CPC, etc.) and locate
specific summary view information relating to those placements.
[0312] For example, according to one embodiment, an interface may
be provided that is a data-centric pivot table that allows dynamic
navigation into more specific information, such as ad placement
information. For instance, a user may be presented an interface
that allows a user to navigate through performance analysis data
(e.g., ad placement performance information) to locate specific ads
and their performance within a hierarchical view. The specific ad
information that is displayed may include performance information
specific to the filters used to navigate to the specific ad. Such
an interface is beneficial, as it permits an advertising manager to
quickly locate relevant ad placement details through a data-driven
interface. In one embodiment, the interface may include the ability
to present an inline summary of the ad placement within a tabular
view of the performance data. Summary information associated with
the displayed ads may be changed depending on the filters or other
user selections within the interface. Such capabilities may permit
a user (an advertising manager or other user type that manages ad
placements) to quickly locate relevant ads within the user
interface that relate to the displayed placement performance
data.
[0313] It is to be appreciated that embodiments of the methods and
apparatuses discussed herein are not limited in application to the
details of construction and the arrangement of components set forth
in the following description or illustrated in the accompanying
drawings. The methods and apparatuses are capable of implementation
in other embodiments and of being practiced or of being carried out
in various ways. Examples of specific implementations are provided
herein for illustrative purposes only and are not intended to be
limiting. In particular, acts, elements and features discussed in
connection with any one or more embodiments are not intended to be
excluded from a similar role in any other embodiments.
[0314] Also, the phraseology and terminology used herein is for the
purpose of description and should not be regarded as limiting. Any
references to embodiments or elements or acts of the systems and
methods herein referred to in the singular may also embrace
embodiments including a plurality of these elements, and any
references in plural to any embodiment or element or act herein may
also embrace embodiments including only a single element.
References in the singular or plural form are not intended to limit
the presently disclosed systems or methods, their components, acts,
or elements. The use herein of "including," "comprising," "having,"
"containing," "involving," and variations thereof is meant to
encompass the items listed thereafter and equivalents thereof as
well as additional items. References to "or" may be construed as
inclusive so that any terms described using "or" may indicate any
of a single, more than one, and all of the described terms.
[0315] Having thus described several aspects of at least one
embodiment of this invention, it is to be appreciated that various
alterations, modifications, and improvements will readily occur to
those skilled in the art. Such alterations, modifications, and
improvements are intended to be part of this disclosure, and are
intended to be within the spirit and scope of the invention.
Accordingly, the foregoing description and drawings are by way of
example only.
* * * * *