Resource Center

Integration Guide: Custom Tracking for Brands

___________________________________

This article will tell you

  • What Custom Tracking is
  • Setting up Reverse Proxy

___________________________________

Index

Overview

Custom Tracking enables advertisers to use their brand domain to capture partner channel performance in lieu of the Partnerize domain (prf.hn). Custom Tracking can be used in conjunction with your existing tracking method to: 

  • Mitigate the risk of ad blockers inhibiting affiliate tracking by tying performance tracking to your brand instead of a tracking domain that could ultimately be identified and blocked.
  • Complement future-proofed tracking infrastructure to support persistent tracking amidst evolving browser changes including Apple’s iOS 17 Link Tracking Protection.
  • Ensures accurate data regardless of ad blockers and Link Tracking Protection to support data-driven decisioning, accurate attribution and equitable partner rewards.

To begin Custom Tracking implementation, you must: 

  1. Share Custom Tracking documentation with your tech team. Share this step-by-step guide for implementing Custom Tracking with your tech team.
  2. Confirm with your account team or Support when the update is complete. Once completed, Partnerize must ensure that the update is tracking appropriately. Connect with your account team or Support to perform a test.
  3. Notify your partners of required action. While a temporary redirect for partner links is in place following the update, it is not a long term solution. Partners must swap out existing links for your brand to align with your domain. 

 

Getting Started: Reverse proxy set up

