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

feat: campaigns segmentation API rearchitecture #1192

Merged
merged 22 commits into from
Aug 17, 2023
Merged

Conversation

dkoo
Copy link
Contributor

@dkoo dkoo commented Aug 17, 2023

All Submissions:

Changes proposed in this Pull Request:

All changes required for the Campaigns Rearchitecture initiative. Also requires Automattic/newspack-plugin#2558 and Automattic/newspack-blocks#1498.

How to test the changes in this Pull Request:

All changes have already been tested and reviewed in individual PRs, so a check of the changeset should be all that's needed.

Other information:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes, as applicable?
  • Have you successfully ran tests with your changes locally?

miguelpeixe and others added 22 commits July 13, 2023 15:14
* chore: remove Lightweight API and client ID handling

* chore: remove data pruning cron job and clear future instances

* fix: script dependencies

* fix: remove unused method refs

* test: remove tests using deprecated features

* chore: remove more unneeded files

* test: remove other failing tests
Co-authored-by: Leo Germani <leogermani@automattic.com>
* feat: segmentation criteria system

* chore: refactor default criteria and implement utils

* chore: api tweaks

* fix: range logic

* chore: isolate segment matching example

* fix: ras dependency placement

* fix: add referrer sources category

* fix: api tweaks for consistency

* chore: file structure

* chore: inline docs

* chore: api tweaks

* fix: schema tweaks

* feat: add schema and migration helper

* fix: rename newsletter subscriber store item

* fix: send segment config instead of value

* chore: move default criteria registration

* fix: class name

* fix: change criteria options values

* fix: tweak migration

* fix: remove referrer creation

* fix: remove referrer creation

* test: dont enqueue scripts on tests

* test: add criteria

* test: add required

* test: add criteria

* fix: logic typo

* test: frontend matching

* fix: range config

* fix: missing range can be any range

* test: php criteria registration

* test: fix php test

* test: fix typo

* chore: improve inline docs

* fix: update segment criteria schema

* fix: configuration migration

* feat: use criteria to match prompt segments

* feat: fix schema and tests

* refactor: file structure

* chore: remove AMP polyfill JS

* feat: implement scroll triggers and frequency

* fix: add .phpunit.result.cache to .gitignore

* refactor: use prompt and segment config via JSON instead of DOM

* test: remove unit tests related to AMP Access and GA3 analytics

* fix: only show one overlay per page

* revert: use prompt and segment config via JSON instead of DOM

* test: re-fix failing tests

* fix: close overlay on background tap

* fix: src should not be added to release packages

* test: unit tests for segmetnation API

* test: actual unit tests for segmentation API

* chore: fix inline comment for accuracy

* fix: race condition when using perfmatters

* refactor: trigger seen GA4 event based on prompt_seen activity

* refactor: make the 1x overlay at a time rule testable

* refactor: overlay display check according to new unit test

* test: update test assertion for accuracy

* fix(criteria): allow async matching configuration

* fix: ensure global

* fix: logic for one-at-a-time overlays

* Revert "fix: race condition when using perfmatters"

This reverts commit c9fab16.

* fix: remove defaultCriteria.js

* fix: race condition with reader library JS

---------

Co-authored-by: Miguel Peixe <miguel.peixe@a8c.com>
Co-authored-by: Leo Germani <leogermani@automattic.com>
* feat: logic for favorite categories

* fix: top-ranked category must actually have more views than the other categories

* fix: simplify logic and account for undefined countsArray

* fix: account for multiple views in one category; simplify logic a bit

* fix: correct indexOf comparison
* feat: refactor segment relationship

* feat: refactor complete and tests updated

* fix: popup exporter

* fix: popup analytics events

* fix: avoid warning in the schema

This is actually a bug in core.
see https://core.trac.wordpress.org/ticket/56494

* fix: do not return disabled segments on REST

---------

Co-authored-by: Miguel Peixe <miguel.peixe@a8c.com>
* fix: remove old category cleanup

It was looking at deprecated configuration meta
After the refactor having a non existent cat should not be a problem

* test: remove test
* fix: allow prompts to be displayed without segmentation if no Newspack Plugin

* refactor: avoid use of negative variable name

* fix: newspack_popups_view.segments is not an array

* fix: hide segments taxonomy

---------

Co-authored-by: Leo Germani <leogermani@automattic.com>
Co-authored-by: dkoo <derrick.koo@10up.com>
* fix: support segmentation on donor landing page

* fix: support Mailchimp donor merge fields for segmentation

---------

Co-authored-by: Leo Germani <leogermani@automattic.com>
Co-authored-by: Derrick Koo <derrick.koo@automattic.com>
* fix: distignore should include some src subfolders

* fix: segments admin URL localized key name
* fix: allow manual prompts to be displayed in previews

* fix: previewing as a segment

* feat: use temporary reader data sessions for previews

* fix: single-prompt previews

* refactor: use helper function for determining override

* test: add tests for view_as and pid overrides

* test: fix query string in test
@dkoo dkoo self-assigned this Aug 17, 2023
@dkoo dkoo changed the title Epic/rearchitecture feat: campaigns segmentation API rearchitecture Aug 17, 2023
@dkoo dkoo marked this pull request as ready for review August 17, 2023 20:25
@dkoo dkoo requested a review from a team as a code owner August 17, 2023 20:25
Copy link
Contributor

@leogermani leogermani left a comment

Choose a reason for hiding this comment

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

This is epic

@dkoo dkoo merged commit d554151 into master Aug 17, 2023
2 checks passed
@dkoo dkoo deleted the epic/rearchitecture branch August 17, 2023 20:40
matticbot pushed a commit that referenced this pull request Aug 17, 2023
# [2.23.0-alpha.1](v2.22.0...v2.23.0-alpha.1) (2023-08-17)

### Bug Fixes

* move the close button when Hide Padding is enabled ([#1165](#1165)) ([20d17d9](20d17d9))

### Features

* campaigns segmentation API rearchitecture ([#1192](#1192)) ([d554151](d554151)), closes [#1155](#1155) [#1166](#1166) [#1167](#1167) [#1159](#1159) [#1175](#1175) [#1169](#1169)
@matticbot
Copy link
Contributor

🎉 This PR is included in version 2.23.0-alpha.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

matticbot pushed a commit that referenced this pull request Aug 24, 2023
# [2.23.0](v2.22.0...v2.23.0) (2023-08-24)

### Bug Fixes

* account for frequency presets in printed config ([#1203](#1203)) ([a97bc8f](a97bc8f))
* add .hidden styles for above header prompts ([#1207](#1207)) ([a19d64d](a19d64d))
* ensure url param segment is set ([#1197](#1197)) ([dc6c130](dc6c130))
* eslint new rule declaration-block-no-redundant-longhand-properties ([d1bf215](d1bf215))
* include missing file ([#1194](#1194)) ([d5fe344](d5fe344))
* move the close button when Hide Padding is enabled ([#1165](#1165)) ([20d17d9](20d17d9))
* remove string from overlay prompt ([#1204](#1204)) ([232f05a](232f05a))

### Features

* add segmentation README and more useful info to debug object ([#1195](#1195)) ([b501d9a](b501d9a))
* campaigns segmentation API rearchitecture ([#1192](#1192)) ([d554151](d554151)), closes [#1155](#1155) [#1166](#1166) [#1167](#1167) [#1159](#1159) [#1175](#1175) [#1169](#1169)
@matticbot
Copy link
Contributor

🎉 This PR is included in version 2.23.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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.

4 participants