Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHODS, SYSTEMS, AND COMPUTER-READABLE MEDIA FOR ANALYZING CONTENT
Document Type and Number:
WIPO Patent Application WO/2017/177100
Kind Code:
A1
Abstract:
One aspect of the invention provides a computer-implemented method of assessing digital content. The method includes: modifying the digital content on a computer by injecting observation code into the digital content to produce modified digital content, the observation code including computer-readable instructions for generating data regarding observable features of the digital content as it is rendered; loading the modified digital content within a software automation application executed on the computer to render the modified digital content to simulate viewing of the modified digital content by a viewer; controlling the software automation application executing on the computer to manipulate and, thereby, further render the modified digital content to further simulate the viewer's experience in viewing the modified digital content; receiving data output by the observation code during rendering of the modified digital content by the software automation application executing on the computer; and storing the data output by the observation code.

Inventors:
FULLER ROB (US)
DAMES BRIAN (US)
Application Number:
PCT/US2017/026539
Publication Date:
October 12, 2017
Filing Date:
April 07, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
8-POINT ARC LLC (US)
International Classes:
G06F17/30; G06F9/44; G06F15/16; G06Q30/00; G06Q30/02
Foreign References:
US20150100679A12015-04-09
US20150100406A12015-04-09
US20110214107A12011-09-01
US20090012847A12009-01-08
US20080275980A12008-11-06
US20140136944A12014-05-15
US9292615B22016-03-22
US8918760B22014-12-23
US20140366005A12014-12-11
Attorney, Agent or Firm:
BERNABEO, Gregory S. et al. (US)
Download PDF:
Claims:
CLAIMS

1. A computer-implemented method of assessing digital content, the computer-implemented method comprising:

modifying the digital content on a computer by injecting observation code into the digital content to produce modified digital content, the observation code including computer-readable instructions for generating data regarding observable features of the digital content as it is rendered;

loading the modified digital content within a software automation application executed on the computer to render the modified digital content to simulate viewing of the modified digital content by a viewer;

controlling the software automation application executing on the computer to manipulate and, thereby, further render the modified digital content to further simulate the viewer's experience in viewing the modified digital content;

receiving data output by the observation code during rendering of the modified digital content by the software automation application executing on the computer; and

storing the data output by the observation code.

2. The computer-implemented method of claim 1, wherein the observation code is written in a dynamic programming language.

3. The computer-implemented method of claim 2, wherein the dynamic programming language is JavaScript.

4. The computer-implemented method of claim 1, further comprising:

parsing the data into a plurality of fragments.

5. The computer-implemented method of claim 4, further comprising:

storing unique fragments once; and

storing references to the unique fragments in data structures representing text including the unique fragments.

6. The computer-implemented method of claim 4, wherein at least some of the fragments are text.

7. The computer-implemented method of claim 4, wherein the fragments are individual sentences.

8. The computer-implemented method of claim 4, wherein at least some of the fragments are images.

9. The computer-implemented method of claim 8, further comprising:

performing image analysis to classify the images.

10. The computer-implemented method of claim 9, further comprising:

storing one or more classifications of the images.

11. The computer-implemented method of claim 9, further comprising:

storing a classification and the image.

12. The computer-implemented method of claim 4, further comprising:

identifying common fragments appearing in at least a threshold portion of content pieces.

13. The computer-implemented method of claim 12, further comprising:

excluding the common fragments from analysis of content pieces containing the common fragments.

14. The computer-implemented method of claim 12, further comprising:

separately analyzing the common fragments.

15. The computer-implemented method of claim 12, wherein the threshold portion is selected from the group consisting of: about 10%, about 20%, about 25%, about 50%, and about 75%.

16. The computer-implemented method of claim 1, further comprising:

testing a plurality of rules against the data; and

aggregating scores from the plurality of rules into various categories associated with content effectiveness.

17. The computer-implemented method of claim 16, wherein at least of the plurality of rules are customer-specific or industry-specific.

18. The computer-implemented method of claim 1, further comprising:

presenting a report regarding content effectiveness to a user.

19. A computer-implemented method of assessing content, the computer-implemented method comprising:

receiving content;

parsing the content into a plurality of fragments;

testing a plurality of rules against the fragments; and

aggregating scores from the plurality of rules into various categories associated with content effectiveness.

20. A system for assessing digital content, the system comprising:

a computer comprising a storage device comprising:

a software automation application; and

computer-readable program code including steps for:

modifying the digital content on the computer inject observation code into the digital content to produce modified digital content, the observation code including computer-readable instructions for generating data regarding observable features of the digital content as it is rendered;

loading the modified digital content within the software automation application executed on the computer to render the modified digital content to simulate viewing of the modified digital content by a viewer; controlling the software automation application executing on the computer to manipulate and, thereby, further render the modified digital content to further simulate the viewer's experience in viewing the modified digital content;

receiving data output by the observation code during rendering of the modified digital content by the software automation application executing on the computer; and

storing the data output by the observation code.

Description:
METHODS, SYSTEMS, AND COMPUTER-READABLE MEDIA

FOR ANALYZING CONTENT

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U. S. Provisional Patent Application Serial

No. 62/319,859, filed April 8, 2016, the entire content of which is hereby incorporated herein by reference.

BACKGROUND OF THE INVENTION

