User Browses Through a Site#

The following diagram presents an overview of all interactions taking place when a User browses through a Site:

skinparam monochrome true

participant "Supply-Side\nAgent"                as SSA
participant "Supply-Side\nContext Provider"     as SSCP
participant "Supply-Side\nPlatform"             as SSP
participant "Demand-Side\nPlatform"             as DSP
participant "Demand-Side\nContext Provider"     as DSCP

==Fetching Creatives==
SSA -> SSP: Find Creatives
SSP -> SSCP: Get\nUser/Site/Device\nContext
SSCP --> SSP: User/Site/Device\nContext
SSP --> SSA: Creatives

==Fetching Content for Each Creative==
loop for each Creative
    SSA ->      DSP     : Get Creative Content
    DSP -->     SSA     : Creative Content
end

==Synchronizing View Events for Each Creative==
loop for each Creative
    SSA ->      DSP     : Post View Event
    DSP -->     SSA     : Context Scripts
    SSA ->      SSA     : Execute\nContext Scripts
end

==Synchronizing Register Events for Each Creative==
loop for each Creative
    SSA ->      DSCP    : Post Register Event
    DSCP -->    SSA     : Context Scripts
    SSA ->      SSA     : Execute\nContext Scripts
    SSA ->      DSCP    : Result of\nContext Scripts\n//optional//
end

Fetching Creatives#

The following diagram presents the details of the workflow aimed at fetching a list of Creatives to be displayed when a User browses through a Site:

skinparam monochrome true

participant "Supply-Side\nAgent"                as SSA
participant "Supply-Side\nContext Provider"     as SSCP
participant "Supply-Side\nPlatform"             as SSP
participant "Ad Select\nModule"                 as ASM

SSA -> SSP: Find Creatives
SSP -> SSCP: Get\nUser/Site/Device\nContext
SSCP --> SSP: User/Site/Device\nContext
SSP -> ASM: Get Creatives
ASM --> SSP: Creatives
SSP --> SSA: Creatives

The following process takes place when a User browses through a Site:

In order to generate the requested list, Supply-Side Platform first needs to make the following calls:

The details of the communication between Supply-Side Platform and its Ad Select Module are described in the Ad Select Service section.

Note

The list of Creatives is generated by Supply-Side Platform based on information already stored there, i.e. without the need to query the corresponding Demand-Side Platform. This is possible due to the fact that Supply-Side Platform has already retrieved all the relevant Demand-Side Inventories during the Synchronization stage.

Creative Object contains a Demand-Side Platform endpoint for retrieving Creative Content. This implies that each Creative in the list can be associated with its own Demand-Side Platform. As a result, Creatives managed by various Demand-Side Platforms can be displayed next to each other within the same Site.

The above process can be repeated in a loop that ensures that Creatives are swapped periodically within the same Placement. Such a loop aims to maximize utilization of Placements by displaying multiple Creatives sequentially to the same User within a single Placement.

Fetching Content for Each Creative#

At this stage, Creative Object is already retrieved, but none of the Creatives is actually rendered, as Supply-Side Agent has not fetched Creative Content yet.

The following diagram presents the details of the workflow aimed at fetching Creative Content for each Creative:

skinparam monochrome true

participant "Supply-Side\nAgent"                as SSA
participant "Demand-Side\nPlatform"             as DSP

loop for each Creative
    SSA ->      DSP     : Get Creative Content
    DSP -->     SSA     : Creative Content
end

The following sequence of events occurs for each Creative to fetch the corresponding Creative Content and display it in its designated Placement:

Before a Creative is actually rendered, Supply-Side Agent compares the hash (checksum) of the received Creative Content with the hash (checksum) contained in Creative Object. This is done to ensure that the Creative Content matches what was initially approved in the Campaign definition.

Assuming the above hashes (checksums) match, Supply-Side Agent renders the Creative on the screen, so that the User can see it.

Synchronizing View Events for Each Creative#

The following diagram presents the details of the workflow aimed at synchronizing View Events for each Creative:

skinparam monochrome true

participant "Supply-Side\nAgent"                as SSA
participant "Demand-Side\nPlatform"             as DSP

loop for each Creative
    SSA ->      DSP     : Post View Event
    DSP -->     SSA     : Context Scripts
    SSA ->      SSA     : Execute\nContext Scripts
end

The following sequence of events occurs for each Creative to ensure that both Supply-Side Platform and Demand-Side Platform are kept in synch regarding View Events:

Note

In case there are multiple Creatives associated with the same Demand-Side Platform, it’s enough to send each View Event notification only once.

Synchronizing Register Events for Each Creative#

The following diagram presents the details of the workflow aimed at synchronizing Register Events for each Creative:

skinparam monochrome true

participant "Supply-Side\nAgent"                as SSA
participant "Demand-Side\nContext Provider"     as DSCP

loop for each Creative
    SSA ->      DSCP    : Post Register Event
    DSCP -->    SSA     : Context Scripts
    SSA ->      SSA     : Execute\nContext Scripts
    SSA ->      DSCP    : Result of\nContext Scripts\n//optional//
end

The following sequence of events occurs for each Creative to ensure that both Supply-Side Platform and Context Provider (acting on behalf of Demand-Side Platform) are kept in synch regarding Register Events:

Note

In case there are multiple Creatives associated with the same Demand-Side Platform, it’s enough to send each Register Event notification only once.