ADVERTISING UNIT VIEW AREA

A system may generate a view area based on a field of view of an advertising unit, a sight distance from the advertising unit and a view direction associated with the advertising unit; identify a set of road segments that fall within the view area of the advertising unit; and associate the advertising unit as being viewable to mobile subscribers of a network service provider traversing the identified set of road segments. The system may further receive a request for a report including information regarding an audience available to the advertising unit over a period of time; query a data warehouse for aggregate subscriber data associated with locations of the set of road segments over the period of time; and generate the report regarding the audience for the ad unit over the period of time based on the retrieved aggregate subscriber data.

BACKGROUND

Advertisements may be placed in public locations so that they may be viewed by those who pass by the advertisements. For example, advertisers may buy advertisement space on billboards or bus stop street furniture to build brand awareness. However, it may be difficult for advertisers to determine how large of an audience is actually able to view a particular advertisement over a period of time. Moreover, it may be difficult for the advertisers to gain information regarding the demographic or other attributes of the audience who may be able to view the advertisement.

DETAILED DESCRIPTION

An advertising system may maintain information regarding structures on which advertisements may be placed. These structures may be referred to as ad units. The ad units may be placed within view of various road segments, such that people who pass by the units may see content displayed on the ad units. The advertising system may be further configured to generate reports that provide information regarding the audience of people who may view the ad units. To do so, the advertising system may be configured to determine which road segments are within view of what ad units, determine which mobile subscribers traversed the determined road segments, and compile a report including number and demographic attributes of the ad unit audience based on the traversing mobile subscribers.

The advertising system may utilize a segment identifier module of an ad unit reporting device to determine from what road segments an ad unit may be viewable. For example, based on ad unit attributes such as latitude, longitude, ad unit orientation, advertisement width and height, the segment identifier module may be configured to determine a field of view, sight distance, and ad unit orientation information. Using the field of view, sight distance, and orientation, the segment identifier module may compute a view area expanding out from the advertising unit. The segment identifier module may identify a set of road segments that are included within the view area, and may further filter the set of road segments to avoid double-counting and to ensure ad unit visibility from the road segments.

The advertising system may further utilize a data warehouse to aggregate data regarding mobile subscribers who traverse road segments. For example, a network service provider may collect data when mobile subscriber devices send or receive calls, send or receive text messages, or browse or use mobile applications on their mobile devices (e.g., what sites were visited, what applications were used, lengths of time spend performing the usage). The network service provider may further collect information indicative of where the mobile subscriber devices were located during the network usage, thereby generating location information indicative of which subscribers traversed what road segments at what times. Moreover, the data warehouse may be further configured to analyze the collected web and application usage data to determine preferences or other characteristics of the subscribers based on what websites or other content the subscribers were accessing on their subscriber devices. By combining the application usage data locations with the network usage data and web and other supplemental information such as subscriber demographics, the data warehouse may accordingly generate aggregate subscriber data including demographic information and other preferences of the audience of subscribers who traverse the road segments.

Based on the aggregate subscriber data and the road segments associated with the ad units, an ad unit subscriber report module of the ad unit reporting device may be configured to respond to requests for reports regarding the demographics, favorite websites, or other aspects of the audience who passes by an ad unit over various points of time (e.g., per day, on a particular day, on weekends, on Monday nights, etc.). The ad unit reporting device may accordingly identify the set of road segments associated with the ad unit, query for subscriber information for those subscribers associated with the road segment locations over the designated period of time, and provide a report including counts, demographics, other information regarding the ad unit audience. To ensure privacy of the subscribers whose information is included in reports, the system may remove subscriber identifiable information (e.g., names and phone numbers) from the subscriber information.

FIG. 1illustrates an exemplary system100for providing ad unit subscriber reports138for ad units based on collected data from subscriber network110devices. The system may include a map data server104configured to provide road segment data102and an ad unit server108configured to provide ad unit data106. The system100may further include a subscriber network110configured to provide communications services to a plurality of subscriber devices, and to generate network usage data114and web and application usage data118based on the provided services. The data warehouse126may be configured to assign location attributes116to the network usage data114, assign subscriber attributes120to the received web and application usage data118, receive demographic information124from supplemental data sources122and process the received data into aggregate subscriber data128matched by subscriber identifiers112. The system100may also include an ad unit reporting device130configured to utilize a segment identifier module132to receive road segment data102and ad unit data106, and generate ad unit segment data134indicative of which ad units are viewable from what road segments. The ad unit reporting device130may also include a report generator module136configured to receive requests for ad unit reports138, and to generate the ad unit reports138based on the aggregate subscriber data128and the ad unit segment data134. The system100may take many different forms and include multiple and/or alternate components and facilities. While an exemplary system100is shown inFIG. 1, the exemplary components illustrated in Figure are not intended to be limiting. Indeed, additional or alternative components and/or implementations may be used.

