SWD Tap to Call Tracker

Description

For most local businesses the phone is the main way customers get in touch, and a tap on a phone number is a useful contact-intent signal. It does not prove a completed call or a qualified lead. Check your existing analytics before enabling another tracker, so the same interaction is not counted twice.

SWD Tap to Call Tracker adds one small script that watches for taps on phone (tel:), email (mailto:) and text-message (sms:) links anywhere on the page, including links added later by page builders, menus and pop-ups, and sends each tap as an event:

  • phone_click, email_click or sms_click (you can rename them)
  • link_type: tel, mailto or sms
  • link_area: header, footer, navigation or content, so you can see which phone number gets tapped
  • link_label: your own label, if you add data-ttct-label="..." to a link

It works with the Google tag (gtag.js, as added by Site Kit and most Analytics plugins) and with Google Tag Manager. In the default Automatic mode it uses the Google tag when the page has one and the Tag Manager data layer when it does not, so each tap is counted once.

Explicit site-owner opt-in. Activation alone does not load the listener or forward events. Open Settings > SWD Tap to Call Tracker, enable tracking after configuring analytics and any required visitor consent, then save. Existing installations must also make this choice after updating to 1.0.1.

Private by default. The phone number or email address in the link is never sent unless you switch that on, because Google Analytics does not allow personal phone numbers or email addresses. The plugin sets no cookies, stores nothing about visitors and makes no requests of its own.

Your own taps are not counted. Logged-in users who can edit posts are skipped, so testing your own site does not inflate the numbers. You can turn this off.

If phone taps are an important outcome for your site, you can mark phone_click as a key event in GA4 after the event arrives. Keep completed-call and qualified-lead reporting separate.

External services and privacy

This plugin forwards selected link-click events to Google Analytics 4 or Google Tag Manager only through the Google tag or data layer already configured on your website. It does not install Google services, send requests to Shaun Wilson Designs, or add a tracking identifier or cookie of its own.

Tracking is off until a site administrator explicitly enables it in the plugin settings. Keep any required visitor consent controls in place; this plugin is not a consent-management tool and does not override your Google consent settings. Do not put personal information in custom link labels. Sending the full link is optional and disabled by default; only public business contact links are suitable for that option.

Google service information:
* Analytics terms: https://marketingplatform.google.com/about/analytics/terms/us/
* Tag Manager use policy: https://marketingplatform.google.com/about/analytics/tag-manager/use-policy/
* Google privacy policy: https://policies.google.com/privacy

Screenshots

Installation

  1. Upload the ZIP through Plugins > Add New > Upload Plugin, or place the swd-tap-to-call-tracker folder in /wp-content/plugins/.
  2. Activate the plugin. Tracking remains off.
  3. Make sure your site already loads the Google tag for GA4 or a Google Tag Manager container. Configure any required visitor consent controls separately.
  4. Open Settings > SWD Tap to Call Tracker. Choose the tracked link types, event names and transport. Automatic uses an existing Google tag when present; otherwise it pushes to the data layer.
  5. Select Enable tracking, then Save Changes. Clear your page cache after changing settings.
  6. Test while logged out, using the instructions below. The plugin does not add a Google tag, Tag Manager container, contact buttons or telephone service.

FAQ

Does it add Google Analytics to my site?

No. It sends events to the Google tag or Tag Manager container your site already has.

I use Google Tag Manager. How do I send the event to Analytics?

Choose “Google Tag Manager data layer only”. In Tag Manager, create a Custom Event trigger for phone_click and a Google Analytics: GA4 Event tag with the event name phone_click. Add data layer variables for link_type, link_area and link_label if you want them as event parameters.

Why are my taps not showing?

First enable tracking and clear your page cache. Log out (or untick “Do not count taps from logged-in users”), then open GA4 Realtime and tap a contact link. DebugView requires your existing analytics setup to enable debug mode; this plugin’s console option does not enable GA4 debug mode. The console option only writes the event name and parameters locally. If using Tag Manager, publish the matching Custom Event trigger and GA4 Event tag. Ad blockers, consent settings and missing Google configuration can prevent delivery.

Does a tap mean a phone call happened?

No. It means someone tapped the number. On a phone that opens the dialer; on a computer it may open a calling app or nothing. Treat it as a strong signal of intent, not a completed call.

Does it work with caching plugins?

The listener can work on cached pages, but clear your page cache after changing settings. Logged-in users who can edit posts are excluded by default; test public cached pages while logged out.

Will it slow my site down?

The script is about 2 KB, uses defer where supported with a footer fallback, has no dependencies and adds one click listener.

How is this different from a general analytics plugin?

It focuses on existing contact links. One delegated listener handles nested elements and links inserted later, identifies header/footer/navigation/content areas, and supports optional non-personal labels. Automatic mode chooses one transport rather than forwarding the same event twice. It adds no contact buttons, Google account, analytics ID or visitor log.

How do I label a particular contact link?

Add a non-personal label such as <a href="tel:+12025550100" data-ttct-label="contact-page">Call the office</a>. Only contact-page is sent as link_label with default settings. Do not put a customer name, phone number or email address in the label.

What data is stored, and what happens on uninstall?

WordPress stores one option containing plugin settings. This plugin does not keep a visitor database or record IP addresses. Deactivation stops its listener; deleting it removes its settings option. Events already received by your external analytics provider remain subject to that provider’s retention controls. The site owner remains responsible for the rest of the analytics setup.

Does this guarantee consent or privacy compliance?

No. The owner opt-in controls this plugin, not a visitor’s choices. Your consent-management and analytics configuration determine when events may be forwarded and how they are handled. This plugin neither checks for nor grants visitor consent.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“SWD Tap to Call Tracker” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.1

  • Require explicit site-owner opt-in before loading the listener.
  • Add setup, privacy, cache and analytics-debugging details plus actual test screenshots.

1.0.0

  • First release: phone, email and text-message link tracking for the Google tag and Google Tag Manager.