Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent insertion before secondary level containers on desktop #13173

Merged
merged 3 commits into from
Jan 21, 2025

Conversation

cemms1
Copy link
Contributor

@cemms1 cemms1 commented Jan 17, 2025

What does this change?

Adds logic to prevent ad insertion before secondary level containers on desktop and adds test for this scenario

Additionally:

  • refactors the reducer function and adds comments to describe the resulting scenarios
  • renames AdCandidate to AdCandidateMobile to more clearly indicate this is only used for the mobile calculations (and ideally we would use DCRCollectionType directly, but not in this PR)
  • uses the whole DCRCollectionType object in the getDesktopAdPositions function instead of a partial version of it and adjusts tests to reflect this

Why?

As part of the work to support the new front layouts, this prevents ads interrupting the logical flow of content on the page.

This is likely to need rework but is a starting point for discussions and analysis

Screenshots

Europe beta screenshots (with secondary level containers)

Nb. The "after" screenshots have not actually loaded most of the ads due to running locally, but do illustrate any changes in ad positioning logic

Before After
before after
UK screenshots (without secondary level containers)

Nb. The "after" screenshots have not actually loaded most of the ads due to running locally, but do illustrate any changes in ad positioning logic

Before After
before2 after2

@cemms1 cemms1 force-pushed the cemms1/adjust-fronts-ad-positions-desktop branch from 57e79db to 8bc014b Compare January 17, 2025 17:20
Copy link

github-actions bot commented Jan 17, 2025

Size Change: 0 B

Total Size: 884 kB

