Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calls from daily update url #424

Closed
fhoering opened this issue Dec 20, 2022 · 2 comments
Closed

Calls from daily update url #424

fhoering opened this issue Dec 20, 2022 · 2 comments

Comments

@fhoering
Copy link
Contributor

fhoering commented Dec 20, 2022

The first OT implemented this mechanism of dailyUpdate URL:
https://github.com/WICG/turtledove/blob/main/Proposed_First_FLEDGE_OT_Details.md#interest-group-updating

The FOT#1 will also include a mechanism to update interest groups that have just had the chance to participate in an auction initiated by navigator.runAdAuction(). The updating will happen shortly after the auction and will update interest groups that haven’t been updated in the last 24 hours. This updating will be done using the interest group’s dailyUpdateUrl setting as the explainer discusses.

The FOT#1 will not include a periodic background interest group update mechanism.

On our side we added a dailyUpdateUrl to update the eligible ads for each interest group (IG) and it is actually called in very few cases only.

In general when we see the user for tagging we create the IG and add all eligible creatives from currently running campaigns. Paused campaigns are not added yet to the IG. So when there are no activate campaigns we will create the IG but the ads field of the IG will be empty.

In the meantime campaigns might get restarted again or new campaigns might have been created.

When we get a bid opportunity for this empty IG the computeBid function is not executed and it seems like the IG update function is not called either (because the ads field is empty). In any case, even if the update would have been called here, as it is executed after the computeBid function it is already too late as we might not get a next opportunity for this user with a updated IG.

It should be noted that one workaround would be to put all eligible campaigns (active and paused) in the IG and then filter out the campaigns in the trusted server call. But this seems not like a very efficient solution as many IG would be created just to be filtered out later and would put load on the device for no reason. It doesn’t fix the issue for newly created campaigns also.

Updating the IG every 24h within a real background thread would fix this problem. The description above let’s us think that this is planned at one point. Any update on this ?

@JensenPaul
Copy link
Collaborator

it seems like the IG update function is not called either (because the ads field is empty)

Hmm, I thought Chrome did fetch IG updates even when the ads field is empty. I believe we designed it this way to handle the restarted campaign use case you're describing. If you're witnessing a different behavior, feel free to file a bug in the Chromium bug tracker at https://crbug.com/new

aarongable pushed a commit to chromium/chromium that referenced this issue Feb 2, 2023
Context: WICG/turtledove#424
Change-Id: Idc80c12fbba5aff1afc8a491b54f5b42636639ed
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4213652
Commit-Queue: Caleb Raitto <[email protected]>
Reviewed-by: Russ Hamilton <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1100432}
@fhoering
Copy link
Contributor Author

fhoering commented Mar 3, 2023

As discussed in the meeting on 2023-02-01 we checked on our side if we see the expected behavior. The update call respects the 24h rule and it is executed on IG with empty ads. So works as expected.

On full bid request traffic it seems good enough to update after each bid request instead of a daily update thread which is aligned with comment #361 (comment).

So I'll close the ticket.

@fhoering fhoering closed this as completed Mar 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants