Enforcing publisher content item block requests

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for enforcing publisher content item block requests. In one aspect, a method includes receiving a set of declared network locations for a content item and rendering the content item. A request is initiated for a resource that is referenced by the content item, and network locations fetched in response to the request are logged. A composite set of network locations that includes the fetched network locations and declared network locations is generated. The composite set of network locations is used to enforce publisher block requests.

BACKGROUND

This specification relates to data processing and content presentation.

The Internet provides access to a wide variety of resources. For example, video and/or audio files, as well as web pages for particular subjects or particular news articles are accessible over the Internet. Access to these resources presents opportunities for content items (e.g., advertisements, audio files, or video files) to be provided with the resources. For example, a web page can include content item slots (e.g., advertisement slots) in which content items (e.g., advertisements) can be presented. These content item slots can be defined in the web page using a portion of code that causes a browser to request a content item for presentation in the web page when the browser renders the web page. A content item distribution system selects content items for presentation in response to the request. The content item distribution system can select the content items based on information included in the request and publisher specified preferences regarding the types of content items that are presented with the web page.

SUMMARY

This document describes methods and systems for automated enforcement of publisher block requests by an advertisement distribution system. A publisher block request identifies advertisements (or other content items) that the publisher has deemed ineligible for presentation with the publisher's resources, and specifies that these ineligible advertisements should be blocked from presentation with the publisher's resource. For example, assume that a publisher of an educational website would like to prevent advertisements for a particular scary movie from being presented on the website. In this example, the publisher can submit a publisher block request to the advertisement management system requesting that the advertisement for the scary movie not be presented with the publisher's web page.

Publishers can specify advertisements that are ineligible for presentation with their resource on a per-landing page basis. For example, to block an advertisement from a particular advertiser, the publisher can identify a landing page to which the advertisement redirects users and request that any advertisement having a landing page matching the identified landing page be blocked from presentation on the publisher's resource. In turn, the advertisement management system can compare a network address of the identified landing page with network addresses of landing pages with which available advertisements are associated, and prevent advertisements that redirect users to the identified landing page from being presented with the publisher's resource.

In some implementations, the advertisement management system can prevent presentation of a content item, such as an advertisement, by not selecting the content item for presentation, classifying the content item as ineligible for presentation, or not transmitting the content item to a user device in response to the content item request, e.g., following selection of the content item based on information included in the content item request.

Generally, the enforcement of publisher block requests is performed by comparing the network address of the landing page specified in the publisher block request to the network address of declared landing pages that advertisers have specified as landing pages for their advertisements. For example, an advertiser for a scary movie can provide the advertisement management system with data specifying a particular URL as the landing page for the advertisement for the scary movie. In this example, if the URL for the landing page specified in the publisher block request matches the particular URL provided by the advertiser, the advertisement management system can prevent the advertisement for the scary movie from being presented with the educational website.

In some situations, a particular advertisement may be associated with multiple different landing pages. For example, an advertiser can create an advertisement that redirects users from Georgia to one particular landing page and redirects users from California to another landing page. The landing page to which a particular advertisement redirects users may also change over time (e.g., to promote seasonal or sale items) and/or redirect users to a first landing page that then redirects the user to a second landing page.

To facilitate enforcement of publisher block requests, the landing pages that are associated with a particular advertisement can be the declared landing pages that the advertiser has specified as well as additional landing pages to which the particular advertisement redirects users. In some implementations, the additional landing pages can be identified by a virtual machine (or another data processing apparatus) that simulates an interaction with an advertisement (or another content item) and records each network location (e.g., URL) to which the virtual machine is redirected in response to the simulated click. The recorded network locations can be combined with the list of declared network locations, and this combined set of network locations can be used to enforce publisher block requests. For example, if the combined set of network locations includes a network location that matches a network location included in a publisher block request, the advertisement associated with the combined set of network locations will not be eligible for presentation.