ℹ️ View Unchanged
Filename Size
dotcom-rendering/dist/1076.client.web.********************.js 3.41 kB
dotcom-rendering/dist/1101.client.web.********************.js 4.81 kB
dotcom-rendering/dist/1262.client.web.********************.js 4.49 kB
dotcom-rendering/dist/1401.client.web.********************.js 441 B
dotcom-rendering/dist/1427.client.web.********************.js 4.94 kB
dotcom-rendering/dist/1477.client.web.********************.js 3.52 kB
dotcom-rendering/dist/1669.client.web.********************.js 12.3 kB
dotcom-rendering/dist/1714.client.web.********************.js 2.87 kB
dotcom-rendering/dist/2188.client.web.********************.js 6.52 kB
dotcom-rendering/dist/2444.client.web.********************.js 2.67 kB
dotcom-rendering/dist/2482.client.web.********************.js 44.8 kB
dotcom-rendering/dist/280.client.web.********************.js 531 B
dotcom-rendering/dist/3213.client.web.********************.js 5.42 kB
dotcom-rendering/dist/342.client.web.********************.js 4.18 kB
dotcom-rendering/dist/3524.client.web.********************.js 3.51 kB
dotcom-rendering/dist/3769.client.web.********************.js 22.7 kB
dotcom-rendering/dist/3789.client.web.********************.js 3.58 kB
dotcom-rendering/dist/39.client.web.********************.js 3.06 kB
dotcom-rendering/dist/3937.client.web.********************.js 3.85 kB
dotcom-rendering/dist/4020.client.web.********************.js 14.4 kB
dotcom-rendering/dist/4170.client.web.********************.js 16.3 kB
dotcom-rendering/dist/4285.client.web.********************.js 6.13 kB
dotcom-rendering/dist/4501.client.web.********************.js 4.29 kB
dotcom-rendering/dist/4684.client.web.********************.js 3.17 kB
dotcom-rendering/dist/4878.client.web.********************.js 8.08 kB
dotcom-rendering/dist/4943.client.web.********************.js 3.69 kB
dotcom-rendering/dist/5095.client.web.********************.js 4.17 kB
dotcom-rendering/dist/5223.client.web.********************.js 3.27 kB
dotcom-rendering/dist/5598.client.web.********************.js 4.49 kB
dotcom-rendering/dist/6021.client.web.********************.js 11.1 kB
dotcom-rendering/dist/6061.client.web.********************.js 3.63 kB
dotcom-rendering/dist/6073.client.web.********************.js 3.53 kB
dotcom-rendering/dist/6163.client.web.********************.js 3.83 kB
dotcom-rendering/dist/6577.client.web.********************.js 5.41 kB
dotcom-rendering/dist/6627.client.web.********************.js 10.4 kB
dotcom-rendering/dist/6876.client.web.********************.js 2.67 kB
dotcom-rendering/dist/6882.client.web.********************.js 12.6 kB
dotcom-rendering/dist/6887.client.web.********************.js 2.49 kB
dotcom-rendering/dist/6903.client.web.********************.js 3.21 kB
dotcom-rendering/dist/6931.client.web.********************.js 2.56 kB
dotcom-rendering/dist/6940.client.web.********************.js 526 B
dotcom-rendering/dist/7116.client.web.********************.js 23 kB
dotcom-rendering/dist/719.client.web.********************.js 3.49 kB
dotcom-rendering/dist/7350.client.web.********************.js 3.32 kB
dotcom-rendering/dist/7364.client.web.********************.js 3.22 kB
dotcom-rendering/dist/7540.client.web.********************.js 2.72 kB
dotcom-rendering/dist/7546.client.web.********************.js 7.36 kB
dotcom-rendering/dist/7861.client.web.********************.js 619 B
dotcom-rendering/dist/8030.client.web.********************.js 4.18 kB
dotcom-rendering/dist/8067.client.web.********************.js 3.39 kB
dotcom-rendering/dist/8209.client.web.********************.js 3.64 kB
dotcom-rendering/dist/8592.client.web.********************.js 157 B
dotcom-rendering/dist/895.client.web.********************.js 5.14 kB
dotcom-rendering/dist/9242.client.web.********************.js 3.76 kB
dotcom-rendering/dist/9288.client.web.********************.js 2.51 kB
dotcom-rendering/dist/9362.client.web.********************.js 20.3 kB
dotcom-rendering/dist/9558.client.web.********************.js 3.53 kB
dotcom-rendering/dist/9665.client.web.********************.js 4.04 kB
dotcom-rendering/dist/9735.client.web.********************.js 4.46 kB
dotcom-rendering/dist/9766.client.web.********************.js 3.4 kB
dotcom-rendering/dist/9790.client.web.********************.js 3.58 kB
dotcom-rendering/dist/Accessibility-importable.client.web.********************.js 6.71 kB
dotcom-rendering/dist/AdBlockAsk-importable.client.web.********************.js 2.85 kB
dotcom-rendering/dist/AdPortals-importable.client.web.********************.js 4.85 kB
dotcom-rendering/dist/AlreadyVisited-importable.client.web.********************.js 424 B
dotcom-rendering/dist/AppsEpic-importable.client.web.********************.js 3.63 kB
dotcom-rendering/dist/AppsFooter-importable.client.web.********************.js 2.7 kB
dotcom-rendering/dist/AppsLightboxImage-importable.client.web.********************.js 2.66 kB
dotcom-rendering/dist/AppsLightboxImageStore-importable.client.web.********************.js 2.55 kB
dotcom-rendering/dist/AudioAtomWrapper-importable.client.web.********************.js 2.59 kB
dotcom-rendering/dist/AudioPlayerWrapper-importable.client.web.********************.js 6.33 kB
dotcom-rendering/dist/AustralianTerritorySwitcher-importable.client.web.********************.js 2 kB
dotcom-rendering/dist/Branding-importable.client.web.********************.js 2.88 kB
dotcom-rendering/dist/braze-web-sdk-core.client.web.********************.js 37.2 kB
dotcom-rendering/dist/BrazeMessaging-importable.client.web.********************.js 1.97 kB
dotcom-rendering/dist/CalloutBlockComponent-importable.client.web.********************.js 6.74 kB
dotcom-rendering/dist/CalloutEmbedBlockComponent-importable.client.web.********************.js 5.77 kB
dotcom-rendering/dist/CardCommentCount-importable.client.web.********************.js 2.66 kB
dotcom-rendering/dist/Carousel-importable.client.web.********************.js 7.03 kB
dotcom-rendering/dist/CarouselForNewsletters-importable.client.web.********************.js 5.15 kB
dotcom-rendering/dist/ChartAtom-importable.client.web.********************.js 538 B
dotcom-rendering/dist/CommentCount-importable.client.web.********************.js 2.29 kB
dotcom-rendering/dist/Crossword-importable.client.web.********************.js 277 B
dotcom-rendering/dist/DiscussionApps-importable.client.web.********************.js 1.93 kB
dotcom-rendering/dist/DiscussionMeta-importable.client.web.********************.js 2.44 kB
dotcom-rendering/dist/DiscussionWeb-importable.client.web.********************.js 1.74 kB
dotcom-rendering/dist/DocumentBlockComponent-importable.client.web.********************.js 2.82 kB
dotcom-rendering/dist/Dropdown-importable.client.web.********************.js 1.72 kB
dotcom-rendering/dist/EditionSwitcherBanner-importable.client.web.********************.js 3.49 kB
dotcom-rendering/dist/EmbedBlockComponent-importable.client.web.********************.js 3.94 kB
dotcom-rendering/dist/EnhancePinnedPost-importable.client.web.********************.js 2.02 kB
dotcom-rendering/dist/FetchOnwardsData-importable.client.web.********************.js 1.94 kB
dotcom-rendering/dist/FilterKeyEventsToggle-importable.client.web.********************.js 3.8 kB
dotcom-rendering/dist/FocusStyles-importable.client.web.********************.js 617 B
dotcom-rendering/dist/FollowWrapper-importable.client.web.********************.js 2.52 kB
dotcom-rendering/dist/FooterLabel-importable.client.web.********************.js 343 B
dotcom-rendering/dist/FooterReaderRevenueLinks-importable.client.web.********************.js 3.5 kB
dotcom-rendering/dist/frameworks.client.web.********************.js 20.9 kB
dotcom-rendering/dist/FrontSubNav-importable.client.web.********************.js 7.37 kB
dotcom-rendering/dist/GetCricketScoreboard-importable.client.web.********************.js 6.26 kB
dotcom-rendering/dist/GetMatchNav-importable.client.web.********************.js 11.4 kB
dotcom-rendering/dist/GetMatchStats-importable.client.web.********************.js 7.97 kB
dotcom-rendering/dist/GetMatchTabs-importable.client.web.********************.js 2.58 kB
dotcom-rendering/dist/guardian-braze-components-banner.client.web.********************.js 15.8 kB
dotcom-rendering/dist/guardian-braze-components-end-of-article.client.web.********************.js 10.2 kB
dotcom-rendering/dist/GuideAtomWrapper-importable.client.web.********************.js 783 B
dotcom-rendering/dist/index.client.web.********************.js 45 kB
dotcom-rendering/dist/InstagramBlockComponent-importable.client.web.********************.js 2.9 kB
dotcom-rendering/dist/InteractiveAtomMessenger-importable.client.web.********************.js 853 B
dotcom-rendering/dist/InteractiveBlockComponent-importable.client.web.********************.js 8.49 kB
dotcom-rendering/dist/InteractiveContentsBlockComponent-importable.client.web.********************.js 3.74 kB
dotcom-rendering/dist/KeyEventsCarousel-importable.client.web.********************.js 5.68 kB
dotcom-rendering/dist/KnowledgeQuizAtom-importable.client.web.********************.js 3.55 kB
dotcom-rendering/dist/LatestLinks-importable.client.web.********************.js 6.38 kB
dotcom-rendering/dist/LightboxHash-importable.client.web.********************.js 436 B
dotcom-rendering/dist/LightboxLayout-importable.client.web.********************.js 6.52 kB
dotcom-rendering/dist/LiveBlogEpic-importable.client.web.********************.js 3.55 kB
dotcom-rendering/dist/LiveblogNotifications-importable.client.web.********************.js 4.82 kB
dotcom-rendering/dist/Liveness-importable.client.web.********************.js 4.72 kB
dotcom-rendering/dist/ManyNewsletterSignUp-importable.client.web.********************.js 7.6 kB
dotcom-rendering/dist/MapEmbedBlockComponent-importable.client.web.********************.js 5.89 kB
dotcom-rendering/dist/Metrics-importable.client.web.********************.js 2.69 kB
dotcom-rendering/dist/MostViewedFooter-importable.client.web.********************.js 3.85 kB
dotcom-rendering/dist/MostViewedFooterData-importable.client.web.********************.js 5.94 kB
dotcom-rendering/dist/MostViewedRightWithAd-importable.client.web.********************.js 5.12 kB
dotcom-rendering/dist/OnwardsUpper-importable.client.web.********************.js 5.32 kB
dotcom-rendering/dist/PersonalityQuizAtom-importable.client.web.********************.js 3.72 kB
dotcom-rendering/dist/ProfileAtom-importable.client.web.********************.js 543 B
dotcom-rendering/dist/ProfileAtomWrapper-importable.client.web.********************.js 802 B
dotcom-rendering/dist/PulsingDot-importable.client.web.********************.js 749 B
dotcom-rendering/dist/QandaAtom-importable.client.web.********************.js 543 B
dotcom-rendering/dist/ReaderRevenueDev-importable.client.web.********************.js 468 B
dotcom-rendering/dist/readerRevenueDevUtils.client.web.********************.js 1.75 kB
dotcom-rendering/dist/RelativeTime-importable.client.web.********************.js 2.53 kB
dotcom-rendering/dist/RichLinkComponent-importable.client.web.********************.js 6.11 kB
dotcom-rendering/dist/ScrollableFeature-importable.client.web.********************.js 7.07 kB
dotcom-rendering/dist/ScrollableHighlights-importable.client.web.********************.js 6.28 kB
dotcom-rendering/dist/ScrollableMedium-importable.client.web.********************.js 4.4 kB
dotcom-rendering/dist/ScrollableSmall-importable.client.web.********************.js 4.37 kB
dotcom-rendering/dist/SecureSignup-importable.client.web.********************.js 4.1 kB
dotcom-rendering/dist/SendTargetingParams-importable.client.web.********************.js 2.22 kB
dotcom-rendering/dist/sentry.client.web.********************.js 794 B
dotcom-rendering/dist/SetABTests-importable.client.web.********************.js 3.69 kB
dotcom-rendering/dist/SetAdTargeting-importable.client.web.********************.js 485 B
dotcom-rendering/dist/ShareButton-importable.client.web.********************.js 919 B
dotcom-rendering/dist/shimport.client.web.********************.js 2.8 kB
dotcom-rendering/dist/ShowHideContainers-importable.client.web.********************.js 730 B
dotcom-rendering/dist/ShowMore-importable.client.web.********************.js 2.1 kB
dotcom-rendering/dist/SignInGateMain.client.web.********************.js 4.46 kB
dotcom-rendering/dist/SignInGateMainCheckoutComplete.client.web.********************.js 5.56 kB
dotcom-rendering/dist/SignInGateSelector-importable.client.web.********************.js 5.83 kB
dotcom-rendering/dist/SlideshowCarousel-importable.client.web.********************.js 4.37 kB
dotcom-rendering/dist/SlotBodyEnd-importable.client.web.********************.js 4.84 kB
dotcom-rendering/dist/SpotifyBlockComponent-importable.client.web.********************.js 5.71 kB
dotcom-rendering/dist/StickyBottomBanner-importable.client.web.********************.js 6.15 kB
dotcom-rendering/dist/StickyLiveblogAskWrapper-importable.client.web.********************.js 8.14 kB
dotcom-rendering/dist/SubNav-importable.client.web.********************.js 2.41 kB
dotcom-rendering/dist/TableOfContents-importable.client.web.********************.js 3.48 kB
dotcom-rendering/dist/TimelineAtom-importable.client.web.********************.js 1.23 kB
dotcom-rendering/dist/Titlepiece-importable.client.web.********************.js 13.5 kB
dotcom-rendering/dist/TopBar-importable.client.web.********************.js 9.29 kB
dotcom-rendering/dist/TopBarSupport-importable.client.web.********************.js 2.5 kB
dotcom-rendering/dist/TweetBlockComponent-importable.client.web.********************.js 1.13 kB
dotcom-rendering/dist/UnsafeEmbedBlockComponent-importable.client.web.********************.js 2.91 kB
dotcom-rendering/dist/VideoFacebookBlockComponent-importable.client.web.********************.js 5.9 kB
dotcom-rendering/dist/VineBlockComponent-importable.client.web.********************.js 2.78 kB
dotcom-rendering/dist/YoutubeBlockComponent-importable.client.web.********************.js 4.38 kB

