Initial UTM parameters not being set (server-side source)

  • 27 January 2023
  • 4 replies


We’re sending our data to Amplitude using RudderStack (a service similar to Segment, which sends data server-side to Amplitude using the API).

Rudderstack automatically sends utm_XXXX parameters with each event to Amplitude, but the problem we’re encountering, is that users’ initial_utm_XXXX properties are not being set.

For example, in the screenshot below, you can see utm_XXXX properties in Amplitude, but there’s no initial_utm_XXX property. 

If we turn off our server-side source, and instead use the Amplitude Javascript SDK (client-side source), you can see that the initial_utm_XXX properties are set correctly (screenshot below):


Do you know how we can get Amplitude to set initial_utm_XXXX, even if we’re using sending data server-side?

Thank you!  


Best answer by sydney.koh 1 February 2023, 00:22

View original

4 replies

Userlevel 6
Badge +9

Thanks for reaching out here @one_tx. I ran a quick search and was able to find these related topics. Our developer docs are also a great place to start - link. Please let me know if you need additional assistance and I can loop in additional team members. 



Userlevel 5
Badge +8


To clarify by server side you mean you are using Cloud mode on Rudder stack correct? So you are using only their SDK and not bundling ours at all correct? If this is the case this question would be better fit for the Rudderstack team since it is their SDK. I would say if you want similar logic to our Javascript SDK but you are not using our SDK you may need to instrument collecting these properties on your end and send them in. You can see more details on the logic we use for our Javascript SDK here: 


Let me know if you have any questions on the article or if I misunderstood you at all!




Thank you both!

Sydney, yes what I mean is using Cloud mode on Rudderstack.

The Javascript SDK link you sent is very helpful. I suspect maybe if we manually call a setOnce operation for initial_utm_source using Rudderstack, that might fix this issue. 

Userlevel 5
Badge +8


Gotcha so since you are using Rudderstack on cloud mode and not going though our SDK you will need to set up the utm logic on your end with Rudderstack since our utm logic is only built out on our SDKs. Glad that doc helped I would recommend testing this with your developers and Rudderstack!

I am going to mark this as closed since this will be a custom implementation.