Documentation Fundamentals

The add_payment_info Event in Google Analytics 4 (GA4)

The add_payment_info event in Google Analytics 4 (GA4) is used to track when a user has entered their payment information during checkout.

This is a common drop-off point: at the latest, users without serious purchase intent will abandon when asked for payment details. Users who enter their payment information but don’t complete the purchase are prime candidates for remarketing—they’ve shown clear intent and can often be successfully re-engaged. Alternatively, it might signal that something is going wrong in the final checkout steps, either from a communication or technical standpoint. For example, the availability of certain payment methods (PayPal, Klarna, Buy Now Pay Later, Apple Pay, etc.) can significantly impact how well your checkout converts.

Screenshot of payment method selection in Shopify Checkout
Payment method selection in Shopify Checkout isn't a separate page, yet an add_payment_info event can still be triggered when users add their payment information.

The add_payment_info event is one of the e-commerce events in GA4, meaning it can be enriched with items, value, and the payment_type parameter.

Implementation

The best place to trigger add_payment_info is when the user finally confirms their payment method (e.g., by clicking “Continue”) or when the payment method has been successfully saved in the checkout.

It’s sometimes also used to track whether a user has selected a payment method, e.g., for returning users who already have a saved payment method from a previous session.

Important: add_payment_info is not the purchase itself. It’s a step before purchase.

Required fields & value logic

  • items is required. Each item should have at least item_id or item_name set.
  • If you use value, also set currency. value should be the sum of price * quantity for all items—excluding shipping and taxes.

Coupons (optional)

If a coupon is active in the checkout, you can include the code as coupon. This is particularly helpful if certain payment methods are only available with/without a coupon, or if you want to analyze performance by promotional campaigns.

dataLayer

javascript
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
    event: "add_payment_info",
    ecommerce: {
        currency: "EUR",
        value: 123.45,
        payment_type: "paypal",
        items: [{
            item_id: "SKU12345",
            item_name: "Superfood Powder",
            item_category: "Superfoods",
            item_variant: "500g",
            item_brand: "MySupplements",
            price: 29.90,
            quantity: 2
        },
        {
            item_id: "SKU67890",
            item_name: "Superfood Capsules",
            item_category: "Superfoods",
            item_variant: "90 Count",
            item_brand: "MySupplements",
            price: 34.90,
            quantity: 1
        }]
    }
});
Show all code

Common pitfalls

  • Payment redirects: With external payment providers (e.g., PayPal), users are often redirected to a different domain. Make sure the event is reliably sent before the redirect, or send it server-side.
  • Too many payment method variants: Be careful not to make payment_type too granular (e.g., “Visa Credit Card”, “Mastercard Credit Card”) if you ultimately just want to compare “card” vs. “paypal”.