{"id":15472,"date":"2026-02-20T07:06:11","date_gmt":"2026-02-20T07:06:11","guid":{"rendered":"http:\/\/mariusz.bijok"},"modified":"2026-06-29T07:14:58","modified_gmt":"2026-06-29T07:14:58","password":"","slug":"callback-macros","status":"publish","type":"docs","link":"https:\/\/tenjin.com\/tr\/docs\/callback-macros\/","title":{"rendered":"Callback Macros"},"content":{"rendered":"<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-aab-accordion-block aab__accordion_container  accessibilityOn\" style=\"margin-top:0px;margin-bottom:15px;border:1px solid #e3dfdf38\" id=\"aab_accordion_513b1566_0\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\"><div class=\"aab__accordion_head aab_left_icon\" style=\"background-color:#e3dfdf38;border-top:none;border-right:none;border-bottom:none;border-left:none\"><div class=\"aab__accordion_heading aab_left_icon aab_right_link\"><div class=\"head_content_wrapper\"><div class=\"title_wrapper\"><h4 class=\"aab__accordion_title\" style=\"margin:0\">Callback macros<\/h4><\/div><\/div><\/div><div class=\"aab__accordion_icon\" style=\"border:0px solid transparent\"><span class=\"aab__icon dashicons dashicons-plus-alt2\" style=\"font-size:23px\"><\/span><\/div><\/div><div class=\"aab__accordion_body\" role=\"region\" style=\"display:none;border-top:1px solid #e3dfdf38;border-right:none;border-bottom:none;border-left:none\"><div class=\"aab__accordion_component\">\n<p class=\"wp-block-paragraph\">Macros are placeholders for values that change dynamically in a URL&#8217;s server request. These macros are pre-configured for Tenjin integrated networks, but learning how macros work can be useful for any custom channels that you want add.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h5 class=\"wp-block-heading\">Why do we need macros?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">We need macros to pass dynamically changing data through unchanging tracking link parameters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To unpack this, we will explain how URLs, parameters, values, and dynamically changing values work within attribution.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h5 class=\"wp-block-heading\">URLs and parameters<\/h5>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">Let\u2019s take a look at a standard URL: <strong>https:\/\/track.tenjin.com?param1=value1<\/strong>. In this URL you can see there is a server address <strong>track.tenjin.io<\/strong> and a single parameter <strong>param1<\/strong> set to a value <strong>value1<\/strong>. When this URL hits the <strong>track.tenjin.io<\/strong> server, Tenjin\u2019s server reads this URL and parses the parameter and value. In this case <strong>param1<\/strong> is set to <strong>value1<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a more realistic example relating to attribution parameters and values, take this URL with two parameters (<strong>advertising_id<\/strong> and <strong>country<\/strong>) and two values: <strong>https:\/\/track.tenjin.com?advertising_id=xyz123&amp;country=US<\/strong>. When this request hits the Tenjin server at <strong>track.tenjin.com<\/strong>, we know that the <strong>advertising_id<\/strong> that hit the server is the device <strong>xyz123<\/strong> with a <strong>country<\/strong> of US.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h5 class=\"wp-block-heading\">Dynamic parameter values<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Now that we know how values and parameters are passed to a server, let&#8217;s look at how URLs are used in the context of attribution and tracking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In order for Tenjin to attribute a user to a click or an impression, Tenjin collects device information and properties on each click or impression. These properties are used to match up with the properties collected when a device installs the app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">A Tenjin tracking URL is generated whenever you <a href=\"\/tr\/docs\/campaign-setup\/\" target=\"_blank\" rel=\"noreferrer noopener\">create a campaign<\/a> for a non-SAN network or a custom channel. This tracking URL contains \u201cmacros\u201d that dynamically adapt to changing values around the click or impression. Macros are used as placeholders for values that change in a specific URL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">Let\u2019s say that you wanted to run a campaign on a <a href=\"\/tr\/docs\/campaign-setup\/\" target=\"_blank\" rel=\"noreferrer noopener\">non SAN<\/a> network. You create a tracking link through the Tenjin dashboard and give this to your ad network.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is what a tracking link from Tenjin might look like: <br><br><code data-no-translation=\"\" data-no-auto-translation=\"\">https:\/\/track.tenjin.com?advertising_id={idfa}&amp;country={country}<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this case <strong>{idfa}<\/strong> and <strong>{country}<\/strong> are macros. When a device uses this link, the ad network will fill in these macros with the actual values of the device. Using the previous example, <strong>{idfa}<\/strong> and <strong>{country}<\/strong> would fill in values with <strong>xyz123<\/strong> and <strong>US<\/strong> respectively.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once filled in, the ad network or channel will hit Tenjin&#8217;s server using the following URL:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code data-no-translation=\"\" data-no-auto-translation=\"\">https:\/\/track.tenjin.com?advertising_id=xyz123&amp;country=US<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">Alternatively, if the user\u2019s device changed and had an <strong>advertising_id<\/strong> of <strong>abc234<\/strong> and a <strong>country<\/strong> of CA the URL would change to: <br><br><code data-no-translation=\"\" data-no-auto-translation=\"\">https:\/\/track.tenjin.com?advertising_id=abc234&amp;country=CA<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As you can see, these scenarios are using the same URL, but changing the values based on the device\/user that is using the tracking link.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Macros allow ad networks to change the URL for each user&#8217;s click\/impression. These macros are simply placeholders for the values that are changing when different users interact with the tracking links.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<div class=\"wp-block-aab-accordion-block aab__accordion_container  accessibilityOn\" style=\"margin-top:0px;margin-bottom:15px;border:1px solid #e3dfdf38\" id=\"aab_accordion_2fa7646c_1\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\"><div class=\"aab__accordion_head aab_left_icon\" style=\"background-color:#e3dfdf38;border-top:none;border-right:none;border-bottom:none;border-left:none\"><div class=\"aab__accordion_heading aab_left_icon aab_right_link\"><div class=\"head_content_wrapper\"><div class=\"title_wrapper\"><h4 class=\"aab__accordion_title\" style=\"margin:0\">Macros for ad-network callbacks<\/h4><\/div><\/div><\/div><div class=\"aab__accordion_icon\" style=\"border:0px solid transparent\"><span class=\"aab__icon dashicons dashicons-plus-alt2\" style=\"font-size:23px\"><\/span><\/div><\/div><div class=\"aab__accordion_body\" role=\"region\" style=\"display:none;border-top:1px solid #e3dfdf38;border-right:none;border-bottom:none;border-left:none\"><div class=\"aab__accordion_component\">\n<p class=\"wp-block-paragraph\">Each ad network has its own set of click and impression macros for the following device properties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Advertising ID<\/li>\n\n\n\n<li>IP address<\/li>\n\n\n\n<li>Bundle ID<\/li>\n\n\n\n<li>Country<\/li>\n\n\n\n<li>Click ID<\/li>\n\n\n\n<li>Site<\/li>\n\n\n\n<li>OS Platform<\/li>\n\n\n\n<li>Limit Ad Tracking<\/li>\n\n\n\n<li>Creative<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If the ad network is pre-configured and integrated with Tenjin, each of the ad network macros will automatically show up on each click URL or impression tracking link for each campaign.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"translation-block\">Axon by AppLovin <code data-no-translation=\"\" data-no-auto-translation=\"\">advertising_id<\/code> macro looks like this: <code data-no-translation=\"\" data-no-auto-translation=\"\">{IDFA}<\/code><\/li>\n\n\n\n<li class=\"translation-block\">Tapjoy <code data-no-translation=\"\" data-no-auto-translation=\"\">advertising_id<\/code> macro looks like this: <code data-no-translation=\"\" data-no-auto-translation=\"\">TAPJOY_ADVERTISING_ID<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">As a result the Axon by AppLovin and Tapjoy click urls might look something like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Axon by AppLovin: <code data-no-translation=\"\" data-no-auto-translation=\"\">https:\/\/track.tenjin.com\/v0\/id?advertising_id={IDFA}<\/code><\/li>\n\n\n\n<li>Tapjoy: <code data-no-translation=\"\" data-no-auto-translation=\"\">https:\/\/track.tenjin.com\/v0\/id?advertising_id=TAPJOY_ADVERTISING_ID<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Again, each network will have their own macro format. If the network is already pre-integrated with Tenjin you don&#8217;t need to worry about it. This is just so you know how click and impression URLs are constructed.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<div class=\"wp-block-aab-accordion-block aab__accordion_container  accessibilityOn\" style=\"margin-top:0px;margin-bottom:15px;border:1px solid #e3dfdf38\" id=\"aab_accordion_f0dd39e1_2\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\"><div class=\"aab__accordion_head aab_left_icon\" style=\"background-color:#e3dfdf38;border-top:none;border-right:none;border-bottom:none;border-left:none\"><div class=\"aab__accordion_heading aab_left_icon aab_right_link\"><div class=\"head_content_wrapper\"><div class=\"title_wrapper\"><h4 class=\"aab__accordion_title\" style=\"margin:0\">Supported Macros<\/h4><\/div><\/div><\/div><div class=\"aab__accordion_icon\" style=\"border:0px solid transparent\"><span class=\"aab__icon dashicons dashicons-plus-alt2\" style=\"font-size:23px\"><\/span><\/div><\/div><div class=\"aab__accordion_body\" role=\"region\" style=\"display:none;border-top:1px solid #e3dfdf38;border-right:none;border-bottom:none;border-left:none\"><div class=\"aab__accordion_component\">\n<p class=\"wp-block-paragraph\">When setting up a Tenjin callback to another service, you can use macros to represent dynamically changing data values to send to other servers\/services. This is what we call &#8220;Routing&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tenjin allows you to &#8220;route&#8221; live event data to other servers in real time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a list of available callback macros that you are able to set up when sending data to other services.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">App related macros<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{app_version}}<\/code><\/td><td>App version of the app. (1.0.3)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{bundle_id}}<\/code><\/td><td>Bundle ID of the app. (com.tenjin.wordfinder)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{lowercase_bundle_id}}<\/code><\/td><td>Lower case of bundle ID of the app. (com.tenjin.wordfinder)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{platform}}<\/code><\/td><td>Platform of the app (ios)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{user_agent}}<\/code><\/td><td>User&#8217;s user agent<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{sdk_version}}<\/code><\/td><td>User&#8217;s Tenjin SDK version<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{store_id}}<\/code><\/td><td>App Store ID of the app (887212194)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Attribution related macros<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{acquired_at_s}}<\/code><\/td><td>Timestamp for install event in seconds<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{acquired_at_ms}}<\/code><\/td><td>Timestamp for install event in milliseconds<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{engaged_at_s}}<\/code><\/td><td>Timestamp for click or impression event in seconds<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{engaged_at_ms}}<\/code><\/td><td>Timestamp for click or impression event in milliseconds<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ad_network}}<\/code><\/td><td>Channel name that a user is attributed to<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{campaign_id}}<\/code><\/td><td>Same as <code data-no-translation=\"\" data-no-auto-translation=\"\">{{remote_campaign_id}}<\/code><\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{campaign_name}}<\/code><\/td><td>Tenjin Campaign Name that the user is attributed to<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{campaign_name_encoded}}<\/code><\/td><td>Encoded Tenjin Campaign Name that the user is attributed to<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{click_id}}<\/code><\/td><td>Channel&#8217;s click ID if the user is attributed to paid channels<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{creative_name}}<\/code><\/td><td>Creative name<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{deeplink_url}}<\/code><\/td><td>Deeplink URL<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{is_conversion_integer}}<\/code><\/td><td>1 for first app open, 0 for other events<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{is_impression}}<\/code><\/td><td class=\"translation-block\"><code data-no-translation=\"\" data-no-auto-translation=\"\">1<\/code> =&gt; view-through attribution, <code data-no-translation=\"\" data-no-auto-translation=\"\">0<\/code> =&gt; click attribution<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{is_install_or_landing}}<\/code><\/td><td>For first open &#8220;install&#8221;, for subsequent app opens &#8220;landing&#8221;<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ip_address}}<\/code><\/td><td>User&#8217;s IP address<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ip_address_click}}<\/code><\/td><td>IP address for click or impression event<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{remote_campaign_id}}<\/code><\/td><td>Channel&#8217;s Campaign ID that the user is attributed to<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{site_id}}<\/code><\/td><td>Channel&#8217;s site ID that a user is attributed to<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{site_id_encoded}}<\/code><\/td><td>Encoded channel&#8217;s site ID that a user is attributed to<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ad_network_short_id_match_type}}<\/code><\/td><td class=\"translation-block\">If the user came from device, probablistic or referrer attribution. <code data-no-translation=\"\" data-no-auto-translation=\"\">ad_network_short_id<\/code> part varies for each network, please ask us for the details.<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{is_organic}}<\/code><\/td><td>&#8216;1&#8217; -&gt; the user is attributed to organic channel, &#8216;0&#8217; -&gt; the user is attributed to a non-organic channel<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tenjin_campaign_id}}<\/code><\/td><td>Tenjin Campaign ID that the user is attributed to<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tenjin_parameter_0}}<\/code><\/td><td>Pass through macro you can pass through from click url<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tenjin_parameter_1}}<\/code><\/td><td>Pass through macro you can pass through from click url<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tenjin_parameter_2}}<\/code><\/td><td>Pass through macro you can pass through from click url<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tenjin_parameter_3}}<\/code><\/td><td>Pass through macro you can pass through from click url<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tenjin_parameter_4}}<\/code><\/td><td>Pass through macro you can pass through from click url<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tenjin_parameter_5}}<\/code><\/td><td>Pass through macro you can pass through from click url<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Device identifier related macros<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{advertising_id}}<\/code><\/td><td>Advertising identifier of the device<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{analytics_installation_id}}<\/code><\/td><td>Application install-specific identifier. Lower case, without hyphen.<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{developer_device_id}}<\/code><\/td><td>Identifier for Vendor (IDFV) or the developer device ID<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{formatted_advertising_id}}<\/code><\/td><td class=\"translation-block\">Formatte Advertising identifier of the device, <code data-no-translation=\"\" data-no-auto-translation=\"\">00000000-0000-0000-0000-000000000000<\/code> if it is empty<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{imei}}<\/code><\/td><td>IMEI<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{md5_advertising_id}}<\/code><\/td><td>MD5 of the advertising identifier<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{lowercase_advertising_id}}<\/code><\/td><td>Lower case of advertising identifier of the device<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{md5_imei}}<\/code><\/td><td>md5 of IMEI<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{md5_oaid}}<\/code><\/td><td>md5 of OAID<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{oaid}}<\/code><\/td><td>OAID<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{customer_user_id}}<\/code><\/td><td>User ID from the app, as set by setCustomerUserId SDK method<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Device properties related macros<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{allow_ad_tracking}}<\/code><\/td><td>Device allows ad tracking? (true, false)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{allow_ad_tracking_integer}}<\/code><\/td><td>Device allows ad tracking? (1, 0)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{carrier}}<\/code><\/td><td>Device carrier<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{connection_type}}<\/code><\/td><td>Connection type<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{country}}<\/code><\/td><td>Country code of the user&#8217;s device<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{device}}<\/code><\/td><td>User&#8217;s device<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{device_brand}}<\/code><\/td><td>Device brand<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{device_model}}<\/code><\/td><td>Device model<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{language}}<\/code><\/td><td>User&#8217;s language setting<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{limit_ad_tracking}}<\/code><\/td><td>Device limits ad tracking? (true, false)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{limit_ad_tracking_integer}}<\/code><\/td><td>Device limits ad tracking? (1, 0)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{locale}}<\/code><\/td><td>Device locale<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{os_version}}<\/code><\/td><td>User&#8217;s OS version<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{os_version_release}}<\/code><\/td><td>User&#8217;s OS version release<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{referrer}}<\/code><\/td><td>Android referrer<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{timezone}}<\/code><\/td><td>Device timezone<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{tracking_status}}<\/code><\/td><td class=\"translation-block\">Integer for the iOS device\u2019s <a href=\"https:\/\/developer.apple.com\/documentation\/apptrackingtransparency\/attrackingmanager\/3547038-trackingauthorizationstatus\" target=\"_self\">ATT status<\/a>. <code data-no-translation=\"\" data-no-auto-translation=\"\">0<\/code> =&gt; not determined, <code data-no-translation=\"\" data-no-auto-translation=\"\">1<\/code> =&gt; restricted, <code data-no-translation=\"\" data-no-auto-translation=\"\">2<\/code> =&gt; denied, <code data-no-translation=\"\" data-no-auto-translation=\"\">3<\/code> =&gt; authorized<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Event related macros<\/h5>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{currency}}<\/code><\/td><td>3 digit currency code of the purchase<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{event}}<\/code><\/td><td>Event name<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{time_in_seconds}}<\/code><\/td><td>Request time in seconds<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{time_in_ms}}<\/code><\/td><td>Request time in milliseconds<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{time_iso8601}}<\/code><\/td><td>Request time in ISO 8601 format<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{revenue}}<\/code><\/td><td>Gross revenue earned for a purchase in original currency<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{revenue_usd_net}}<\/code><\/td><td>Net revenue in USD for a purchase<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{revenue_usd_gross}}<\/code><\/td><td>Gross revenue in USD for a purchase<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{value}}<\/code><\/td><td>Custom event value<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{value_micro}}<\/code><\/td><td>Custom event value divided by 1,000,000. This macro is used to send decimal value via callback by sending the actual value * 1,000,000 through custom event.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Ad impressions related macros<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AppLovin<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_unit_id}}<\/code><\/td><td>Ad unit ID reported by the winning network<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::currency}}<\/code><\/td><td>Currency ad revenue is reported in<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_format}}<\/code><\/td><td>Format of the ad unit<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::mediation_country}}<\/code><\/td><td>Country from the mediation provider<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::network_name}}<\/code><\/td><td>Network that displayed the ad<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_revenue}}<\/code><\/td><td>Revenue reported by the ad network<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::network_placement}}<\/code><\/td><td>Network defined placement<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::placement}}<\/code><\/td><td>Placement of the ad unit<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::creative_id}}<\/code><\/td><td>Creative ID of the ad unit<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::precision}}<\/code><\/td><td>Precision of the revenue<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unity LevelPlay<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ab_test}}<\/code><\/td><td>A\/B test value<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_format}}<\/code><\/td><td>Format of the ad unit<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_revenue}}<\/code><\/td><td>Revenue reported by the ad network<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::auction_id}}<\/code><\/td><td>Auction ID from Ironsource mediation<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ecpm}}<\/code><\/td><td>eCPM from Ironsource mediation<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::instance_id}}<\/code><\/td><td>Instance ID from Ironsource mediation<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::instance_name}}<\/code><\/td><td>Instance Name from Ironsource mediation<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::mediation_country}}<\/code><\/td><td>(not used, will use the Tenjin country macro)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::mediation_ltv}}<\/code><\/td><td>Lifetime Revenue from Ironsource mediation<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::network_name}}<\/code><\/td><td>Network that displayed the ad<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::placement}}<\/code><\/td><td>Placement of the ad unit<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::precision}}<\/code><\/td><td>Precision of the revneue<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::segment}}<\/code><\/td><td>Segment Name from Ironsource mediation<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AdMob<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::precision}}<\/code><\/td><td>Precision type defined by AdMob<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_unit_id}}<\/code><\/td><td>Ad unit ID defined by AdMob<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::currency}}<\/code><\/td><td>Currency code from AdMob<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::adapter_class}}<\/code><\/td><td>Adapter class of ad network<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::response_id}}<\/code><\/td><td>Response ID provided by AdMob<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_revenue_micro}}<\/code><\/td><td>Ad revenue in micro cents provided by AdMob<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Topon<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::mediation_country}}<\/code><\/td><td>Country from the mediation provider<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::ad_network_type}}<\/code><\/td><td>Type of Network, Cross Promotion, or exchange<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{ilrd::adsource_index}}<\/code><\/td><td>Sorting of the current ad source in the Waterfall<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">SAN Attributions<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Meta<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Macro<\/th><th>Explanation<\/th><\/tr><\/thead><tbody><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::account_id}}<\/code><\/td><td>Ad account used to generate the ad<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::ad_id}}<\/code><\/td><td>Unique ID of the ad clicked\/viewed before conversion<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::ad_objective_name}}<\/code><\/td><td>Objective selected when creating the campaign (e.g., MOBILE_APP_INSTALLS, CONVERSIONS)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::adgroup_id}}<\/code><\/td><td>ID of the Meta Ad<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::adgroup_name}}<\/code><\/td><td>Name of the Meta Ad<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::campaign_group_id}}<\/code><\/td><td>ID of the Meta Campaign<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::campaign_group_name}}<\/code><\/td><td>Name of the Meta Campaign<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::campaign_id}}<\/code><\/td><td>ID of the Meta AdSet<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::campaign_name}}<\/code><\/td><td>Name of the Meta AdSet<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::click_time}}<\/code><\/td><td>Timestamp of the last ad click before attribution<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::engagement_type}}<\/code><\/td><td>Engagement type for attribution (e.g., engaged_view)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::is_fb}}<\/code><\/td><td>Whether the install was from Meta<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::is_modeled}}<\/code><\/td><td>Whether attribution is modeled or deterministic<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::is_paid}}<\/code><\/td><td>Whether the install was from a paid channel on Meta<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::is_view_through}}<\/code><\/td><td>Whether attribution was view-through or click-based<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::platform_position}}<\/code><\/td><td>Ad format shown on the platform<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::publisher_platform}}<\/code><\/td><td>Platform where the ad was shown (e.g., AUDIENCE_NETWORK, INSTAGRAM, MESSENGER, FACEBOOK)<\/td><\/tr><tr><td><code data-no-translation=\"\" data-no-auto-translation=\"\">{{meta::view_time}}<\/code><\/td><td>Timestamp of the last ad view before attribution<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">You can read more about routing and using these macros in the <a href=\"\/tr\/docs\/callback-setup\/\" target=\"_blank\" rel=\"noreferrer noopener\">callback setup<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>","protected":false},"excerpt":{"rendered":"","protected":false},"author":17,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"doc_category":[239],"glossaries":[],"doc_tag":[],"class_list":["post-15472","docs","type-docs","status-publish","hentry","doc_category-attribution-tools"],"acf":[],"year_month":"2026-07","word_count":1944,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"anurag","author_nicename":"anurag","author_url":"https:\/\/tenjin.com\/tr\/blog\/author\/anurag\/"},"doc_category_info":[{"term_name":"Attribution Tools","term_url":"https:\/\/tenjin.com\/tr\/docs\/category\/attribution-tools\/"}],"doc_tag_info":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Callback Macros | Tenjin<\/title>\n<meta name=\"description\" content=\"Learn how macros in URLs dynamically adapt for tracking in Tenjin, enhancing attribution and data routing for ad networks and custom channels.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tenjin.com\/tr\/docs\/callback-macros\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Callback Macros | Tenjin\" \/>\n<meta property=\"og:description\" content=\"Learn how macros in URLs dynamically adapt for tracking in Tenjin, enhancing attribution and data routing for ad networks and custom channels.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tenjin.com\/tr\/docs\/callback-macros\/\" \/>\n<meta property=\"og:site_name\" content=\"Tenjin\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-29T07:14:58+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@TenjinMMP\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/\"},\"author\":{\"name\":\"anurag\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/person\\\/e039df04bf002f4a0825fce9d6d5f13b\"},\"headline\":\"Callback Macros\",\"datePublished\":\"2026-02-20T07:06:11+00:00\",\"dateModified\":\"2026-06-29T07:14:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/\"},\"wordCount\":1590,\"publisher\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#organization\"},\"inLanguage\":\"tr\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/\",\"url\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/\",\"name\":\"Callback Macros | Tenjin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#website\"},\"datePublished\":\"2026-02-20T07:06:11+00:00\",\"dateModified\":\"2026-06-29T07:14:58+00:00\",\"description\":\"Learn how macros in URLs dynamically adapt for tracking in Tenjin, enhancing attribution and data routing for ad networks and custom channels.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/callback-macros\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/tenjin.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https:\\\/\\\/tenjin.com\\\/docs\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Callback Macros\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#website\",\"url\":\"https:\\\/\\\/tenjin.com\\\/\",\"name\":\"Tenjin\",\"description\":\"Growth Made Simple\",\"publisher\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#organization\"},\"alternateName\":\"Tenjin - Mobile Measurement Partner\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tenjin.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#organization\",\"name\":\"Tenjin\",\"url\":\"https:\\\/\\\/tenjin.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/tenjin.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/images.webp\",\"contentUrl\":\"https:\\\/\\\/tenjin.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/images.webp\",\"width\":429,\"height\":117,\"caption\":\"Tenjin\"},\"image\":{\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/TenjinMMP\",\"https:\\\/\\\/www.youtube.com\\\/@TenjinMMP\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/tenjin\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/tenjin.com\\\/#\\\/schema\\\/person\\\/e039df04bf002f4a0825fce9d6d5f13b\",\"name\":\"anurag\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g\",\"caption\":\"anurag\"},\"url\":\"https:\\\/\\\/tenjin.com\\\/tr\\\/blog\\\/author\\\/anurag\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Callback Macros | Tenjin","description":"Learn how macros in URLs dynamically adapt for tracking in Tenjin, enhancing attribution and data routing for ad networks and custom channels.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tenjin.com\/tr\/docs\/callback-macros\/","og_locale":"tr_TR","og_type":"article","og_title":"Callback Macros | Tenjin","og_description":"Learn how macros in URLs dynamically adapt for tracking in Tenjin, enhancing attribution and data routing for ad networks and custom channels.","og_url":"https:\/\/tenjin.com\/tr\/docs\/callback-macros\/","og_site_name":"Tenjin","article_modified_time":"2026-06-29T07:14:58+00:00","twitter_card":"summary_large_image","twitter_site":"@TenjinMMP","twitter_misc":{"Est. reading time":"7 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tenjin.com\/docs\/callback-macros\/#article","isPartOf":{"@id":"https:\/\/tenjin.com\/docs\/callback-macros\/"},"author":{"name":"anurag","@id":"https:\/\/tenjin.com\/#\/schema\/person\/e039df04bf002f4a0825fce9d6d5f13b"},"headline":"Callback Macros","datePublished":"2026-02-20T07:06:11+00:00","dateModified":"2026-06-29T07:14:58+00:00","mainEntityOfPage":{"@id":"https:\/\/tenjin.com\/docs\/callback-macros\/"},"wordCount":1590,"publisher":{"@id":"https:\/\/tenjin.com\/#organization"},"inLanguage":"tr"},{"@type":"WebPage","@id":"https:\/\/tenjin.com\/docs\/callback-macros\/","url":"https:\/\/tenjin.com\/docs\/callback-macros\/","name":"Callback Macros | Tenjin","isPartOf":{"@id":"https:\/\/tenjin.com\/#website"},"datePublished":"2026-02-20T07:06:11+00:00","dateModified":"2026-06-29T07:14:58+00:00","description":"Learn how macros in URLs dynamically adapt for tracking in Tenjin, enhancing attribution and data routing for ad networks and custom channels.","breadcrumb":{"@id":"https:\/\/tenjin.com\/docs\/callback-macros\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tenjin.com\/docs\/callback-macros\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/tenjin.com\/docs\/callback-macros\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tenjin.com\/"},{"@type":"ListItem","position":2,"name":"Docs","item":"https:\/\/tenjin.com\/docs\/"},{"@type":"ListItem","position":3,"name":"Callback Macros"}]},{"@type":"WebSite","@id":"https:\/\/tenjin.com\/#website","url":"https:\/\/tenjin.com\/","name":"Tenjin","description":"Growth Made Simple","publisher":{"@id":"https:\/\/tenjin.com\/#organization"},"alternateName":"Tenjin - Mobile Measurement Partner","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tenjin.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/tenjin.com\/#organization","name":"Tenjin","url":"https:\/\/tenjin.com\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/tenjin.com\/#\/schema\/logo\/image\/","url":"https:\/\/tenjin.com\/wp-content\/uploads\/2026\/04\/images.webp","contentUrl":"https:\/\/tenjin.com\/wp-content\/uploads\/2026\/04\/images.webp","width":429,"height":117,"caption":"Tenjin"},"image":{"@id":"https:\/\/tenjin.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/TenjinMMP","https:\/\/www.youtube.com\/@TenjinMMP","https:\/\/www.linkedin.com\/company\/tenjin"]},{"@type":"Person","@id":"https:\/\/tenjin.com\/#\/schema\/person\/e039df04bf002f4a0825fce9d6d5f13b","name":"anurag","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/secure.gravatar.com\/avatar\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc89d050d7f8053be5b8856ebaaabf82adb98e0ea57d1579b8397fb09de189c8?s=96&d=mm&r=g","caption":"anurag"},"url":"https:\/\/tenjin.com\/tr\/blog\/author\/anurag\/"}]}},"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/docs\/15472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/comments?post=15472"}],"version-history":[{"count":10,"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/docs\/15472\/revisions"}],"predecessor-version":[{"id":18016,"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/docs\/15472\/revisions\/18016"}],"wp:attachment":[{"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/media?parent=15472"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/doc_category?post=15472"},{"taxonomy":"glossaries","embeddable":true,"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/glossaries?post=15472"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/tenjin.com\/tr\/wp-json\/wp\/v2\/doc_tag?post=15472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}