google-listings-and-ads icon indicating copy to clipboard operation
google-listings-and-ads copied to clipboard

Campaign Creation: Show campaign setup fields immediately during onboarding

Open joemcgill opened this issue 1 year ago • 5 comments

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.

Image

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 SetupPaidAds components.

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.

joemcgill avatar Aug 06 '24 20:08 joemcgill

This includes removing and cleaning up the clientSession helper in js/src/setup-mc/setup-stepper/setup-paid-ads/clientSession.js that is also referenced in the PaidAdsSetupSections component.

Does it mean the uses of clientSession.getCampaign() and clientSession.setCampaign( nextPaidAds ) are planned to remove?

eason9487 avatar Aug 08 '24 04:08 eason9487

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!

joemcgill avatar Aug 08 '24 19:08 joemcgill

Engineering complete and approved, moving to UAT for @fblascogarma final approval

eclarke1 avatar Sep 09 '24 11:09 eclarke1

Just tagging @joemcgill and @asvinb to advise this needs to be merged please

eclarke1 avatar Sep 09 '24 16:09 eclarke1

Merge conflicts fixed and assigning to @fblascogarma for final approval.

asvinb avatar Sep 10 '24 09:09 asvinb

Closing this as completed since it was part of the 2.9 release.

mikkamp avatar Dec 02 '24 15:12 mikkamp