What the Trump and Harris Campaigns’ Facebook UTM Codes Tell Us About Their Advertising Strategy
May 2025 · Independent Research Contribution · Wesleyan Media Project
Introduction
The Wesleyan Media Project collected data on the Trump and Harris campaigns’ UTM links, which redirected from relevant Facebook advertisements to their official campaign websites, to analyze how each campaign tracked certain click-through rates and what they may have been attempting to monitor. This article will address the findings and the room for further analysis with both Trump and Harris’ campaign Facebook codes. Rowan and Alex focused on the Trump campaign links; Cornelia and Gloria focused on the Harris campaign.
Both candidates' campaign UTM codes provide an opportunity to discover insight into each campaign’s advertising strategy. We found evidence that the Trump campaign engaged in A/B testing on Facebook, especially for absentee ballot signups.
Our analysis posed two central research questions: First, to what extent did the Harris and Trump teams employ systematic A/B testing in their Facebook ad deployments, as indicated by variation in UTM codes? And second, beyond testing, what thematic and targeting patterns, such as policy emphases, audience segmentation, and dates, can be observed directly from these UTM codes?
This article is abridged for Rowan’s website and is edited to include only his contributions to the project.
Data & Methods
Our data consisted of advertisements, video and photo, from Meta platforms Facebook and Instagram in the 2024 election. This data included Instagram posts, Instagram reels, “story” posts, and Meta posts. We scraped the links that those advertisements directed users to, including the “UTM code” on the link, which allows the website owner to track where the user was redirected from. We attempted to reverse engineer these UTM codes to assess what the campaigns were tracking.
We ran an image analysis on the dataset to find matching advertisements. We were looking for ads with the same basic creative, but which could vary in minimal ways. For example, Image 1 shows a creative where the Trump campaign changed the label of a button from “cast your ballot” to “click here to cast your ballot” or “cast your ballot today.” More A/B testing on this area would indicate the campaign was paying specific attention to drawing voters into getting absentee ballot requests.
Because these ads were scraped, the data had to be adjusted for outliers, including two highly paid and viewed ads (up to $2,600 spent and 125,000 impressions) affiliated with the Trump Campaign that were removed for violating Facebook’s guidelines on unacceptable business practices and therefore linked to Meta’s webpage on ad transparency. Less than a dozen others had to be corrected for linking to Facebook itself.
At first, many of the methods were qualitative: the UTM codes for Trump were isolated and compared to all the data we had on the advertisements (funding entity, page name, demographics, region, etc.). We compared the codes to these variables by eye to see if we could find any correlations, and later went in and analyzed the patterns we saw with quantitative tests. This originally included all available Trump ads, but ads with the same creative and different UTM codes were also isolated and compared independently.
The ads for Harris’ sample span the core 2024 campaign period (January–November 2024) and include only video ads in which Harris’s team sought to “restore and protect reproductive freedoms.” This yielded a spreadsheet of 142 video ads. By focusing on this single issue thread, we hold the policy theme constant and isolate variation in the GM+ suffix, GM‑A, GM‑R, etc., to test for controlled experimentation. Because the dataset covers only Facebook and Instagram ads with these specific UTM patterns, it does not speak to ads on other platforms and time periods.
To investigate A/B testing behaviors in Kamala Harris’s Facebook advertising, we conducted a two-part analysis of ad metadata and creative content. We first isolated the two components of each UTM string: the core campaign label (“Restore‑and‑Protect‑Reproductive‑Freedoms”) and the variant tag (the letters following “GM‑,” such as “A” or “R”). Then, we generated unique creatives based on checksums. To test for A/B split behavior, we grouped ads by variant tag and counted how many different creative checksums appeared under each tag. We hypothesize that if the UTM codes indicate A/B testing patterns for Harris ads, each variant tag would map one‐to‐one onto exactly one checksum.

Image 1: Trump’s ad of Washington Crossing the Delaware River, with 3 different buttons
Results
After comparing the UTM codes to different variables, Table 2 shows the general format of the UTM codes of the Trump domain. This includes the platform on which the advertisement was pushed, the funding entity of the advertisement, the date, creative template used, medium (video, story, photo), goal of what the link was prompting the user to do, and the iteration of the ad (had it been run once, twice, or remarketed x many times).
However, the most interesting of these subdomains were the vote and register subdomains of the official campaign website, which took the form of the following: “fp-20241011-me-abpush-fbigfeed-c800001-cc800001-a800001-800001”
Or our generic definition: aim-date-state-goal-medium-cNUM-ccNUM-aNUM-NUM, where:
- aim: this is a hard one to test empirically, but it seems as if this is a backend code indicating where on the website this will direct. Our best guesses so far: “lp” is the campaign landing page, which directs to the default fundraising page. “zt” is zone testing, and is primarily used in their North Carolina ads.
- date: the start date of the ad, in YYYYMMDD format.
- state: the primary state in which a user will register to vote.
- goal: the ultimate subject or goal of the advertising, in voting, the three main ones are “ev” for early voting, “abpush” for Absentee Ballot pushing, and “eday” for election day.
- medium: the Meta platform on which the ad appears, so “fbigreels” for Instagram reels, “fbig” for Facebook and Instagram, and “fb” and “ig” for either one, respectively.
- cNUM: a serial code indicating the target state.
- ccNUM: a serial code indicating the post’s attached caption.
- aNUM-NUM: a serial code indicating the creative.
(Sub)domain | link |
---|---|
donate.donaldjtrump | utm_medium=ads&utm_source=fb_lp_ca&utm_campaign=20240618_tnc c0906-v055_fb_video_lp&utm_content=donate&utm_term=c001 |
event.donaldjtrump | utm_medium=ads&utm_source=fb_lp_dt&utm_campaign=20240621_ dtrump_doralfl-st029_fb_display_lp&utm_content=crowdbuilding&utm_term=rally |
secure.winred and win.donaldjtrump | utm_medium=ads&utm_source=fb_lp_ca&utm_campaign=20240610_tnc g000-m001_fb_display_lp&utm_content=donate&utm_term=c001 |
Our ability to separate by UTM can also be used to inform us of the spending habits of the campaign. All subdomains used by the Trump administration are outlined in Table 3.
(Sub)domain | Usage | Number of Ads | Mean Spend | Mean Impressions |
---|---|---|---|---|
vote.donaldjtrump.com | Helps guide users through a plan to vote. | 12150 | 586.1 | 7,312.5 |
win.donaldjtrump.com | Campaign donation portal | 6211 | 1647.5 | 26,726.5 |
event.donaldjtrump.com | Sign-up page for rallies and campaign events. | 4879 | 393.3 | 10,352.3 |
register.donaldjtrump.com | All voting registration links to help register users to vote in the general election. | 1279 | 1090.9 | 19,071.4 |
secure.winred.com | Nationwide donation page for the Republican Party. | 261 | 601.8 | 19,005.3 |
winred.tnc2024.com | Fundraising for the “Trump National Committee” entity. | 19 | 1902.1 | 72,789.0 |
donate.donaldjtrump.com | An older version of Trump’s donation page, used only in the primaries. | 16 | 937 | 69,124.5 |
General conclusions can be drawn about the campaign’s vote-drawing strategies. Despite Trump’s past criticisms of absentee or early voting, many of the links (especially those to the vote.djt subdomain) encouraged potential voters to “[beat] the far left liberals at their own game – by voting before Election Day!” This is seen by the spending for ads redirecting to links with to early voting and absentee ballot pushing. Table 4 shows us that the number of ad identifiers and total spending were far higher for absentee ballots and early voting than for election day voting.
Voting Method | UTM code | Number of Ads | Total Spend |
---|---|---|---|
Absentee Ballot | abpush | 5809 | 2,132,346 |
Early Voting | ev | 2890 | 2,411,655 |
Election Day | eday | 2569 | 1,885,966 |
Some of the advertisements, displayed in Image 5, included specific pandering to state audiences rather than general ones. Arizona, Pennsylvania, and Georgia received the most attention from the campaign. Note these three different advertisements with the same creative: one generic, one for Georgia (the generic one has a UTM code labeled for North Carolina, which occasionally received its own creatives, but less frequently so). In UTM codes, Georgia was mentioned 3,581 times, Pennsylvania 3,025 times, North Carolina 2,651 times, Arizona 2,387 times, and Wisconsin 1,924 times. While Georgia had the most unique number of identifiers, it barely broke a million dollars in spending on average, weak compared to North Carolina’s 1.7 million or Pennsylvania’s 2.4 million. They can also easily tell us how many ads in each state focused on fundraising, crowdbuilding, or vote retrieval. Trump’s campaign fluctuated in how much they redirected to get-out-the-vote efforts against fundraising or campaign event efforts in key states. Chart 6 shows us that Pennsylvania and Wisconsin had far more event-aimed advertising spending proportionally.

Image 5: Two Trump Advertisements with Different State Targets
Chart 6: Trump Campaign Spend by Subdomain Topic in Most Targeted States (%)
Conclusion
Our work shows us that the Trump campaign primarily focused their Meta advertisements on vote-pushing efforts in key states, but fails to show us how the UTM code influences exact demographic distribution and more specific county-level pushing. The results assume that the Trump campaign has a computational way of assigning these UTM codes and tracking them to unknown demographic targeting or other factors about the ads which are unreachable by our data. Research of the Trump UTM codes on Google’s advertising platforms may help to answer some of these questions of more specific information about demographics and regions.
HTML formatting, including charts, tables, and scaling, by Rowan Cahill.