Road segment data102may be defined as data indicative of a portion of roadway or other path over which a vehicles or pedestrians may be capable of traversing. Road segment data102may include data indicative of one or more of: roadways that may be traversed by automobiles or trucks, sidewalks, bike paths, trolley lines, and light rail lines, as some examples. Exemplary sets of road segment data102may include, for example, the open street map (OSM) data set maintained by the OpenStreetMap Foundation, and the Navteq® map data distributed by the Location & Commerce division of Nokia Corporation. The map data server104may be configured to maintain geographic road segment data102regarding the roads and other pathways that may be traversed. Exemplary elements of geographic road segment data102may include: a unique identifier of the road segment, starting and ending latitude and longitude values for the identified road segment, a road segment direction (e.g., North, South, East, West, South by Southwest), a way name (e.g., a name of the road in which the road segment is included), a way identifier (e.g., a unique map data identifier corresponding to the indicated way name), a highway type (e.g., whether the indicated road segment is a residential road, a primary road or secondary road), a speed limit of the road segment (e.g., in miles per hour), and a segment length of the indicated road segment (e.g., in meters), as some examples. As the road segments may be directional, a two way segment of roadway may include two separate segments and segment identifiers, one for each direction.

An ad unit may include a structure on which advertisements may be placed. The ad units may be placed within view of various portions of roadway or other paths, with the intent that people who pass by the ad units may see the content displayed on the ad units. Exemplary ad units may include billboards and street furniture, such as advertisements on bus stops or benches. The ad unit server108may be configured to maintain ad unit data106regarding the ad units available to the system100. As some non-limiting examples, the ad unit data106may include: an ad unit identifier (e.g., an internal system-defined unique identifier identifying the ad unit), an ad unit code (e.g., an advertiser or other externally-provided code identifying the ad unit), an ad unit direction (e.g., a direction in which the ad unit is facing, sometimes encoded as a direction abbreviation such as North, South, East, West, South by Southwest), an ad unit name (e.g., a friendly name to include in a user interface apart from ad unit number), size information about advertisements carried by the ad unit such as width and height, height of the ad unit over ground level, type of ad unit (e.g., billboard, street furniture) and information indicative of the content or advertiser whose content is included on the ad unit.

The subscriber network110may provide communications services, such as packet-switched network services (e.g., Internet access, VoIP communication services) and location services (e.g., device positioning), to devices connected to the subscriber network110. Exemplary subscriber networks110may include a VoIP network, a VoLTE (Voice over LTE) network, a cellular telephone network, a fiber optic network, and a cable television network, as some non-limiting examples.

Subscriber devices on the subscriber network110may be associated with subscriber identifiers112used to unique identify the corresponding devices. Subscriber identifiers112may include various types of information sufficient to identify the identity of a subscriber or a subscriber device over the subscriber network110, such as mobile device numbers (MDNs), mobile identification numbers (MINs), telephone numbers, common language location identifier (CLLI) codes, Internet protocol (IP) addresses, and universal resource identifiers (URIs), as some non-limiting examples.

The subscriber network110may generate data records representing usage the subscriber network110by the subscriber devices, for purposes including billing and network traffic management. Exemplary network usage of the subscriber network110may include placing or receiving a telephone call, sending or receiving a text message, using the web browser to access Internet web pages, and interacting with a networked application in communication with a remote data store. A usage data record of a subscriber making use of the subscriber network110may be referred to herein as a transaction or transaction record. Usage records of transactions may include information indexed according to the subscriber identifier112of the device using the subscriber network110. For example, data records of phone calls and SMS messages sent or received by a subscriber device may include the MDN of the originating device and of the destination devices.

