PHPackages                             greenpeace/planet4-gpch-plugin-optimize - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. greenpeace/planet4-gpch-plugin-optimize

ActiveWordpress-plugin[Testing &amp; Quality](/categories/testing)

greenpeace/planet4-gpch-plugin-optimize
=======================================

A/B Testing and Personalization for Planet4 and Mixpanel

v0.4.2(8mo ago)41.2k1[8 issues](https://github.com/GreenpeaceSchweiz/planet4-gpch-plugin-optimize/issues)GPL-2.0-or-laterJavaScript

Since Feb 19Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/GreenpeaceSchweiz/planet4-gpch-plugin-optimize)[ Packagist](https://packagist.org/packages/greenpeace/planet4-gpch-plugin-optimize)[ RSS](/packages/greenpeace-planet4-gpch-plugin-optimize/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (23)Used By (0)

Planet4 GPCH Optimize Plugin
============================

[](#planet4-gpch-optimize-plugin)

Caution

**This plugin is still in alpha stage and not ready for production use.**

Testing and personalization functionality for WordPress/Planet4 websites that use Mixpanel for web analytics.

Functionality
-------------

[](#functionality)

- Set up A/B or multivariate content tests directly from the Gutenberg editor
- Split URL testing directly from the Gutenberg editor
- Weighted random targeting for content variants (e.g. 70% variant A, 30% variant B)
- Personalized content bases on:
    - URL parameters (including UTM tags)
    - localStorage and sessionStorage
- Sends experiment data either directly to the Mixpanel JavaScript SDK or to dataLayer (Tag Manager)

Measurement and evaluation of experiments is not part of this plugin.

It only works in conjunction with the [Mixpanel experiments](https://docs.mixpanel.com/docs/reports/apps/experiments) feature. Conversion events also need to be set up separately for Mixpanel.

Documentation
-------------

[](#documentation)

- [Setup](documentation/setup.md)
- [Setting up an in-page experiment](documentation/setting-up-an-experiment.md)
- [Using split URL tests](documentation/using-split-url-tests.md)
- [Personalize content](./documentation/personalization.md)
- [Evaluating experiments in Mixpanel](documentation/evaluating-experiments-in-mixpanel.md)
- [Development](documentation/development.md)

FAQ
---

[](#faq)

### Is the plugin compatible with every WordPress website?

[](#is-the-plugin-compatible-with-every-wordpress-website)

So far yes. Although it's developed and tested for [Planet4](https://planet4.greenpeace.org/), it can be used in any WordPress installation.

### Can the plugin be used with different web analytics software?

[](#can-the-plugin-be-used-with-different-web-analytics-software)

You may be able to use Tag Manager to set up the plugin to work with different web analytics solutions if you can make use of dataLayer event. The event contains the variables `experiment_name` and `experiment_variant`. Those could be used to build cohorts in some web analytics tools.

### I have more questions, an idea for an additional feature or something doesn't work

[](#i-have-more-questions-an-idea-for-an-additional-feature-or-something-doesnt-work)

Please be aware that the plugin is provided as is and our time for support is limited. But please do open an issue on GitHub for any bugs, feature ideas or other requests.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance40

Moderate activity, may be stable

Popularity23

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 74.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~38 days

Total

6

Last Release

257d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f46f9074cd5957ff3c044de08bdd6c759aff677d3327ed3ae43a728aa93c9f7b?d=identicon)[stduerre](/maintainers/stduerre)

---

Top Contributors

[![stduerre](https://avatars.githubusercontent.com/u/46678842?v=4)](https://github.com/stduerre "stduerre (41 commits)")[![stefanduerrenberger](https://avatars.githubusercontent.com/u/76908?v=4)](https://github.com/stefanduerrenberger "stefanduerrenberger (14 commits)")

### Embed Badge

![Health badge](/badges/greenpeace-planet4-gpch-plugin-optimize/health.svg)

```
[![Health](https://phpackages.com/badges/greenpeace-planet4-gpch-plugin-optimize/health.svg)](https://phpackages.com/packages/greenpeace-planet4-gpch-plugin-optimize)
```

###  Alternatives

[phpspec/prophecy

Highly opinionated mocking framework for PHP 5.3+

8.5k551.7M682](/packages/phpspec-prophecy)[vimeo/psalm

A static analysis tool for finding errors in PHP applications

5.8k77.5M6.7k](/packages/vimeo-psalm)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[beberlei/assert

Thin assertion library for input validation in business models.

2.4k96.9M570](/packages/beberlei-assert)[mikey179/vfsstream

Virtual file system to mock the real file system in unit tests.

1.4k108.0M2.7k](/packages/mikey179-vfsstream)[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
