Conversion Tracking Methods


Postback URL

What is it?


Postback URL is a simple URL with added parameters that is called whenever a conversion takes place.

It is used in 3rd-party tracking systems. The call is made from the system's servers when a certain event occurs, and we do not receive the user agent + user ip.

How is it used?

  1. The advert installs its click link in our system and adds the [CLICK_ID] macro, which we will replace at the moment of response to the SSP. Then our postback is installed into the tracking system, changing the [CLICK_ID] macro in our postback to the format in which the tracking system substitutes the [CLICK_ID]. For example: {clickId}.

  2. Upon clicking, we record all the information about possible future conversions on the node (in Memcached). Here it is very important to specify on which node we will record the conversion. This is done through the [CLICK_ID] macro, the value of which will be described below.

  3. At a certain point, our postback is called with the same [CLICK_ID] macro, which will be replaced by the advert's tracking system. The most important thing is that the [CLICK_ID] sent back to us should match the one we put in the adm when giving the response.

  4. When we receive a call to the conversion service, we redirect this call to the node where all the information about the click was recorded.

  5. Then we follow the standard procedure of recording statistics.

Examples

Postback URL: https://conversions.smartyads.com/postback?type=campaign&id=14270&cid=18999&clid=[CLICK_ID]

Global Postback URL: https://conversions.smartyads.com/postback?type=global&uid=14270&clid=[CLICK_ID]

How the CLICK_ID is formed: {node_id}-{md5 hash of: creativeId + timestamp}-{hidden userId}

Conversion Pixel

What is it?

Conversion pixel is a piece of code that is provided to advertisers to place on a website landing page. It allows to track and report on the actions of users who visit their page after viewing or clicking on an ad. The conversion pixel is an HTML-wrapped link to our conversion server. The conversion is expected to be inserted into the advert site, resulting in a call from the end user's device, and we get his user agent + ip.

How is it used?

  1. The advert installs his click link in our system and adds there the [CLICK_ID] macro, which we will replace at the moment of response to the SSP. Advert also installs a conversion pixel on his site at the place reaching which is considered a conversion, adjusting the [CLICK_ID] macro according to his needs.

  2. When a click occurs, we record all information about possible future conversions on the node (same as for the postbacks). Also, we record a copy of the document but under a different key, which is formed from md5 hash of user agent + ip, and make a call to the conversion service, where we record in the local Redis storage key md5 hash of user agent + ip and its value will be the IP of the node to which we have to redirect the call.

  3. At a certain moment, our conversion pixel is called from the browser of the person who clicked on the advertisement. There are 2 variants of events here:

    a. If the advert knows how to replace [CLICK_ID] on his site, then all the following steps are similar to postbacks.

    b. If the advert does not know how to do it: we form md5 hash of user agent + ip, go to Redis and find the necessary ip of node, then make redirection to node with the indication of the necessary hash inside Memcached and get all the conversion information.

  4. Then we follow the standard procedure of statistics recording.

Examples

Conversion Pixel: <script src="https://conversions.smartyads.com/conversion?type=campaign&id=14270&cid=18999&clid=[CLICK_ID]"></script>

Global Comversion Pixel: <script src="https://conversions.smartyads.com/conversion?type=global&uid=14270&clid=[CLICK_ID]"></script>

Conversion Tracking Guide


Tracking conversions is essential for evaluating the success of your ad campaigns. In our DSP platform, you can track user actions—such as purchases, sign-ups, or any other valuable interactions on your website—using one of two supported methods:

  • Conversion Pixel (browser-based tracking)
  • Postback URL (server-to-server tracking)

You can configure both options in the Tracking section on the Campaign Optimization page of your campaign setup.

Conversion Pixel

A Conversion Pixel is a piece of HTML code you place on a web page that represents a conversion (e.g., a thank-you or confirmation page). When a user reaches the conversion event, the pixel sends a signal to our DSP to log the conversion.

Use this method if you have access to your website’s HTML and prefer a quick, browser-based setup without additional server configurations.