The subscriber network110may be configured to capture network usage data114from various network elements. Network usage data114may include data captured when a subscriber is involved in a voice call over the subscriber network110, sends or receives a text message over the subscriber network110, or otherwise makes use of a data or voice service of the network to communicate with other subscriber devices accessible via the subscriber network110. The network elements of the subscriber network110may include a collection of network switches or other devices throughout the subscriber network110configured to track and record these subscriber transactions, e.g., regarding usage of the subscriber network110services by subscriber communications devices for billing purposes. This data collected by the network switches or other devices may include, for example, bandwidth usage, usage duration, usage begin time, usage end time, line usage directionality, endpoint name and location, and quality of service, as some examples. The network usage data114may use the collected data to identify and include information regarding when the communications took place, as well as identifiers of the network switches or other devices throughout the subscriber network110from which location information may be determined. It should be noted that approximate times may be sufficient for inclusion in the network usage data114(e.g., rounded to the nearest second or five seconds), rather than the full precision of time information that may be captured by the subscriber network110. Accordingly, the network usage data114may include records of subscriber actions typically recorded by the subscriber network110in the ordinary course of business.

The subscriber network110may further include a location identification module configured to receive network usage data114from the various network switches of the subscriber network110, and determine the location fixes for collected items of network usage data114, such as for calls or text messages. To do so, the location identification module may locate the network device; associate the device with a location (e.g., a venue, point of interest, or roadway segment); and extrapolate the total population and demographic composition of the subscribers of the network devices to correspond to the population at large.

One exemplary method for determining location information to include in network usage data114may be to use advanced forward link trilateration (AFLT), whereby a time difference of arrival technique is employed based on responses to signals received from multiple nearby base stations. The distances from the base stations may be estimated from round trip delay in the responses, thereby narrowing down the location information without requiring subscriber devices to be capable of global positioning systems (GPS) or other types of location identification. If available, GPS may additionally or alternately be used to provide location fixes for network usage data114. Another method for determining location information to include in network usage data114is by way of identification of a communication being served by an antenna system configured to operate in a confined and specific area, such as a section of a stadium or other venue. For example, identifying that a subscriber device is being served by one of the antenna systems may allow for determination of location data regarding the subscriber position within the venue with relatively high accuracy and precision.

The location fixes may include data such as latitude/longitude, a timestamp, a precision value (e.g., radius in meters), and an identifier of the associated subscriber device. The precision value of the location fixes may vary according to the precision of the mechanism used to determine the location of the subscriber device. For example, a GPS-derived location may include a precision value of approximately 5-30 meters, an AFLT-derived location may include a precision value of approximately 30-200 meters, and a time difference of arrival-derived location may include a precision value of approximately 100-200 meters, as some examples.

The location identification module configured may identify and associate the location fixes with the captured network usage data114to indicate locations of the subscriber devices when the records of network usage data114were captured. For example, the location identification module may be configured to associate the received network usage data114with corresponding location attributes116of roadway segment data102, geo-fence information related to the location of the underlying call or subscriber network110use, or associations of the transaction record with a point of interest, such as a store or other landmark at or nearby the indicated location.

The location identification module may be configured assign the network usage data114with roadway segment data102by computing a point-to-line distance between the determined location fixes and the roadway segment data102. The location identification module may also be configured to perform path analysis to find intermediate roadway segments of roadway segment data102, such as by handling the road segment data102as a graph and extrapolating an optimal path (e.g., in terms of distance, time, etc.) between the identified roadway segment data102based on the time, location, and precision information of the available location fixes.

The subscriber network110may also be configured to capture web and application usage data118from various network elements. These network elements may include a collection of regional distribution centers or other devices throughout the subscriber network110containing equipment used to complete wireless mobile data requests to data services, such as websites or data repositories feeding data to device applications. The distribution centers may be configured to track subscriber transactions and record web and application usage data118regarding Internet usage of subscriber network110services by subscriber communications devices, e.g., as part of tracking subscriber usage to facilitate billing. In some cases, the distribution centers may be configured to perform more detailed data gathering than required for billing purposes, such as deep packet inspection to obtain details of hypertext transfer protocol (HTTP) header information or other information being requested or provided to the subscriber devices of the subscriber network110. Thus, the distribution centers may be configured to capture web and application usage data118related to mobile internet usage by network service provider subscribers including data such as: end time of receiving information from a uniform resource locator (URL) address, duration of time spent at the URL, a (hashed or otherwise encrypted) identifier of the subscriber MDN, an indication of the HTTP method used (e.g., GET, POST), the URL being accessed, user agent strings (e.g., including device operating system, browser type and browser version), an indication of content type (e.g., text/html), a response code resulting from the HTTP method, a number bytes sent or received, an indication of a type of sub-network over which the usage was made (e.g., 3G, 4G), indications of usage of mobile applications, lengths of time spend performing browsing and application use, number of application downloads, and network topology location where the URL was accessed or the application was used or downloaded.

