[DigitalPoint] Better Google Analytics

[DigitalPoint] Better Google Analytics 1.1.2.3

No permission to download
I re-installed it again and am getting NULL in the sodium value.

Array
(
[option_id] => baAnalyticsKey
[option_value] =>
[default_value] =>
[edit_format] => template
[edit_format_params] => option_template_uneditable
[data_type] => string
[sub_options] =>
[validation_class] =>
[validation_method] =>
[advanced] => 0
[addon_id] => DigitalPoint/Analytics
)

completely removed the addon

validated that sodium is installed.



and now we have a hash

[option_value] => _k7YnkQH........removed .....


so, hoping this is the fix.

thanks for the support!
 
Last edited:
The Sodium stuff is only used as part of the email events. So if it pops up again, you could disable tracking of emails being opened and everything else will still function.
 
Been using this for awhile, love the options!

I was just looking into using Cloudflare's Google Tag Gateway & Google Tag Manager to add other google scripts.

I noticed this in your add-on options and never thought much of it:
Host Google Tag Manager JavaScript on your own domainThis uses a proxy system to fetch the Google Tag Manager JavaScript hourly and serve it from your own domain. This allows clients to use the same network connection to your server for the request and also allows you to cache the JavaScript for a longer period of time (including caching at the network edge).

I assume you're serving the script just like Cloudflare's GTG is?

What Google Tag Manager JavaScript? Is there a way I can use my own GTM to push the options in your add-on to?
 
Been using this for awhile, love the options!

I was just looking into using Cloudflare's Google Tag Gateway & Google Tag Manager to add other google scripts.

I noticed this in your add-on options and never thought much of it:


I assume you're serving the script just like Cloudflare's GTG is?
Don't know what Cloudflare GTG is, so can't tell you if this is doing anything "just like Cloudflare GTG". Googling it shows Cloudflare added it on May, 2025 (long after this addon allowed you to host Google JavaScript on your own domain), so maybe a more appropriate question would be to ask Cloudflare if their new thingie works like this addon? 🤷🏻‍♂️

If you have specific questions about this addon, I can answer those questions. For example if you list specific things Cloudflare GTG does, I can tell you if this addon does it if you want to go that route. Basically, I can't really answer generalizations like, "Does this do everything Cloudflare GTG does?", when I don't know what "everything" is exactly.

What Google Tag Manager JavaScript? Is there a way I can use my own GTM to push the options in your add-on to?
Sure, you could edit the ba_google_analytics template, and remove the code that adds the underlying tag manager JavaScript, and add whatever you have there instead.
 
search/member nor goto/post aren't even valid xf pages. I'm not sure how they are registering as client side errors when they are 404 pages in the first place
 
Well it being a 404 isn’t going to matter, it’s still hitting XenForo as an application (XenForo is kicking back the 404), so XenForo is still going to do things like register service workers.
 
When viewing the charts, is there anyway of displaying the total value that you're looking at? As an example viewing the chart for the past month on page views, we just see the daily metrics but any chance of seeing the total?
 
When viewing the charts, is there anyway of displaying the total value that you're looking at? As an example viewing the chart for the past month on page views, we just see the daily metrics but any chance of seeing the total?
Not really... it's just quick daily info. Intentionally not trying to replace the Analytics reporting interface on their site. You are going to get way more options if you do normal Google Analytics reporting (including monthly sums).
 
I'm getting loads of these:
Code:
    ErrorException: cURL error 7: Failed connect to 10.133.55.51:8888; Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://www.googletagmanager.com/gtag/js?id=G-59R76D1FPX&_v=790b8e37 src/XF/Error.php:81

    Generated by: Unknown account Dec 1, 2025 at 2:30 PM

Stack trace