In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a set of declared network locations for a content item, the set of declared network locations being a set of network locations specified by a content item provider as network locations that are requested in response to user interaction with the content item; rendering the content item; initiating, through interaction with the content item, a request for a resource that is referenced by the content item; logging, as fetched network locations for the content item, each network location that is fetched in response to the interaction with the content item; filtering the fetched network locations to remove fetched network locations that match a service location from a set of known service locations; and generating, for the content item, a composite set of network locations that includes the fetched network locations and set of declared network locations. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.

These and other embodiments can each optionally include one or more of the following features. Methods can include the actions of determining that a network location in the composite set of network locations matches a blocked network location for a publisher; and preventing presentation of the content item with a resource for the publisher.

Methods can include the actions of determining that fewer than a threshold number of the fetched network locations match a network location in the declared network locations; and preventing, in response to determining that fewer than a threshold number of the fetched network locations match a network location in the declared network locations, presentation of the content item with publisher resources.

Methods can include the actions of determining that at least a threshold number of the fetched network locations are not included in the declared network locations; and preventing, in response to determining that at least a threshold number of the fetched network locations are not included in the declared network locations, presentation of the content item with publisher resources.

Methods can include the actions of obtaining, from a browser address field, a last fetched network address for the content item, the last fetched network address being a network address for a final resource that was requested in response to interaction with the content item; and identifying a resource at the last fetched network address as a destination resource for the content item.

Methods can include the actions of logging a time at which the network locations in the set of fetched network locations were fetched; and determining a last fetched network location for the content item based on the logged times.

Methods can include the actions of determining that the last fetched network location for the content item does not match a network location in the set of declared network locations; and preventing presentation of the content item in response to determining that the last fetched network location does not match a network location in the set of declared network locations.

Methods can include the actions of determining for a particular network location that content items provided by at least a threshold number of content item providers redirect users to the particular network location; and identifying the particular network location as a service location for a service site in response to determining that the content item provider by the threshold number of content item providers redirect users to the particular network location.

Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. Publisher block requests can be enforced without requiring content item providers to specify landing pages to which their content items redirect users. Content item provider compliance with terms of service can be evaluated by comparing a content item provider's declared landing pages with the logged network locations to which their content items redirect users.

DETAILED DESCRIPTION

FIG. 1is a block diagram of an example environment100in which content items are distributed to user devices. A content item is a discrete unit of data that can be presented with a resource. For example, a content item can be a file that is provided for insertion in a portion of a resource that is presented at a user device.

The environment100includes an advertisement management system110that manages advertising services. The example environment100also includes a network102, such as a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof. The network102connects websites104, user devices106, advertisers108, and the advertisement management system110. The example environment100may include any number of websites104, user devices106, and advertisers108.FIG. 1is discussed with reference to advertisements being distributed to user devices, but other types of content items (e.g., audio files, video files, or other files) can be distributed in the environment as well.

A website104is one or more resources105associated with a domain name and hosted by one or more servers. An example website is a collection of web pages formatted in hypertext markup language (HTML) that can contain text, images, multimedia content, and programming elements, such as scripts. Each website104is maintained by a publisher, which is an entity that controls, manages and/or owns the website104.

A resource105is any data that can be provided over the network102. A resource105is identified by a resource address that is associated with the resource105. Resources include HTML pages, word processing documents, and portable document format (PDF) documents, images, video, and feed sources, to name only a few. The resources can include content, such as words, phrases, images and sounds, that may include embedded information (such as meta-information in hyperlinks) and/or embedded instructions (such as scripts).

A user device106is an electronic device that is capable of requesting and receiving resources over the network102. Example user devices106include personal computers, mobile communication devices, and other devices that can send and receive data over the network102. A user device106typically includes a user application, such as a web browser, to facilitate the sending and receiving of data over the network102.

A user device106can request resources105from a website104. In turn, data representing the resource105can be provided to the user device106for presentation by the user device106. The data representing the resource105can also include data specifying a portion of the resource or a portion of a user display in which advertisements can be presented. These specified portions of the resource or user display are referred to as content item slots or advertisement slots.