compressed-size-action

Comment on lines +272 to +274
if (collection.containerLevel === 'Secondary') {
return false;
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is the feature change - preventing insertion before secondary level containers

@cemms1 cemms1 force-pushed the cemms1/adjust-fronts-ad-positions-desktop branch from 2145e68 to 79aa7c1 Compare January 20, 2025 09:22
@cemms1 cemms1 requested a review from a team January 20, 2025 09:57
@cemms1 cemms1 added the run_chromatic Runs chromatic when label is applied label Jan 20, 2025
@cemms1 cemms1 marked this pull request as ready for review January 20, 2025 09:57
@cemms1 cemms1 requested a review from a team as a code owner January 20, 2025 09:57
@github-actions github-actions bot removed the run_chromatic Runs chromatic when label is applied label Jan 20, 2025
Copy link
Contributor

@deedeeh deedeeh left a comment

Choose a reason for hiding this comment

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

Looks great Charlotte and thank you for the well written PR 🎉

@cemms1 cemms1 merged commit 9aae30a into main Jan 21, 2025
32 checks passed
@cemms1 cemms1 deleted the cemms1/adjust-fronts-ad-positions-desktop branch January 21, 2025 10:03
@prout-bot
Copy link

Seen on PROD (merged by @cemms1 7 minutes and 48 seconds ago) Please check your changes!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants