matomo-org / matomo-sdk-ios

Matomo iOS, tvOS and macOS SDK: a Matomo tracker written in Swift
MIT License
388 stars 164 forks source link

Matomo events are sent from iPad but don't appear on Dashboard #383

Open serbuk opened 3 years ago

serbuk commented 3 years ago

Please help!

I configured MatomoTracker in an iPad app. Events are dispatched but I don't see it in Matomo Dashboard. It says "No data has been recorded yet, get set up below" for this site (siteId: 2). I'm using the latest version of Matomo and SDK.

Initialization code: MatomoTracker(siteId: "2", baseURL: URL(string: "https://server-name/matomo/matomo.php")!)

The baseUrl in a browser returns: "This resource is part of Matomo. Keep full control of your data with the leading free and open source web analytics & conversion optimisation platform. This file is the endpoint for the Matomo tracking API. If you want to access the Matomo UI or use the Reporting API, please use index.php instead."

Here is Matomo log on the device: MatomoTracker [V] Queued event: Event(uuid: E223FF51-ADB1-4A0C-AC7B-34A909E21B9B, siteId: "2", visitor: MatomoTracker.Visitor(id: "03FEEFF8091A4C7B", forcedId: nil, userId: nil), session: MatomoTracker.Session(sessionsCount: 4, lastVisit: 2021-04-09 22:46:38 +0000, firstVisit: 2021-04-09 21:14:41 +0000), isCustomAction: false, date: 2021-04-09 22:47:47 +0000, url: Optional(http://xxxxx/color-picker), actionName: ["color-picker"], language: "ru-AT;q=1.0,en-AT;q=0.9", isNewSession: true, referer: nil, screenResolution: (1024.0, 768.0), customVariables: [], eventCategory: nil, eventAction: nil, eventName: nil, eventValue: nil, campaignName: nil, campaignKeyword: nil, searchQuery: nil, searchCategory: nil, searchResultsCount: nil, dimensions: [], customTrackingParameters: [:], contentName: nil, contentPiece: nil, contentTarget: nil, contentInteraction: nil, goalId: nil, revenue: nil, orderId: nil, orderItems: [], orderRevenue: nil, orderSubTotal: nil, orderTax: nil, orderShippingCost: nil, orderDiscount: nil, orderLastDate: nil) MatomoTracker [V] Queued event: Event(uuid: 650BEC9C-EBAE-4281-85C1-DAFC12E528C1, siteId: "2", visitor: MatomoTracker.Visitor(id: "03FEEFF8091A4C7B", forcedId: nil, userId: nil), session: MatomoTracker.Session(sessionsCount: 4, lastVisit: 2021-04-09 22:46:38 +0000, firstVisit: 2021-04-09 21:14:41 +0000), isCustomAction: true, date: 2021-04-09 22:47:47 +0000, url: Optional(http://xxxxx/selected-color), actionName: ["selected-color"], language: "ru-AT;q=1.0,en-AT;q=0.9", isNewSession: false, referer: nil, screenResolution: (1024.0, 768.0), customVariables: [], eventCategory: nil, eventAction: nil, eventName: nil, eventValue: nil, campaignName: nil, campaignKeyword: nil, searchQuery: nil, searchCategory: nil, searchResultsCount: nil, dimensions: [], customTrackingParameters: ["color": "#30BA8F", "color-is-default": "false"], contentName: nil, contentPiece: nil, contentTarget: nil, contentInteraction: nil, goalId: nil, revenue: nil, orderId: nil, orderItems: [], orderRevenue: nil, orderSubTotal: nil, orderTax: nil, orderShippingCost: nil, orderDiscount: nil, orderLastDate: nil) MatomoTracker [I] Start dispatching events MatomoTracker [I] Dispatched batch of 2 events. MatomoTracker [I] Finished dispatching events MatomoTracker [I] No need to dispatch. Dispatch queue is empty. MatomoTracker [I] No need to dispatch. Dispatch queue is empty.

Log on the server says: DEBUG Piwik\Plugin\Manager[2021-04-10 10:56:29 UTC] [ec4d1] Loaded plugins: CorePluginsAdmin, CoreAdminHome, CoreHome, WebsiteMeasurable, IntranetMeasurable, Diagnostics, CoreVisualizations, Proxy, API, Widgetize, Transitions, LanguagesManager, Actions, Dashboard, MultiSites, Referrers, UserLanguage, DevicesDetection, Goals, Ecommerce, SEO, Events, UserCountry, GeoIp2, VisitsSummary, VisitFrequency, VisitTime, VisitorInterest, RssWidget, Feedback, Monolog, Login, TwoFactorAuth, UsersManager, SitesManager, Installation, CoreUpdater, CoreConsole, ScheduledReports, UserCountryMap, Live, PrivacyManager, ImageGraph, Annotations, MobileMessaging, Overlay, SegmentEditor, Insights, Morpheus, Contents, BulkTracking, Resolution, DevicePlugins, Heartbeat, Intl, Marketplace, ProfessionalServices, UserId, CustomJsTracker, Tour, PagePerformance, CustomDimensions DEBUG Piwik\Tracker[2021-04-10 10:56:30 UTC] [45773] Debug enabled - Input parameters: array ( DEBUG Piwik\Tracker[2021-04-10 10:56:30 UTC] [45773] ) DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] General tracker cache was re-created. DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Current datetime: 2021-04-10 10:54:57 DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Website 2 tracker cache was re-created. DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\CoreHome\Tracker\VisitRequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\IntranetMeasurable\Tracker\RequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\Actions\Tracker\ActionsRequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\Goals\Tracker\GoalsRequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\Ecommerce\Tracker\EcommerceRequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\SitesManager\Tracker\SitesManagerRequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\PrivacyManager\Tracker\RequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\Heartbeat\Tracker\PingRequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\PagePerformance\Tracker\PerformanceDataProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\CustomDimensions\Tracker\CustomDimensionsRequestProcessor::manipulateRequest()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\CoreHome\Tracker\VisitRequestProcessor::processRequestParams()... DEBUG PrivacyManager[2021-04-10 10:56:30 UTC] [45773] DoNotTrack header not found DEBUG CoreHome[2021-04-10 10:56:30 UTC] [45773] Matching visitors with: visitorId=03feeff8091a4c7b OR configId=ff3dc96d1117e73e DEBUG CoreHome[2021-04-10 10:56:30 UTC] [45773] The visitor was not matched with an existing visitor... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\IntranetMeasurable\Tracker\RequestProcessor::processRequestParams()... DEBUG BulkTracking[2021-04-10 10:56:30 UTC] [45773] Executing Piwik\Plugins\Actions\Tracker\ActionsRequestProcessor::processRequestParams()... DEBUG Actions[2021-04-10 10:56:30 UTC] [45773] Internal 'Site Search' tracking is not enabled for this site. DEBUG Piwik\Tracker[2021-04-10 10:56:30 UTC] [45773] Tracker encountered an exception: {ex} ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] Exception: /home/tracker3/public_html/matomo/core/Tracker/Action.php(114): Request was meant for a plugin which is no longer activated. Request needs to be ignored. ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] Request was meant for a plugin which is no longer activated. Request needs to be ignored. ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #0 /home/tracker3/public_html/matomo/plugins/Actions/Tracker/ActionsRequestProcessor.php(51): Piwik\Tracker\Action::factory(Object(Piwik\Tracker\Request)) ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #1 /home/tracker3/public_html/matomo/core/Tracker/Visit.php(163): Piwik\Plugins\Actions\Tracker\ActionsRequestProcessor->processRequestParams(Object(Piwik\Tracker\Visit\VisitProperties), Object(Piwik\Tracker\Request)) ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #2 /home/tracker3/public_html/matomo/core/Tracker.php(160): Piwik\Tracker\Visit->handle() ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #3 /home/tracker3/public_html/matomo/plugins/BulkTracking/Tracker/Handler.php(58): Piwik\Tracker->trackRequest(Object(Piwik\Tracker\Request)) ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #4 /home/tracker3/public_html/matomo/core/Tracker.php(140): Piwik\Plugins\BulkTracking\Tracker\Handler->process(Object(Piwik\Tracker), Object(Piwik\Tracker\RequestSet)) ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #5 /home/tracker3/public_html/matomo/core/Tracker.php(115): Piwik\Tracker->track(Object(Piwik\Plugins\BulkTracking\Tracker\Handler), Object(Piwik\Tracker\RequestSet)) ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #6 /home/tracker3/public_html/matomo/piwik.php(73): Piwik\Tracker->main(Object(Piwik\Plugins\BulkTracking\Tracker\Handler), Object(Piwik\Tracker\RequestSet)) ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #7 /home/tracker3/public_html/matomo/matomo.php(13): include('/home/tracker3/...') ERROR BulkTracking[2021-04-10 10:56:30 UTC] [45773] #8 {main} DEBUG Piwik\Tracker[2021-04-10 10:57:01 UTC] [fb404] Debug enabled - Input parameters: array ( DEBUG Piwik\Tracker[2021-04-10 10:57:01 UTC] [fb404] )

