Existing content is your strength!
Your website is full of content users browse every day. Is there a way of effortlessly monetising your whole back catalog?
Yes, there is - Tradedoubler’s Link Converter!
Every link that belongs to an Advertiser you joined with Tradedoubler will be converted to an affiliate tracking link in a blink of an eye so you can earn commission from all your eligible content without hassle. All your existing advertiser links will be replaced so you don't need to change anything!
The Conversions API enables you to work more efficiently by receiving transaction notifications in real-time rather than having to run static reports from an interface.
Do not have a publisher account? Register with Tradedoubler and get started today!
If you are using one of the following CMS platforms we recommend you use official Tradedoubler plug-in. The plug-in includes ad-blocking prevention mechanism described on this page.
Otherwise, the following steps will help you integrating the Link Covnerter on your website in seconds.
There is no extra configuration required on your website. All future changes will be handled in your Tradedoubler Publisher Interface.
Now that you installed Link Converter on your website you don't need to worry about affiliate links anymore! You can focus on what's important for you and grow your website.
Now that you can automatically create tracking links on your website for eligible advertisers you might wonder "what’s the best way to serve ads in today’s ad-blocking world?"
Tradedoubler offers you a way to integrate it’s Link Converter server-side. This means no tradedoubler.com request that can be blocked, and the tracking links will be created for eligible advertisers in a way that cannot be disrupted.
In order to implement this functionality you can use Tradedoubler Link Converter plug-in for the following CMS:
If you’re not using any of them, you can still implement the following process yourself to synchronize the Link Converter script with your own server:
<script type="text/javascript">				
window.tdlcAsyncInit = function() {
		tdlc_epi = {your_EPI_variable_name_or_value}; // OTPIONAL
		tdlc_epi2 = {your_EPI2_variable_name_or_value}; // OPTIONAL
		  
		TDLinkConverter.init({tdlc_epi, tdlc_epi2}); 
	};
	var tdlc_1d43f5s_a = new Date(); tdlc_1d43f5s_a.setMinutes(0); tdlc_1d43f5s_a.setSeconds(0);
	var tdlc_1d43f5s_seconds = parseInt(tdlc_1d43f5s_a.getTime() / 1000);
	(function(d, s){
		var js, fjs = d.getElementsByTagName(s)[0];
		if (d.getElementById(id)) { return; }
		js = d.createElement(s); js.id = tdlc_1d43f5s_seconds;
		js.src ="YOUR LOCAL_PATH?rand(" + tdlc_1d43f5s_seconds + ")";
		fjs.parentNode.insertBefore(js, fjs);
	}(document, "script"));
</script>
	
						
						Feel free to use the following script examples to set up the process manually on your side.
This section includes synchronization logic in various programming languages as well as a pseudo code version to explain what the code is doing.
BEGIN
    FUNCTION download_file(AFFILIATE_ID, LOCAL_PATH)
        // Step 1: Accept value of parameter named AFFILIATE_ID
        // Step 2: Accept value of parameter named LOCAL_PATH
        // Step 3: Create a parameter REMOTE_URL with value of "https://link.tradedoubler.com/lc?a(AFFILIATE_ID)"
        SET REMOTE_URL = "https://link.tradedoubler.com/lc?a(" + AFFILIATE_ID + ")"
        // Step 4: Download file from REMOTE_URL to LOCAL_PATH
        CALL download_from_url(REMOTE_URL, LOCAL_PATH)
    END FUNCTION
    FUNCTION download_from_url(url, path)
        // Implement the logic to download file from the given URL and save it to the given path
        OPEN connection to url
        READ data from url
        OPEN file at path for writing
        WRITE data to file at path
        CLOSE file
        CLOSE connection
    END FUNCTION
END
						
