I spent all week looking for the answer to pre-filling hidden fields in Google Forms, and found the answer in another post.
Here's how to do it
The link will look similar to this:
https://docs.google.com/forms/d/e/<your form id>/viewform?usp=pp_url&entry.798192315=Foo1&entry.798192331=Foo2
In this example, entry.798192315
relates to the first field, and entry.798192331
relates to the second field.
Replace the values of Foo1 and Foo2 with the values you want to inject as hidden fields, as shown below (I've used UserID and ResponseID).
https://docs.google.com/forms/d/e/<your form id>/viewform?usp=pp_url&entry.798192315=MyUserID&entry.798192331=ThisResponseID
Finally, you need to add &pageHistory=0,1,2
to the end of the URL, this indicates that the form will have 3 sections.
https://docs.google.com/forms/d/e/<your form id>/viewform?usp=pp_url&entry.798192315=MyUserID&entry.798192331=ThisResponseID&pageHistory=0,1,2
Now when the user fills the form and clicks submit, the hidden field data will be stored in the form response.
I spent all week looking for the answer to pre-filling hidden fields in Google Forms, and found the answer here: https://stackoverflow.com/a/79299369/29738588