Despite the considerable funds spent annually on marketing (with an increasing share devoted to digital marketing), marketing remains a very subjective field. Techniques such as multivariate testing can identify which content or campaign is more effective, but cannot tease out why one piece of content was more effective than another. Additionally, A/B testing cannot provide a prospective analysis of a piece' s effectiveness or benchmark an organization' s content against a competitor's content.

Moreover, although computers can generate, distribute, and display content (e.g., over the Internet), computers currently lack the ability to assess the effectiveness of content.

SUMMARY OF THE INVENTION

One aspect of the invention provides a computer-implemented method of assessing digital content. The computer-implemented method includes: modifying the digital content on a computer by injecting observation code into the digital content to produce modified digital content, the observation code including computer-readable instructions for generating data regarding observable features of the digital content as it is rendered; loading the modified digital content within a software automation application executed on the computer to render the modified digital content to simulate viewing of the modified digital content by a viewer;

controlling the software automation application executing on the computer to manipulate and, thereby, further render the modified digital content to further simulate the viewer' s experience in viewing the modified digital content; receiving data output by the observation code during rendering of the modified digital content by the software automation application executing on the computer; and storing the data output by the observation code. This aspect of the invention can have a variety of embodiments. The observation code can be written in a dynamic programming language. The dynamic programming language can be JavaScript.

The computer-implemented method can further include parsing the data into a plurality of fragments.

The computer-implemented method can further include storing unique fragments once; and storing references to the unique fragments in data structures representing text including the unique fragments.

At least some of the fragments can be text.

The fragments can be individual sentences.

At least some of the fragments can be images. The computer-implemented method can further include performing image analysis to classify the images. The computer-implemented method can further include storing one or more classifications of the images. The computer- implemented method can further include storing a classification and the image.

The computer-implemented method can further include identifying common fragments appearing in at least a threshold portion of content pieces. The computer-implemented method can further include excluding the common fragments from analysis of content pieces containing the common fragments. The computer-implemented method can further include separately analyzing the common fragments. The threshold portion can be selected from the group consisting of: about 10%, about 20%, about 25%, about 50%, and about 75%.

The computer-implemented method can further include testing a plurality of rules against the data; and aggregating scores from the plurality of rules into various categories associated with content effectiveness. At least of the plurality of rules can be customer-specific or industry- specific.

The computer-implemented method can further include presenting a report regarding content effectiveness to a user.

Another aspect of the invention provides a computer-implemented method of assessing content. The computer-implemented method includes: receiving content; parsing the content into a plurality of fragments; testing a plurality of rules against the fragments; and aggregating scores from the plurality of rules into various categories associated with content effectiveness. Another aspect of the invention provides a system for assessing digital content. The system includes a computer including a storage device including: a software automation application and computer-readable program code. The computer-readable program code includes steps for: modifying the digital content on the computer inject observation code into the digital content to produce modified digital content, the observation code including computer- readable instructions for generating data regarding observable features of the digital content as it is rendered; loading the modified digital content within the software automation application executed on the computer to render the modified digital content to simulate viewing of the modified digital content by a viewer; controlling the software automation application executing on the computer to manipulate and, thereby, further render the modified digital content to further simulate the viewer's experience in viewing the modified digital content; receiving data output by the observation code during rendering of the modified digital content by the software automation application executing on the computer; and storing the data output by the observation code.

BRIEF DESCRIPTION OF THE DRAWINGS

For a fuller understanding of the nature and desired objects of the present invention, reference is made to the following detailed description taken in conjunction with the

accompanying drawing figures wherein like reference characters denote corresponding parts throughout the several views.

FIG. 1 depicts a method for parsing content according to an embodiment of the invention.

FIG. 2 depicts parsing of a website according to an embodiment of the invention.

FIG. 3 depicts a method for analyzing content according to an embodiment of the invention.

FIG. 4 depicts a graphical user interface for viewing and managing matcher rules according to an embodiment of the invention.

FIG. 5 depicts a graphical user interface for viewing stored lists of the direct text matchers according to an embodiment of the invention.

FIG. 6 depicts a graphical user interface for creating and editing frameworks according to an embodiment of the invention. FIG. 7 depicts a graphical user interface for defining "piece types" (e.g., blog posts, TWEET® microblog posts, web pages, and the like) before applying matchers according to an embodiment of the invention.

FIG. 8A-8C depict a graphical user interface for identifying and defining content within an organization' s website to be analyzed according to an embodiment of the invention.

FIG. 9 depicts a sample report showing overall strategic fit as well as score for multiple dimensions of the best practice, brand identify, technique, storytelling, and engagement aspects according to an embodiment of the invention.

FIGS. 10 and 1 1 depict overviews of systems for collecting and analyzing content according to embodiments of the invention.

FIG. 12 depicts data structures for storing parsed content according to an embodiment of the invention.

FIG. 13 depicts doughnut charts comparing a client' s balance of educating vs. selling in content to an average balance amongst competitors according to an embodiment of the invention.

FIG. 14 depicts a doughnut chart depicting the relative use of storytelling components according to an embodiment of the invention.

FIGS. 15A-15E depict sample reports showing scores for multiple dimensions to an embodiment of the invention.

DEFINITIONS

The instant invention is most clearly understood with reference to the following definitions.