brototyp commented 3 years ago

Hey @serbuk,

this looks quite fine to me. Is it possible, that on the Matomo Dashboard you have a timeframe selected that excludes the current day? I usually go for Visitors -> Visits Log to check for the sent events.

serbuk commented 3 years ago

Hi @brototyp,

Thank you for your reply! If I go to Visitors -> Visits Log and select this week as a time frame it says "There is no data for this report."

In the server log (see above) I can see the following error "Request was meant for a plugin which is no longer activated. Request needs to be ignored." Do you know how it can be fixed?

serbuk commented 3 years ago

Update:

I just found that it works (I can see new event in Matomo Dashboard) when I use the following method in the app matomoTracker.track(eventWithCategory: "somecategory", action: "someaction", name: nil, value: nil)

But it does not work if I use method with the customTrackingParameters parameter like let event = Event(tracker: matomoTracker, action: ["someaction"], customTrackingParameters: ["param1" : "(value1)", "param2" : "(value2)"], isCustomAction: true)

Any idea why it doesn't work with customTrackingParameters? Is is supported by this client?

tomasgreen commented 3 years ago

Update:

I just found that it works (I can see new event in Matomo Dashboard) when I use the following method in the app matomoTracker.track(eventWithCategory: "somecategory", action: "someaction", name: nil, value: nil)

But it does not work if I use method with the customTrackingParameters parameter like let event = Event(tracker: matomoTracker, action: ["someaction"], customTrackingParameters: ["param1" : "(value1)", "param2" : "(value2)"], isCustomAction: true)

Any idea why it doesn't work with customTrackingParameters? Is is supported by this client?

I'm experiencing the same issue, the moment I add custom parameters the event is not displayed in the "Behaviour->Events" tab, but I can see it in the visitors log. I also found that if I send an interaction it's not visible in the contents pane until I send an impression for the same piece of content.

Perhaps these questions should be targeted to the development of the platform and not the iOS SDK? Or perhaps we need some kind of clarification in the documentation on what you can expect when sending "custom data".

brototyp commented 3 years ago

Hey @serbuk and @tomasgreen, thanks a lot for your followups on this.

I guess the documentation on the customTrackingParameters isn't really good, or rather is not there at all. The idea about it is that you can add parameters to the event that are already supported by the Backend but not yet implemented in the client. But all custom tracking parameters must be supported by the backend, so must be documented in this documentation. I guess otherwise the backend just can't really process the event which leads to unexpected behavior. I guess we should rename this parameter to rawTrackingParameters.

If you are searching for really custom dimensions for your events this documentation can help.