Skip to main content
Signals implementation
Real-time personalization

Track and personalize from Python with Snowplow Signals

Instrument a Python backend with the Snowplow tracker, then compute and act on real-time user attributes and interventions using the Signals Python SDK.

Progress0%

Introduction

In this tutorial you'll build a complete real-time personalization loop in Python, using both of Snowplow's Python SDKs:

To make this concrete, you'll instrument the backend of an imaginary SaaS project-management app. As users complete tasks, your service tracks their activity. Signals then computes a per-user engagement attribute in real time, and fires an intervention the moment a user becomes a "power user" so your app can nudge them, for example to invite a teammate.

By the end you'll have working code that:

  • tracks page views, screen views, and a custom task_completed event with a custom entity
  • defines an attribute group, a service, and an intervention programmatically
  • retrieves a user's live attributes from your application
  • subscribes to interventions and acts on them

You'll write and run all of the code in your own Python environment. The definitions you create also appear in Snowplow Console, so you can inspect them there.

This tutorial should take around 45 minutes to complete.

Prerequisites

This tutorial assumes that you have:

You don't need any API keys yet. You'll generate the Signals credentials as one of the steps.

A full pipeline is required

The Signals parts of this tutorial compute attributes from real events flowing through your pipeline, so they can't be completed with Snowplow Micro or in a purely local setup. You need a running Snowplow pipeline with Signals enabled.

If you don't have one, you can deploy and use a Snowplow free trial to follow along.

On this page

Want to see a custom demo?

Our technical experts are here to help.