As used herein, the singular form "a," "an," and "the" include plural references unless the context clearly dictates otherwise.

Unless specifically stated or obvious from context, as used herein, the term "about" is understood as within a range of normal tolerance in the art, for example within 2 standard deviations of the mean. "About" can be understood as within 10%, 9%, 8%, 7%, 6%, 5%, 4%, 3%, 2%, 1%, 0.5%, 0.1%, 0.05%, or 0.01% of the stated value. Unless otherwise clear from context, all numerical values provided herein are modified by the term about. As used in the specification and claims, the terms "comprises," "comprising," "containing," "having," and the like can have the meaning ascribed to them in U.S. patent law and can mean "includes," "including," and the like.

As used to herein, the term "computer-readable medium" broadly refers to and is not limited to a register, a cache memory, a ROM, a semiconductor memory device (such as a D- RAM, S-RAM, or other RAM), a magnetic medium such as a flash memory, a hard disk, a magneto-optical medium, an optical medium such as a CD-ROM, a DVDs, or BD, or other type of device for electronic data storage.

Unless specifically stated or obvious from context, the term "or," as used herein, is understood to be inclusive.

As used herein, the term "processor" broadly refers to and is not limited to a single- or multi-core processor, a special purpose processor, a conventional processor, a Graphics

Processing Unit (GPU), a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, one or more Application Specific Integrated Circuits (ASICs), one or more Field Programmable Gate Array (FPGA) circuits, any other type of integrated circuit (IC), a system-on-a-chip (SOC), and/or a state machine.

DETAILED DESCRIPTION

Aspects of the invention provide methods, computer-readable media, and systems for analysis of content.

Embodiments of the invention can be applied to a variety of types of content.

In some embodiments, the content is digital content in which exists in the form of digital data. Examples of digital content includes Web or Internet content that can be represented in using various standards such as Hyper Text Markup Language (HTML), and PDF, FLASH®, AIR®, and ACROBAT® platforms available from Adobe Systems of San Jose, California.

Other examples of content include posts to social networks (e.g., the FACEBOOK® platform available from Facebook, Inc. of Menlo Park, California, the LINKEDIN® platform available from Linkedln Corporation of Mountain View, California, or the TWITTER® platform available from Twitter Inc. of San Francisco, California), e-mails, MICROSOFT® POWERPOINT® presentation files, sales materials, and the like. In other embodiments, the content is analog content that can be captured using a scanner or digital camera and then processed to extract various information such as text, images, and the like.

Exemplary Systems

Referring to FIG. 1 1, an exemplary system 1 100 is provided. System 1 100 can include at least one computer 1 102 containing software and/or hardware for implementing the

methods 100, 300 described herein. For example, the computer 1 102 can include a software program 1 104 adapted and configured to initiate and control the methods 100, 300 as described herein. For example, the software program 1 104 can initiate and/or control execution of a software automation application 1 106 to manipulate and extract data from content. The software program 1 104 can receive and store the extracted content, for example, in a database 1 108 and/or other storage device(s) for further analysis. Software program 1 104 can also execute the method 300 for analyzing content described herein.

In some embodiments, software program 1 104 is a multithreaded program in which separate threads can be spawned and run in parallel. For example, one or more separate threads can be spawned to implement method 100 for parsing content and one or more separate threads can be spawned to implement method 300 for analyzing content.

Software program 1 104 can be controlled (e.g., via one or more user interfaces) either locally or via one or more client computers 1 1 10 that can communicate with software program 1 104 (e.g., via a network such as a local area network and/or the Internet). Such communications can specify content to be parsed and analyzed and rules to be applied to the parsed content.

One exemplary graphical user interface 400 for viewing and managing matcher rules is depicted in FIG. 4. This GUI 400 enables creation of four types of matchers: (1) direct text matchers that directly match words and/or numbers, (2) pattern matchers that can, for example, identify "this" within three words of "computer", (3) list pattern matchers that search for a defined list of words in a placeholder, for example, to identify a match from a combination derived from a list of particular noun types (e.g., employees, leaders, companies, and the like) and verb types (e.g., "worried" and "concerned" vs. "excel", "exceed", and "outshine", and the like), (4) natural language processing matchers that can use off-the-shelf LP algorithms alone or in combination with the other matchers described above, and (5) gating rules that only allow the preceding rules to apply if certain criteria about the content passes, such as if a web page includes a visible contact form. Applicant has implemented over 4,000 matchers that have created over 300K business rules. A business rule is a unique match created in the system.

Matchers can roll up to items in a framework or rubric such as best practices, technique, brand identity, storytelling, and engagement.

Software automation application 1 106 can access one or more content sources 1 1 12a- 1 1 \2n via a network such as a local area network and/or the Internet and/or through local storage access (e.g., in the case of content that is not available via the Internet). Parsing of Content

Referring now to FIG. 1, one embodiment of the invention provides a method for parsing content.