The subscriber network110may further include analytics functionality configured to assign categories to the URLs and applications used (e.g., “news”, “sports”, “real estate”, “social”, “travel”, “business”, “automotive”, etc.). For example, a visit to the CNN website may be assigned to a “news” category, while a visit to the ESPN website may be assigned to a “sports” category. The analytics functionality may be further configured to assign subscriber attributes120to the web and application usage data118records based on the category analysis. A subscriber attribute120may be indicative of a preference of the subscriber for content in a particular category of content. A subscriber may be associated with zero or more subscriber attributes120. For example, the analytics functionality may analyze the processed web and application usage data118for a subscriber (e.g., keyed to a subscriber identifier112) over a period of time (e.g., per day) to derive subscriber attributes120for that subscriber's records over the time period. For instance, a subscriber who has browsed several websites within the “sports” category during the day might be associated with a “sports enthusiast” subscriber attribute120. As another example, a subscriber who frequents travel websites may be associated with a “business travel” subscriber attribute120. As yet a further example, a subscriber who frequents discount websites may be associated with a “discount shopper” subscriber attribute120. The analytics functionality may utilize various heuristics to determine how much subscriber activity may be required to associate a subscriber with a category. For example, the analytics functionality may utilize a minimum threshold number of visits to websites in a category to associate the subscriber with that category, or a minimum threshold percent of visits to websites in the category to associate the subscriber with that category. In some cases, the analytics functionality may require subscriber activity for a category in a plurality of periods of time in order to associate a subscriber with a category. Moreover, the analytics functionality may update subscriber attributes120associated with the subscribers based on data received for later periods of time.

The system100may further include various additional supplemental data sources122configured to provide supplemental information124to the system100apart from subscriber usage of the subscriber network110. As one example, a supplemental data source122may be configured to provide supplemental information124indicative of demographics regarding residents (e.g., census information, third-party compiled information from a vendor such as Experian™ or Acxion™), in many cases broken down geographically (e.g., by state, zip code, Nielson designated market areas, etc.). As other examples, the supplemental data sources122may be configured to provide supplemental information124regarding subscribers based on their attributes (e.g., age, gender, race, income, primary language), as well as supplemental information124including road segment traffic count information for use in analysis of drivers or other travelers. As yet a further example, a supplemental data source122may include billing information regarding customer accounts of the subscriber network110that may include address, age, gender, or other accountholder information relevant to the system100.

The data warehouse126may be configured to receive and maintain network usage data114and web and application usage data118from the subscriber network110as well as supplemental information124from the supplemental data sources122. Before transmission to the data warehouse126, the subscriber network110may be configured to utilize a hashing module to convert subscriber identifiers104included in the network usage data114and web and application usage data118(e.g., customer mobile numbers, origination MIN, dialed digits) into hashed identifiers using a pre-defined two-way encryption methodology. The data warehouse126may be configured to decrypt the data using the methodology, to allow for secure transmission of the network subscriber data from the subscriber network110to the data warehouse126.

The data warehouse126may be further configured to correlate the received data by subscriber identifier112(e.g., MDNs of the subscriber devices, subscriber names, etc.), thereby providing combined information for the subscribers including subscriber location attributes116as well as related to subscriber attributes120and demographics. This correlated data may be referred to as aggregate subscriber data128. The data warehouse126may be further configured to ensure subscriber anonymity in the aggregate subscriber data128, for example, by removing subscriber identifiers112from the aggregate subscriber data128.

The ad unit reporting device130may be configured to utilize a segment identifier module132to receive the road segment data102, receive the ad unit data106, and determine from which road segments the ad units are viewable. The associated road segments for the ad unit may be referred to as ad unit segment data134, and may be maintained by the ad unit reporting device130(or a device accessible to the ad unit reporting device130) for further use. For example, based on ad unit data106such as latitude, longitude, orientation, width, height, and ad unit type, the segment identifier module132may be configured to determine a field of view, sight distance, and ad unit orientation information. Using the determined field of view, sight distance, and ad unit orientation, the segment identifier module132may generate a view area emanating from the ad unit. The segment identifier module132may accordingly identify the set of road segments to include in the ad unit segment data134for the ad unit as those that are included within the view area. The segment identifier module132may be configured to filter the ad unit segment data134to avoid double-counting and to ensure ad unit visibility from the identified road segments of the road segment data102.

