Analytics counts off for past 2 weeks

I was just checking on my download statistics and for the past 2 weeks they have fallen off by approximately half. When I look in Google Analytics at the episode files being registered there the numbers are in line with what I would expect. Is this another instance of miscounted analytics? Has anyone else run into this?

I am just wondering if a recent release has a regression along the lines of what happened last year when the IP addresses were being masked and misrepresenting the number of unique downloads. I’m happy to provide whatever diagnostic information would be helpful.

I am running Podlove 2.9.2 on the latest release of Wordpress and PHP 7.x. The sties in question are dataengineeringpodcast.com and pythonpodcast.com

Thank you for your help!

Possibly an issue in this commit https://github.com/podlove/podlove-publisher/commit/0461215d5e674eba23209bf216838ba9b5ea1e7a, which was released in 2.9.2, 11 days ago. I will take a closer look.

/e: can’t see an issue in the commit though, in fact getenv() supposedly is the better/safer way to access these values

Thank you for pointing that out, it’s definitely a possibility. I will try to find some time this weekend to dig into that.

Anecdotally, looking at the downloadintent records it seems that they are no longer receiving the geo information, which may be playing into an incorrect aggregation during the cleanup step.

MariaDB [dataengineering]> select * from wp_podlove_downloadintent ORDER BY accessed_at DESC LIMIT 10;
+--------+---------------+---------------+----------------------------------+---------------------+--------+---------+-------------+------+------+-------------------------+
| id     | user_agent_id | media_file_id | request_id                       | accessed_at         | source | context | geo_area_id | lat  | lng  | httprange               |
+--------+---------------+---------------+----------------------------------+---------------------+--------+---------+-------------+------+------+-------------------------+
| 643008 |         15660 |           467 | 32bd0f4e4b80dc917396ebc70534160a | 2019-09-06 18:40:30 | feed   | mp3     |        NULL | NULL | NULL | bytes=11008-32767999    |
| 643007 |         15660 |           467 | 32bd0f4e4b80dc917396ebc70534160a | 2019-09-06 18:40:29 | feed   | mp3     |        NULL | NULL | NULL | bytes=32768000-32908855 |
| 643006 |         15660 |           467 | 32bd0f4e4b80dc917396ebc70534160a | 2019-09-06 18:40:28 | feed   | mp3     |        NULL | NULL | NULL | bytes=0-1               |
| 643005 |         14025 |           473 | 11fecc1076b29ded0c57accb1699feca | 2019-09-06 18:40:03 | feed   | mp3     |        NULL | NULL | NULL | NULL                    |
| 643004 |         15798 |           460 | 3f030784611d35e98cad348babe3f92d | 2019-09-06 18:36:52 | feed   | mp3     |        NULL | NULL | NULL | bytes=2452534-49993651  |
| 643001 |          7763 |           477 | 3d67e85b4a73604154c39af6c7283ce4 | 2019-09-06 18:33:22 | feed   | mp3     |        NULL | NULL | NULL | bytes=0-1               |
| 643002 |          7763 |           475 | 3d67e85b4a73604154c39af6c7283ce4 | 2019-09-06 18:33:22 | feed   | mp3     |        NULL | NULL | NULL | bytes=0-1               |
| 643003 |          7763 |           473 | 3d67e85b4a73604154c39af6c7283ce4 | 2019-09-06 18:33:22 | feed   | mp3     |        NULL | NULL | NULL | bytes=0-1               |
| 643000 |          7763 |           477 | 3d67e85b4a73604154c39af6c7283ce4 | 2019-09-06 18:33:14 | feed   | mp3     |        NULL | NULL | NULL | bytes=0-1               |
| 642999 |         15363 |           469 | 691c850c2bdc3c08c922e22759a5e1a3 | 2019-09-06 18:30:40 | feed   | mp3     |        NULL | NULL | NULL | bytes=0-                |
+--------+---------------+---------------+----------------------------------+---------------------+--------+---------+-------------+------+------+-------------------------+
10 rows in set (0.62 sec)

MariaDB [dataengineering]> select * from wp_podlove_downloadintent WHERE accessed_at < '2018-08-10' ORDER BY accessed_at DESC LIMIT 10;
+--------+---------------+---------------+----------------------------------+---------------------+--------+---------+-------------+---------+----------+-------------------------+
| id     | user_agent_id | media_file_id | request_id                       | accessed_at         | source | context | geo_area_id | lat     | lng      | httprange               |
+--------+---------------+---------------+----------------------------------+---------------------+--------+---------+-------------+---------+----------+-------------------------+
| 145909 |          4188 |           209 | DSGVOaecf1edcbadd30d0c692305b582 | 2018-08-09 23:58:56 | feed   | mp3     |          10 | 34.0544 | -118.244 | bytes=10717-60971549    |
| 145908 |          4188 |           209 | DSGVO9c84e63e30dd9f303caa2c2f345 | 2018-08-09 23:58:54 | feed   | mp3     |          10 | 34.0544 | -118.244 | bytes=0-1               |
| 145907 |          4188 |           209 | DSGVO37dfb10c8fd79fa4bda0e051ccd | 2018-08-09 23:58:13 | feed   | mp3     |         108 | 37.3388 | -121.891 | bytes=0-1               |
| 145906 |          4491 |           209 | DSGVOa99ca51cde684bfb1b9baf64c51 | 2018-08-09 23:57:51 | feed   | mp3     |           6 | 41.8483 | -87.6517 | NULL                    |
| 145905 |          3719 |           179 | DSGVO9d348a74f97c399132ebd971032 | 2018-08-09 23:52:24 | feed   | mp3     |         108 | 37.3388 | -121.891 | bytes=14302622-34314476 |
| 145904 |           261 |           209 | DSGVO6a593b72914a4ccb2c6d52e8cc1 | 2018-08-09 23:52:22 | feed   | mp3     |         124 | 55.7522 |  37.6156 | NULL                    |
| 145903 |          3719 |           179 | DSGVO9d348a74f97c399132ebd971032 | 2018-08-09 23:52:21 | feed   | mp3     |         108 | 37.3388 | -121.891 | bytes=12762814-34314476 |
| 145902 |          3719 |           179 | DSGVO9d348a74f97c399132ebd971032 | 2018-08-09 23:52:14 | feed   | mp3     |         108 | 37.3388 | -121.891 | bytes=16347-34314476    |
| 145901 |          3719 |           179 | DSGVOf478181900ac8ba5ca2b2b61549 | 2018-08-09 23:52:12 | feed   | mp3     |         108 | 37.3388 | -121.891 | bytes=0-1               |
| 145900 |            50 |           209 | DSGVO709d0d78218001fb3eb6e4c2c36 | 2018-08-09 23:45:22 | feed   | mp3     |          54 | 39.7392 | -104.985 | NULL                    |
+--------+---------------+---------------+----------------------------------+---------------------+--------+---------+-------------+---------+----------+-------------------------+
10 rows in set (0.44 sec)

geo information is purely optional and has no effect on aggregation

I just updated my Nginx config to pass the real-ip header from Cloudflare to see if that fixes my issue. I will report back in a few days after letting that sit for a bit.

Thank you again for pointing me at the change in 2.9.2