<%
Sub DownloadFile(AFFILIATE_ID, LOCAL_PATH)
	' Step 1: Accept value of parameter named AFFILIATE_ID
	' Step 2: Accept value of parameter named LOCAL_PATH
	' Step 3: Create a parameter REMOTE_URL with value of "https://clk.tradedoubler.com/lc?a(AFFILIATE_ID)"
	REMOTE_URL = "https://clk.tradedoubler.com/lc?a(" & AFFILIATE_ID & ")"
	' Step 4: Download file from REMOTE_URL to LOCAL_PATH
	Call DownloadFromUrl(REMOTE_URL, LOCAL_PATH)
End Sub
Sub DownloadFromUrl(url, path)
	Dim http, stream, fso, file, data
	' Create the XMLHTTP object to download the file
	Set http = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
	http.open "GET", url, False
	http.send
	' Check if the request was successful
	If http.status = 200 Then
		' Get the response body
		data = http.responseBody
		' Create the FileSystemObject to write the file
		Set fso = Server.CreateObject("Scripting.FileSystemObject")
		
		' Create the file and write the data
		Set file = fso.CreateTextFile(path, True)
		file.Write data
		file.Close
		Response.Write "File downloaded successfully to " & path
	Else
		Response.Write "Error: Unable to download the file. Status code: " & http.status
	End If
	' Clean up
	Set http = Nothing
	Set fso = Nothing
End Sub
' Example usage
Dim AFFILIATE_ID, LOCAL_PATH
AFFILIATE_ID = Request.QueryString("AFFILIATE_ID")
LOCAL_PATH = Server.MapPath("downloaded_file")
If Not IsEmpty(AFFILIATE_ID) Then
	Call DownloadFile(AFFILIATE_ID, LOCAL_PATH)
Else
	Response.Write "Error: AFFILIATE_ID parameter is missing."
End If
%>
						
using System;
using System.IO;
using System.Net;
class Program
{
	static void Main(string[] args)
	{
		// Example usage
		string AFFILIATE_ID = "your_affiliate_id";
		string LOCAL_PATH = @"C:\path\to\local\file";
		download_file(AFFILIATE_ID, LOCAL_PATH);
	}
	static void download_file(string AFFILIATE_ID, string LOCAL_PATH)
	{
		// Step 1: Accept value of parameter named AFFILIATE_ID
		// Step 2: Accept value of parameter named LOCAL_PATH
		// Step 3: Create a parameter REMOTE_URL with value of "https://clk.tradedoubler.com/lc?a(AFFILIATE_ID)"
		string REMOTE_URL = "https://link.tradedoubler.com/lc?a(" + AFFILIATE_ID + ")";
		// Step 4: Download file from REMOTE_URL to LOCAL_PATH
		download_from_url(REMOTE_URL, LOCAL_PATH);
	}
	static void download_from_url(string url, string path)
	{
		try
		{
			// Create a WebClient instance to download the file
			using (WebClient client = new WebClient())
			{
				// Download the file data from the URL
				byte[] data = client.DownloadData(url);
				// Write the file data to the specified local path
				File.WriteAllBytes(path, data);
				Console.WriteLine("File downloaded successfully to " + path);
			}
		}
		catch (Exception e)
		{
			Console.WriteLine("Error: " + e.Message);
		}
	}
}
						
const https = require('https');
const fs = require('fs');
function download_file(AFFILIATE_ID, LOCAL_PATH) {
	// Step 1: Accept value of parameter named AFFILIATE_ID
	// Step 2: Accept value of parameter named LOCAL_PATH
	// Step 3: Create a parameter REMOTE_URL with value of "https://link.tradedoubler.com/lc?a(AFFILIATE_ID)"
	const REMOTE_URL = `https://link.tradedoubler.com/lc?a(${AFFILIATE_ID})`;
	// Step 4: Download file from REMOTE_URL to LOCAL_PATH
	download_from_url(REMOTE_URL, LOCAL_PATH);
}
function download_from_url(url, path) {
	https.get(url, (response) => {
		if (response.statusCode !== 200) {
			console.error(`Failed to download file, status code: ${response.statusCode}`);
			return;
		}
		const file = fs.createWriteStream(path);
		response.pipe(file);
		file.on('finish', () => {
			file.close();
			console.log('File downloaded successfully to ' + path);
		});
	}).on('error', (err) => {
		console.error(`Error: ${err.message}`);
	});
}
// Example usage
const AFFILIATE_ID = 'your_affiliate_id';
const LOCAL_PATH = '/path/to/local/file';
download_file(AFFILIATE_ID, LOCAL_PATH);
						
