This page provides an overview of the architecture of the DFP API and describes general concepts and terms in DFP.
Here is a simplified diagram of the main classes in the DFP API, and how they relate to each other:
Orderobject holds general information about the order such as the currency or salesperson, and contains one or more
LineIteminstances. In code, each
LineItemholds the ID of its containing
Order, rather than the
Orderholding a list of
LineItemobject describes a set of requirements for an ad to show, including how and when the ads should be shown, the sizes of the creatives it should show and the order in which to show them (in order, weighted, or according to their performance), the priority of these ads, and many properties describing the cost structure. A
InventoryTargetingobject that describes which
Placementobjects it can target, and optional additional
Targetingsubclass objects that represent geographical, custom, or other criteria.
LineItemCreativeAssociation(often called a LICA) links one
Creative. Line items can be linked to more than one creative, and depending on your account type, you might be able to link a creative to more than one line item. When you create a
LineItemCreativeAssociation, DFP first checks whether both the creative and the line item are compatible; if the sizes differ, for instance, you'll get an error when you try to create or update the association. This object also lets you override some values in the associated
LineItem, such as start/end dates, or size (if you have a creative that doesn't quite fit the size specified by the line item, but you are willing to let DFP adjust the size of the creative to fit the ad unit on the fly). LICAs are not exposed in the DFP user interface; they are an API convention.
Creativerepresents the actual ad. If the ad is hosted by DFP, this object holds the actual image bytes, flash files, or custom HTML tags stored on DFP's servers; if the creative is hosted on a third-party site, the creative is a URL or HTML snippet that makes the request from the third-party server.
InventoryTargeting and Targeting subclasses
InventoryTargetingobject lists which ad units are associated with a specific
LineItem. You can specify additional, optional targeting criteria using additional instances of an appropriate subclass of
Placementobject is a collection of one or more
AdUnitrepresents an ad location on one or more pages. An
AdUnitcan be a target of either a
InventoryTargetingobject or a
AdUnitobject includes a size, an ID, and a unique name. The ID is used to identify other
AdUnitobjects within the API; the name is used as a unique identifier in the HTML tags to identify a specific
AdUnitobject, and is sent back to DFP as part of the page request.