Today we are excited to announce the next version of the DoubleClick for
Publishers (DFP) API, version 201101. Highlights of this release include the
ability to define custom targeting criteria, and the new Publisher Query
Language service.

Custom targeting

Custom targeting allows you to define your own targeting criteria (such
as age, gender, or content) that DFP wouldn't otherwise be able to
determine. To use custom targeting, you create keys and values, target your line
items to those key-value pairs, and then add them to your website's ad
tags.

Similar to creating ad units and then targeting them with line items,
using the custom targeting API is broken into two steps. First, you will create
custom
targeting keys and values
with the CustomTargetingService,
and then you will target these keys and values with the LineItemService.
To target the keys and values, set the customTargeting
field with a CustomCriteriaSet object. The custom criteria set
object contains the targeting expression as an ORed set of ANDed custom
criteria. The leaf nodes of the tree are key-value pairs of either free-form or
predefined criteria.

If you had the expression (age=17 OR (gender=male AND age=42)), this
would be represented as two custom criteria sets with logicalOperator.AND,
[age=17] and [gender=male, age=42] ORed together. The custom criteria sets would
be children of the customTargeting field.

Below is a diagram that will help you understand how the tree must be
organized. The first level is the customTargeting field of the line item. The
second level is the ORed custom criteria sets, the children of customTargeting.
The final level is the custom criteria that belong to each custom criteria set,
ANDed together.

In the above example of (age=17 OR (gender=male AND age=42)), the custom
criteria set would look something like this:

The new PublisherQueryLanguageService
allows you to query for data in the DFP network. You can use the service to pull
information about geographical targeting that you could only previously retrieve
by downloading one of the CSVs on the geographical targeting page.
You can retrieve all targetable cities, for example, by sending a PQL statement
like:

SELECT * FROM City where targetable = true

You would receive a ResultSet
object similar to the one found in JDBC. Notice that we have included the
targetable column in each of our tables to select on locations which can be
successfully targeted in line items. A full list of tables can be found on the services reference page and we plan to expand this to other
tables in the future.

New release notes page

With this new version, we have also modified our release
notes page to give you a better per-object breakdown of new and deprecated
fields and services. This will make upgrading your implementation that much
easier.

Custom criteria targeting has been our most requested feature and we are
eager to receive any feedback you may have through our forum.
Also, if there are any blog posts about specific topics you may want, please do
not hesitate to make requests on our forum as well.