Skip to content
This repository was archived by the owner on Oct 27, 2025. It is now read-only.
This repository was archived by the owner on Oct 27, 2025. It is now read-only.

Protected Audience API and Dynamic Creative Optimization #201

Open

Description

@TheTamFamily

Morning,

For context, in the current programmatic retargeting using 3P cookies I am able to run Dynamic Creative Optimization (DCO) campaigns using a combination of Campaign Manager 360 (CM360) Floodlight variable and Google Studio (Product Catalog). The way this works, when a user browse a product on the advertiser's website the product ID is sent to CM360 via Floodlight variable using the user's 3P cookie. This means that I can create a single interest group say "product viewed" and the right product image is shown in the Display ad.

In PAAPI there is the adComponents attribute and the documentation says:

"Null or a list of interest group ad. Contains various ad components (or "products") that can be used to construct ads composed of multiple pieces — a top-level ad template "container" which includes some slots that can be filled in with specific "products"."

In this scenario:

When user A visits Advertiser website he is particularly interested in shoes. I create an interestGroup named shoes with the following ads and adComponents (please ignore the JSON formatting for now):

ads: [ { renderUrl: 'https://www.examle.com/ig1/ad.html', } ] adComponents: [ { renderUrl: 'https://www.example.com/ig1/runningshoes.jpg', metadata: { productId: ‘11111’, }, renderUrl: 'https://www.example.com/ig1/hikingboots.jpg', metadata: { productId: '12345', }, } ]

When user B visits the same Advertiser website she is also interested in shoes and I add her to the same interestGroup.

My question is how would user A see runningshoes.jpg and user B sees hikingboots.jpg. Is this the correct way to view the use of adComponents?

Thanks,

David

Activity

  1. JensenPaul commented on Jan 9, 2024

    @JensenPaul

    Thanks for the question @TheTamFamily. Could you please add your affiliation to your GitHub profile?

    adComponents are meant for ads composed of multiple components, e.g. one display ad that advertises both running shoes and hiking boots. You can see the original proposal with an example ad here.

    In the case you described where you want to display a running shoes ad to user A and a hiking boots ad to user B, adComponents probably isn't particularly useful. Instead you can just have one interest group with something like:

    ads: [ { renderUrl: 'https://www.examle.com/ig1/runningshoes.html', }, { renderUrl: 'https://www.examle.com/ig1/hikingboots.html', } ]

    or you could have separate interest groups for each user, that each contains only the specific ad you intend to show that particular user.

  2. TheTamFamily commented on Jan 12, 2024

    @TheTamFamily
    Author

    Thanks Paul. Your suggestion would suffice for a trial however, when this is in production i.e. when we run always on Display campaigns, this would not scale for Advertisers with a huge product catalog where there are literally thousands of product categories. This would mean hundreds of URLs pointing to each creative.

    Ad composition and rendering currently is done by the Ad server and at render time, there is a single Ad creative that is instructed to show a particular image. If we have to hard code every Ad creative it means creating many line items.

    I would like to propose the ability to pass from the key/value server the ad image (whether an jpg, png etc ...) to the fenced frame at render time. Is there any reason why this would break k-anon or any privacy rights of the individual.

    Thanks,

    David

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions