Skip to main content
Level 2
August 21, 2026
Solved

Paid TikTok Campaigns Misclassified as Referring Domains in Marketing Channels

  • August 21, 2026
  • 10 replies
  • 188 views

While auditing our Marketing Channel performance using the Marketing Channel dimension and Marketing Channel Instances metric, I noticed an issue with our TikTok paid traffic.

When breaking down Paid Social by Marketing Channel Detail, our TikTok campaign tracking codes (e.g., s_mwk_tt_...) are being captured correctly. However, under Referring Domains, I’m seeing 3K+ instances from www.tiktok.com. When I further break these down by Tracking Code, 2K+ instances are associated with the same active paid campaign tracking codes.

I also double-checked our Marketing Channel Processing Rules, and the configuration appears to be correct.

Could you help clarify what might be causing paid TikTok campaign traffic with valid tracking codes to be attributed to the Referring Domains channel under Paid Social instead of being captured directly through the tracking-code-based rule?

    Best answer by Jennifer_Dungan

    Hi, while a lot of the information above is good, there are also some untrue statements. 

     

    First, for what you are doing right now, which is debugging your Marketing Channels, using Marketing Channel Impressions is the correct option. Also, there is nothing wrong with using that for reporting either.

     

    The statement: 

    Hit 2+ (Browsing or Page Refresh): The user navigates to another page or reloads.

    • On Hit 2, the Tracking Code query parameter is no longer present in the URL (it is empty on the hit).

    • Rule 8 evaluates to FALSE because Tracking Code is empty on Hit 2.

    • Processing falls down the stack until it reaches Rule 16 (Referring Domains). Because the HTTP referrer [www.tiktok.com](https://www.tiktok.com) is still attached to the browser session header, Rule 16 evaluates to TRUE.

     

    Is UNTRUE… the referrer is NOT TikTok on the second hit, unless the user hit back to TikTok and clicked on a second link. The user is getting confused between the Referrer (in the HTTP header) which is what the rule is using, vs the Referrer dimension, which is a dimension with persisted values. The referrer on the second, third, etc hits in the Visit (as long as the user is navigating around your site) is your SITE’s domain; these values are just excluded from the Referrer Dimension because they are “internal”.

     

    The Marketing Channel rule is not evaluating against the persisted dimension… if it were, this would destroy Marketing Channel logic completely.

     

     

    I do however caution against using the Tracking Code dimension in your rule evaluation, because of the persisted value.

     

    However, this would more likely result in more traffic ending up in paid, then the other way around…  I don’t know for sure if Adobe looks at the “Instance” Value or the “Retained” Value, I prefer to be safe and make sure it’s never looking at retained)

     

    My recommendation is usually to look specifically at the URL Parameters, even if it means looking at multiple, then only using the Tracking Code (which is often a combined value of multiple params) as the Detail.

     

     

    Marketing Channels normally have a persistence of 30 days, and Tracking Code has 7 Days (these are the defaults, which you might have changed).

    There could be issues here…. for instance, if you changed the persistence of your Marketing Channels to 7 Days and your Tracking Code to 30 days, the value you are checking against could still be persisted, but the user may be coming from a non-paid TikTok.

     

    Or, more likely, this is the result of a cross channel attribution… mixing “Tracking Code” with “Marketing Channels” often results in these sorts of oddities… since you already are setting the Marketing Channel Details, you should be using that.

     

    Here is an example of what is likely happening, and there is no issue with your tracking or your rules, but just in how you are pulling your data:

     

     

    • User on TikTok, clicks on paid campaign
    • Page 1   (campaign X)
      • Tracking Code set to “X”
      • Tracking Code Instance triggered
      • Marketing Channel set to “Paid”
      • Marketing Channel Detail set to “X”
      • Marketing Channel Instance triggered
    • Page 2
      • Tracking Code retains value “X” (even through no campaign exists in the URL) (due to 7 Day Expiry)
      • Tracking Code Instance NOT triggered (as there are no campaigns)
      • Marketing Channel retains value “Paid” (due to 30 Day Expiry)
      • Marketing Channel Detail retains value to “X” (due to 30 Day Expiry)
      • Marketing Channel Instance NOT triggered
    • User goes back to TikTok and clicks on a NON Paid Link
    • Page 3
      • Tracking Code retains value “X” (even through no campaign exists in the URL) (due to 7 Day Expiry)
      • Tracking Code Instance NOT triggered (as there are no campaigns)
      • Marketing Channel set to “Referrer” (assuming that the rule is looking at the TC Instance and not the persisted value)
      • Marketing Channel Detail set to “tiktok.com”
      • Marketing Channel Instance triggered

     

    So, if you are looking at your Marketing Channel Instances, and breaking them down by a persisted value like Tracking Code… because a non-paid link has no campaigns, it should fall into Referring Domains… but you are pairing it to Tracking Code, which hasn’t cleared, since only a new value (and not blank) will override it. 

     

    This is where the disconnect is…

     

    If you replace “Tracking Code” with “Marketing Channel Details” in your Workspace, I am pretty sure you will not see you campaigns under the Referring Domains.

    10 replies

    Jennifer_Dungan
    Adobe Champion and Community Advisor
    Adobe Champion and Community Advisor
    August 24, 2026

    Hi ​@LavanyaSa 

    In order to better help you, we would need to see how your Marketing Rules are configured, and an example of the issue. 

     

    This will probably need some deep diving to drill down to what is happening, but I am happy to help you with this.

     

    It’s likely that your TikTok rule might have something too specific, something that is causing some traffic to not match, and those rereferrals are making their way through the funnel until the next best match, which turns out to be Referring Domain.

    LavanyaSaAuthor
    Level 2
    August 25, 2026

    Hi Jennifer,

    Thanks for looking into this. Please see the attached screenshot showing our rule set and the breakdown issue.

     

     

    Prasanth
    Level 2
    August 25, 2026

    Hi ​@LavanyaSa,

    Looking closely at the screenshots provided, the root cause becomes immediately clear when inspecting Rule 8 (Paid Social), Rule 16 (Referring Domains), and how Adobe Analytics processes Marketing Channel Expiry / Persistence.

    Key Technical Findings from the Screenshots

    1. Rule 8 Placement is Correct: The Paid Social rule is listed higher (Rule 8) than Referring Domains (Rule 16).

    2. Rule 8 Condition: It uses Tracking Code Starts With and lists prefixes like smc_, soc, DFA:, etc.

    3. The Workspace Table Breakdown:

      • Under Referring Domains $\rightarrow$ [www.tiktok.com](https://www.tiktok.com), the Tracking Code dimension shows Unspecified for 34.4% of instances, while the remaining rows show active campaign codes (e.g., soc_mwk_tt_...).

      • Crucially, the metric being used is Marketing Channel Instances, not standard Occurrences or Visits.

    Why This Is Happening

    This behavior is caused by a fundamental difference between how Tracking Code (eVar) persists versus how Marketing Channels evaluate during multi-hit visits or cross-session user journeys.

    Scenario 1: Subsequent Hits in the Same Visit (Marketing Channel Expiry Rules)

    1. Hit 1 (Landing): The user clicks a TikTok ad containing ?cid=soc_mwk_tt_....

      • Rule 8 evaluates to TRUE. The channel is set to Paid Social, and the channel detail is set to soc_mwk_tt_....

    2. Hit 2+ (Browsing or Page Refresh): The user navigates to another page or reloads.

      • On Hit 2, the Tracking Code query parameter is no longer present in the URL (it is empty on the hit).

      • Rule 8 evaluates to FALSE because Tracking Code is empty on Hit 2.

      • Processing falls down the stack until it reaches Rule 16 (Referring Domains). Because the HTTP referrer [www.tiktok.com](https://www.tiktok.com) is still attached to the browser session header, Rule 16 evaluates to TRUE.

      • On Hit 2, a new Marketing Channel Instance is recorded for Referring Domains. However, because the Adobe Analytics Tracking Code eVar has a persistence/expiration setting (e.g., 30 days or Visit duration), the eVar retains the soc_mwk_tt_... value from Hit 1!

      • When breaking down Referring Domains by Tracking Code, Hit 2 displays Referring Domains as the channel and soc_mwk_tt_... as the persisted tracking code.

    Scenario 2: In-App Webview Redirects / Double Hits

    TikTok’s internal browser frequently opens a landing page with [www.tiktok.com](https://www.tiktok.com) as the referrer before the campaign URL parameters are fully passed or parsed by the JS tracking beacon. If the initial page view fires before the tracking code parameter is set, Hit 1 falls through to Referring Domains, while Hit 2 captures the eVar.

    How to Resolve This Issue

    1. Add "Tracking Code Is Empty" to Lower Rules (Recommended)

    To prevent hits that carry a persistent or active tracking code from ever qualifying for Referring Domains, modify Rule 16 (Referring Domains):

    • Current Condition: Referring Domain Is Not Empty

    • Updated Condition:

      • Referring Domain Is Not Empty

      • AND Tracking Code Does Not Exist (or Tracking Code Is Empty)

    By adding this condition, if a tracking code is present on the hit, it will bypass Referring Domains entirely.

    2. Review Channel Expiration Settings

    Go to Admin $\rightarrow$ Report Suites $\rightarrow$ Edit Settings $\rightarrow$ Marketing Channels $\rightarrow$ Marketing Channel Expiration:

    • Check if your Marketing Channel override rules are set to "Most Recent Channel Overrides" for all channels.

    • If a user lands via Paid Social, you may want to ensure subsequent internal page views or session hits without a new external campaign parameter do not continually re-assign the channel to Referring Domains during the same visit.

    3. Use the Correct Metric in Analysis Workspace

    • Marketing Channel Instances counts every single hit where a channel was evaluated/reset.

    • If you want to see how many Visits or First-Touch / Last-Touch Conversions were driven by TikTok ads, use the Visits or Orders / Revenue metric instead of Marketing Channel Instances. This eliminates the noise from secondary hits within the same session.

    Jennifer_Dungan
    Adobe Champion and Community Advisor
    Jennifer_DunganAdobe Champion and Community AdvisorAccepted solution
    Adobe Champion and Community Advisor
    August 25, 2026

    Hi, while a lot of the information above is good, there are also some untrue statements. 

     

    First, for what you are doing right now, which is debugging your Marketing Channels, using Marketing Channel Impressions is the correct option. Also, there is nothing wrong with using that for reporting either.

     

    The statement: 

    Hit 2+ (Browsing or Page Refresh): The user navigates to another page or reloads.

    • On Hit 2, the Tracking Code query parameter is no longer present in the URL (it is empty on the hit).

    • Rule 8 evaluates to FALSE because Tracking Code is empty on Hit 2.

    • Processing falls down the stack until it reaches Rule 16 (Referring Domains). Because the HTTP referrer [www.tiktok.com](https://www.tiktok.com) is still attached to the browser session header, Rule 16 evaluates to TRUE.

     

    Is UNTRUE… the referrer is NOT TikTok on the second hit, unless the user hit back to TikTok and clicked on a second link. The user is getting confused between the Referrer (in the HTTP header) which is what the rule is using, vs the Referrer dimension, which is a dimension with persisted values. The referrer on the second, third, etc hits in the Visit (as long as the user is navigating around your site) is your SITE’s domain; these values are just excluded from the Referrer Dimension because they are “internal”.

     

    The Marketing Channel rule is not evaluating against the persisted dimension… if it were, this would destroy Marketing Channel logic completely.

     

     

    I do however caution against using the Tracking Code dimension in your rule evaluation, because of the persisted value.

     

    However, this would more likely result in more traffic ending up in paid, then the other way around…  I don’t know for sure if Adobe looks at the “Instance” Value or the “Retained” Value, I prefer to be safe and make sure it’s never looking at retained)

     

    My recommendation is usually to look specifically at the URL Parameters, even if it means looking at multiple, then only using the Tracking Code (which is often a combined value of multiple params) as the Detail.

     

     

    Marketing Channels normally have a persistence of 30 days, and Tracking Code has 7 Days (these are the defaults, which you might have changed).

    There could be issues here…. for instance, if you changed the persistence of your Marketing Channels to 7 Days and your Tracking Code to 30 days, the value you are checking against could still be persisted, but the user may be coming from a non-paid TikTok.

     

    Or, more likely, this is the result of a cross channel attribution… mixing “Tracking Code” with “Marketing Channels” often results in these sorts of oddities… since you already are setting the Marketing Channel Details, you should be using that.

     

    Here is an example of what is likely happening, and there is no issue with your tracking or your rules, but just in how you are pulling your data:

     

     

    • User on TikTok, clicks on paid campaign
    • Page 1   (campaign X)
      • Tracking Code set to “X”
      • Tracking Code Instance triggered
      • Marketing Channel set to “Paid”
      • Marketing Channel Detail set to “X”
      • Marketing Channel Instance triggered
    • Page 2
      • Tracking Code retains value “X” (even through no campaign exists in the URL) (due to 7 Day Expiry)
      • Tracking Code Instance NOT triggered (as there are no campaigns)
      • Marketing Channel retains value “Paid” (due to 30 Day Expiry)
      • Marketing Channel Detail retains value to “X” (due to 30 Day Expiry)
      • Marketing Channel Instance NOT triggered
    • User goes back to TikTok and clicks on a NON Paid Link
    • Page 3
      • Tracking Code retains value “X” (even through no campaign exists in the URL) (due to 7 Day Expiry)
      • Tracking Code Instance NOT triggered (as there are no campaigns)
      • Marketing Channel set to “Referrer” (assuming that the rule is looking at the TC Instance and not the persisted value)
      • Marketing Channel Detail set to “tiktok.com”
      • Marketing Channel Instance triggered

     

    So, if you are looking at your Marketing Channel Instances, and breaking them down by a persisted value like Tracking Code… because a non-paid link has no campaigns, it should fall into Referring Domains… but you are pairing it to Tracking Code, which hasn’t cleared, since only a new value (and not blank) will override it. 

     

    This is where the disconnect is…

     

    If you replace “Tracking Code” with “Marketing Channel Details” in your Workspace, I am pretty sure you will not see you campaigns under the Referring Domains.

    LavanyaSaAuthor
    Level 2
    September 1, 2026

    Hi ​@Jennifer_Dungan  & ​@PrasanthV 

    Apologies for the late response—I was out of office.

    Thank you for the detailed explanation. I understand the points you raised, particularly around the difference between the HTTP referrer used in the Marketing Channel rule and the persisted Tracking Code/Referrer dimensions.

    I also followed your recommendation and broke down the data using Marketing Channel Detail instead of Tracking Code. I can see around 55K TikTok instances under Referring Domains and around 53K under Paid Social.

    Based on this breakdown, my understanding is that the ~53K under Paid Social represents the TikTok paid campaign traffic, while the ~55K under Referring Domains represents traffic attributed to TikTok as a referrer, which would generally be non-paid/organic TikTok traffic.

    Please let me know if I’m interpreting this correctly.

    Thanks again for your guidance!

     

    Jennifer_Dungan
    Adobe Champion and Community Advisor
    Adobe Champion and Community Advisor
    September 1, 2026

    Do you have a dimension that captures the full URL with Params? Just to confirm that those “Referring Domain” tiktok values don’t have campaign codes?

     

    However, I would expect that Tiktok to be your non-paid (like you)… especially if you don’t have a separate “Organic Social Media” channel.  So looking at that, I don’t see any red flags, but digging a little deeper to be safe couldn’t hurt either :)

     

    Cross Channel Attribution is fun….  (and confusing, and frustrating… lol)

    manpreetkaur27
    Adobe Support
    Adobe Support
    September 2, 2026

    Hi ​@LavanyaSa , I can find many useful suggestions in this post. However, if you still need assistance, please open a support ticket with us. Once we review your setup completely, we’ll be able to suggest the appropriate next steps.