Closed Bug 872609 Opened 11 years ago Closed 11 years ago

add Funnelcake entries to bouncer for Google Ad Campaign

Categories

(Infrastructure & Operations Graveyard :: WebOps: Other, task)

x86
macOS
task
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: aphadke, Assigned: nmaul)

References

Details

The SEM team is planning to run a google ad campaign for Indonesia to acquire new users. A funnelcake build is going to be spun up to understand the conversion rate and long term value for the user.

Current logic:
    User clicks ad somewhere on the internets http://www.mozilla.org/id/firefox/new/campaign?foo=bar
    Lands on /new 
    Bedrock assembles a download button
        Default = https://download.mozilla.org/?product=firefox-21.0&os=osx&lang=en-US
        User From Ad = https://download.mozilla.org/?product=firefox-21.0&os=osx&lang=en-US&foo=bar
    User clicks link
    Bouncer receives click, parses parameters and sends back the correct firefox build

Can we modify the bouncer to redirect all downloads from the above example URL - https://download.mozilla.org/?product=firefox-21.0&os=osx&lang=en-US&foo=bar to a specific funnelcake build?
Assignee: server-ops-webops → nmaul
Blocks: 870464
The concern here lies mostly with bedrock, and defining the "&foo=bar" argument. With that, yes, we can fairly easily have bouncer do something different with it.

I am unhappy, however, that we continue to rely on hacky bouncer rewrites to affect these sorts of things. This happens too often lately, and I don't see it slowing down. I don't want webops to need to be involved in these sorts of projects (and nobody else should, either... it's an extra dependency). If we're going to keep doing funnelcakes of one sort or another (whether A/B tests or not), we need to develop a proper way of delivering them.

What can we do here to remove us as a dependency? CC'ing some relevant parties. I'm thinking about code changes in bouncer or in bedrock, or maybe there's some kind of self-service access we can grant (maybe Chief for bouncer, with .htaccess file rewrites/redirects).

In this case, why doesn't bedrock simply request "?product=firefox-21.0-funnelcakeX", and eschew the extra argument? If we're generating a custom button anyway, that seems like a trivial thing, and requires no extra bouncer logic.
(In reply to Jake Maul [:jakem] from comment #1)
> In this case, why doesn't bedrock simply request "?product=firefox-21.0-funnelcakeX", and eschew the extra argument? If we're generating a custom button anyway, that seems like a trivial thing, and requires no extra bouncer logic.

Ben and I talked about exactly this. If we can come up with a sane mapping where ?campaign=X would map to product=firefox-funnelcakeX (or something thereabouts) then we can totally do that and it'd even mean that we wouldn't have to touch it again to do these. We can just alter the button whenever said url param is present on bedrock. It would just require the proper product to be setup in bouncer and for it to follow the pattern exactly.
Apologies for the foo=bar example, that was copied from an email I had written.

PMAC and Jake you are 100% correct in your logic and I agree this is the approach we should take.

Given the above I understand the work needed on bedrock to make this happen however can you explain if anything would need to be done in bouncer or would this work as-is?
Given that, there should be nothing to do in bouncer, apart from the normal "make this product" stuff that releng has to do anyway.

That means there's nothing here for webops either, so I'm going to close this bug out. Thanks all! :)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WORKSFORME
Blocks: 900658
No longer blocks: 900658
Component: Server Operations: Web Operations → WebOps: Other
Product: mozilla.org → Infrastructure & Operations
Product: Infrastructure & Operations → Infrastructure & Operations Graveyard
You need to log in before you can comment on or make changes to this bug.