The ad unit segment data134may include at least a subset of the elements of ad unit data106of the ad unit for which the road segments are associated. The ad unit segment data134may also include information about the road segments associated with the ad unit, such as: a target street name (e.g., a name of the closest or a closest large street for which subscriber data is targeted to be included), a target street name identifier (e.g., an identifier of the indicated target street name), a unique identifier of the road segment of the target street, starting and ending latitude and longitude values for the identified road segment (e.g., useful to find the intersections and the road segments entering and leaving the intersection), a road segment direction (e.g., information specifying the direction of the road segment, useful in comparing road segment direction to ad unit direction), a way name (e.g., a name of the road in which the road segment is included, not of the road segment, useful to cull multiple identified sub-segments of a single road), a way identifier (e.g., a unique map data identifier corresponding to the indicated way name), a highway type (e.g., whether the indicated road segment is a residential road, a primary road or secondary road), a speed limit of the road segment (e.g., in miles per hour), a segment length of the indicated road segment (e.g., in meters), a distance from the indicated ad unit to the indicated road segment (e.g., the distance in meters between the ad unit and a closest point of the identified road segment, useful to eliminate road segments beyond a distance from the ad unit), an angle from the ad unit (e.g., from a midpoint of the ad unit, useful to determine whether the ad unit is viewable from the road segment), an indication of whether the traffic flow over the segment originates inside or outside the area in which aggregate subscriber data128may be retrieved, an indication of whether the traffic flow over the segment terminates inside or outside the view area, an intersection identifier (e.g., an identifier of the intersections ordered in terms of increasing distance from the ad unit, useful to choose a name to associate with the ad unit), a road segment type (e.g., identifying whether the road segment is entering or exiting the indicated intersection).

Each entry of the ad unit segment data134may also include information about whether the road segments should be including in audience determinations for the ad unit, such as: an include indication (e.g., a binary yes/no encoding, ‘KEEP’ signifying that the identified road segment should be utilized in determining audience information for the ad unit and ‘DROP’ otherwise, etc.) and an include reason including a description or identifier of a reason why the indicated road segment is or is not included. For included road segments, an exemplary reason for inclusion may be that the entry is a “First road segment of the same way name driving into intersection.” For excluded road segments, an exemplary exclude reason may be one of: “Dropped to avoid double counting. Road segment with the same way name already accounted for”, “First road segment of the same way name driving away from intersection”, “Ad unit facing direction and road segment direction same” and “Distance to the ad unit greater than sight distance.”

The ad unit reporting device130may be further configured to utilize a report generator module136to receive the aggregate subscriber data128, receive a request for an ad unit report138regarding the audience of an ad unit, and retrieve the ad unit segment data134associated with the ad unit. The report generator module136may be further configured to query the aggregate subscriber data128for subscriber information according to the ad unit segment data134, and to provide the ad unit report138responsive to the request based on the resultant subscriber information. The generated ad unit report138may accordingly include audience counts and information, such as counts of audience members within various demographic categories or having certain identified interests. An advertiser may receive the ad unit report138, and may use the information to determine whether to place an ad on the ad unit or to analyze the reach of an advertisement placed on the ad unit.

FIG. 2Aillustrates an exemplary view area200for an ad unit. The view area200may be computed by the segment identifier module132as an overlay over plotted road segment data102. The segment identifier module132may capture which road segments fall within the view area200, and may thereby determine the road segments from which the ad unit is visible. While the view area200and road segments are illustrated graphically inFIG. 2Afor sake of illustration, it should be noted that the computation of the view area200and included road segments may be computed algorithmically (e.g., using trigonometric mathematics library code), without requiring visualization.

The segment identifier module132may determine a sight distance202(illustrated as distance A) and a field of view angle204(illustrated as angle B) in order to generate the view area200. As one example, the segment identifier module132may use a default sight distance202and a default field of view angles204to generate the view area200. For instance, the segment identifier module132may use a default sight distance202of one hundred and seventy five (175) meters, and a default field of view angle204of thirty (30) degrees each side of the head-on sight distance, forming an arc of sixty (60) degrees.