#0 src/XF.php(266): XF\Error->logError('cURL error 7: F...', false)
#1 src/addons/DigitalPoint/Analytics/Repository/JavaScript.php(50): XF::logError('cURL error 7: F...')
#2 src/addons/DigitalPoint/Analytics/Pub/View/JavaScript/Proxy.php(9): DigitalPoint\Analytics\Repository\JavaScript->getFile()
#3 src/XF/Mvc/Renderer/AbstractRenderer.php(92): DigitalPoint\Analytics\Pub\View\JavaScript\Proxy->renderRaw()
#4 src/XF/Mvc/Renderer/Raw.php(39): XF\Mvc\Renderer\AbstractRenderer->renderViewObject('DigitalPoint\\An...', '', Array)
#5 src/XF/Mvc/Dispatcher.php(471): XF\Mvc\Renderer\Raw->renderView('DigitalPoint\\An...', '', Array)
#6 src/XF/Mvc/Dispatcher.php(453): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#7 src/XF/Mvc/Dispatcher.php(412): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#8 src/XF/Mvc/Dispatcher.php(66): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'raw')
#9 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#10 src/XF.php(806): XF\App->run()
#11 index.php(23): XF::runApp('XF\\Pub\\App')
#12 {main}

Request state

array(4) {
  ["url"] => string(22) "/jc/gtm.js?_v=790b8e37"
  ["referrer"] => string(67) "https://forum.com/threads/182077/"
  ["_GET"] => array(2) {
    ["/jc/gtm_js"] => string(0) ""
    ["_v"] => string(8) "790b8e37"
  }
  ["_POST"] => array(0) {
  }
}

Code:
    Error: Call to a member function getBody() on null src/addons/DigitalPoint/Analytics/Repository/JavaScript.php:53
    Generated by: Unknown account Dec 1, 2025 at 2:30 PM

Stack trace

#0 src/addons/DigitalPoint/Analytics/Pub/View/JavaScript/Proxy.php(9): DigitalPoint\Analytics\Repository\JavaScript->getFile()
#1 src/XF/Mvc/Renderer/AbstractRenderer.php(92): DigitalPoint\Analytics\Pub\View\JavaScript\Proxy->renderRaw()
#2 src/XF/Mvc/Renderer/Raw.php(39): XF\Mvc\Renderer\AbstractRenderer->renderViewObject('DigitalPoint\\An...', '', Array)
#3 src/XF/Mvc/Dispatcher.php(471): XF\Mvc\Renderer\Raw->renderView('DigitalPoint\\An...', '', Array)
#4 src/XF/Mvc/Dispatcher.php(453): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#5 src/XF/Mvc/Dispatcher.php(412): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#6 src/XF/Mvc/Dispatcher.php(66): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'raw')
#7 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#8 src/XF.php(806): XF\App->run()
#9 index.php(23): XF::runApp('XF\\Pub\\App')
#10 {main}

Request state

array(4) {
  ["url"] => string(22) "/jc/gtm.js?_v=790b8e37"
  ["referrer"] => string(67) "https://forum.com/threads/182077/"
  ["_GET"] => array(2) {
    ["/jc/gtm_js"] => string(0) ""
    ["_v"] => string(8) "790b8e37"
  }
  ["_POST"] => array(0) {
  }
}
There are a few variations of the first one. Errors stop if I disable this addon.
Any idea what this is?
 
Last edited:
I'm getting loads of these:
Code:
    ErrorException: cURL error 7: Failed connect to 10.133.55.51:8888; Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://www.googletagmanager.com/gtag/js?id=G-59R76D1FPX&_v=790b8e37 src/XF/Error.php:81

    Generated by: Unknown account Dec 1, 2025 at 2:30 PM

Stack trace

#0 src/XF.php(266): XF\Error->logError('cURL error 7: F...', false)
#1 src/addons/DigitalPoint/Analytics/Repository/JavaScript.php(50): XF::logError('cURL error 7: F...')
#2 src/addons/DigitalPoint/Analytics/Pub/View/JavaScript/Proxy.php(9): DigitalPoint\Analytics\Repository\JavaScript->getFile()
#3 src/XF/Mvc/Renderer/AbstractRenderer.php(92): DigitalPoint\Analytics\Pub\View\JavaScript\Proxy->renderRaw()
#4 src/XF/Mvc/Renderer/Raw.php(39): XF\Mvc\Renderer\AbstractRenderer->renderViewObject('DigitalPoint\\An...', '', Array)
#5 src/XF/Mvc/Dispatcher.php(471): XF\Mvc\Renderer\Raw->renderView('DigitalPoint\\An...', '', Array)
#6 src/XF/Mvc/Dispatcher.php(453): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#7 src/XF/Mvc/Dispatcher.php(412): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#8 src/XF/Mvc/Dispatcher.php(66): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'raw')
#9 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#10 src/XF.php(806): XF\App->run()
#11 index.php(23): XF::runApp('XF\\Pub\\App')
#12 {main}