In step S I 02, content can be identified by a human, system, and/or algorithm. The content can be identified by a user or client. The content can be specified with particularity (e.g., a particular Uniform Resource Locator (URL)) or can be automatically identified (e.g., by spidering or crawling over an organization' s Web site). Various spidering/crawling software tools are commercially available for identifying content.

In step S I 04, the content is obtained. For example, the content can be downloaded from a website, read from disk, and the like. In some embodiments, the content is written to disk. In other embodiments, the content is locally stored in memory. The content can be tagged at this stage (or earlier or later in the process) by type. For example, tagging of content as a web log

(blog) post, case study, and the like can facilitate presentation of analysis by content type at later stages.

In step S I 06, the content is modified for content extraction by injecting observation code into the content. The observation code can generate various data regarding the observable features of the digital content as it is rendered and/or displayed as will be further discussed herein. The observation code can be inserted using various programming techniques, including Perl scripts. The observation code can be written in a dynamic programming language such as JavaScript. Dynamic programming languages defer many common programming behaviors from compilation to runtime, facilitating extension of content to include the observation code. Exemplary observation JavaScript code is attached as an Appendix A.

In step S I 08, the content is loaded within a software automation application to simulate viewing of the content by a customer. One suitable software automation application is the SELENIUM® software testing framework for Web applications available from the Software Freedom Conservancy, Inc. of Brooklyn, New York at http://www.seleniumhq.org/.

In step S I 10, the software automation application is controlled, preferably in an automated manner (e.g., through a macro, script, or other computer-readable code) to manipulate the content and further simulate the customer's experience in viewing the content. For example, SELENIUM® software can manipulate Web content within an Internet browser while the injected observation code captures data about the rendered and/or displayed content.

SELENIUM® software can be controlled using one or more scripts to perform one or more predefined manipulations such as scrolling up and down within a web page. The software automation application can allow for external content to load within the content being analyzed. Examples of external content include feeds from services such as BAZAAR VOICE®,

FACEBOOK®, TWITTER®, and the like.

In step S I 12, data output by the observation code can be received. This data can be stored for further analysis as described herein. The data can include one or more components of the content such as text, images, hyperlinks, and the like. Examples of data can include the number of logos within the content, the number of different logos, whether the logos are the correct version, the number and names of fonts and/or colors, the number of occurrences of video within the content, and the like.

In step S I 14, fragments are extracted from the output data. Fragments can be relatively small data elements that are stored for future analysis.

For example, text (e.g., in paragraphs) can be divided into sentences that can be stored.

For example and as illustrated in FIG. 2, if Acme Corporation's home page includes one or more paragraphs of text PI . . P«, each paragraph can be further parsed into sentences S I . . . Sn. Parsing of paragraphs into sentences can be performed, for example, using a parser such as The Stanford Parser or the Stanford CoreNLP software available from The Stanford Natural Language Processing Group of Stanford, California at http://nlp.stanford.edu/software/. Likewise, images can be stored as or in association with semantic equivalents, i.e., the meaning of the image, with or without other information about the image such as the file name and the like. Images can be identified using pattern matching targeting the < IMG> tag used in HyperText Markup Language (HTML), for example.

If the same fragment {e.g., sentence) is used multiple times across an organization's website and other materials, the fragment can be stored once and can be referenced by superstructures {e.g., paragraphs, pages, and the like) containing that and other fragments. For example, a data structure can specify that paragraph PI consists of sentence SI followed by sentence S2.

Image analysis can be performed using a third party web service such as the GOOGLE®

CLOUD VISION API provided by Google Inc. of Menlo Park, California. Such services can receive images {e.g., by passing a URL or by passing the image file) and classify the image into thousands of categories {e.g., "sailboat", "lion", "Eiffel Tower").

Textual fragments {e.g., sentences) and/or superstructures containing the same {e.g., paragraphs, pages, and the like) can be analyzed from a number of perspectives. For example, Natural Language Processing can be performed on each sentence to identify various language forms {e.g., whether the sentence is a declarative, interrogatory, imperative, or exclamatory sentence) and/or identify the number of nouns, verbs, and the like.

In step SI 16, content-level data can be obtained. For example, the number of words appearing above the fold {i.e., before scrolling) can be calculated. In another embodiment, the number of colors, fonts, and/or images displayed can be calculated. In still another embodiment, various measures of negative space around fragments within the content piece can be obtained such as a percentage of negative space, margin dimensions, and the like.

In step SI 18, the parsed and/or obtained data can be transmitted and/or stored. For example, the parsed and/or obtained data can be organized and/or stored in a variety of data structures. One exemplary data structure is depicted in FIG. 12. Data structures can be stored in mapped memory, in a database, and the like

Identification of Common Fragments

Once parsed, common fragments {e.g., fragments appearing in over a defined threshold such as 20%, 50%, 75%, and the like of content within an organization) can be designated as such and can be disregarded when assessing an individual piece of content. Identification and potential segregation of this common content can improve the sensitivity of method 300 by focusing on the fragments that are unique among individual pieces of content. The segregated common content can optionally be analyzed separately. Methods of Analyzing Parsed Content

Referring now to FIG. 3, another aspect of the invention provides a method 300 for analyzing content. In some embodiments, the content has been previously parsed according to embodiments of the invention described herein. However, the content can also be parsed using other methods, or be unparsed.

In step S302, word matching is performed against the content to determine whether one or more relevant words are present in the content. This step can search for one or more words within the content. The particular words can be specified based on the industry of interest. For example, a health insurer may be particularly interested in the prevalence of terms such as "affordability," "wellness," and the like.

In step S304, phrasal matching is performed against the content to determine whether one or more relevant phrases are present in the content. Again, the phrases of interest can be specified based on the industry of interest. For example, "Affordable Care Act" may be of interest for a health insurer' s content.

In step S306, natural language processing (NLP) searching can be performed against the content to determine whether one or more relevant concepts are present in the content. NLP searching allows for structured searching based on syntax. For example, a search can identify any sentences in which a comparative adjective is followed by a noun. NLP searching can be performed using the Stanford CoreNLP software and/or software available under the IBM WATSON® and ALCHEMY API® trademarks from International Business Machines of Armonk, New York.

In step S308, content level analysis can be performed to assess whether the content has certain attributes. For example, was a blog post longer than 300 words? Was the blog post gated? Does a MICROSOFT® POWERPOINT® presentation contain more than 50 slides? In step S310, the results of steps S302, S304, S306, and/or S308 can be scored against a rubric as further discussed herein in order to integrate the results of steps S302, S304, S306, and/or S308 into more understandable, meaningful, and/or actionable results.

In step S312, the results of steps S302, S304, S306, S308, and/or S310 can be associated and/or correlated with third-party usage data such as that available from services such as the GOOGLE ANALYTICS™ service available from Google Inc. of Menlo Park, California, the OMNITURE® service available from Adobe Systems Incorporated of San Jose, California, the HUBSPOT® service available from HubSpot, Inc. of Cambridge, Massachusetts, the

EXACTTARGET® service available from ExactTarget, Inc. of Indianapolis, Indiana, and the SALESFORCE.COM® service available from salesforce.com, inc. of San Francisco, California. For example, third party usage data such as "Session Duration, Avg" in the GOOGLE

ANALYTICS™ service can be used to identify which attributes promote increased interaction with an organization's content. In this manner, the user can better understand which content attributes are correlated with (and potentially causative of) increased customer engagement and seek to develop those attributes in other content.

Additionally or alternatively, the results of steps S302, S304, S306, S308, and/or S310 can be used to facilitate selection of content such as the ELOQUA® service available from Eloqua Limited of Redwood City, California, the MARKETO® service available from Marketo, Inc. of San Mateo, California, the PARDOT® service available from Pardot LLC of Atlanta, Georgia, the EXACTTARGET® service available from ExactTarget, Inc. of Indianapolis,

Indiana, the SELLIGENT® service available from Selligent S.A. of Braine-l'Alleud, Belgium, and the UNICA® service available from International Business Machines of Armonk, New York. In such an embodiment, analysis of a plurality of pieces of content can be used to identify which content characteristics (and by extension, which pieces of content) are best suited for a particular customer.

In step S314, analysis can be presented to a user. For example, the analysis can be expressed numerically and/or graphically in various formats. Exemplary numerical measures include mean or median scores across an organization's website, a mean or median of normalized scores (i.e., an individual score divided by a number of fragments within the content piece), a count and/or histogram of the number of pieces of content having certain scores, and the like. Other analytical measures can be presented to the user such as average sentence length, average number of different challenging words, average number of personal pronouns, percentage of unique words, average number of prepositional phrases, and various readability measures such as Flesch-Kincaid formulas, Dale-Chall formulas, the Gunning fog formula, the Fry readability graph, McLaughlin's SMOG formula, the FORCAST formula, the John Bormuth formulas, the LEXILE® formula, and the Coh-Metrix metrics.

Method 300 can be customized to reflect various types of content. For example, business-to-business (B2B) content can be assessed using different criteria than business-to- consumer (B2C) content. These different settings can be reflected in both different rules or queries applied in steps S302, S304, S306, and/or S308 as well as any rubrics applied in step S310 (which can apply varying weights the results of steps S302, S304, S306, and/or S308 depending on the context).

Exemplary Presentation Formats

Results of the analysis described herein can be presented in a variety of formats that can, for example, include graphs and/or charts.

For example, a presentation can include one or more bar charts that display score types per brand, category of content, and/or content piece. Exemplary score types include raw scores

(i.e., counts of rule matches), a percentage of rule matches within content pieces within a category for a rule, a percentage of rule matches within a particular content piece for a rule, score per fragment, score per piece of content, and the like.

Exemplary chart types include bar charts, column charts, arc charts, line charts, area charts, and the like. Exemplary chart types and presentation elements are depicted in FIGS. 9 and 15A-15E.

Reports can be provided in a variety of formats and at a variety of time points. For example, reports can be provided for draft pieces of content. Such a report could be provided, for example, in an electronic format (e.g., via the Internet) and score a draft piece of content against a brand's content marketing strategy goals. A strategy focus report can compare scores for a brand against a competitive set and identify areas of potential improvement and/or focus for the brand's content marketing strategy. The analysis can also be presented in a dashboard that can be updated periodically (e.g., daily). Reports can include a menu of specific actions that can be taken to improve one's content or make it more competitive.

Exemplary Rubric

Various rubrics can be used in which rules, scores, points, or other assessments can be ascribed to one or more categories with in a rubric. One embodiment of the invention implements a five-category rubric to assess best practices, storytelling, technique, engagement, and brand identity.

FIG. 9 provides a graphical representation of scoring against this rubric. For example, the user can see that its content scores highly with regard to the "market dynamics" and "reveal offer" components of the "storytelling" category and the "selling" component of the

"engagement" category. The user can also see that its content scores poorly in several components including the "authority" and "facilitate purchase" component of the "technique" category. Empty bars depict sections with no score at all. Black lines in a bar depict the associated goal for the line item

Best Practices

The "best practices" category measures the presence of best practices in the content itself or the manner in which that content is distributed.

Storytelling

The "storytelling" category detects the presence and measures the consistency of storytelling elements. Exemplary storytelling elements can be described in the context of Applicant's 8-POINT ARC™ rubric and can include: market dynamics, a reflection of the state of mind of the customer, a trigger event, making the customer the hero, an offer reveal, drive to action, activating the hero (customer), and fulfilling the promise (delivering value)..

Market dynamics elements reflect trends and shifts in the marketplace as context for the rest of the points in the story Examples of market dynamics include shifts, growth, decline, fragmentation, consolidation, disruption, and the like.

A reflection of the state of mind of the customer references what the customer is dealing with or reacting to in their environment. The reflection is preferably linked to the market dynamics referenced above. Examples include citing what a customer or prospect faces or experiences, citing what a customer or prospect feels, describing a direct environment (e.g., chaos or stagnation) or situation (e.g., budget restraint or influx of investment) a customer or prospect is dealing with (e.g., within a company or departmental environment).

A trigger event is an event taking place that will required action due to one or both of the categories. A trigger event notifies the customer that now is the time and it is possible to change outcomes for the better. Examples include inflection points indicating that a permanent change has occurred, evidence that an internal or external transition is close to completing or has completed, and performance factors being affected by a shift or occurrence defined above.

Making the customer the hero of the story conveys that the customer's success is the object and goal of the value proposition and helps the customer understand that they will become smarter and more successful as they overcome the obstacles identified above. Examples include others who have succeeded by reacting to the trigger events defined above and painting hope for a path to success in the content of the prospect or customers terms. Success can be in the context of the person, their role, their department or their company.

An offer reveal offers a gift to the hero that enables their triumph. The offer is the value from the product produced by the seller. Examples include tying the offer to the hero story above, linking the offer to the hero's success, and linking the offer to the brand as a gift extended to the hero.

A drive to action calls on the customer to take the gift, react to the trigger event, and become the hero. Examples include specific calls to action to react, take the gift, and become the hero and communication of why the hero needs to or has a responsibility to take the gift.

Activating the hero (customer) concerns how the customer is enabled to begin fulfilling on their hero's journey and can include onboarding the customer and enabling them to begin deriving value.

Fulfilling the promise concerns how a brand actually delivers of their promise.

Technique

The "technique" category measures persuasion, i.e., the presence and consistency of use of persuasion marketing techniques as researched and verified by experts such as Robert Cialdini, Roger Dooley, and BJ Fogg. Persuasion can be assessed along several dimensions including authority, social proof, and liking.

The authority dimension assesses the organization's messaging to establish the brand as trusted authority in the market. Authority can be tied directly to the brand by establishing provocative and compelling proofs of value (POVs) in the market. This is most effectively achieved with fact(s) supporting such positions. Research should be unique and performed by or behalf of the brand. The brand can also be tied to industry experts by associating the brand with POVs of industry-recognized experts. The brand can also be tied to 3rd party brands by associating the brand to non-biased brands with authoritative credibility such as analyst firms (e.g., Forrester, Gartner, Sirrius Decisions) or well-respected brand partnerships (e.g., Google, Apple, and the like). Aware recognition can be promoted by publishing awards sponsored by industry recognized governing bodies. Certifications and accreditations for industry relevant skills and capabilities can also be promoted

Social proof promotes the use of an offering as evidence that deciding to engage is a good decision. Examples include testimonials in which users "testify" that they like and have extracted value from use of an offering, endorsements from a credible, industry-known entity (e.g., a celebrity), copies or links to independent press outlets publishing articles on offering or company, case studies about customers that have experienced and realized value from the offering, non-conformity (i.e., communicating that those who choose not to use offering are outside the norm), use of trusted industry influencers (e.g., high profile consultants, analysts, bloggers, and the like), references to the norm to position use of the offering as the norm, and emphasizing superlatives and popularity as proof that many have already made the decision to use and that use of the offering is very popular.

The "liking" dimension measures alignment of positioning to fit the narrative of the prospect or client and what they value. The message of the organization and/or platform can be aligned to what the prospect or customer holds important and true. The message of the organization and/or platform can be aligned to the vision of what the prospect or customer wants to become or become associated. Through positive labeling, use of the offering can be aligned with positive attributes (e.g., intelligent marketers account for campaign measurement). Through negative labeling, negative attributes can be aligned with non-use of offering (e.g., marketers take on great risk by not measuring campaigns). Engagement

The "engagement" category measures the structure of content and how much it educates, sells, works to establish a dialogue, or attempts to convert {e.g., through sharing of content, data or transacting).

Engagement can occur through content intended to educate in some way. For example, content can include use of facts and data and/or references to primary or third party research, and published reports. In contrast, deliberatively not using company or offering brands (which key consumers that they are being sold) conveys authentic educating without the intent to sell.

Insights and conclusions also further engagement (most effectively when supported by facts and research). Instructional language instructing the prospect or customer to take an action is most effective when supported by facts and insights. Training, seminars, and webinars convey an investment in offering experiential education.

Selling is content intended to sell a customer or prospect on use of an offering. Selling jargon includes the use of selling language and buzz words and is usually an ineffective selling technique. Feature communication references features and functions of the offering, either through direct reference {e.g., product brochures) or proxy references {e.g., in blog materials) and generally describe what the organization does or offers {e.g., through references to technology and capabilities). Benefit communication describes benefits to customer or prospects by using the offering {e.g., to make better decisions, have less stress, engage in better communication, and the like). Value communication describes quantifiable value realized by using the offering {e.g., lower costs, more efficient use of resources, increased revenue, etc.).

Dialogue is content intended to spark a conversation with the client. This could be represented by offering facilities for content consumers to communicate such as forums, comments, chat, advisory boards, and the like.

Conversion is content that is designed to drive the consumer of the content to deliver value back to the brand {e.g., by sharing, purchasing, providing information, referrals, and the like).

Brand Identity

The "brand identity" utilizes input from client to measure the presence of messaging pillars, brand purpose, vision and adherence to brand guidelines. Exemplary Use Cases

Embodiments of the invention can be utilized by content developers (e.g., within an organization' s marketing group) to assess, track, and/or improve the effectiveness of the organization' s content. For example, the organization can receive measures of how the organization' s content compares to competitors and/or track how the organization' s content compares to competitor' s content. In some embodiments, a user can analyze a new piece of content before public release. Users can also analyze activity (e.g., views, shares, time spent on content) by the framework attributes listed above, for example, to identify that "authority" pieces are shared most often. Implementation in Computer-Readable Media and/or Hardware

The methods described herein can be readily implemented in software that can be stored in computer-readable media for execution by a computer processor. For example, the computer- readable media can be volatile memory (e.g., random access memory and the like) and/or nonvolatile memory (e.g., read-only memory, hard disks, floppy disks, magnetic tape, optical discs, paper tape, punch cards, and the like).

Additionally or alternatively, the methods described herein can be implemented in computer hardware such as an application-specific integrated circuit (ASIC).

EQUIVALENTS

Although preferred embodiments of the invention have been described using specific terms, such description is for illustrative purposes only, and it is to be understood that changes and variations may be made without departing from the spirit or scope of the following claims.

For example, the functions of several elements can, in alternative embodiments, be carried out by fewer elements, or a single element. Similarly, in some embodiments, any functional element can perform fewer, or different, operations than those described with respect to the illustrated embodiment. Also, functional elements (e.g., modules, databases, computers, clients, servers and the like) shown as distinct for purposes of illustration can be incorporated within other functional elements, separated in different hardware or distributed in a particular implementation. While certain embodiments according to the invention have been described, the invention is not limited to just the described embodiments. Various changes and/or modifications can be made to any of the described embodiments without departing from the spirit or scope of the invention. Also, various combinations of elements, steps, features, and/or aspects of the described embodiments are possible and contemplated even if such combinations are not expressly identified herein.

INCORPORATION BY REFERENCE

The entire contents of all patents, published patent applications, and other references cited herein are hereby expressly incorporated herein in their entireties by reference.

APPENDIX A

class Function :: BrowserDriver

attr reader :width

attr reader : height

def initialize ()

@width = Settings . browser . width

@height = Settings . browser . height

Sfileloc = Settings . paths . screen shot path

profile = Selenium: : WebDriver :: Firefox :: Profile . new

profile [ "browser . download . folderList " ] = 2

profile [ "browser . download . dir" ] = ' '

profile [ "browser . helperApps . neverAsk . saveToDisk" ] =

' application/pdf '

# disable Firefox's built-in PDF viewer

profile [ "pdfj s . disabled" ] = true

# disable Adobe Acrobat PDF preview plugin

profile [ "plugin. scan. plid. all"] = false

profile [ "plugin. scan. Acrobat"] = "99.0"

@driver = Selenium: : WebDriver . for : firefox, :profile => profile set window size ( Selenium: : WebDriver :: Dimension . new ( @width, @height7) ~

end def url ok?(dest)

@url ok = Hash. new if ! @url ok

return @url_ok [dest] [0] , @url_ok [dest] [1] , @url_ok [dest] [2 ] if@url ok[dest]

ok, ctype, code = self . class . url ok? (dest)

@url ok[dest] = [ok, ctype, code]

return ok, ctype, code

end

def self. url ok? (dest)

begin

res = open(dest, : allow redirections => :all)

return true, res . content type, 200

rescue OpenURI : : HTTPError => ex

if ex . message . include? "429"

Rails . logger . debug ( "Sleeping for 10 seconds as to many requests per server") Rails. logger. debug (ex. inspect)

sleep ( 10 )

ok,ctype, code = url ok?(dest)

return ok, ctype, code

elsif ex .message . include? "404" or ex . message . include? "500" o ex .message . include? "405"

return false, ' ' , 404 #yes this is an oversimplifed answer, but good enough I think

else

puts ex. inspect

return false, '', ex. message

end

rescue => ex

puts "unhandled exception in #{ self . class . name } #url ok?" puts ex. inspect

return false, "", ex. message

end

end

def navigate (dest)

@driver . manage . timeouts . page load = Settings . browser . timeout

@driver . navigate .to ( dest )

return @driver

end

def load observation script ( )

js = javascript functions

@driver . execute script (js)

end def page source ( )

@driver . page source ( )

end def scroll top ( )

@driver . execute script ( "window .scrollTo ( 0 , 0 ) ; " )

end

def scroll bottom()

@driver . execute script ( "if (document . body . scrollHeight >

#{@height}) { window . scrollTo ( 0 , document . body . scrollHeight )

end def screenshot (brand, url)

filename = derive a good name (url . uri, url. id)

#go to the page uri = URI(url.uri)

host = uri. host

fullpath, relpath = screengrab (filename, brand. name, host) uri . screenshot path = relpath

return fullpath

end

def screengrab (filename, brandname, host)

#fileloc - brandname - filename

date = DateTime . now . utc

run date = "#{ date . now . year }-#{ date . now . month} -#{ date . now . day } " fullpath = File. join (gfileloc, ENV [ "RAILS_ENV" ] , brandname, run date, host)

relpath = File . j oin ( ENV [ "RAILS_ENV" ] , brandname, run_date, host filename )

ensure file path works ( File . j oin ( fullpath) )

fullpath = File . j oin ( fullpath, filename)

png = "#{fullpath} .png"

jpg = "#{ fullpath} . jpg"

reljpg = "#{relpath} . jpg"

@driver.save screenshot (png)

i = Magick :: Image . read (png ). first

i.write(jpg) { self. quality = 25 }

File : : delete (png)

return fullpath, reljpg

end def ensure file path works (filepath)

FileUtils : :mkdir p filepath

end

def brand location (brand id)

brand = Brand . find (brand id)

@brandname = brand. name

end

def get elements with class (class name)

js = "return document. get ess tagged elements ('#{ class name}'') return @driver . execute script (js)

end

def derive a good name (uri, id)

uri = URI .parse (uri)

name = id.to_s « "-" « uri . path . tr ('/','_' )

return name

end

def set window size (size)

@driver . manage . window . size = size

end def get form action (idx)

js = "return document. get form action (#{ idx }); "

return @driver . execute script (js)

end

def quit

@driver . quit

end

def javascript functions

js = «-FOO

document. get form action = function ( form idx) { if (document . forms . length == 0) {

return null;

}

return document . forms [ form idx] . action;

}

document. get forms = function () {

if ( typeof document . forms [ 0 ] === 'undefined') { return null; }

var forms = document . forms ;

var el = forms [ 0 ]. elements

var res = [ ] ;

var i = 0;

while ( i < forms . length ) {

for (e = 0; e < forms [i] . elements . length; e++) { var el = forms [i] . elements [e] ;

var cap = false;

switch (el . tagName) {

case "INPUT":

cap = true;

break;

case "TEXTAREA":

cap = true;

break;

case "SELECT":

cap = true;

break;

case "DATALIST":

cap = true;

break;

} // end switch

if (cap) {

var o = new Object ();

o.form index = i;

o.form name = forms [i] .name;

o. element index = e;

o . name = el. name ;

o . type = el. type;

res . push (o ) ;

} //end if } //end for loop

i++;

} //end while

return res;

}

document . form execute = function ( form index

var form = document . forms [ form index];

for(i = 0; i < inputs . length; i++) {

var v = inputs [i] ;

var el = form. elements [v. element index]

el. value = v. value;

}

form. submit ( ) ; document . inspect body = function ( ) {

var el = document . getElementsByTagName (' body ') ; return document. obs arr(el);

}

document . inspect images = function ( ) {

var el = document . getElementsByTagName (' img ') ;

return document. obs arr(el);

}

document . inspect links = function () {

var el = document . getElementsByTagName (' a ') ;

return document. obs arr(el);

}

document . inspect divs = function ( ) {

var el = document . getElementsByTagName (' div' ) ;

return document. obs arr(el);

}

document . inspect paragraphs = function ( ) {

var el = document . getElementsByTagName (' p ') ;

return document. obs arr(el);

}

document. is ess class present = function (ess name) { ret = false;

var el = document . getElementsByClassName ( ess name) if (el != null) { ret = true; }

return ret;

}

document. obs arr = function (el) {

ret = [] ;

for (var i = 0; i < el. length; i++) {

ret . push ( document .obs obj ( el [ i ] ) ) ;

};

return ret;

}

document. get ess tagged elements = function (tag name var el = document . getElementsByClassName ( ess name);

return document. obs arr(el);

}

document. obs obj = function (el) {

var obj = new Object ();

obj .id = el . id;

obj . tag = el.tagName;

obj. width = el . offsetWidth; ;

obj. height = el . offsetHeight ;

var rect = el . getBoundingClientRect ( ) ;

obj.pos left = rect. left;

obj.pos top = rect. top;

obj . sre = el.src;

obj. href = el. href;

obj . text = el . innerText;

obj. html = el . innerHTML;

var style = window . getComputedStyle ( el ) ;

obj . font = style . getPropertyValue ( "font-family" ) ; obj . font color = style . getPropertyValue ( "color ") ; obj . background color = style . getPropertyValue ( "background- color" ;

obj . background image = style . getPropertyValue ( "background- image" )

obj . border color = style . getPropertyValue ( "border color") ; return obj ;

}

FOO

return

nd