Skip to main content

I Wired Travelpayouts Tracking Into a UAE Travel Blog

How I joined Travelpayouts, fixed the partner marker, and converted 43 in-post Klook/Tiqets/Airalo links on a UAE travel blog into tracked deep links — with backups first.

A UAE travel blog I run had plenty of Klook, Tiqets, and Airalo outbound links — and almost none of them were tagged. Drive was installed, AdSense was still later on the list, and I did not want “monetize later” to mean “leave money on the table forever.”

So I stopped polishing copy and wired tracking.

What I actually shipped

  • Travelpayouts account live (Google sign-in), with travel-fit programs joined: tours/attractions, eSIMs, hotels, flights, transfers, car hire, insurance
  • Confirmed Drive project ID (trs 516686) vs partner marker 717641 — they are not the same number
  • Generated tracked Partner Links and converted 43 in-post anchors across 21 posts to tpx.lv deep links (marker=717641, trs=516686)
  • Full context=edit JSON backup per post before each write; rel="sponsored nofollow noopener" on replaced anchors
  • Spot-checked that only <a href> tags changed (no title/slug/status drift)
  • Left Drive running as a safety net for theme-rendered links that are not in post content

This is not an earnings screenshot post. It is the plumbing that makes a click attributable.

Advertisement

Why marker ≠ project ID bit me

The theme had hard-coded marker=516686 on /travel-deals/ (and related UI). 516686 is the Travelpayouts project / trs ID, not the partner marker.

Drive’s live config (from a normal home ISP — datacenter IPs get a CDN 403 and log “config is not valid”) returns marker: 717641 with trs: 516686. For brands that ignore a wrong marker, that hard-code is noise. For Aviasales-style links where marker is what Travelpayouts reads, Drive’s rewrite is what actually earns.

I treated the Partner Links API + in-post swaps as the durable layer, and Drive as the client-side net for theme boxes I cannot edit over REST.

What broke / what I refused to invent

  • Datacenter Drive tests look broken. From the build box, emrldco.com config returns 403. From a Dubai home connection, the same project loads and LinkSwitcher rewrites Klook/Tiqets/Airalo/Aviasales. I stopped treating Lighthouse-from-AWS as a site bug.
  • Booking.com links on /travel-deals/: not subscribed in the Travelpayouts project I verified, so those stayed non-earning until a real Booking join (or a swap to a subscribed brand). No fake “all hotels tracked claim.
  • Theme “Book experiences” / dead Viator event cards: injected in PHP/CSS, not in post JSON — REST cannot fix them. I logged the replacement Tiqets category URL and left theme surgery for a separate pass.
  • No invented EPC, conversion rate, or “X AED this week.” Tracking first; reports later.

Ship checklist (if you copy the pattern)

  1. Confirm project (trs) vs partner marker from Travelpayouts config or a real Drive rewrite — do not paste the project ID into marker=.
  2. Prefer server-side Partner Links (or equivalent) written into post content, with Drive as backup for theme-injected URLs.
  3. Backup every post (context=edit) before the content POST.
  4. Replace only anchors; keep rel="sponsored nofollow noopener"; verify leftover naked URLs = 0.
  5. Validate Drive from a residential path once — not only from a cloud agent IP.

FAQ

Is this a mustafa.net affiliate product?

No. It is a ship log for a UAE travel WordPress site. Closest related guide on this site: .

Why not AdSense first?

Untracked outbound links were already shipping traffic. AdSense is a separate application track; attribution for clicks you already have is the shorter win.

Will Drive alone be enough?

Drive helps for visitors when the CDN allows the config. In-post tracked URLs survive without JavaScript and without a happy CDN edge — that is why I wrote them into content.

Written by MustafaEngineer running a 24/7 homelab since 2022. Every guide here is built and tested on my own hardware. No paid placements.

Keep reading