No URL parameters on iOS?

Hello,

Before I explain the problem I’m experiencing, it’s necessary to provide a bit of context.

We use form solutions like Heyflow or Landbot on our landing pages. In the back-office of these solutions, we can see at what precise time the request was made. By cross-checking this information with data from the Piwik PRO session log, I can find out which session corresponds to which request in the Heyflow/Landbot BO. This is useful for debugging purposes and has enabled me to identify the problem.

The landing pages using these forms are only used for advertising campaigns: they are not indexed on search engines. Any request made on one of these forms can therefore only come from an advertising campaign.

We use tracking models for all our campaigns. Everything works correctly for 95% of traffic: the sessions and BO data on the forms match. Piwik PRO and the forms capture the URL parameters well.

With this in mind, this brings us to the problem. For a few months now, I’ve noticed an absence of URL parameters (UTMs, gclid, fbclid, and other custom parameters) on certain sessions that started on one of these landing pages and generated a form submission. I’d say that 80-90% of the sessions affected by this problem have one thing in common: they’re on iOS.

For example, this session has registered a Heyflow request and yet is assigned to the direct channel:


I observe this phenomenon on all the advertising accounts we manage as an agency.

I know that with iOS 17, Apple gives the option of automatically deleting URL parameters that carry identifiers (such as gclid or fbclid). However, it seems to me that this only affects private browsing and that UTMs should not be affected. I should at least have “google / cpc” or “facebook / paid” as Source / support and all other UTM values.

At this stage, I don’t know if the problem is really iOS-related, but the proportion of iOS in the affected sessions leaves little room for doubt… And if it is, is there anything we can do about it?

Has anyone noticed the same thing?

Thanks in advance! Any help is most welcome. :slight_smile:

Hi Thomas!

Thanks for reporting, we will investigate this further.

Can you also let me know what percentage of/how many sessions are affected? Let’s say in a month, for example. Are they all new visitors or are some returning? Is there a referrer URL available for any of them (despite them being direct entry)?

Hello Sara,

I won’t be able to communicate the percentage of sessions affected, as the only way for me to verify the loss of URL parameters is at conversion level. However, by correlation, the analysis on conversions should give us an idea of the volume of impacted sessions.

So I created a custom report that lists conversions over the last few weeks on one of our accounts. All these conversions are assumed to have UTM parameters, for the reasons given in my original post. I’ve added the requested dimensions, namely whether the visitor is new or not, as well as the referring URL. I’ve simply anonymized the domain name in the cells.

Here’s the report export: Piwik PRO report - Conversions - Google Sheets

Of the 89 conversions, we can see that 13 have no utm_source or utm_medium parameters, i.e. 15% of conversions. And of these 13 conversions:

  • 8 have a referrer URL that actually corresponds to the landing page, and this URL does contain all the URL parameters… :thinking:
  • 5 don’t have a referrer URL and are therefore attached to the direct channel.

More importantly:

  • 10 are on iOS
  • 2 on Mac
  • 1 on Android

This shows the over-representation of iOS in the sessions with conversions affected by this problem.

Don’t hesitate to ask me for more information if necessary!

Thanks in advance :slight_smile:

Thanks!

Apple introduced URL stripping for certain tracking parameters (gclid, fbclid, etc.), especially in private browsing or when using Safari.

While UTMs are not explicitly targeted, URL stripping might happen depending on user privacy settings or the context of the session (for example, app-to-browser transitions). If a user clicks on an ad in Facebook, for example, the transition to Safari might not carry over URL parameters.

Have you tried testing the whole pipeline on an iOS device and looking into the parameters? Would it be possible for us to also debug your issue somehow?

Hello Sara,

Thank you for your clarification!

We haven’t tried to reproduce this behaviour on iOS. I imagine that making visits from a Facebook post containing a link with UTMs would suffice? In any case, if this deletion is indeed due to a configuration on the visitor’s terminal in iOS & Safari, there’s nothing we can do about it.

However, we have tried to reproduce the other scenario, again on iOS & Safari: the one where the landing page does contain the URL parameters, but they disappear on the second page, and a second session is created when the page is changed in Piwik PRO. This scenario corresponds to the 8 conversions mentioned in my previous message. This is more intriguing, as the parameters are not deleted as soon as the first page is viewed. The fact that a new session is created in Piwik PRO is probably explained by the following option (start a new session when the campaign changes) ?

Unfortunately, we were unable to recreate this phenomenon… Do you have any idea what might cause it?

Thanks in advance!

I don’t think it’s caused by this setting - it only affects cases where the campaign changed, not when the parameters just disappeared from the URL.

I’m wondering whether this could be a case of some people just leaving the landing page opened, and then (after 30 minutes of inactivity, when the session is closed) they come back and click some link. Then it starts a new session and the referrer is the landing page (kind of a self-referral). Are you able to check if any of these visitors that had this situation has any other sessions before that?

Hello Sara,

As you can see from the Google Sheets I’ve shared, only 1 of the 8 conversions involves a returning visitor. I therefore created a segment with the cookie ID of this visitor and displayed his 2 sessions in a custom report.

We can see that the session duration for the first visit is 59 seconds, which doesn’t fit with a session closure after 30 minutes of inactivity:

Any ideas? Thanks in advance!

Can you also look up this visitor in session log? So we can see the exact events that happened in the first session?

Hello Sara,

Great idea! This allowed me to notice something suspicious about the first visit: it starts with a scroll, then a custom event (click on a CTA), and only then a page view, the form page. :thinking:


Here are the last actions performed during the first visit.

We can see that a conversion is taking place, which must correspond to one of the following:

And here are the first actions of the second visit:

As you suggested, it seems that the first session was stopped after 30 minutes of inactivity. The visitor then returned to the form confirmation page (/merci). The good news is that the conversion was indeed attributed to Google Ads, but it was also counted on a different visit attached to direct traffic.

However, what about the other 7 conversions, all of which are associated with new visitors? I guess the explanation isn’t the same, because visitors shouldn’t be considered new in this case, should they?

The other 7 conversions are not that clear to me, because there could be a lot of different scenarios. Anonymization, VPNs, iOS and other factors come to play here. I’ll keep looking into this and get back to you :slight_smile:

OK, thanks! Would you like me to send you the instance privately?

Yes! That would be helpful :slight_smile: