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

Request to .well-known endpoint from Step 2 vs Step 3 #35

Closed
HeyMultiverse opened this issue Mar 3, 2020 · 4 comments
Closed

Request to .well-known endpoint from Step 2 vs Step 3 #35

HeyMultiverse opened this issue Mar 3, 2020 · 4 comments
Assignees

Comments

@HeyMultiverse
Copy link

Hello Team,

When a valid conversion happens, search.example does a redirect in step 2, by setting the Location header to the .well-known endpoint. The browser could, potentially, follow-through this redirect by making a request to the https://search.example/.well-known/ad-click-attribution with the conversionData and priority. Eg: Step 2 redirect Location (using the same example values) https://search.example/.well-known/ad-click-attribution/20/12 while 20 is the conversionData and 12 is the priority. This happens within few seconds after the actual conversion event.

For the same conversion, by the virtue of step 3, there will be a request originating from browser in 24-48 hours as HTTP POST to attribute the conversion event that contains the conversionData and campaignID. https://search.example/.well-known/ad-click-attribution/20/55.

On the server(search.example) for .well-known endpoint, how do we differentiate the request originating out of the step 2 and step 3, given that both follow the same route pattern with similar ranges for query parameters 0-63?

@johnwilander
Copy link
Collaborator

johnwilander commented Mar 3, 2020

Hello Team,

When a valid conversion happens, search.example does a redirect in step 2, by setting the Location header to the .well-known endpoint. The browser could, potentially, follow-through this redirect by making a request to the https://search.example/.well-known/ad-click-attribution with the conversionData and priority. Eg: Step 2 redirect Location (using the same example values) https://search.example/.well-known/ad-click-attribution/20/12 while 20 is the conversionData and 12 is the priority. This happens within few seconds after the actual conversion event.

For the same conversion, by the virtue of step 3, there will be a request originating from browser in 24-48 hours as HTTP POST to attribute the conversion event that contains the conversionData and campaignID. https://search.example/.well-known/ad-click-attribution/20/55.

On the server(search.example) for .well-known endpoint, how do we differentiate the request originating out of the step 2 and step 3, given that both follow the same route pattern with similar ranges for query parameters 0-63?

I’m not married to path parameters and we’ve already discussed moving to a json structure in the body for step three (see #30).

However, the two requests are easy to tell apart since step 2 is an idempotent GET and step 3 is a (potentially) state changing POST.

@HeyMultiverse
Copy link
Author

Thanks for John for clarifying that.

It would be really good to have path parameters removed from Step 3, and made as request payload. Do you have a timeline that you tracking for this being generally available ?

@johnwilander
Copy link
Collaborator

Thanks for John for clarifying that.

It would be really good to have path parameters removed from Step 3, and made as request payload. Do you have a timeline that you tracking for this being generally available ?

I was hoping for more engagement from the Google folks on how to layer our two proposals. Maybe they are waiting for something from me? I'd prefer to make changes to our implementation once we've settled on the interoperability issues.

@hober
Copy link
Member

hober commented Apr 30, 2020

Duping to #30.

@hober hober closed this as completed Apr 30, 2020
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

3 participants