i add the pixel on shopify all values are fetch but link id or click id showing null

Topic summary

A Shopify merchant is experiencing issues with a Whistle pixel tracking implementation where the link ID (click_id) parameter returns null on the thank you page, while other values are captured correctly.

Current Setup:

  • Using checkout additional scripts with custom JavaScript code
  • Successfully retrieving order ID, transaction ID, and revenue values
  • The click_id query parameter ({{ request.query_parameters['click_id'] }}) is not being captured

Attempted Solution:
Another user suggested replacing the existing code, but the original poster noted both code snippets appear to be the same.

Key Issue:
The problem likely stems from how the click_id parameter is being passed through Shopify’s checkout flow or how it’s being accessed via Liquid templating. The discussion remains unresolved with no clear solution provided yet for retrieving the missing click_id value.

Summarized with AI on November 20. AI used: claude-sonnet-4-5-20250929.

I add one whistle pixel on shopify all vales are showing on thankyou page but the link id or click id showing null

how can i retrive these value

this code i use in checkout additional script

<script type="text/javascript">
function prepareFrame() {
  var linkid = "{{ request.query_parameters['click_id'] }}";
  var orderId = "{{ order.id }}";
  var transaction_id = orderId;
  var revenue = "{{ subtotal_price | money_without_currency }}"; // Use the subtotal price instead of the total price
  var url = "https://utils.follow.whistle.mobi/pixel.php?linkid=" + linkid + "&transaction_id=" + transaction_id + "&revenue=" + revenue + "&goal_name=default";
  console.log(url); // log the tracking pixel URL to the browser console
  var ifrm = document.createElement("iframe");
  ifrm.setAttribute("src", url);
  ifrm.width = "1";
  ifrm.height = "1";
  ifrm.id = "pixelcodeurl";
  document.body.appendChild(ifrm);
};
prepareFrame();
</script>

Replace this:

function prepareFrame() {
  var linkid = "{{ request.query_parameters['click_id'] }}";
  var orderId = "{{ order.id }}";
  var transaction_id = orderId;
  var revenue = "{{ subtotal_price | money_without_currency }}";
  var url = "https://utils.follow.whistle.mobi/pixel.php?linkid=" + linkid + "&transaction_id=" + transaction_id + "&revenue=" + revenue + "&goal_name=default";
  console.log(url);
  var ifrm = document.createElement("iframe");
  ifrm.setAttribute("src", url);
  ifrm.width = "1";
  ifrm.height = "1";
  ifrm.id = "pixelcodeurl";
  document.body.appendChild(ifrm);
}
prepareFrame();

both codes are same sir