<%@ page import="java.io.*, java.net.*" %>
<%
	// Function to download the file
	void downloadFile(String AFFILIATE_ID, String LOCAL_PATH) throws IOException {
		// Step 1: Accept value of parameter named AFFILIATE_ID
		// Step 2: Accept value of parameter named LOCAL_PATH
		// Step 3: Create a parameter REMOTE_URL with value of "https://link.tradedoubler.com/lc?a(AFFILIATE_ID)"
		String REMOTE_URL = "https://link.tradedoubler.com/lc?a(" + AFFILIATE_ID + ")";
		// Step 4: Download file from REMOTE_URL to LOCAL_PATH
		downloadFromUrl(REMOTE_URL, LOCAL_PATH);
	}
	// Function to download the file from the URL and save it to the local path
	void downloadFromUrl(String urlString, String localPath) throws IOException {
		InputStream inputStream = null;
		FileOutputStream outputStream = null;
		try {
			// Create URL object
			URL url = new URL(urlString);
			// Open connection to the URL
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			// Check if response code is HTTP_OK (200)
			if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
				// Get input stream from the connection
				inputStream = connection.getInputStream();
				// Create output stream to write to the local file
				outputStream = new FileOutputStream(localPath);
				
				// Buffer to hold data chunks
				byte[] buffer = new byte[4096];
				int bytesRead = -1;
				// Read from input stream and write to output stream
				while ((bytesRead = inputStream.read(buffer)) != -1) {
					outputStream.write(buffer, 0, bytesRead);
				}
				
				out.println("File downloaded successfully to " + localPath);
			} else {
				out.println("Error: Server returned response code " + connection.getResponseCode());
			}
		} catch (Exception e) {
			out.println("Error: " + e.getMessage());
		} finally {
			if (inputStream != null) {
				inputStream.close();
			}
			if (outputStream != null) {
				outputStream.close();
			}
		}
	}
	// Example usage
	String AFFILIATE_ID = request.getParameter("AFFILIATE_ID");
	String LOCAL_PATH = application.getRealPath("/") + "downloaded_file";
	downloadFile(AFFILIATE_ID, LOCAL_PATH);
%>
						
<?php
function download_file($AFFILIATE_ID, $LOCAL_PATH) {
	// Step 1: Accept value of parameter named AFFILIATE_ID
	// Step 2: Accept value of parameter named LOCAL_PATH
	// Step 3: Create a parameter REMOTE_URL with value of "https://link.tradedoubler.com/lc?a(AFFILIATE_ID)"
	$REMOTE_URL = "https://link.tradedoubler.com/lc?a(" . $AFFILIATE_ID . ")";
	// Step 4: Download file from REMOTE_URL to LOCAL_PATH
	download_from_url($REMOTE_URL, $LOCAL_PATH);
}
function download_from_url($url, $path) {
	// Implement the logic to download file from the given URL and save it to the given path
	// Using file_get_contents to read the data from the URL
	$data = file_get_contents($url);
	if ($data === FALSE) {
		die("Error: Unable to download the file from the URL");
	}
	// Using file_put_contents to write the data to the specified path
	$result = file_put_contents($path, $data);
	if ($result === FALSE) {
		die("Error: Unable to save the file to the specified path");
	}
	echo "File downloaded successfully to " . $path;
}
// Example usage
$AFFILIATE_ID = "your_affiliate_id";
$LOCAL_PATH = "/path/to/local/file";
download_file($AFFILIATE_ID, $LOCAL_PATH);
?>