How to set up a Conversion Pixel

  1. Go to your Campaign Optimization -> Tracking section.

  2. Choose the ‘Conversion Pixel’ option.

  3. Enter the name of the event in the ‘Tracked Event’ field (e.g., “Add to Cart” or “Signup Confirmation”).

  4. Copy the generated pixel scripts by clicking on the ‘Copy’ button and paste them into your website’s code:

    a. The first script should be put in the <head> of your site. Example: <script id="" text="" charset="" type="text/javascript" src="https://dsp.smartyads.com/clid.js"></script>

    b. The second script should be put in the exact place where you want to track conversion. Example: <script src="https://conversions.smartyads.com/conversion?type=campaign&clid=[CLICK_ID]&id=12345&cid=12345"></script>

  5. Paste these scripts into your website page based on the requirements. The data will start flowing, and the number of pixels firing will be displayed in the ‘Conversion’ column on the ‘Campaigns’ page.

Example: Adding script to the <head>

<!DOCTYPE html>
<html lang="en">
<head>
  ...
  <script id="smartyads-clickid" type="text/javascript" src="https://dsp.smartyads.com/clid.js" charset="utf-8"></script>
  ...
</head>
<body>
  <!-- SmartyShop website content -->
</body>
</html>

Example: Adding script to the <body>

Example of placing the script to track adding an item to the cart:

<body>
  ...
  <button id="addToCartBtn">Add to Cart</button>
  <script>
    document.getElementById('addToCartBtn').addEventListener('click', function() {
      var pixel = document.createElement('script');
      pixel.src = "https://conversions.smartyads.com/conversion?type=campaign&clid=[CLICK_ID]&id=12345&cid=54321";
      document.body.appendChild(pixel);
    });
  </script>
  ...
</body>
</html>

Example of placing the script to track the opening of the ‘Checkout’ page:

<body>
  ...
  <h1>Checkout</h1>
  <p>Review your items and complete your purchase.</p>
  <script>
    window.addEventListener('load', function() {
      var pixel = document.createElement('script');
      pixel.src = "https://conversions.smartyads.com/conversion?type=campaign&clid=[CLICK_ID]&id=12345&cid=54321";
      document.body.appendChild(pixel);
    });
  </script>
  ...
</body>
</html>

Postback URL

Postback tracking — also known as server-to-server (S2S) tracking — is a highly reliable method for measuring user actions and conversions. Unlike browser-based tracking methods such as cookies or scripts, postbacks communicate directly between servers, making them more resilient to ad blockers, browser restrictions, and privacy limitations.

In the SmartyAds DSP, postback tracking relies on the [CLICK_ID] macro within the Click URL. Each ad click generates a unique click ID, which is captured by a third-party tracking system and later returned to SmartyAds via a Postback URL. When a user performs a desired action on the advertiser’s website (for example, a purchase, sign-up, or registration), the third-party tracking system sends a server-to-server postback to SmartyAds. This ensures accurate conversion reporting and reliable attribution.

General Overview

The goal of the DSP platform is to receive the postback call with the changed [CLICK_ID]. The 3rd-party system receives an event with the changed [CLICK_ID] and calls our Postback URL. For that, the advert has to take our postback URL and set it for all events that he wants to track inside the used 3rd-party system. The detailed flow:

  1. A Click URL (tracking link) is added to the creative.
    This link includes a required tracking parameter - the [CLICK_ID], which identifies each ad click and is essential for postback tracking. Do not be afraid if you forgot to add the parameter to the Click URL — we automatically add it to each tracking link.

  2. User click and redirect flow.
    When a user clicks an ad, they are redirected through the Click URL, which captures click data (including the click ID), and then forwards them to the advertiser’s landing page.

  3. Conversion event on the advertiser’s site.
    When a conversion occurs — such as a purchase, form submission, or subscription — an event triggers on the advertiser’s site. This event sends conversion data, including the stored click ID, to the 3rd-party tracking system.

  4. Matching and postback.
    The 3rd-party tracking platform receives the conversion data, matches it to the initial click event using the click ID, and attributes the conversion correctly. The 3rd-party system calls the Postback URL with the [CLICK_ID] value and sends the data back to SmartyAds via the postback link generated in the DSP interface.

How to set up a Postback URL

  1. Go to your campaign’s Campaign Optimization -> Tracking section.

  2. Choose the ‘Postback URL’ option.

  3. Enter the name of the event in the ‘Tracked Event’ field (e.g., “Add to Cart” or “Signup Confirmation”).

  4. Copy the generated Postback URL.
    a. Example: https://conversions.smartyads.com/postback?type=campaign&id=12345&cid=12345&clid=[CLICK_ID]

  5. Paste the copied postback link to the 3rd-party tracking system for the chosen conversion tracking events.

  6. Ensure the automatic replacement of the [CLICK_ID] with the ID captured during the initial click. This ID must then be passed back to us when the conversion occurs.