To implement Custom Tracking, you must first set up a reverse proxy (a server that will forward performance activity to your brand’s web server) as well as a tracking domain or sub domain owned by your brand (i.e. https://example.molimo.com). The reverse proxy will:

  • For all advertisers: Send clicks captured via Custom Tracking to Partnerize in real time.
  • For advertisers using pixel-based solutions: Send conversions to the brand’s tracking domain.
  • For existing advertisers using server-to-server tracking with a prf.hn: No action required to begin using Custom Tracking. However, new-to-Partnerize advertisers implementing server-to-server tracking should follow these steps to implement Custom Tracking.

 

Screenshot 2025-03-14 at 15.24.06.png

 

 

Implementation Steps

Step 1: Advertiser to Choose Custom Tracking URL
 

Choose a Custom Tracking URL to be used. You can use either a subdomain (i.e. “https://example.molimo.com”) or a path (i.e. “https://molimo.com/example”).

Note that the subdomain or path should not make any reference to tracking, as we want to ensure browsers and other technologies i.e. adblockers cannot easily identify that the URL is being used for tracking purposes.

Step 2: Partnerize to Configure Custom Tracking URL

Partnerize team will configure your chosen Custom tracking URL within the Partnerize platform, and an Authorisation Token will be provided.

Step 3: Advertiser to set up DNS (subdomain only)

For a new subdomain, you need to use your existing DNS provider to make it available and point at your existing loadbalancer, i.e.
 

example.molimo.com. 1800 IN CNAME molimo.com

____________________________________________________________________

NOTE: A loadbalancer is a device or software that distributes network traffic across multiple servers, preventing any single server from being overloaded and improving application performance, availability, and fault tolerance

____________________________________________________________________

Step 4: Advertiser to update Loadbalancer 

On your existing loadbalancer, there are a few required config changes:

  1. All traffic to the subdomain or path must be proxied through to “https://track.partnerize.com”
  2. (Path only) rewrite the request path so that the path prefix (i.e. “/example”) is not sent
  3. Ensure that the upstream SSL certificate is verified
  4. Ensure "Host" header is maintained and passed to Partnerize
  5. Append the request IP to the “X-Forwarded-For” request header
  6. Set the “Authorization” request header to “Bearer [token]” where [token] is supplied by step 1

Depending on your loadbalancer, you might need to stop it from amending the request further i.e. not to encode any characters, merge slashes, or block large headers. This can otherwise have a negative impact on your tracking.

Step 5: Partnerize to Verify Tracking

On the Partnerize platform, verify the Custom Tracking URL created in step 1. If everything is set up correctly, you should be able to continue to the next step. If not, you will receive an error message after testing the installation with steps for resolution.

Step 6: Advertiser and Partnerize to Perform Testing 

Once the Custom Tracking URL has been verified, two test cases need to be completed on a test campaign on the your live network:

  1. Click testing:
    1. Click test link using the custom domain to check that the redirect to your website works as expected
    2. Check that any query string parameters (appends) are retained
    3. Check that the Partnerize clickref is being stored in a cookie
  2. Conversion testing:
    1. Click test link using the custom domain
    2. Place an order on the live site and provide Partnerize with the Order ID

If both test cases are successful, we are ready for live campaign enablement.

Step 7: Partnerize to Enable Custom Tracking on your Campaign

Custom tracking can now be enabled for your live campaigns.  The reverse proxy tracking should take effect immediately after this final step for and all links and creatives that partners will retrieve via the Partnerize platform.

Step 8: Partner Link Updates (Exclusive to Existing Partnerize Advertisers)
 

Partners that are actively promoting your brand must make updates to their affiliate tracking links to ensure accurate, persistent tracking against ad blockers following Custom Tracking implementation. Once you’ve completed the update, please share our step-by-step guide for updating links with your partners. While partner tracking links that use the prf.hn will temporarily redirect to your new domain, this is not a long term solution, and partners must update their links at their earliest convenience to ensure safeguards against ad blockers and privacy changes. 

If you have additional questions about migrating to Custom Tracking, please contact Support.

____________________________________________________________________

❗️NOTE: You can find out more about what a reverse proxy is here

____________________________________________________________________

 

Troubleshooting

Example configurations

(note these are illustrative and may vary depending on your exact set up)

 

NGINX: 

server {
    # Port listeners
    listen 80;
    listen [::]:80 ipv6only=on;
    listen 443 ssl;
    listen [::]:443 ipv6only=on ssl;

    # HTTPS (https://ssl-config.mozilla.org/#server=nginx&version=1.29.0&config=intermediate&openssl=3.4.0&hsts=false&ocsp=false&guideline=5.7)
    ssl_certificate /path/to/cert.pem;  # TODO: change "/path/to/cert.pem" to your public certificate
    ssl_certificate_key /path/to/key.pem;  # TODO: change "/path/to/key.pem" to your private key
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ecdh_curve X25519:prime256v1:secp384r1;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
    ssl_prefer_server_ciphers off;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;

    # Upstream HTTPS
    proxy_ssl_verify on;
    proxy_ssl_trusted_certificate /path/to/certs.crt;  # TODO: change "/path/to/certs.crt" to your certificate store

    # Append request IP to X-Forwarded-For
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;

    # Keep Host and set Authorization header
    proxy_set_header Host $host;
    proxy_set_header Authorization "Bearer 123456";  # TODO: change "123456" to your auth token

    # Allow large response headers
    proxy_buffer_size 8k;
    proxy_buffers 8 8k;
    proxy_busy_buffers_size 16k;

    # Do not merge slashes
    merge_slashes off;

    # Proxy
    location / {  # TODO: when using a path, change "/" to your path
        # rewrite /tracking/(.*) /$1 break;  # TODO: when using a path, uncomment and change "/tracking" to your path
        proxy_pass https://track.partnerize.com:443;
    }
}

 

APACHE: 

# Load required modules
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ssl_module modules/mod_ssl.so

# HTTPS (https://ssl-config.mozilla.org/#server=apache&version=2.4.60&config=intermediate&openssl=3.4.0&hsts=false&ocsp=false&guideline=5.7)
# TODO: change "/path/to/cert.pem" to your public certificate
# TODO: change "/path/to/key.pem" to your private key

    SSLEngine on
    SSLCertificateFile /path/to/cert.pem
    SSLCertificateKeyFile /path/to/key.pem
    SSLProtocol -all +TLSv1.2 +TLSv1.3
    SSLOpenSSLConfCmd Curves X25519:prime256v1:secp384r1
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
    SSLHonorCipherOrder off
    SSLSessionTickets off


# Upstream HTTPS
# TODO: change "/path/to/certs.crt" to your certificate store
SSLProxyEngine on
SSLProxyVerify require
SSLProxyVerifyDepth 10
SSLProxyCheckPeerName off
SSLProxyCACertificateFile "/path/to/certs.crt"

# Allow encoded `/` in path
AllowEncodedSlashes NoDecode

# Do not merge slashes
MergeSlashes Off

# Keep Host and set Authorization header
# TODO: change "123456" to your auth token
ProxyPreserveHost On
RequestHeader set Authorization "Bearer 123456"

# Proxy
# TODO: when using a path, change "/" to your path
ProxyPass "/" https://track.partnerize.com/ nocanon
ProxyPassReverse "/" https://track.partnerize.com/


 

 

 

 

Was this article helpful?

0 out of 1 found this helpful

Have more questions? Submit a request