When a resource105is requested by a user device106, the advertisement management system110receives a request for advertisements to be provided with the resource105. The request for advertisements can include characteristics of the advertisement slots that are defined for the requested resource, and can be provided to the advertisement management system110. For example, a reference (e.g., URL) to the resource (e.g., a retailer's web page or a web page for a sports network) for which the advertisement slot is defined, a size of the advertisement slot, and/or media types that are authorized for presentation in the advertisement slot can be provided to the advertisement management system110. Similarly, keywords associated with a requested resource (“resource keywords”) can also be provided to the advertisement management system110to facilitate identification of advertisements that are relevant to the resource.

Based on data included in the request for advertisements, the advertisement management system110can select advertisements that are eligible to be provided in response to the request (“eligible advertisements”). For example, eligible advertisements can include advertisements having characteristics matching the characteristics of advertisement slots and that are identified as relevant to specified resource keywords. In some implementations, advertisements having targeting keywords that match the resource keywords are selected as eligible advertisements by the advertisement management system110.

The environment100includes a distribution data store119that stores data with which the advertisement management system110(or another content item distribution system) selects advertisements (or other content items) for presentation with a resource. The distribution data store119can include, for example, distribution parameters, such as distribution keywords and/or bids with which distribution of the advertisements is controlled. For example, an advertisement that is associated with a particular set of keywords may only be eligible for distribution when an advertisement request including a resource keyword that matches the distribution keyword is received.

The distribution data store119can also store, for each advertisement, a list of declared landing pages. The list of declared landing pages can be provided by the advertiser and specify one or more network locations to which the advertisement redirects users. For example, if a particular advertisement redirects all users to a same landing page, the advertiser for the particular advertisement may only include the single URL for the landing page in the list of declared landing pages. However, if the landing page to which an advertisement redirects users varies on a per-user-group basis or over time, the advertiser may include each of the URLs for the various landing pages in the list of declared landing pages for the advertisement.

As noted above, the eligibility of a particular advertisement for presentation with a particular resource can be based, at least in part, on publisher block requests that have been specified by the publisher of the particular resource. For example, a publisher of an educational web site may not want advertisements for a scary movie to be presented with pages from the educational web site. In this example, the publisher can submit to the advertisement management system110a publisher block request specifying a network location (e.g., a page URL or a top level domain) of a web page for the scary movie. When advertisements are selected for presentation with pages from the educational web site, the advertisement management system110can compare the network location specified in the publisher block request with the list of declared landing pages for the available advertisements. If the advertisement management system110detects a match between a network location from the publisher block request and the list of declared landing pages for an advertisement, the advertisement management system110can prevent that advertisement from being selected for presentation.

As noted above, a particular advertisement may be associated with multiple different landing pages. For example, an advertiser can create an advertisement that redirects users from Georgia to one particular landing page and redirects users from California to another landing page. The landing page to which a particular advertisement redirects users may also change over time (e.g., to promote seasonal or sale items) and/or redirect users to a first landing page that then redirects the user to a second landing page. In each of these examples, if an advertiser does not declare each of the multiple different landing pages that are associated with the advertisement (e.g., in the list of declared landing pages), it is possible that the publisher block request will not be enforced.

The environment100includes a landing page apparatus120that facilitates enforcement of publisher block requests, even if an advertiser has failed to declare one or more landing pages to which an advertisement redirects users. As illustrated inFIG. 1, the landing page apparatus120is in data communication with the advertisement management system110. In some implementations, the landing page apparatus120can be implemented as part of the advertisement management system110.

The landing page apparatus120is a data processing apparatus that identifies and logs landing pages to which advertisements redirect users. For example, as discussed in more detail below, the landing page apparatus120can render an advertisement (or another content item), and initiate a request (e.g., by simulating a user click) for a landing page (or another resource) that is referenced by the advertisement. In turn, the landing page apparatus120can log each network location that is fetched or otherwise requested following the initial request. For example, if following the initial request, the landing page apparatus120is redirected to multiple different network locations, the landing page apparatus120can log each of these network locations as fetched network locations for the advertisement. As described in more detail below, the advertisement management system110can then use the fetched network locations for enforcing publisher block requests.

FIG. 2is a block diagram of an example data flow200for enforcing publisher block requests. The example data flow200begins with an advertisement204being rendered, in a virtual machine230. For example, the virtual machine230can obtain the advertisement204from a database of advertisements that are distributed by the advertisement management system110ofFIG. 1, and render the advertisement204in a browser application202.

The data flow200continues with the virtual machine230initiating an interaction with the advertisement204. For example, as shown inFIG. 2, the virtual machine230can generate a simulated user click205of the advertisement204. The simulated user click205causes the browser application202to request a resource from a network location that is referenced by the advertisement204. For example, as illustrated byFIG. 2, the browser application202initiates a request for a resource located at URL1206, which is referenced by advertisement204. In response to determining that interaction with the advertisement204initiates a request for the resource at URL1206, the virtual machine230logs URL1206as a fetched network location for the advertisement204. Throughout this document, network locations that are requested in response to interaction with a content item (e.g., an advertisement) are referred to as fetched network locations.

The data flow200continues with the virtual machine230receiving, in response to the request for URL1206, redirect instructions that cause the browser application202to request a resource from URL2208. In turn, the virtual machine230logs URL2208as a fetched network location for the advertisement204, such that URL1206and URL2208are both included in Fetched URL Log214that stores fetched network locations for the advertisement204.

As illustrated byFIG. 2, URL2208includes redirect instructions that cause the browser application202to request a resource from URL3210. In response to determining that the browser application202is redirected to URL3210, the virtual machine230includes URL3210in the Fetched URL Log214for the advertisement204. Thus, following the request for URL3210, the Fetched URL Log214for the advertisement204contains URL1, URL2, and URL3.

If additional redirects occur, the virtual machine230can continue to log the requested URLs in the Fetched URL Log214in a manner similar to that described above. When the virtual machine230determines that further redirect instructions have not been received, the virtual machine can identify the network locations in the Fetched URL Log214as the fetched network locations for the advertisement204.

As noted above, an advertisement management system (or another content distribution system) can require advertisers (or other content item providers) to specify a set of declared network locations (e.g., URLs) for each advertisement (or content item) provided by the advertisers (or content item providers). For example, an advertiser218can be requested to specify a set of declared network locations216to which advertisement204redirects users. In response to the request, advertiser218may specify that the advertisement204redirects users to URL1, URL4, and URL5, but fail to specify that the advertisement204can also redirect users to URL2and URL3. Thus, if a publisher submits a publisher block request specifying that advertisements redirecting users to URL2be blocked from presentation with resources provided by the publisher, the advertisement204may still be presented with the publisher's resources if only the set of declared landing pages216is used to enforce the publisher block request.

The data flow200continues with the advertisement blocking apparatus120(or another data processing apparatus) combining the Declared URL Log216with the Fetched URL Log214to create a Composite URL Log220. The Composite URL Log220is a composite set of network locations to which the advertisement204has been determined to redirect users. As described below, the Composite URL Log220can be filtered to remove redundant network locations and/or network locations for particular resources (e.g., trusted resources). Since the Composite URL Log220includes both declared network locations and fetched network locations, the Composite URL Log220facilitate enforcement of publisher block requests even when an advertiser fails to include, in the set of declared landing pages216, all of the network locations to which the advertisement204redirects users.

For example, assume that publisher224submits a publisher block request to the advertisement blocking apparatus120requesting that advertisements associated with a specified set of Blacklisted URLs222not be presented with resources provided by the publisher224. As illustrated byFIG. 2, the set of Blacklisted URLs222includes URL2, URLA, URLB, URLC, URLD, and URLE. Thus, in this example, the publisher224has requested that advertisements redirecting users to resources located at any of URL2, URLA, URLB, URLC, URLD, or URLE not be presented with resources provided by the publisher224.

Continuing with this example, the advertisement blocking apparatus120compares the set of Blacklisted URLs222to the Composite URL Log220(e.g., when a resource provided by the publisher224initiates an advertisement request) to determine whether the advertisement204is eligible for presentation with resources provided by the publisher224. If a network location included in the set of Blacklisted URLs222matches a network location specified by the Composite URL Log220, the advertisement blocking apparatus120will deem the advertisement204not be eligible for presentation with resources provided by the publisher224. If no match exists between the network locations included in the set of Blacklisted URLs222and the Composite URL Log220, the advertisement204will not be blocked based on the publisher block request.

As illustrated byFIG. 2, the set of Blacklisted URLs222includes URL2, which is also included in the Composite URL Log220. Therefore, in this example, the advertisement blocking apparatus120will deem the advertisement204ineligible for presentation with resources provided by the publisher224. In this example, an exact match exists between a URL in the set of Blacklisted URLs222and a URL in the Composite URL Log220. In some implementations, matching network locations (e.g., URLs) need not be exactly the same. For example, a match between network locations can be identified when the network locations share a same domain. To illustrate, assume that the set of Blacklisted URLs222includes the path www.example.com/scarymovie, and the Composite URL Log includes the path www.example.com/scarymoviepreview. In this example, the two URLs can be deemed to match since they both reference the domain example.com.

As noted above, the Composite URL Log220and/or the Fetched URL Log214can be filtered, such that a proper subset of the fetched network locations from the Fetched URL Log214are included in the Composite URL Log220. In some implementations, the advertisement blocking apparatus120may filter the Composite URL Log220to remove duplicate network locations. For example, URL1is included in each of the Declared URL Log216and the Fetched URL Log214, such that, absent filtering, two instances of URL1may be included in the Composite URL Log220. Thus, the advertisement blocking apparatus120can filter the Composite URL Log220to remove duplicate instances of URLs.

In some implementations, the Composite URL Log220(or the Fetched URL Log214) can be filtered to remove network locations for service sites. Service sites provide services to advertisers. For example, a service site may track the performance of advertisements provided by a particular advertiser, and provide analytics associated with the advertisements. The services provided by a service site may require users that interact with an advertisement to be redirected to a URL for the service site in order to track user interactions with the advertisement. Thus, the URL for the service site may be included in the Fetched URL Log214. As described in more detail with reference toFIG. 3, including a network location or a URL associated with a service site may cause the advertisement to be deemed ineligible for presentation. Therefore, removing network locations for service sites from the Composite URL Log220can reduce the likelihood that an advertisement is incorrectly identified as ineligible for presentation.

In some implementations, service sites can be identified from a list of known service sites. For example, URLs for a set of known service sites can be referenced and URLs in the Composite URL Log220that match the URLs for the known set of service sites can be removed from the Composite URL Log220. Additionally, or alternatively, a URL that is included in the Fetched URL Log214for at least a threshold number of advertisers can be identified as a service site URL, and removed from the Composite URL Log220.

Additionally, in some embodiments the advertisement blocking apparatus120may also block all other advertisements provided by an advertiser that provided the blocked advertisement. For example, with respect to the example shown inFIG. 2, all advertisement provided by advertiser218, may also be blocked in response to the advertisement204being blocked. In other embodiments, the advertisement blocking apparatus120may block all advertisements associated with the same domain name as the domain name of the blocked advertisement.

FIG. 3is a flow chart of an example process300for enforcing publisher block requests based on a composite set of network locations. Operations of the process300can be implemented by a data processing apparatus, such as the advertisement blocking apparatus120and/or advertisement management system110ofFIG. 1. The process can also be implemented as instructions stored on a non-transitory computer storage medium such that execution of the instructions by a data processing apparatus causes the data processing apparatus to perform operations of the process300.

A set of declared network locations are received for a content item (302). In some implementations, the set of declared network locations are a set of network locations that, according to a provider of the content item, are requested in response to interaction with the content item. For example, as described above with reference toFIG. 2, an advertisement management system can request (or require) an advertiser to specify at least one network location to which the advertiser's advertisements redirect users. The network locations (e.g., URLs) specified by the advertiser can be associated with the advertisement as declared network locations, also referred to as declared landing pages, for the advertisement. The set of declared network locations can be stored in a data store, such as the distribution data store119ofFIG. 1.

A content item is rendered (304). The content item may be rendered by a data processing apparatus, such as the advertisement management system110or the advertisement blocking apparatus120ofFIG. 1. In some implementations, the content item is rendered by a virtual machine that emulates a browser at a user device. A request for a resource that is referenced by the content item is initiated (306). In some implementations, the request for the resource is initiated by simulating a user interaction with (e.g., a click of) the content item. The user interaction can be simulated, for example, by a virtual machine that is implemented in the advertisement management system110and/or the advertisement blocking apparatus120.

In some implementations, the request for the resource that is referenced by the content item can be initiated without simulating a user interaction with the content item. For example, a data processing apparatus can identify a network location to which the content item redirects users in response to interaction with the content item and submit a request for data stored at that network location.

Network locations fetched in response to the initiated request (“fetched network locations”) are logged (308). In some implementations, the fetched network locations include each network location that is requested following interaction with the content item. For example, as described above with reference toFIG. 2, redirect instructions may be received in response to a request for a network location that is referenced by a content item. In this example, the originally requested network location and any additional network locations to which a user device is redirected following interaction with the content item can be logged as fetched network locations for the content item.

In some implementations, the fetched network locations may be copied from (or otherwise obtained from) an address bar of a browser that is used to request the network locations. For example, each request for a network location may result in the network location being placed in the address bar, such that each network location can be copied to a fetched network location log (e.g., fetched URL log) from the addressed bar.

In some implementations, only a proper subset of the fetched network locations is identified from the address bar. For example, a destination network location for a destination resource (e.g., a destination web page) can be obtained using the address bar, while other network locations that are requested can be obtained, for example, from the redirect instructions and/or the requests for resources at the network locations.

A destination resource is a final resource requested based on the interaction with the content item. For example, with reference toFIG. 2, the virtual machine230is provided a web page associated with URL3, rather than redirect instructions, in response to requesting data from URL3. Since no further redirect occurs following the URL3request, the web page received by the virtual machine230can be considered a destination page for the advertisement204, and URL3can be considered a destination network location for the advertisement204.

In some implementations, the destination network location can be identified based on times at which the network locations were requested. For example, with reference toFIG. 2, the request for URL1will occur prior to the request for URL2, which will occur prior to the request for URL3. Therefore, the virtual machine can timestamp (or otherwise log a time for) each request and use the timestamps to determine a destination network location for an advertisement. For example, with respect to a particular interaction with the content item, the network address that is associated with a most recent timestamp will be the last requested network address and can be identified as the destination network location for the advertisement.

In some implementations, a determination is made whether a fetched network address for the content item matches a declared network location for the content item is optionally performed (310). The determination can be made for example, by comparing the set of fetched network locations for the content item to the set of declared network locations for the content item. If, based on the comparison, a match is identified, the set of fetched network locations can be filtered (312). If, based on the comparison, a match is not identified, the content item can be blocked from presentation with publisher resources (314).

Blocking a content item based on a lack of a match between a fetched network location and a declared network location can prevent distribution of content items for content item providers who are not complying with terms of service (e.g., terms imposed the advertisement management system110ofFIG. 1). For example, assume that an advertisement management system requires content item providers to specify network locations to which users are redirected in response to interaction with content items provided by the content item providers. In this example, an advertiser that fails to specify any of the fetched network locations is in violation of the terms of service, and their content items may not be distributed. Additionally, or alternatively, the content item can be blocked when fewer than a threshold number of the fetched network locations are included in the declared network locations.

In some implementations, a content item is blocked when more than a threshold number of the fetched network locations fail to match the declared network locations. Using a threshold number of fetched network locations can prevent a content item from being blocked when an advertiser inadvertently fails to specify one of the fetched network locations as a declared network location.

In some implementations, a content item is blocked from presentation (e.g., prevented from being presented with publisher resources), when the destination network location for the content item is not included in the declared network locations for the content item. For example, as long as the destination network location for the content item is included in the declared network locations, the content item will not be blocked due to one or more of the fetched network locations that are fetched prior to the destination network location not being included in the declared network locations. However, if the destination network location (e.g., the last fetched network location for the content item) does not match a network location in the set of declared network locations for the content item, the content item can be prevented from being presented with publisher resources. Note that the determination performed at308can be performed following the filtering operations discussed below.

In some implementations, the advertisement management system can prevent presentation of a content item, such as an advertisement, by not selecting the content item for presentation, classifying the content item as ineligible for presentation, or not transmitting the content item to a user device in response to the content item request, e.g., following selection of the content item based on information included in the content item request.

The set of fetched network locations is filtered (312). As described above with reference toFIG. 2, the set of fetched network locations can be filtered to remove network locations for service sites that provide services to advertisers. In some implementations, the filtering is performed on the set of fetched network locations prior to generation of the composite set of network locations. In some implementations, the filtering is performed following generation of the composite set of network locations. If filtering is performed following the generation of the composite set of network locations, any duplicate network locations (e.g., network locations that are included in both the fetched network locations and the declared network locations) can be can be removed from the composite set of network locations.

A composite set of network locations is generated based on the set of fetched network locations and the set of declared network locations for the content item (316). As described with reference toFIG. 2, the composite set of network locations can be generated by combining the filtered set of fetched network locations with the set of declared network locations specified by the advertiser.

A request for a content item to be presented with a publisher resource is received (318). The request can be received, for example, in response to a user device requesting presentation of the publisher resource. The request can identify the publisher resource, for example, by including a network location of the publisher resource.

A determination is made whether the composite set of network locations for the content item matches a blacklisted network location for the publisher (320). As described above with reference toFIG. 2, a match can be determined to exist when a blacklisted network location and a network location in the composite set match exactly, or when a partial match (e.g., a domain level match) is determined to exist. When a match is identified, the content item is blocked (314). When a match is not found the advertisement is not blocked based on the blacklisted network locations for the publisher (322).

In some embodiments, the publisher may request that all content items from a particular content item provider be blocked. For example, upon identifying a resource to which a particular advertisement for tobacco products link, a publisher may specify that any advertisements from the advertiser that provided the advertisement be blocked from presentation with resources provided by the publisher. In this example, the advertisement blocking apparatus120and/or the advertisement management system110can identify, as ineligible advertisements for presentation with the publisher's resources, all advertisements that were provided by the advertiser that provided the particular advertisement.

FIG. 4is block diagram of an example computer system700that can be used to perform operations described throughout this document. The system400includes a processor410, a memory420, a storage device430, and an input/output device440. Each of the components410,420,430, and440can be interconnected, for example, using a system bus450. The processor410is capable of processing instructions for execution within the system400. In one implementation, the processor410is a single-threaded processor. In another implementation, the processor410is a multi-threaded processor. The processor410is capable of processing instructions stored in the memory420or on the storage device430.

The storage device430is capable of providing mass storage for the system400. In one implementation, the storage device430is a computer-readable medium. In various different implementations, the storage device430can include, for example, a hard disk device, an optical disk device, or some other large capacity storage device.

The input/output device440provides input/output operations for the system400. In one implementation, the input/output device440can include one or more of a network interface devices, e.g., an Ethernet card, a serial communication device, e.g., and RS-232 port, and/or a wireless interface device, e.g., and 802.11 card. In another implementation, the input/output device can include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices460. Other implementations, however, can also be used, such as mobile computing devices, mobile communication devices, set-top box television client devices, etc.