The following example script asynchronously requests the USD/EUR exchange rate from the Yahoo API in JSON format by using AJAX. As soon as the currency exchange rate data has been received, a GTM Event called "exchangeRate" is fired, sending the currency rate information along as "exchangeRateInfo" parameter in the data layer.

<script>
  
    var yahooUrl = 'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20csv%20where%20url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fd%2Fquotes.csv%3Fe%3D.csv%26f%3Dnl1d1t1%26s%3Dusdeur%3DX%22%3B&format=json';

    var myXMLHttpRequest = null;

    if(window.XMLHttpRequest){
      myXMLHttpRequest = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
      try{
        myXMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP.6.0");
      } catch(e){
        try{
          myXMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP.3.0");
        }
        catch(e){}
      }
    }

    myXMLHttpRequest.open('GET', yahooUrl, true);
    myXMLHttpRequest.onreadystatechange = function(){    
      if(this.readyState == 4){
        if(this.status == 200){
         dataLayer.push({'event':'exchangeRate', 'exchangeRateInfo':JSON.parse(this.responseText)});
        }
      }
    }    
    myXMLHttpRequest.send();

  </script>
This website is making use of cookies for website analysis. Data is collected anonymously and solely for the purpose of improving the website. Do you agree to the use of cross-session cookies?