Skip to content

Conversation

@dmallory42
Copy link
Contributor

@dmallory42 dmallory42 commented Nov 26, 2025

Fixes WOOPMNT-5457

Changes proposed in this Pull Request

Implements analytics tracking for payment method promotion UI components. This adds five tracking events that fire when merchants interact with spotlight promotions:

  • wcpay_payment_method_promotion_view - Promotion displayed
  • wcpay_payment_method_promotion_dismiss - Promotion dismissed
  • wcpay_payment_method_promotion_activate_click - Activate button clicked
  • wcpay_payment_method_promotion_secondary_click - Secondary action clicked
  • wcpay_payment_method_promotion_link_click - Terms link clicked

All events include these properties:

  • promotion_id - e.g., klarna-2026-promo
  • payment_method - e.g., klarna
  • variation_id - e.g., klarna-2026-promo__spotlight_primary
  • display_context - e.g., spotlight
  • source - Human-readable page identifier: wcpay-overview, wcpay-settings, wc-settings-payments
  • path - Full URL path (pathname + search params)

Testing instructions

Unit tests:

npm run test:js -- --testPathPattern="client/promotions/spotlight"
npm run test:js -- --testPathPattern="client/components/spotlight"

Manual testing:

  1. Navigate to WooPayments > Overview (ensure account is onboarded)
  2. Open browser dev tools Network tab, filter by t.gif
  3. Wait for spotlight promotion to appear (4 second delay)
  4. For each interaction, verify a request to pixel.wp.com/t.gif fires with the correct _en parameter:
    • Spotlight appears → _en=wcadmin_wcpay_payment_method_promotion_view
    • Click "Activate Now" → _en=wcadmin_wcpay_payment_method_promotion_activate_click
    • Click "Learn more" → _en=wcadmin_wcpay_payment_method_promotion_secondary_click
    • Click "Terms and conditions" link → _en=wcadmin_wcpay_payment_method_promotion_link_click
    • Click X to dismiss → _en=wcadmin_wcpay_payment_method_promotion_dismiss
  5. Verify each request includes these properties in the query string:
    • promotion_id=klarna-2026-promo
    • payment_method=klarna
    • variation_id=klarna-2026-promo__spotlight_primary
    • display_context=spotlight
    • source=wcpay-overview (or wcpay-settings / wc-settings-payments depending on page)
    • path=/wp-admin/admin.php?page=wc-admin&path=%2Fpayments%2Foverview (URL-encoded path)

  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

🤖 Generated with Claude Code

Implements tracking events for the spotlight promotion component per WOOPMNT-5457:

Events added:
- wcpay_payment_method_promotion_view - When spotlight appears
- wcpay_payment_method_promotion_dismiss - When merchant dismisses
- wcpay_payment_method_promotion_cta_click - Primary button click
- wcpay_payment_method_promotion_secondary_click - Secondary button click
- wcpay_payment_method_promotion_link_click - Terms link click

All events include: promotion_id, payment_method, variation_id, display_context, and page.

Changes:
- Add onView callback prop to Spotlight component
- Implement tracking in SpotlightPromotion container
- Add payment_method field to Promotion type and mock data
- Add comprehensive unit tests for all tracking events

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@dmallory42 dmallory42 changed the base branch from develop to add/payment-method-promotions November 26, 2025 14:19
@github-actions
Copy link
Contributor

github-actions bot commented Nov 26, 2025

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 11161 or branch name add/promotions-tracks-events in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 3023e2c
  • Build time: 2025-11-27 11:29:42 UTC

Note: the build is updated when a new commit is pushed to this PR.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 26, 2025

Size Change: +1.07 kB (0%)

Total Size: 904 kB

