Linux 软件免费装
Banner图

Pixel Made Simple

开发者 seitzdominik
更新时间 2026年9月19日 16:14
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

google ads tiktok pixel meta pixel consent mode conversions api

下载

0.12.7

详情介绍:

Pixel Made Simple is a deliberately minimal tracking plugin. No jQuery, no frameworks, no DOM listeners in the frontend – just the official platform loaders (loaded asynchronously) plus a few lines of inline code. What the plugin does Pixel Made Simple Pro Everything described above is included here, without limits or license checks. Pixel Made Simple Pro is a separate plugin for online shops and campaign attribution. It adds WooCommerce and SureCart tracking (ViewContent, AddToCart, InitiateCheckout and Purchase for all four platforms, with a server-side Purchase fallback and optional advanced matching), the TikTok Events API for server-side purchase events, and first-touch/UTM attribution with automatic form fill. Both plugins use the same option keys, so switching between them keeps your configuration.

安装:

  1. Upload the plugin via Plugins → Add New → Upload Plugin and activate it, or install it from the WordPress.org plugin directory.
  2. Open Pixel Made Simple in the admin menu, expand Meta (Facebook), enter your Pixel ID and switch the platform on.
  3. Optional: paste your Conversions API access token (Meta Events Manager → Data sources → Settings → Conversions API) – the Conversions API switches on automatically.
  4. In the URL Events tab, add rules for your thank-you or confirmation pages. For forms without a redirect, enable Automatic form lead tracking in the Advanced Tracking tab instead.
  5. Check the Event Log and the live debug bar (visible to administrators in the frontend) to verify that events arrive.

屏幕截图:

  • General tab – GDPR cookie banner detection with the detected banner and the consent mode.
  • Live debug bar for administrators in the frontend.
  • Event Log – recent browser and CAPI events with status and match keys.
  • Privacy Trackers tab – Plausible, Umami and Rybbit, each with its own *Load without consent* switch.
  • Advanced Tracking tab – automatic form lead tracking.
  • URL Events tab – URL rules with per-event platform assignment.

升级注意事项:

0.12.7 Hardening. No change to tracking, settings or anything you can see.

常见问题:

Which services does the plugin contact?

Only the ones you configure yourself. With no platform set up it writes no third-party script, image or request into your pages at all. Every address it can contact, what is transmitted and when, is listed under External services below.

How do I test the Meta server events?

Enter the test event code from the Events Manager (tab Test events) in the General tab. Server events then show up there in real time. The code is removed automatically after 12 hours. For debugging you can make the request blocking, after which the raw Meta response is written to the debug log when WP_DEBUG_LOG is enabled: add_filter( 'pxms_capi_blocking', '__return_true' );

Do the privacy trackers need a cookie banner consent?

That is your decision, and the plugin lets you make it per provider. By default every privacy tracker runs through exactly the same marketing consent gate as the Meta, Google and TikTok pixels – nothing loads until the visitor accepts, and it then starts without a page reload. The Load without consent switch changes that for one provider only; the advertising platforms are never affected by it. The background: Section 25 TDDDG covers storing information on, or reading it from, a visitor’s device. A tracker that sets no cookie and uses no local storage is not covered by it; the GDPR level applies regardless. Whether that reasoning holds depends on the specific service and where it is hosted, and it is legally contested. Pixel Made Simple makes no claim about any third-party service being compliant – it only provides the setting.

Which script URL do I enter for Plausible, Umami or Rybbit?

The one from your own dashboard, copied verbatim – for example https://plausible.io/js/script.js, https://cloud.umami.is/script.js or https://app.rybbit.io/api/script.js. Self-hosted instances use your own domain instead. The plugin deliberately does not assemble that address from a host name. All three providers have changed their paths at least once (Umami moved from /umami.js to /script.js, Plausible issues newer accounts a per-site tracker filename, Rybbit switched from an attribute to a query parameter). A path guessed by the plugin would eventually be silently wrong: the script loads and no data arrives.

Do the privacy trackers show up in the event log or the consent statistics?

No, and that is intentional. They are not conversions, they never go through the Conversions API, and counting them would dilute exactly the numbers you use to investigate missing advertising conversions. The event log and the consent statistics keep reporting on Meta, Google and TikTok only.

How does the plugin work with my cookie banner?

The automatic cookie banner detection (on by default) checks the consent cookies of the supported banner plugins and the WP Consent API on the server. Without marketing consent the browser scripts are deferred (they listen for the banner’s consent events and start right after the click on “Accept”) and the Conversions API request is not sent. If no supported banner is installed, nothing is blocked. For unsupported banners you can provide the consent result yourself: add_filter( 'pxms_has_marketing_consent', function ( $consent ) { return my_marketing_consent(); } ); And you can suppress all tracking server-side: add_filter( 'pxms_allow_tracking', function ( $allow ) { return my_consent_check(); } );

Does the plugin work with page caching?

The browser pixel: yes. The Conversions API is normally only triggered when PHP actually renders the page, so with aggressive full-page caching you should exclude your conversion pages from the cache – otherwise CAPI events are not sent at all, and every visitor shares the one event ID baked into the cached HTML. One exception, since 0.11.0: a URL event that participates in the handover to the confirmation page is sent from the browser and generates its event ID per visitor. That one works on a cached page. All other URL events still need the page to be excluded from the cache.

My thank-you page is on a different domain. Does the handover still work?

No. sessionStorage belongs to exactly one origin, so nothing travels to another domain or subdomain – the same applies to a form inside an iframe from a different origin. In those cases both events are counted separately, exactly as before version 0.11.0. If the confirmation page is on a subdomain, moving it to a path on the main domain (/thank-you/ instead of thanks.example.com) is enough to get the full match.

Google Ads shows no enhanced conversions data. What is missing?

Three things have to line up. In your Google Ads account, Enhanced Conversions must be enabled for that conversion action and the customer data terms accepted – without that Google discards the data silently and still counts the conversion. In the plugin, the event needs a conversion label. And for the phone number Google requires the international format: if your form collects 0151 … without a country code, only the email address is sent. The filter pxms_normalize_phone can add the country code.

Which filters are available?

  • pxms_allow_tracking – allow or suppress tracking globally.
  • pxms_has_marketing_consent – override the result of the cookie banner detection (guards the browser pixel).
  • pxms_has_server_consent – the same for server-side signals (Conversions API, TikTok Events API). Only relevant when the consent mode is set to “Block browser pixels only”.
  • pxms_consent_banner_active – register your own banner with the detection.
  • pxms_consent_events – additional banner events for the frontend listener.
  • pxms_capi_event_data – modify a single CAPI event before it is sent (e.g. add custom_data).
  • pxms_capi_user_data – modify the user_data payload.
  • pxms_normalize_phone – adjust the normalised phone number before hashing (e.g. add a country code). Also decides whether Google gets a phone number at all: without a country code there is no valid E.164 value, and none is sent.
  • pxms_graph_api_version – override the Graph API version.
  • pxms_capi_blocking – send the CAPI request blocking (debugging).
  • pxms_tiktok_capi_blocking – the same for TikTok Events API requests (Pixel Made Simple Pro, debugging).
Upgrading from “Lightweight Meta Pixel & CAPI Tracker”? These filters used to be called lmpct_*. Custom code that hooks into one of them must be updated to the pxms_* names – see the 0.6.0 changelog entry.

How do I translate the plugin?

Source strings are English. The /languages folder contains the POT template and the finished German translation (-de_DE.po/.mo). Custom translations made with Loco Translate are best stored under “System” (wp-content/languages/loco/plugins/) so they survive updates.

Is all data removed on uninstall?

Yes, as soon as neither variant (free or Pro) is installed anymore. uninstall.php then deletes all plugin options including the stored access token, the event log table and the scheduled cleanup task. Switching from free to Pro (or back) keeps your configuration – both use the same option keys.

更新日志:

The complete changelog for every release is at https://pixelmadesimple.com/changelog/ – this file lists the most recent ones. 0.12.7 Hardening. No change to tracking, settings or anything you can see. 0.12.6 Code hygiene. No change to tracking, settings or anything you can see. 0.12.5 One upgrade notice on the e-commerce tab instead of two. Nothing else changes. 0.12.4 The free version no longer contains a licence check anywhere. Where it previously asked "is this the paid version?" it now asks "is this code present?" – which is what actually differs between the two packages. Nothing changes for you; the switches you can see and use are the same ones as before. 0.12.3 Google Ads, Google Analytics 4 and the TikTok Pixel are now part of this plugin, and every remaining limit is gone – no cap on URL events, no shortened event log, no locked filters or exports. Nothing this plugin ships is restricted any more, which is what the WordPress.org plugin directory guidelines require. 0.12.2 Corrects the plugin header. No change to tracking behaviour, no new setting. 0.12.1 Prepares the free version for the WordPress.org plugin directory. No change to tracking behaviour, no new setting. 0.12.0 New Privacy Trackers tab: Plausible, Umami and Rybbit can now be embedded directly – cookieless analytics alongside the advertising pixels. Available in the free version too.