Note: Ensure the [CLICK_ID] passed back matches the one issued during the original ad click. This ensures the conversion is correctly attributed.

Important Notes

  1. Only one method can be chosen per conversion event.
  2. Always test your tracking after setup to ensure conversions are being registered correctly.
  3. Use the [CLICK_ID] macro only if you're tracking from click-based attribution sources.

AppsFlyer Postback Integration

  1. When integrating AppsFlyer with SmartyAds, you do not need to activate the Postback URL on the Campaign Optimization page. Most of the integration work is performed directly in the AppsFlyer interface. At the final step of the setup, you will simply paste the AppsFlyer links into the Click URL and Third-party impression analytics tag fields in SmartyAds.

  2. To begin, connect your mobile application to the AppsFlyer platform. Follow the official AppsFlyer documentation on how to Add an app to AppsFlyer.

  3. Enable the SmartyAds partner in AppsFlyer using the process described in their Partner activation/deactivation guide. For the integration to function correctly, open: Active Integrations → Smartyads → Permissions and enable the Ad network permissions toggle.

  4. Copy the AppsFlyer links for your tracking and paste them into the SmartyAds DSP admin panel:

Useful links:

Note for AM: if the partner isn’t added to the dashboard, provide him with the screen with the integration details. The advert should apply the same settings as on the screen.

PID (Partner id) of Smartyads = smartyads_int

  1. Create In-App Events in AppsFlyer if you want to track post-install events.

Useful links:

Adjust Postback Integration

  1. To integrate with SmartyAds using Adjust, an advertiser should be registered in Adjust and have their app(s) integrated with the platform. Follow the official Adjust documentation to register and integrate your app
  2. To implement SmartyAds integration, the Click URL and Impression URL should be created in Adjust and pasted into the SmartyAds campaign settings. Follow the official Adjust guided tour to generate the required links Campaign setup in Campaign Lab | Adjust Help Center. Once you’ve finished, you should copy and save the generated Click URL and Impression URL links (see screen).
  3. Сopy the Click URL and Impression URL, and add the following macros at the end of both links using the string &adj_install_callback=[POSTBACK_URL]&adj_cost_type=[COST_TYPE]&adj_cost_amount=[AD_CPM]&adj_cost_currency=[CURRENCY]&cost_id=[CLICK_ID]

    a. Example of finalized Click URL: https://app.adjust.com/jdbsf9?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={ID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HAID}&adj_install_callback=[POSTBACK_URL]&adj_cost_type=[COST_TYPE]&adj_cost_amount=[AD_CPM]&adj_cost_currency=[CURRENCY]&cost_id=[CLICK_ID]

    b. Example of finalized Impression URL: https://view.adjust.com/impression/jdbsf9?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={ID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HAID}&adj_install_callback=[POSTBACK_URL]&adj_cost_type=[COST_TYPE]&adj_cost_amount=[AD_CPM]&adj_cost_currency=[CURRENCY]&cost_id=[CLICK_ID]
  4. Activate the ‘PostBack URL’ option on the User Profile page of the SmartyAds DSP platform and click ‘Save’. Note: you do not need to copy the URL by clicking the ‘Copy’ button; all attribution is tracked using the Adjust-generated URLs.
  5. Paste and save the updated Adjust Click and Impression URL in the fields on the SmartyAds DSP platform:
    • ‘Click URL' into the 'Click URL’ field on the Add/Edit Creative page for the required creatives.
    • ‘Impression URL' into the 'Third-party impression analytics tag’ on the Campaign Optimization page for the required campaigns.

Note: Adjust platform counts all clicks, while SmartyAds DSP counts unique clicks.

Useful links

Troubleshooting and common mistakes

Issue Solution
Conversions not tracked Verify pixel/postback is placed correctly and triggered on the right event.
[CLICK_ID] is missing Ensure your ad Click URL includes the [CLICK_ID] macro in the stated form.
Pixel fires too early Place pixel only after confirmation events (not on page load if action is not complete).
Postback fails Check server logs; ensure [CLICK_ID] is correctly captured and substituted.
Duplicate conversions Use logic on your site/server to ensure pixels or postbacks fire only once per user/session.