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_clickorsms_click(you can rename them)link_type: tel, mailto or smslink_area: header, footer, navigation or content, so you can see which phone number gets tappedlink_label: your own label, if you adddata-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
- Upload the ZIP through Plugins > Add New > Upload Plugin, or place the
swd-tap-to-call-trackerfolder in/wp-content/plugins/. - Activate the plugin. Tracking remains off.
- Make sure your site already loads the Google tag for GA4 or a Google Tag Manager container. Configure any required visitor consent controls separately.
- 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.
- Select Enable tracking, then Save Changes. Clear your page cache after changing settings.
- 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_clickand a Google Analytics: GA4 Event tag with the event namephone_click. Add data layer variables forlink_type,link_areaandlink_labelif 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>. Onlycontact-pageis sent aslink_labelwith 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.
ContributorsTranslate “SWD Tap to Call Tracker” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
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.