Optimizing Waze ad delivery using TensorFlow over Vertex AI

The Good, the Bad and the Ugly in Cybersecurity – Week 38
September 17, 2021
Recommendations AI data ingestion
September 17, 2021
The Good, the Bad and the Ugly in Cybersecurity – Week 38
September 17, 2021
Recommendations AI data ingestion
September 17, 2021
  1. Mobile client connects to server and “asks for pins to show” [Every few minutes for saving battery – this is important for what comes next]

  2. Ad server gets request and scans for a list of candidate pins which advertise businesses in a certain proximity to the user’s location

  3. Ad server ranks (and logs) all candidates according to internal logic (e.g. distance)

  4. Mobile client gets a ranked list and saves it for later use

  5. [Over the next few minutes] – map is shown on screen and client logic has the opportunity to show a pin ad

  6. Mobile client scans the ranked list and displays a suitable number of pins that can fit the map on the user’s screen and are appropriate for its zoom level

  7. Mobile client logs successfully displayed ads

Did you catch the issue in step 6?
Waze is a navigation app, meaning the user is driving!
The user’s visible map on screen constantly changes based on their destination, speed, traffic pattern, etc. These screen changes and alignments are important for providing the best user experience while navigating.

Upon performing a funnel-like drop analysis, we’ve noticed that step 6, although optimized for distance from the user (step 2) is a place where we lose ads in the funnel. Moreover, the effectiveness of the mobile client to find pins to display (step 6) is a direct result of the ads we choose to send to it (step 3). By making ad ranking (step 3) smarter, we can seamlessly unlock additional pin ads inventory, which would ensure Waze could better uphold its delivery commitments.

What would that include though? Predicting where the user is going? Predicting where they’ll be in the next few minutes?

Unlocking lost inventory using ML

Google’s CEO (Sundar Pichai) once said: “Machine learning is a core, transformative way by which we’re rethinking how we’re doing everything”

As you can imagine, we’ve naturally approached solving this problem with ML.

The problem can easily be formulated as a learning to rank ML problem where we rank candidate ads to maximize the likelihood of ads to be displayed in the mobile client.

We can debate the exact optimization goal, but ultimately when we create a list that should serve the mobile client for the next few minutes, we want to meet expected ad delivery (given an even sized candidate list) in that time window.

Maximizing Display Probability

By matching the ad server’s logged candidates with the mobile client’s successfully displayed ads, we can create a labeled dataset to be used for supervised learning.

As mentioned before, a successful display is based on whether the user’s screen in the next few minutes (after getting the candidate list) will include candidate locations. To optimize that, we need to know the user’s current location, destination, current route (suggested by Waze to follow) and the locations of all candidate pins. We translate the above information to several features to be used in a supervised model.

Leave a Reply

Your email address will not be published. Required fields are marked *