How to use trackCheckoutStep correctly


I’m wondering about the correct usage of the native Snowplow ecommerce tracking. More specifically, when to send the events for trackCheckoutStep.

In Google Analytics’ Enhanced eCommerce, I have the option to measure a checkout step (Comercio electrónico mejorado para Tag Manager  |  Universal Analytics for Tag manager  |  Google Developers) and later send additional data with “checkout_option” (Enhanced Ecommerce for Tag Manager  |  Universal Analytics for Tag manager  |  Google Developers). From the Snowplow docs I couldn’t find a way to do this.

If I’m in step 1 “Address” for example I won’t have the address details. In GA I would send a checkout event with step 1 and after completion of the address form a checkout_option event enriching the step with the missing data.

Do you usually use trackCheckoutStep offset by one page to be sure to have all neccessary information ready? What is the dbt-package expecting?



can anyone help me in understanding on how to setup trackCheckoutStep correctly?

Thanks in advance!

Hey @volderette , sorry for the delay :slight_smile:

Well the initial design for trackCheckoutStep is to track the completion of a step.

A bit more context
In most cases the steps on an ecommerce checkout funnel are in set order so you can probably create a visualization as the one shown in the ecommerce accelerator. The absence of a checkout step event in a funnel means the visitor dropped after finishing the previous one.

Otherwise, you can try some alternatives:

  • Set specific page types on ‘viewing’ a checkout page.
  • Add intermediate funnel steps just for viewing a checkout page. E.g. trackCheckoutStep({ step: 1 }) as the viewing of the first checkout page, trackCheckoutStep({ step: 2, delivery_method: "FedEx" }) as the completion of the first checkout page.

If you can provide some more detail into your use case it can help us improve our APIs or modelling.

Hi Peter,

thank you so much for your feedback!

What I’m missing is how the dropoff for the first step of a checkout would be calculated with the dbt package? As far as I understand the dbt model and the default tracking would give me the dropoff after someone finished step 1, but I wouldn’t know if someone left the checkout in step 1 before finishing it.

I could always add an additional trackCheckoutStep() on the product page before, but that feels wrong, as that’s not part of the checkout. Also I could probably use the product page events to calculate the drop off, but that wouldn’t be part of the dbt package.

I think GA Enhanced Ecommerce managed this really well with allowing to send additional data for a step that was completed already. When someone reaches checkout step 1, I can send a checkout event for step 1 and after the person finishes the form on step 1 I can send an additional event containing the form data. With this I have the best from both worlds. I can calculate the number of people that didn’t finish step 1 and will have all data for the ones that completed the step.

Again, thanks for your input!


1 Like

Thank you very much for the input, I will make sure it gets to the team!

Yes for now, for it to work as it is expected with the dbt-snowplow-ecommerce package, you should better track step: 1 as the user visit in the beginning of your checkout.