As another example, the segment identifier module132may determine the sight distance202and field of view angle204based on attributes of the ad unit data106, such as width of the advertising unit, height of the advertising unit, type of structure on which the advertising unit is placed (e.g., billboard, street furniture such as a bus stop shelter or a bench, etc.), and technology of the ad unit (e.g., LED display, OLED display, paper image, etc.). For instance, ad units located at a greater height (e.g., taller billboards) may be assigned a greater sight distance202and/or field of view angle204than ad units located at a lesser height (e.g., a bus stop shelter). As another possibility, taller or wider ad units may be assigned relatively greater sight distances202and/or field of view angles204than shorter or narrower ad units. As yet a further possibility, ad units in more hilly, urban, or cluttered terrain may be assigned lesser sight distances202and/or narrower field of view angle204.

Based on the determined sight distance202and field of view angle204, the segment identifier module132may be configured to generate the view area200. The view area200may be generated, in the direction that the ad unit faces, as an area bounded by an arc formed by a horizon that is the sight distance202away from a horizontal midpoint of the advertisement face of the ad unit, centered around the view direction of the ad unit (illustrated as due North). As shown inFIG. 2A, the view area200includes a smooth horizon arc (illustrated as horizon line C). In other examples, such as illustrated inFIG. 2B, to improve the speed of calculation the view area200, horizon line C may be approximated as a triangle fan including a set of connected triangles, each covered a subset of the degrees of the field of view angle204(e.g., each covering three degrees of the field of view of the horizon line C). Thus, each triangle in the triangle fan may share a vertex at the horizontal midpoint of the advertisement face of the ad unit and a side with adjacent triangles, where the triangle fan forms the approximated radius of the view area200extending horizontally outward over the road segment data102.

The segment identifier module132may capture which road segments are at least a portion within the view area200and may designate that the ad unit is visible from those included road segments. The determination of which road segments are included in the view area200may be performed using various packages of geographic information system (GIS) software, such as the ArcGIS software package distributed by Esri of Redlands, California. In some cases, the segment identifier module132may apply a minimum threshold amount of roadway distance (e.g., ten meters) that is required to be within the view area200before including the road segment, while in other cases the minimum threshold may be any distance (e.g., greater than zero meters). As illustrated, the segment identifier module132may determine that the ad unit is visible from the road segments indicated by road segment data102-A through102-H, but not from the road segments indicated by road segment data102-I and102-J.

The segment identifier module132may be further configured to filter the road segment data102to remove from consideration road segments that should not be tracked. For example, road segment data102may be removed from consideration to avoid over-counting of subscribers who are traveling in a direction in which an ad unit may not be visible, or to avoid double-counting of the same subscribers traveling multiple road segments. For example, the segment identifier module132may remove road segment data102for any road segments that are associated with a direction of travel away from the view direction of the ad unit (e.g., where direction of travel is calculated based on angle between start point and end point of the road segment). As another example, the segment identifier module132may remove road segment data102for any road segments that are headed out of an intersection when the set of road segment data102already indicates all road segments headed into the intersection. As yet a further example, the segment identifier module132may remove road segment data102for any road segments associated with a name of another segment in the set of road segments, which may occur if a road segment splits into multiple sub-segments due to length or geography, not because it is a different path for individuals to traverse.

As an even further example, if the type of an ad unit is identified as being street furniture, then the segment identifier module132may include road segment data102indicative of only the closest road segment to the ad unit. Or, the segment identifier module132may apply different sight distances202to road segment data102based on characteristics of the road segment data102. For instance, road segment data102indicative of road segments with high speed limits (or high average speeds determined from road condition data, such as from real-time traffic speed data provided by various municipalities or services) may be further filtered using a shorter sight distance202to account for their reduced ability to be viewed by drivers.

Many road segments adjacent to ad units are relatively straight, such as highway roadways. Thus, approximating direction of travel calculations based on angle between start point and end point of the road segment may yield good results. However, some road segments may include substantial bends or curves, such as cloverleaf on-ramps or roads having ninety or more degree turns. Road segment data102associated with these segments may include intermediate vertices between a beginning point vertex and an end point vertex of the road segment. This road segment data102may require additional analysis to determine whether the ad unit is actually visible from the road segment, let alone visible for sufficient amount of time to be read by a traveler.