Request state

array(4) {
  ["url"] => string(22) "/jc/gtm.js?_v=790b8e37"
  ["referrer"] => string(67) "https://forum.com/threads/182077/"
  ["_GET"] => array(2) {
    ["/jc/gtm_js"] => string(0) ""
    ["_v"] => string(8) "790b8e37"
  }
  ["_POST"] => array(0) {
  }
}

Code:
    Error: Call to a member function getBody() on null src/addons/DigitalPoint/Analytics/Repository/JavaScript.php:53
    Generated by: Unknown account Dec 1, 2025 at 2:30 PM

Stack trace

#0 src/addons/DigitalPoint/Analytics/Pub/View/JavaScript/Proxy.php(9): DigitalPoint\Analytics\Repository\JavaScript->getFile()
#1 src/XF/Mvc/Renderer/AbstractRenderer.php(92): DigitalPoint\Analytics\Pub\View\JavaScript\Proxy->renderRaw()
#2 src/XF/Mvc/Renderer/Raw.php(39): XF\Mvc\Renderer\AbstractRenderer->renderViewObject('DigitalPoint\\An...', '', Array)
#3 src/XF/Mvc/Dispatcher.php(471): XF\Mvc\Renderer\Raw->renderView('DigitalPoint\\An...', '', Array)
#4 src/XF/Mvc/Dispatcher.php(453): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#5 src/XF/Mvc/Dispatcher.php(412): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Raw), Object(XF\Mvc\Reply\View))
#6 src/XF/Mvc/Dispatcher.php(66): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'raw')
#7 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#8 src/XF.php(806): XF\App->run()
#9 index.php(23): XF::runApp('XF\\Pub\\App')
#10 {main}

Request state

array(4) {
  ["url"] => string(22) "/jc/gtm.js?_v=790b8e37"
  ["referrer"] => string(67) "https://forum.com/threads/182077/"
  ["_GET"] => array(2) {
    ["/jc/gtm_js"] => string(0) ""
    ["_v"] => string(8) "790b8e37"
  }
  ["_POST"] => array(0) {
  }
}
There are a few variations of the first one. Errors stop if I disable this addon.
Any idea what this is?
Your server isn’t able to communicate with Google’s servers, and in fact the DNS server your server is using is resolving the hostname to a private/non-routable IP address (10.x.x.x) is used for internal/private networks.

You can disable the option to host the JavaScript on your own domain if you want (then it doesn’t need to talk to Google’s servers, so shouldn’t get the error).

As far as why your server is resolving it to an internal/private IP, no idea… would need to talk to your server admin about that.
 
Your server isn’t able to communicate with Google’s servers, and in fact the DNS server your server is using is resolving the hostname to a private/non-routable IP address (10.x.x.x) is used for internal/private networks.

You can disable the option to host the JavaScript on your own domain if you want (then it doesn’t need to talk to Google’s servers, so shouldn’t get the error).

As far as why your server is resolving it to an internal/private IP, no idea… would need to talk to your server admin about that.
EDIT: This should be fixed now for Alpha. His Proxy server got rebooted, and tinyproxy didn't restart.
 
Last edited:
What is the FQDN? The server is using 8.8.8.8 and 8.8.4.4 in resolv.conf, and has been this was for years.
It’s listed in the error: www.googletagmanager.com

Unrelated, but you probably don’t want to use Cloudflare or Google public name servers on a server. They aren’t “unlimited” use and servers tend to need more queries (routing mail and things like that) than say a laptop. They work okay until they don’t. Too many queries per hour from your hostname and they will stop answering queries for awhile (throttling). I learned that the hard way once. Hah
 
Last edited:
Yeah, I've edited my previous message. His proxy server got rebooted, and tinyproxy didn't restart.
 
Back
Top Bottom