An online-advertising service like Google AdWords enables advertisers to compete to display advertising copy to users based on predetermined keywords (usually set by the advertisers) that link the copy to the content of web pages (which may include search results) shown to users.
Web pages from Google and other websites allow the online advertising service to select and display the advertising copy, and advertisers pay when users divert their browsing to seek more information about the copy displayed. For example, with the online-advertising service, an advertiser may create an advertisement that indicates what the advertiser offers. The advertiser may then choose one or more keywords that will cause the advertisement to be shown in Google or other search results. The advertiser may set a daily or other budget for displays of the advertisement. When search terms entered by a user for a Google or other web search match the keywords associated with the advertisement, the advertisement may appear above or next to search results shown to the user. The user may then select the advertisement and be directed to a website of the advertiser. The online-advertising service may include features that enable advertisers to target by website type, audience type, or remarketing, helping them to reach more relevant users and more relevant web pages. The online-advertising service may also provide analytic tools to advertisers. Such tools may, for example, track and show an advertiser how many people noticed advertising copy of the advertiser and what percentage click-through to a website of the advertiser or otherwise contact the advertiser.
In particular embodiments, an advertising-analytics service for advertisers and marketers may facilitate the use of one or more online-advertising-service scripts provided by an online-advertising service (e.g., Google Adwords). Such a service may provide an advertiser with an easy-to-use form-based user interface (“UP”) that solicits and receives settings and other inputs from the advertiser and then generates code for an online-advertising-service script based on those inputs. Typically, scripts for an online-advertising service (and their settings) are maintained on the website of the online-advertising service and modifications to the settings of a script must be done by changing the code of the script on the website. In particular embodiments, a script service for advertisers may move all or some of the settings of one or more scripts for an online advertising service to an easy-to-use form-based UI hosted by the script service. Rather than having to know how to write JavaScript to modify the functionality of a script, a user need only know how to fill out a web-based form to change what a script does.
This disclosure contemplates any suitable network 110. As an example and not by way of limitation, one or more portions of network 110 may include an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular-technology-based network, or a combination of two or more of these. Network 110 may include one or more networks 110.
One or more links 170 couple advertisers 120, users 80, web search engines 140, advertising-analytics service 150, and web sites 160 to network 110. This disclosure contemplates any suitable links 170. In particular embodiments, one or more links 170 include one or more wireline (such as for example Digital Subscriber Line (DSL) or Data Over Cable Service Interface Specification (DOC SIS)), wireless (such as for example Wi-Fi or Worldwide Interoperability for Microwave Access (WiMAX)), or optical (such as for example Synchronous Optical Network (SONET) or Synchronous Digital Hierarchy (SDH)) links. In particular embodiments, one or more links 170 each include an ad hoc network, an intranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the Internet, a portion of the PSTN, a cellular-technology-based network, a satellite-communications-based network, another link 170, or a combination of two or more such links 170. Links 170 need not necessarily be the same throughout network environment 100. One or more first links 170 may differ in one or more respects from one or more second links 170.
A user 80 may be an individual (human user), an entity (e.g., an enterprise, business, or third-party application), or a group (e.g., of individuals or entities) that uses the Internet. User 80 may browse the Internet and visit websites either by entering a uniform resource locator (URL) into an Internet browser (e.g., CHROME), or by entering a search query into a web search engine. If user 80 enters a search query into a web search engine 140, the web search engine 140 may search the Internet for web pages (hosted by websites 160) that are relevant to the search query. Web search engine 140 may then display a search results page comprising a list of organic and non-organic search results. The organic search results may be references that the web search engine has identified as being particularly relevant to the search query entered by user 80. The non-organic search results may be paid advertisements or sponsored listings that an online advertising service (e.g., GOOGLE ADWORDS) has identified after calculating the “Adrank” of several paid advertisements. The Adrank of a particular advertisement determines its position on the search results page. It is calculated by multiplying the bid amount (often referred to as a “maximum cost per click” (max. CPC)) with the advertisement's keyword Quality Score. Thus, Adrank=max CPC×Qualityscore. An advertisement's Quality Score depends on several factors, including keywords associated with the advertisement, the click-through rate (CTR) for various components of the advertisement or account (e.g., CTR of keywords, CTR of the ads and keywords for the account, CTR of a specific URL), the quality of a landing page associated with the advertisement, the relevancy of the keywords to the search query, geographic performance, and the type of device on which the search was performed. Thus, Adrank=max CPC×Qualityscore. Advertisements with a higher Adrank are placed higher on the search results page. Thus, advertisers 120 may wish to optimize their Adrank in order to receive a higher ad position and ultimately maximize conversions. A conversion may occur when a user 80 switches from being a site visitor into a paying customer.
The online advertising service may be operated by web search engine 140. Advertiser 120 may have an online account with the online advertising service to place non-organic search results on the search results page. In addition to placing advertisements based on Adrank, the online advertising service may additionally provide data to advertiser 120 so that advertiser 120 may make better advertising decisions. Such advertising decisions may comprise selecting more relevant keywords, changing bid amounts for particular keywords, changing bid amounts based on the day of the week or the time of the day, changing bid amounts based on the geographic region of a search query, among others. Often, the data provided by the online advertising service may be complex or disorganized. Advertising-analytics service 150 may aid in the analysis of such advertising information by providing tools to advertisers 120 who subscribe to advertising-analytics service 150. Herein, such advertisers 120 may be referred to as subscribers. The tools provided to the subscribers by advertising-analytics service 150 may help the subscribers interpret the advertising information by providing visualizations of various metrics. The tools may also provide one or more recommendations for optimizations a subscriber may make to its advertising strategy. In particular embodiments, the advertising-analytics service 150 may provide one or more interfaces between the web search engine 140 and the subscriber. This interface may be provided to make it easier for subscribers to interact with the advertising information and make changes to their account with the online advertising service. These tools, recommendations, and interfaces will be discussed in more detail below. Example metrics that advertising-analytics service 150 may provide to a subscriber are discussed in the following table:
Although Table 1 describes particular metrics that advertising-analytics service 150 may provide to a subscriber, this disclosure contemplates any suitable metrics that advertising-analytics service 150 may provide to a subscriber. Moreover, although Table 1 provides particular definitions of particular metrics that advertising-analytics service 150 may provide to a subscriber, this disclosure contemplates any suitable definitions of any suitable metrics that advertising-analytics service 150 may provide to a subscriber.
In particular embodiments, advertising-analytics service 150 for advertisers and marketers may facilitate the use of online-advertising-service scripts provided by an online-advertising service. Such a service may provide an advertiser with an easy-to-use form-based UI that solicits and receives settings and other inputs from the advertiser and then generates code for an online-advertising-service script based on those inputs. Typically, scripts for an online-advertising service (and their settings) are maintained on the website of the online-advertising service and modifications to the settings of a script must be done by changing the code of the script on the website. In particular embodiments, advertising-analytics service 150 may move all or some of the settings of one or more scripts for an online advertising service to an easy-to-use form-based UI hosted by advertising-analytics service 150. Rather than having to know how to write JavaScript to modify the functionality of a script, a user need only know how to fill out a web-based form to change what a script does. Although this disclosure describes using online-advertising-service scripts in a particular manner, this disclosure contemplates using online-advertising-service scripts in any suitable manner.
In particular embodiments, advertising-analytics service 150 may enable users to maintain different settings to be applied to different accounts with an online-advertising service. Normally, that would entail making multiple copies of the same script. With the script service maintained by advertising-analytics service 150, the user may fill out a form from every account that the user wants the script to run on. Advertising-analytics service 150 may provide generic code that is added to the accounts, and, whenever the script runs, advertising-analytics service 150 may give the online-advertising service the correct settings for the account so that the script can do different things for every account.
In particular embodiments, advertising-analytics service 150 may store the code that executes in an online-advertising service account. As a result, advertising-analytics service 150 may make changes to the code to improve it and users may not need to update anything on their end; they will always be running on the latest code. In particular embodiments, advertising-analytics service 150 may collect logs of all script executions on its website, which may make it easier for users to stay informed about changes to their accounts. Although this disclosure describes storing code in a particular manner, this disclosure contemplates storing code in any suitable manner.
In particular embodiments, advertising-analytics service 150 may provide generic code for multiple scripts. When this code is added to an online-advertising-service account, it may not have to be updated. Users may make changes to what the code does by updating the settings in the form-based UI of the script service. The script service may make changes to the functionality of the code and a user may automatically be using the latest version every time the user runs a script through the script service. Although this disclosure describes updating generic code in a particular manner, this disclosure contemplates updating generic code in any suitable manner.
In particular embodiments, an example user flow of an example form-based UI of advertising-analytics service 150 may follow the following steps. First, the user may go to a website of advertising-analytics service 150 and use a form to choose what a script will do. This may be repeated for additional online-advertising-service-accounts or settings may be copied using the functionality of advertising-analytics service 150. Next, the user may receive from advertising-analytics service 150 a generic online-advertising-service script. Next, the user may copys-and-paste this script into the user's online-advertising service account. The script may be put in an individual account or put in a master account for multiple account. Next, the user may set a schedule for the script to run (e.g. a Cron job). Next, the user may retrieve results from execution of the script on the website of the script service. Next, the user may make changes to the functionality of the script (if desired) using the same form as in the first step. After the settings are changed, the script need not be reinstalled. Although this disclosure contemplates a form-based user flow in a particular manner, this disclosure contemplate a form-based user flow in any suitable manner.
In particular embodiments, when a script from advertising-analytics service 150 runs on an online-advertising service, the script may tell the advertising-analytics service 150 that it wants to run on a particular online-advertising-service account. Advertising-analytics service 150 then returns the settings for that account for the script and the generic code associated with the script. The online-advertising service may then execute the script. Advertising-analytics service 150 may then capture logs from the online-advertising service.
In particular embodiments, the user may define where the new advertisements will be stored—in which campaigns and which ad groups. The user may select existing campaigns or create a new campaign. As an example and not by way of limitation, if the user already has a campaign for used cars, the user may simply type in “Used Cars” in the “Existing Campaign Name” field, and then all the new ads may go to that existing campaign. Although this disclosure describes storing advertisements in a particular manner, this disclosure contemplates storing advertisements in any suitable manner.
In particular embodiments, hard coded text may be added (i.e., static insertion). For example, the text could say “buy a” and then the user may insert a dynamic insertion of make and model. This may result in, for example, “Buy a Toyota Camry,” based on the line in the spreadsheet. In “Description line 1” the following may be entered: “{param2:[stockLevel]} [model]s available.” Here, the stock level may be dynamically inserted and the model may be dynamically inserted. An “s” has been statically inserted after the dynamically inserted model, so as to show plurality. The above text in “Description line 1” might return a line that says “17 Camrys available.” In “Description line 2” the following may be typed: “Starting at ${param1:[price]}. Buy Today!” Here, the price has been dynamically inserted, and the rest of the text may be statically inserted. These may be dynamic insertion parameters from Google and may be used for numerical values that dynamically change. As an example and not by way of limitation, the above text in “Description line 2” may return a line that says “Starting at $12,500. Buy Today!” In particular embodiments, for destination URL, the user may use dynamic insertion to construct the URL that takes a consumer to the correct make and model for the car on the user's website. In particular embodiments, the user may select whether or not to make the script mobile preferred. The user may want to run multiple ad texts in each ad group. This may be accomplished by clicking on “Add new ad template.” Although this disclosure describes inserting static and dynamic data in a particular manner, this disclosure contemplates inserting static and dynamic data in any suitable manner.
In particular embodiments, the user may also create a default advertisement text which has no dynamic insertion parameters. This may be necessary because some online advertising services may have word limits or other inhibiting settings on advertisement campaigns. By creating a default ad text, the user may increase the likelihood of creating ad text that fits within the limits for every ad group. Although this disclosure describes providing static insertion parameters in a particular manner, this disclosure contemplates providing static insertion parameters in any suitable manner.
This disclosure contemplates any suitable number of computer systems 800. This disclosure contemplates computer system 800 taking any suitable physical form. As example and not by way of limitation, computer system 800 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, a tablet computer system, an augmented/virtual reality device, or a combination of two or more of these. Where appropriate, computer system 800 may include one or more computer systems 800; be unitary or distributed; span multiple locations; span multiple machines; span multiple data centers; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 800 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not by way of limitation, one or more computer systems 800 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems 800 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
In particular embodiments, computer system 800 includes a processor 802, memory 804, storage 806, an input/output (I/O) interface 808, a communication interface 810, and a bus 812. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
In particular embodiments, processor 802 includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor 802 may retrieve (or fetch) the instructions from an internal register, an internal cache, memory 804, or storage 806; decode and execute them; and then write one or more results to an internal register, an internal cache, memory 804, or storage 806. In particular embodiments, processor 802 may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor 802 including any suitable number of any suitable internal caches, where appropriate. As an example and not by way of limitation, processor 802 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction caches may be copies of instructions in memory 804 or storage 806, and the instruction caches may speed up retrieval of those instructions by processor 802. Data in the data caches may be copies of data in memory 804 or storage 806 for instructions executing at processor 802 to operate on; the results of previous instructions executed at processor 802 for access by subsequent instructions executing at processor 802 or for writing to memory 804 or storage 806; or other suitable data. The data caches may speed up read or write operations by processor 802. The TLBs may speed up virtual-address translation for processor 802. In particular embodiments, processor 802 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor 802 including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor 802 may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one or more processors 802. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
In particular embodiments, memory 804 includes main memory for storing instructions for processor 802 to execute or data for processor 802 to operate on. As an example and not by way of limitation, computer system 800 may load instructions from storage 806 or another source (such as, for example, another computer system 800) to memory 804. Processor 802 may then load the instructions from memory 804 to an internal register or internal cache. To execute the instructions, processor 802 may retrieve the instructions from the internal register or internal cache and decode them. During or after execution of the instructions, processor 802 may write one or more results (which may be intermediate or final results) to the internal register or internal cache. Processor 802 may then write one or more of those results to memory 804. In particular embodiments, processor 802 executes only instructions in one or more internal registers or internal caches or in memory 804 (as opposed to storage 806 or elsewhere) and operates only on data in one or more internal registers or internal caches or in memory 804 (as opposed to storage 806 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple processor 802 to memory 804. Bus 812 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside between processor 802 and memory 804 and facilitate accesses to memory 804 requested by processor 802. In particular embodiments, memory 804 includes random access memory (RAM). This RAM may be volatile memory, where appropriate Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. This disclosure contemplates any suitable RAM. Memory 804 may include one or more memories 804, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
In particular embodiments, storage 806 includes mass storage for data or instructions. As an example and not by way of limitation, storage 806 may include a hard disk drive (HDD), a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage 806 may include removable or non-removable (or fixed) media, where appropriate. Storage 806 may be internal or external to computer system 800, where appropriate. In particular embodiments, storage 806 is non-volatile, solid-state memory. In particular embodiments, storage 806 includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these. This disclosure contemplates mass storage 806 taking any suitable physical form. Storage 806 may include one or more storage control units facilitating communication between processor 802 and storage 806, where appropriate. Where appropriate, storage 806 may include one or more storages 806. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.
In particular embodiments, I/O interface 808 includes hardware, software, or both, providing one or more interfaces for communication between computer system 800 and one or more I/O devices. Computer system 800 may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between a person and computer system 800. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces 808 for them. Where appropriate, I/O interface 808 may include one or more device or software drivers enabling processor 802 to drive one or more of these I/O devices. I/O interface 808 may include one or more I/O interfaces 808, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
In particular embodiments, communication interface 810 includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) between computer system 800 and one or more other computer systems 800 or one or more networks. As an example and not by way of limitation, communication interface 810 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface 810 for it. As an example and not by way of limitation, computer system 800 may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, computer system 800 may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these. Computer system 800 may include any suitable communication interface 810 for any of these networks, where appropriate. Communication interface 810 may include one or more communication interfaces 810, where appropriate.
Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.
In particular embodiments, bus 812 includes hardware, software, or both coupling components of computer system 800 to each other. As an example and not by way of limitation, bus 812 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these. Bus 812 may include one or more buses 812, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.
Herein, a computer-readable non-transitory storage medium or media may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.
Herein, “or” is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A or B” means “A, B, or both,” unless expressly indicated otherwise or indicated otherwise by context. Moreover, “and” is both joint and several, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A and B” means “A and B, jointly or severally,” unless expressly indicated otherwise or indicated otherwise by context.
The scope of this disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments described or illustrated herein that a person having ordinary skill in the art would comprehend. The scope of this disclosure is not limited to the example embodiments described or illustrated herein. Moreover, although this disclosure describes and illustrates respective embodiments herein as including particular components, elements, feature, functions, operations, or steps, any of these embodiments may include any combination or permutation of any of the components, elements, features, functions, operations, or steps described or illustrated anywhere herein that a person having ordinary skill in the art would comprehend. Additionally, although this disclosure describes or illustrates particular embodiments as providing particular advantages, particular embodiments may provide none, some, or all of these advantages.
Number | Date | Country | |
---|---|---|---|
62245258 | Oct 2015 | US |