To accomplish the visibility determination for such road segments including multiple intermediate vertices, the segment identifier module132may be configured to iterate through the vertices of the road segment, and, for each portion (e.g., from vertex 0 to vertex 1, from vertex 1 to vertex 2, etc.) the segment identifier module132may determine a direction of travel, a length, and a travel time based on speed limit of the portion and length. Based on the determined data, the segment identifier module132may accumulate the amount of time spent traveling in various directions (e.g., North, East, South, West, South by Southwest, etc.), and may use that information to determine, based on the locations of the ad units, which ad units may be visible to travelers of the road segment. For example, if an ad unit is only visible to a traveler of a road segment for less than a predetermined amount of time (e.g., half a second, one second, three seconds, etc.), then that road segment may be filtered out of inclusion for use in determining audiences for that ad unit.

In some cases, rather than excluding a road segment due to limited time of visibility of an ad unit, the segment identifier module132may be configured to provide a scaling factor for potential ad unit impressions based on an amount of time that the ad unit is visible to travelers of a particular road segment. The amount of time that the ad unit is visible may be computed based on the length of the road segment and the speed limit or average speed of the road segment. For example, the segment identifier module132may be configured to determine a scaling factor of 0.5 for road segments from which the ad unit is visible for less than a second, a scaling factor of 0.75 for road segments road from which the ad unit is visible for a second or more but less than two seconds, and a scaling factor of 1 for road segments visible for at least two seconds. As other possibilities, the scaling factor may be determined based on road segment length independent of speed limit or average speed, or speed limit or average speed independent of road segment length.

FIG. 3illustrates exemplary filtering of sets300-A through300-I (collectively300) of road segment data102identified as within view areas200of exemplary ad units. For each of the exemplary sets300, arrows indicated in dotted lined may be filtered out by the segment identifier module132, while the arrows indicated by solid lines may remain included in the sets300of road segments. It should be noted that the exemplary sets300only illustrate traffic flows entering intersections, because to avoid double-counting the segment identifier module132may be configured to remove traffic flows exiting the intersections. Moreover, it should further be noted that various exemplary sets300are merely exemplary, and other situations including rotation, mirroring, and combination of the sets300are possible.

For the exemplary road segments of set300-A, northbound, southbound, and westbound road segments may be included in the ad unit segment data134for an ad unit, but the eastbound road segment may be filtered out as being in the same direction as the ad unit. Similarly, for the set300-B, the eastbound road segment may also be filtered out as being in the same direction as the ad unit, despite the ad unit being on the opposite corner of the intersection. For the set300-C, as the ad unit is deemed visible from the northbound, southbound, and westbound flows, all three flows remain in the ad unit segment data134. For the set300-D, the northbound road segment may be filtered out as being in the same direction as the north-facing ad unit. For the set300-E, northbound traffic may be filtered out as being in the same direction as the ad unit, and westbound traffic may be outside of the view area200for the ad unit and not subject to inclusion. For the set300-F, similar to the set300-D, the northbound road segment may be filtered out as being in the same direction as the north-facing ad unit, despite the ad unit being located on the opposite side of the roadway. For the exemplary set300-G and300-H, the northbound flows may be filtered out as being in the same direction as the north-facing ad units, with the southbound flows remaining

FIG. 4illustrates an exemplary process400for association of road segment data102with ad unit data106. The process400may be performed, for example, by the segment identifier module132of the ad unit reporting device130.

At block402, the segment identifier module132determines a sight distance202and a field of view angle204according to attributes of an ad unit data106. As one example, the segment identifier module132may use a default sight distance202of one hundred and seventy five (175) meters, and a default field of view angle204of thirty (30) degrees each side of the head-on sight distance202, forming an arc of sixty (60) degrees. As another example, the segment identifier module132may determine the sight distance202and field of view angle204based on attributes of the ad unit data106, such as width of the advertising unit, height of the advertising unit, and type of structure on which the advertising unit is placed (e.g., billboard, street furniture such as a bus stop shelter or a bench, etc.)

At block404, the segment identifier module132generates a view area200based on the determined sight distance202and field of view angle204. For example, the segment identifier module132may generate the view area200in the direction that the ad unit data106faces, as an arc extending outward from a horizontal midpoint of the advertisement face of the ad unit. In some cases, the view area200may from a smooth arc, while in other cases the view area200may be approximated as a triangle fan including a set of connected triangles each covered a subset of the degrees of the field of view angle204(e.g., a triangle every three degrees).

