google-listings-and-ads
google-listings-and-ads copied to clipboard
Campaign Creation: Show campaign setup fields immediately during onboarding
Part of https://github.com/woocommerce/google-listings-and-ads/issues/2459
Currently, the first time someone gets to the Create a Campaign step of the onboarding flow, they are presented with a promotion for PMax campaigns with the option either skip or create a campaign. Choosing to Create a Campaign reveals the forms fields needed to set up your first campaign. This adds unnecessary friction since this step is much simpler than it was when originally introduced.
Instead of showing the Skip/Create buttons in the PaidAdsFeaturesSection and hiding PaidAdsSetupSections components, we will always show the PaidAdsSetupSections.
Acceptance Criteria
When reaching the Create a Campaign step of the onboarding flow:
- [ ] The PMax Campaign Promo (
PaidAdsSetupSections) no longer show footer buttons. - [ ] The Ads setup fields (
PaidAdsSetupSections) are always visible. - [ ] Unused code related to showing the Paid Ads setup is removed from the
SetupPaidAdscomponents.
Implementation Brief
Whether the footer buttons are shown in the PaidAdsFeaturesSection or not is based on the hideFooterButtons prop of that component, which currently passes ! hasGoogleAdsConnection || showPaidAdsSetup. This entire prop can be removed and the footer buttons removed from the component itself and all the related logic be removed from js/src/setup-mc/setup-stepper/setup-paid-ads/setup-paid-ads.js where this component is being used.
Likewise, the PaidAdsSetupSections and StepContentFooter are only shown if showPaidAdsSetup is true. Now that we always want to show that component, we can remove all the logic related to showPaidAdsSetup, which is set via a useState() hook. This includes removing remove the clientSession.setShowPaidAdsSetup and clientSession.getShowPaidAdsSetup methods in js/src/setup-mc/setup-stepper/setup-paid-ads/clientSession.js. The rest of that file should remain since it is also referenced by the PaidAdsSetupSections component.
Test Coverage
Update E2E tests in tests/e2e/specs/setup-mc/step-4-complete-campaign.test.js to match expected behavior and remove unused helpers.
This includes removing and cleaning up the
clientSessionhelper injs/src/setup-mc/setup-stepper/setup-paid-ads/clientSession.jsthat is also referenced in thePaidAdsSetupSectionscomponent.
Does it mean the uses of clientSession.getCampaign() and clientSession.setCampaign( nextPaidAds ) are planned to remove?
Does it mean the uses of clientSession.getCampaign() and clientSession.setCampaign( nextPaidAds ) are planned to remove?
No, I don't think there is any reason to remove those methods. We should just remove the clientSession.setShowPaidAdsSetup and clientSession.getShowPaidAdsSetup methods. I'll clarify in the Implementation Brief. Thanks!
Engineering complete and approved, moving to UAT for @fblascogarma final approval
Just tagging @joemcgill and @asvinb to advise this needs to be merged please
Merge conflicts fixed and assigning to @fblascogarma for final approval.
Closing this as completed since it was part of the 2.9 release.