PHPackages                             magequest/magento2-module-ppc-landing-pages - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. magequest/magento2-module-ppc-landing-pages

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

magequest/magento2-module-ppc-landing-pages
===========================================

A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

1.0.0(3y ago)17171MITPHP

Since Aug 14Pushed 3y ago1 watchersCompare

[ Source](https://github.com/MageQuest/magento2-module-ppc-landing-pages)[ Packagist](https://packagist.org/packages/magequest/magento2-module-ppc-landing-pages)[ RSS](/packages/magequest-magento2-module-ppc-landing-pages/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

MageQuest\_PpcLandingPages
==========================

[](#magequest_ppclandingpages)

Customise your PDP (Product Detail Pages) for PPC (Pay Per Click) visitors.

 [![Magento 2.4](https://camo.githubusercontent.com/5253e053c3545e091811bba28c7d15733fec4dd54275d4562293bafb64a22558/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d6167656e746f2d322e342d6f72616e67652e7376673f6c6f676f3d6d6167656e746f266c6f6e6743616368653d74727565267374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/5253e053c3545e091811bba28c7d15733fec4dd54275d4562293bafb64a22558/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d6167656e746f2d322e342d6f72616e67652e7376673f6c6f676f3d6d6167656e746f266c6f6e6743616368653d74727565267374796c653d666f722d7468652d6261646765) [![Hyvä Themes Supported](https://camo.githubusercontent.com/f615eff1d54fa4e54ea17618514282bab06489fdec8f611187fa5248f73b6898/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4879762543332541342532305468656d65732d537570706f727465642d627269676874677265656e3f7374796c653d666f722d7468652d6261646765266c6f6e6743616368653d74727565)](https://camo.githubusercontent.com/f615eff1d54fa4e54ea17618514282bab06489fdec8f611187fa5248f73b6898/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4879762543332541342532305468656d65732d537570706f727465642d627269676874677265656e3f7374796c653d666f722d7468652d6261646765266c6f6e6743616368653d74727565) [![Packagist Version](https://camo.githubusercontent.com/20a7cbd67e116f9be9023950319e3063be6f46c8658c9440d268686c2de8795c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d61676571756573742f6d6167656e746f322d6d6f64756c652d7070632d6c616e64696e672d70616765733f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/20a7cbd67e116f9be9023950319e3063be6f46c8658c9440d268686c2de8795c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d61676571756573742f6d6167656e746f322d6d6f64756c652d7070632d6c616e64696e672d70616765733f7374796c653d666f722d7468652d6261646765) [![MIT License](https://camo.githubusercontent.com/b58530991da861294ca86912f60fdfd4d3a7608666f2a4ad4aa5ecc703c53605/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e7376673f6c6f6e6743616368653d74727565267374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/b58530991da861294ca86912f60fdfd4d3a7608666f2a4ad4aa5ecc703c53605/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e7376673f6c6f6e6743616368653d74727565267374796c653d666f722d7468652d6261646765)

Overview
--------

[](#overview)

A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

Concept
=======

[](#concept)

The idea for this module is taken from [Made.com](https://www.made.com), where PDP pages visited from PPC adverts have different layout and content to the standard page.

For example:

- Standard PDP:

    [![Standard PDP](docs/images/harlow-pdp-std.png)](docs/images/harlow-pdp-std.png)
- PPC Landing PDP:

    [![Standard PDP](docs/images/harlow-pdp-ppc.png)](docs/images/harlow-pdp-ppc.png)

> Note: the `/ppc/` in the second URL after the TLD (Top Level Domain).

On the first URL we're served the default PDP page which focuses on the product in question with an almost full width gallery, lots of imagery and plenty of content to explain more about the product.

However, on the second URL we get a much smaller image, reduced information and 'add to cart' details and directly underneath the remainder of the page is dedicated to product relations and up-sells. The other key addition is a link to view the full product details (i.e. it links back to original/standard PDP page.)

Why?
----

[](#why)

When a customer lands on your site from a PPC ad you may want to tailor content to better suit them.

Consider the following:

It may be their first visit to your site, so you may want to promote/highlight content about your brand to build trust. For example, a PPC ad generally lands a customer on the PDP page, so they may not have seen the homepage or other pages.

You may offer similar products that aren't obvious on the standard PDP so moving product relations/up-sells further up the page may be desired. For example, generally a customer coming from a PPC link has more intent to buy and if they find they don't quite like the product their first natural reaction is to hit the back button and find something else back on the search engine. However, if you can promote other similar products you've got a much better chance of their next action being selecting one of these products and staying on your site, increasing the chance of them making a purchase from you.

Features
--------

[](#features)

- Allows all pages to accessed via a separate `/ppc/` prefixed URL path
    - This is intended to be used for PDPs, but can in theory be used on any page on the site
- Adds custom layout handles to these pages so layout and content can be modified
    - These end with a PPC suffix, e.g., for PDPs you get a `catalog_product_view_ppc` layout handle
    - For Hyvä Themes storefronts this also plays nice with their `hyva_` prefixes, e.g. `hyva_catalog_product_view_ppc`
- Provides configuration to modify meta (search engine) robots values for these pages
    - e.g. if you want to set all PPC landing pages to NOINDEX,NOFOLLOW
- Works alongside (i.e., doesn't interfere with) the default canonicalization settings
    - If default canonical links are enabled then the PPC landing pages will canonicalize back to the non PPC version of the page

(Batteries) Not Included
------------------------

[](#batteries-not-included)

This module is not 'plug and play'. It does NOT change the layout/content on PPC landing pages, it purely facilitates the ability to do so by allowing routing using `/ppc/` prefixed URLs and adding `_ppc` suffixed layout handles.

It's up to you and your design and development team to determine how you want to layout PPC landing pages and what content you want to include by utilising the layout handles provided. However, we recommend using the [Made.com](https://www.made.com) example as inspiration if you're stuck:

- Reduce the size of the main image gallery and remove any superfluous content for first time visitors
- Remove all supporting information about the product (except for key details like price and delivery lead times) and replace with a link to view full product details
- Dedicate the rest of the page (under image and add to cart section) to displaying product relations/up-sells or perhaps featured/related categories

In addition, it does not modify anything in relation to any feeds or integrations with your shopping channels, i.e. you need to make the necessary modifications to ensure the `/ppc/` prefixed URLs are utilised (e.g. in your Google Shopping or Facebook/Instagram Store feed).

Finally, whilst there is control over the meta robots, and canonicalization works if enabled, how you manage the visibility, or 'crawlability', of these pages is to you and this module does nothing in regard to `robots.txt`. Please consult an SEO expert for advice on how you should configure this for your (or your merchants) store.

FAQs
----

[](#faqs)

#### How Does It Work?

[](#how-does-it-work)

1. A new [custom router](https://developer.adobe.com/commerce/php/development/components/routing/#custom-routers) is added that checks for the occurance of `/ppc/` in the URL path
2. If matched, this is removed from the request path and the request is forwarded back to the rest of the routers (e.g. url rewrite, standard, cms, default etc.) so the original page contents can be loaded
3. However, as the original request path still contains `/ppc/` an observer then checks for this before layout is loaded, and if it matches, it adds `_ppc` as a suffix to all layout handles and updates the meta robots output based on the configuration values set

Installation
------------

[](#installation)

```
composer require magequest/magento2-module-ppc-landing-pages
bin/magento module:enable MageQuest_PpcLandingPages
bin/magento setup:upgrade

```

Compatibility
-------------

[](#compatibility)

- Magento Open Source / Adobe Commerce 2.4.x
- Compatible with [Hyvä Themes](https://hyva.io/) (there are no storefront changes!)

Contributing
------------

[](#contributing)

Issues and pull requests welcomed. Be considerate.

Credit/Thanks
-------------

[](#creditthanks)

- [Made.com](https://www.made.com) for the idea/inspiration
- [Hyvä Themes](https://hyva.io/) for the inspiration on adding layout handle prefixes/suffixes (e.g. `hyva_` concept)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

1367d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/43f3b3a59dc942417211200d258cff022a5208536f9965bf4de8bc1c369fefc8?d=identicon)[John Hughes](/maintainers/John%20Hughes)

---

Top Contributors

[![johnhughes1984](https://avatars.githubusercontent.com/u/3949917?v=4)](https://github.com/johnhughes1984 "johnhughes1984 (7 commits)")

### Embed Badge

![Health badge](/badges/magequest-magento2-module-ppc-landing-pages/health.svg)

```
[![Health](https://phpackages.com/badges/magequest-magento2-module-ppc-landing-pages/health.svg)](https://phpackages.com/packages/magequest-magento2-module-ppc-landing-pages)
```

###  Alternatives

[fastly/magento2

Fastly CDN Module for Magento 2.4.x

1564.2M1](/packages/fastly-magento2)[baldwin/magento2-module-url-data-integrity-checker

Magento 2 module which can find potential url related problems in your catalog data

281773.3k](/packages/baldwin-magento2-module-url-data-integrity-checker)[yireo/magento2-webp2

Magento 2 module to add WebP support to the Magento frontend

2091.2M7](/packages/yireo-magento2-webp2)[mage-os/module-inventory-reservations-grid

Add a grid with the list of inventory reservations.

126.8k](/packages/mage-os-module-inventory-reservations-grid)

PHPackages © 2026

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