Filename Size Change
release/woocommerce-payments/dist/blocks-checkout-rtl.css 3.05 kB +3 B (0%)
release/woocommerce-payments/dist/blocks-checkout.css 3.05 kB +3 B (0%)
release/woocommerce-payments/dist/index.js 155 kB +409 B (0%)
release/woocommerce-payments/dist/settings.js 143 kB +221 B (0%)
release/woocommerce-payments/dist/wc-payment-settings-spotlight.js 19 kB +439 B (+2%)
ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.45 kB
release/woocommerce-payments/assets/css/admin.rtl.css 1.45 kB
release/woocommerce-payments/assets/css/success.css 1.06 kB
release/woocommerce-payments/assets/css/success.rtl.css 1.06 kB
release/woocommerce-payments/dist/blocks-checkout.js 54.6 kB
release/woocommerce-payments/dist/cart-block-rtl.css 113 B
release/woocommerce-payments/dist/cart-block.css 112 B
release/woocommerce-payments/dist/cart-block.js 16.7 kB
release/woocommerce-payments/dist/cart.js 5.27 kB
release/woocommerce-payments/dist/checkout-rtl.css 1.13 kB
release/woocommerce-payments/dist/checkout.css 1.13 kB
release/woocommerce-payments/dist/checkout.js 34.6 kB
release/woocommerce-payments/dist/express-checkout-rtl.css 367 B
release/woocommerce-payments/dist/express-checkout.css 367 B
release/woocommerce-payments/dist/express-checkout.js 16.9 kB
release/woocommerce-payments/dist/frontend-tracks.js 833 B
release/woocommerce-payments/dist/index-rtl.css 21.6 kB
release/woocommerce-payments/dist/index.css 21.6 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.08 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 3.82 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 18.7 kB
release/woocommerce-payments/dist/multi-currency.css 3.83 kB
release/woocommerce-payments/dist/multi-currency.js 25.2 kB
release/woocommerce-payments/dist/order-rtl.css 740 B
release/woocommerce-payments/dist/order.css 740 B
release/woocommerce-payments/dist/order.js 21.8 kB
release/woocommerce-payments/dist/plugins-page-rtl.css 484 B
release/woocommerce-payments/dist/plugins-page.css 484 B
release/woocommerce-payments/dist/plugins-page.js 2.64 kB
release/woocommerce-payments/dist/product-details-rtl.css 433 B
release/woocommerce-payments/dist/product-details.css 436 B
release/woocommerce-payments/dist/product-details.js 12.3 kB
release/woocommerce-payments/dist/settings-rtl.css 12.2 kB
release/woocommerce-payments/dist/settings.css 12 kB
release/woocommerce-payments/dist/subscription-edit-page.js 703 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 527 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 527 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 1.98 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 730 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 1.9 kB
release/woocommerce-payments/dist/success.js 6.03 kB
release/woocommerce-payments/dist/tos-rtl.css 235 B
release/woocommerce-payments/dist/tos.css 235 B
release/woocommerce-payments/dist/tos.js 3 kB
release/woocommerce-payments/dist/wc-payment-settings-spotlight-rtl.css 1.3 kB
release/woocommerce-payments/dist/wc-payment-settings-spotlight.css 1.3 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 5.68 kB
release/woocommerce-payments/dist/woopay-express-button.js 22.8 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.27 kB
release/woocommerce-payments/dist/woopay.css 4.25 kB
release/woocommerce-payments/dist/woopay.js 70.8 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 625 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 814 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.46 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/jetpack-script-data.js 957 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.02 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/script-data.js 69 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/babel.config.js 163 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.js 14.3 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.rtl.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.css 10.1 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.js 29.7 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.rtl.css 10.1 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.js 280 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.rtl.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.css 625 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.js 333 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.rtl.css 626 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-users.js 417 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-users-connection.js 161 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 585 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.css 215 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.css 721 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js 412 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js 625 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.04 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 294 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 408 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.59 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 301 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 746 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 574 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 414 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 543 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.4 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.78 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.84 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 545 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.52 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.2 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.7 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 507 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 358 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 428 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 782 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.09 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.26 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 391 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.04 kB

compressed-size-action

@dmallory42 dmallory42 requested review from a team and vladolaru November 26, 2025 14:33
Copy link
Contributor

@vladolaru vladolaru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All good, @dmallory42. Apart from some minor comments, let's merge it as we have bigger fish to fry :)

dmallory42 and others added 3 commits November 27, 2025 11:18
Replace `page` (full URL) with `source` parameter that identifies
the page context in a human-readable format:
- wcpay-overview
- wcpay-settings
- wc-settings-payments
- unknown (fallback)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Include the full URL path (pathname + search) alongside the
human-readable source parameter for more detailed analytics.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
The primary action is specifically for activation, so use a more
descriptive event name. The cta_label is redundant since the action
is always activation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@dmallory42 dmallory42 merged commit b67d3e8 into add/payment-method-promotions Nov 27, 2025
20 of 24 checks passed
@dmallory42 dmallory42 deleted the add/promotions-tracks-events branch November 27, 2025 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants