How Email Tracking Works

When the HUB sends out an email newsletter, we embed a tiny invisible image at the bottom of the email message. This image sometimes called a "Tracker" or "Web Beacon" is unique to each newsletter mailing.

When the newsletter is opened by a recipient, this "Tracker" is downloaded from our server and we count that as a 'open'.

We also track your newsletter clicks by directing the links in your newsletters to a central location, where we are able to capture that click, and then redirect the user to their final and desired destination.

By default is email tracking is set to 'on', but you can choose to turn off newsletter tracking at any time.

Can I use my own Tracking Code

Yes you can! Just make sure to turn email tracking off on the HUB for that newsletter. Just make sure to insert the other tracking code into the outgoing newsletter. We dont strip any 3rd party tracking code before sending.

Debug Console

Close2 MBRequestSessionTimelineDatabase16Events16
$_GET
Array( ) Array(

)
$_POST
Array( ) Array(

)
$_COOKIE
Array( ) Array(

)
$_SERVER
Array( TEMP => /var/www/tmp, TMPDIR => /var/www/tmp, TMP => /var/www/tmp, PATH => /usr/lo... Array(
TEMP => /var/www/tmp,
TMPDIR => /var/www/tmp,
TMP => /var/www/tmp,
PATH => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin,
USER => apache,
HOME => /usr/share/httpd,
SCRIPT_NAME => /index.php,
REQUEST_URI => /help/newsletter/emailtracking,
QUERY_STRING => ,
REQUEST_METHOD => GET,
SERVER_PROTOCOL => HTTP/1.1,
GATEWAY_INTERFACE => CGI/1.1,
REDIRECT_URL => /help/newsletter/emailtracking,
REMOTE_PORT => 30632,
SCRIPT_FILENAME => /var/www/pulsars/index.php,
SERVER_ADMIN => root@localhost,
CONTEXT_DOCUMENT_ROOT => /var/www/pulsars,
CONTEXT_PREFIX => ,
REQUEST_SCHEME => https,
DOCUMENT_ROOT => /var/www/pulsars,
REMOTE_ADDR => 18.226.251.38,
SERVER_PORT => 443,
SERVER_ADDR => 157.182.3.38,
SERVER_NAME => pulsars.nanograv.org,
SERVER_SOFTWARE => Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k,
SERVER_SIGNATURE => ,
HTTP_HOST => pulsars.nanograv.org,
HTTP_ACCEPT_ENCODING => gzip, br, zstd, deflate,
HTTP_USER_AGENT => Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com),
HTTP_ACCEPT => */*,
SSL_TLS_SNI => pulsars.nanograv.org,
HTTPS => on,
SCRIPT_URI => https://pulsars.nanograv.org/help/newsletter/emailtracking,
SCRIPT_URL => /help/newsletter/emailtracking,
UNIQUE_ID => Z0888zL9HFOW7UkdYb87rQAAAQc,
HTTP_AUTHORIZATION => ,
REDIRECT_STATUS => 200,
REDIRECT_SSL_TLS_SNI => pulsars.nanograv.org,
REDIRECT_HTTPS => on,
REDIRECT_SCRIPT_URI => https://pulsars.nanograv.org/help/newsletter/emailtracking,
REDIRECT_SCRIPT_URL => /help/newsletter/emailtracking,
REDIRECT_UNIQUE_ID => Z0888zL9HFOW7UkdYb87rQAAAQc,
REDIRECT_HTTP_AUTHORIZATION => ,
FCGI_ROLE => RESPONDER,
PHP_SELF => /index.php,
REQUEST_TIME_FLOAT => 1733246195.3714,
REQUEST_TIME => 1733246195
)
separator .
orderBy id
orderDir asc
1 registerIP
2 access
always
renew
tracker.sid 3223ec3d27562cad332905ecc1c84f7c
tracker.ssid 3223ec3d27562cad332905ecc1c84f7c
tracker.rsid 3223ec3d27562cad332905ecc1c84f7c
  • site 0.048 seconds (+0.048); 2.00 MB (+2.000) - afterInitialise
  • site 0.067 seconds (+0.019); 2.00 MB (0.000) - afterRoute
  • site 0.073 seconds (+0.006); 2.00 MB (0.000) - afterDispatch
  • site 0.076 seconds (+0.003); 2.00 MB (0.000) - onAfterRender
  • site 0.077 seconds (+0.001); 2.00 MB (0.000) - sessionStore
2 MB

16 Queries Logged: 0.015891313552856 seconds

  1. SELECT data
      FROM `jos_session`
      WHERE `session_id` = '68da65aa05098b12e9de586420d29661'
  2. DELETE
      FROM `jos_session`
      WHERE `session_id` = '68da65aa05098b12e9de586420d29661'
  3. SELECT data
      FROM `jos_session`
      WHERE `session_id` = '3223ec3d27562cad332905ecc1c84f7c'
  4. SELECT extension_id AS id,element AS "option",params,enabled
      FROM `jos_extensions`
      WHERE `type` = 'component'
      AND `element` = 'com_languages'
  5. SELECT session_id
      FROM `jos_session`
      WHERE `session_id` = '3223ec3d27562cad332905ecc1c84f7c'
      LIMIT 1
  6. INSERT INTO `jos_session` (`session_id`,`client_id`,`time`,`ip`)
      VALUES ('3223ec3d27562cad332905ecc1c84f7c','0','1733246195','18.226.251.38')
  7. SELECT extension_id AS id,element AS "option",params,enabled
      FROM `jos_extensions`
      WHERE `type` = 'component'
      AND `element` = 'com_members'
  8. SELECT b.id, b.title
      FROM `jos_usergroups` AS `a`
      LEFT JOIN jos_usergroups AS b
      ON b.lft <= a.lft
      AND b.rgt >= a.rgt
      WHERE `a`.`id` = '1'
  9. SELECT *
      FROM `jos_viewlevels`
  10. SELECT folder AS type,element AS name,protected,params
      FROM `jos_extensions`
      WHERE `enabled` >= '1'
      AND `type` = 'plugin'
      AND `state` >= '0'
      AND `access` IN ('1','1')
      ORDER BY `ordering` ASC
  11. SELECT m.id,m.menutype,m.title,m.alias,m.note,m.path AS route,m.link,m.type,m.level,m.language,m.browserNav,m.access,m.params,m.home,m.img,m.template_style_id,m.component_id,m.parent_id,e.element AS component
      FROM `jos_menu` AS `m`
      LEFT JOIN jos_extensions AS e
      ON e.extension_id = m.component_id
      WHERE `m`.`published` = '1'
      AND `m`.`parent_id` > '0'
      AND `m`.`client_id` = '0'
      ORDER BY `m`.`lft` ASC
  12. SELECT con.`id`
      FROM `jos_content` AS con
      LEFT JOIN `jos_categories` AS cat
      ON con.catid = cat.id
      WHERE con.state=1
      AND con.`alias` = 'emailtracking'
      AND cat.`path` = 'help/newsletter'
  13. SELECT extension_id AS id,element AS "option",params,enabled
      FROM `jos_extensions`
      WHERE `type` = 'component'
      AND `element` = 'com_help'
  14. SELECT jos_template_styles.id,jos_template_styles.home,jos_template_styles.template,jos_template_styles.params,jos_extensions.protected
      FROM `jos_template_styles`
      INNER JOIN jos_extensions
      ON jos_extensions.element = jos_template_styles.template
      WHERE `jos_template_styles`.`client_id` = '0'
      AND `jos_extensions`.`enabled` = '1'
      AND `jos_extensions`.`type` = 'template'
      AND jos_extensions.`client_id` = `jos_template_styles`.`client_id`
      ORDER BY `home` DESC
  15. SELECT extension_id AS id,element AS "option",params,enabled
      FROM `jos_extensions`
      WHERE `type` = 'component'
      AND `element` = 'com_newsletter'
  16. UPDATE `jos_session`
      SET `data` = '__default|a:9:{s:15:\"session.counter\";i:1;s:19:\"session.timer.start\";i:1733246195;s:18:\"session.timer.last\";i:1733246195;s:17:\"session.timer.now\";i:1733246195;s:8:\"registry\";O:23:\"Hubzero\\Config\\Registry\":2:{s:7:\"\0*\0data\";O:8:\"stdClass\":1:{s:1:\"0\";s:7:\"session\";}s:9:\"separator\";s:1:\".\";}s:4:\"user\";C:17:\"Hubzero\\User\\User\":22:{a:1:{s:5:\"guest\";b:1;}}s:11:\"tracker.sid\";s:32:\"3223ec3d27562cad332905ecc1c84f7c\";s:12:\"tracker.ssid\";s:32:\"3223ec3d27562cad332905ecc1c84f7c\";s:12:\"tracker.rsid\";s:32:\"3223ec3d27562cad332905ecc1c84f7c\";}',`time` = '1733246195',`ip` = '18.226.251.38'
      WHERE `session_id` = '3223ec3d27562cad332905ecc1c84f7c'
  • onAfterInitialise Method plgSystemP3p::onAfterInitialise /core/plugins/system/p3p/p3p.php:21
  • onAfterInitialise Method plgSystemRemember::onAfterInitialise /core/plugins/system/remember/remember.php:20
  • onAfterInitialise Method plgSystemHubzero::onAfterInitialise /core/plugins/system/hubzero/hubzero.php:21
  • onAfterInitialise Method plgSystemXFeed::onAfterInitialise /core/plugins/system/xfeed/xfeed.php:21
  • onAfterInitialise Method plgSystemSupergroup::onAfterInitialise /core/plugins/system/supergroup/supergroup.php:113
  • onAfterInitialise Method plgSystemReferrerpolicy::onAfterInitialise /core/plugins/system/referrerpolicy/referrerpolicy.php:21
  • onAfterRoute Method plgSystemJquery::onAfterRoute /core/plugins/system/jquery/jquery.php:21
  • onAfterRoute Method plgSystemSpamjail::onAfterRoute /core/plugins/system/spamjail/spamjail.php:21
  • onAfterRoute Method plgSystemIncomplete::onAfterRoute /core/plugins/system/incomplete/incomplete.php:21
  • onAfterRoute Method plgSystemUnconfirmed::onAfterRoute /core/plugins/system/unconfirmed/unconfirmed.php:21
  • onAfterRoute Method plgSystemUnapproved::onAfterRoute /core/plugins/system/unapproved/unapproved.php:21
  • onAfterRoute Method plgSystemPassword::onAfterRoute /core/plugins/system/password/password.php:21
  • onAfterDispatch Method plgSystemMobile::onAfterDispatch /core/plugins/system/mobile/mobile.php:22
  • onAfterDispatch Method plgSystemDebug::onAfterDispatch /core/plugins/system/debug/debug.php:60
  • onAfterDispatch Method PlgSystemHighlight::onAfterDispatch /core/plugins/system/highlight/highlight.php:25
  • onAfterRender Method plgSystemSef::onAfterRender /core/plugins/system/sef/sef.php:21