At block406, the segment identifier module132identifies road segment data102for road segments included within the generated view area200. For example, the segment identifier module132may identify road segment data102indicative of road segments at least a portion within the view area200, and may provisionally designate subject to filtering that the ad unit is visible from those included road segments. In some cases, the segment identifier module132may apply a minimum threshold amount of roadway distance (e.g., ten meters) of the road segment that is required to be within the view area200before including the road segment data102, while in other cases the minimum threshold may be any distance greater than zero.

At block408, the segment identifier module132filters the identified road segment data102to remove road segments that should not be tracked, e.g., to avoid over-counting of subscribers who are traveling in a direction in which the ad unit may not be visible, or to avoid double-counting of the same subscribers traveling multiple road segments. As some examples, the segment identifier module132may filter out road segments associated with a direction of travel away from the view direction associated with an ad unit, road segments headed out of an intersection when the set of road segments includes the road segments headed into the intersection, and road segment associated with a name of another segment in the set of road segments.

At block410, the segment identifier module132stores an association of the filtered road segment data102with the ad unit. The associated road segments for the ad unit may be referred to as ad unit segment data134, and may be maintained by the ad unit reporting device130or a device accessible to the ad unit reporting device130for later use. After the block410, the process400ends.

FIG. 5illustrates an exemplary process500for the creation of an ad unit report138for ad unit data106based on aggregate subscriber data128. The process500may be performed, for example, by the report generator module136of the ad unit reporting device130.

At block502, the report generator module136receives a request for requested ad unit report138regarding an ad unit. For example, an advertiser or potential advertiser may desire an ad unit report138specifying details of the numbers and demographics of the audience who may view one or more ad units during a specified period of time.

At block504, the report generator module136retrieves road segment data102for any road segments associated with the requested ad unit. For example, the report generator module136may retrieve ad unit segment data134associated with the ad unit. The ad unit segment data134may be generated according to the process400discussed in detail above.

At block506, the report generator module136queries aggregate subscriber data128regarding the retrieved road segment data102. For example, the report generator module136may query the data warehouse126for aggregate subscriber data128for subscribers whose time and location information matches that of the retrieved ad unit segment data134and time information specified by the request. The report generator module136may accordingly receive the requested aggregate subscriber data128from the data warehouse126.

At block508, the report generator module136generates the requested ad unit report138. For example, the report generator module136may package the retrieved aggregate subscriber data128into a document or web interface to be provided to the requester of the ad unit report138.

At block510, the report generator module136provides the requested ad unit report138. For example, the report generator module136may return the generated ad unit report138or a link to the generated ad unit report138to the requester of the ad unit report138. After block510, the process500ends.

Thus, the system100may be configured to generate ad unit reports138that provide information regarding the audience of people who may view requested ad units. To do so, the system100may be configured to determine which road segments are within view of what ad units, determine demographics and preferences of subscribers that traversed the determined road segments, and compile an ad unit report138including demographic or other attributes of the ad unit audience. The generated ad unit report138may accordingly include audience counts and information, such as counts of audience members within various demographic categories or having certain identified interests. An advertiser may receive the ad unit report138, and may use the information to determine whether to place an ad on the ad unit or to analyze the reach of an advertisement placed on an ad unit.

Variations on the system100may be possible. As one possibility, generation of ad unit reports138may be enhanced to account for dynamic conditions by performing further filtering of the ad unit segment data134according to real-time data. For example, weather conditions may affect ad unit visibility. If it is snowing, raining, foggy, or there is a high level of smog, then the subscribers may experience a reduced visibility to a shorter sight distance202. To account for this reduced visibility, before querying the aggregate subscriber data128regarding the retrieved road segment data102, the report generator module136may be configured to retrieve the ad unit segment data134for the specified ad units, and further cull the ad unit segment data134to remove segments whose distance from the indicated ad unit to the indicated road segment (i.e., included in the ad unit segment data134) is below a shortened sight distance202reflective of weather conditions during the specified time period of the query. Similarly, different sight distances202may be utilized for daytime travel as opposed to nighttime travel to account for those differences in ad unit visibility. As another possibility, ad units that are not lit at night may be excluded from reports covering nighttime hours.