To enable conversion tracking without third-party cookies, we use the solute-Click-ID ("soluteclid"). This allows clickouts to be assigned to sales.
The solute-Click-ID must therefore be sent to our tracking server when a conversion takes place. To simplify this process, we offer two small javascript snippets that do the sending of the solute-Click-ID – the Javascript must be integrated for the offer page/entry page as well as on the order confirmation page.
The use of the two Javascript snippets is of course not mandatory. It is also very easy to create your own solution (more on this below).
The javascript provided will recognize users coming from the solute network. For these users, the URL of the entry page (landing page) is stored in the LocalStorage of the browser in order to be able to assign successful sales to the entry page later.
The Landing page Javascript is implemented on the offer pages. It checks whether a parameter "soluteclid" is contained in the parameters of the landing page URL. If this is the case, the landing page URL is stored in the browser's LocalStorage and is also sent to solute. For more information on landing page tracking, see our FAQ below.
<script>
(function soluteLandingTracking(){
if (location.href.indexOf("soluteclid") < 0) return;
localStorage.setItem("soluteclid", (new Date()).getTime()+" "+location.href);
var url = "https://cmodul.solutenetwork.com/landing";
url += "?url=" + encodeURIComponent(location.href);
var req = new XMLHttpRequest();
req.open("GET", url);
req.send();
})();
</script>
The Conversion page Javascript is implemented on the order confirmation page - the page that is displayed after a purchase has been made.
A conversion should always be assigned a monetary (net) value (shopping
cart amount excluding VAT and shipping costs), as well as a unique ID to the
order process (Order-ID), so that you have a reference to your own conversion
records. We recommend a hash your order ID. An optional attribution factor can
also be specified. Through the (attribution) factor, you can specify the share
of solute in the purchase. If you don't want to use the factor, just submit the
value 1 as factor. Pay attention to the use of a tracking switch! A tracking
switch ensures the correct allocation of sales and conversions within the
customer journey. The tracking switch manages code snippets from different
providers and controls them according to rules defined by the shop.
<script>
soluteConversionTracking({
VALUE: "123.98",
ORDER_ID: "abc-987",
FACTOR: "1",
});
function soluteConversionTracking(data) {
var ttl = 1000*60*60*24*30;
var a = localStorage.getItem("soluteclid");
if (!a) return;
var b = a.split(" ", 2);
if (parseInt(b[0])+ttl > (new Date()).getTime()) {
var url = "https://cmodul.solutenetwork.com/conversion";
url += "?val=" + encodeURIComponent(data.VALUE);
url += "&oid=" + encodeURIComponent(data.ORDER_ID);
url += "&factor=" + encodeURIComponent(data.FACTOR);
url += "&url=" + encodeURIComponent(b[1]);
var req = new XMLHttpRequest();
req.open("GET", url);
req.send();
} else {
localStorage.removeItem("soluteclid");
}
}
</script>
That was already all to activate the new conversion tracking without third-party cookies.
Alternatively, landing and conversion calls can also be transmitted directly via an HTTP GET request. For example, from the backend of the shop software. Here, only the URL of the entry page (with parameter "soluteclid") must be transferred.
To track the call of the entry page (landing page), the URL of the entry page is passed as parameter.
URL: https://cmodul.solutenetwork.com/landing Request: GET Parameter: - url: url of entry page (landing page). Response: 204 No Content
GET https://cmodul.solutenetwork.com/landing?url=ESCAPED_URL
To track the call of the order confirmation page, the same URL of the initial page is passed again as parameter. The total value of the shopping cart and the order-ID (e.g., hash of order ID) are also transferred.
URL: https://cmodul.solutenetwork.com/conversion Request: GET Parameter: - url: url of entry page (landing page) - val: total shopping cart amount excluding VAT and shipping costs - oid: unique ID to the order process (e.g., hash of the order ID) - factor: Optional. Share of solute in the purchase. Response: 204 No Content
GET https://cmodul.solutenetwork.com/conversion?url=ESCAPED_URL&val=ESCAPED_VALUE&oid=ESCAPED_ORDER_ID
Besides the well-known tracking by redirects, some providers (e.g. Google) also use parallel tracking. The user hereby is directed directly to the shop page. In these cases, tracking is not done directly via "soluteclid", but additionally via the tracking parameter generated by the respective provider (for example, the "gclid" at Google).
To keep the handling for shops simple and flexible, "solute-Clicks" always contain a parameter "soluteclid", so that this parameter can be used to detect solute-Clicks. In addition, the URL may contain other click-IDs for parallel tracking. Our tracking backend processes this automatically for you. Therefore, it needs the complete URL to be able to flexibly use alternative tracking IDs in the future.
The URL itself is not used for any further purposes.
The tracking of the entry page returns the information about a successful call of the offer detail page and serves to be able to recognize possible problems, such as the non-accessibility of your website, at an early stage. In addition, the landing page request information can facilitate error analyses and be considered in the solute click validation process. For this purpose, the accessed URL of the landing page including the solute-click-ID is transmitted to a solute server.
Yes. You have to implement both JavaScript snippets in the GTM, one on the route of landing pages and the other on the route of order confirmation page.
On the order confirmation page, the values for VALUE: "" and ORDER_ID: "" have to be set with the corresponding GTM values, e.g.:
soluteConversionTracking({ VALUE: "{value}", ORDER_ID: "{order-id}", {{ FACTOR: "1",}} { { } );}}
Our Technical Shop Support will be happy to help you.
Tel: +49 721-98993-60
(For direct dialling, select "1" in the voice menu and then "2".)