Skip to content

January 2026

Release Notes: 2026-01-23 — Caps — Cap Settings

Section titled “Release Notes: 2026-01-23 — Caps — Cap Settings”

coming soon

Originally published at https://help.mojaai.com/en/articles/13476919-release-notes-2026-01-23-caps-cap-settings

Release Notes: 2026-01-23 — DNI — Tags and Number Pools for Landing pages

Section titled “Release Notes: 2026-01-23 — DNI — Tags and Number Pools for Landing pages”

Historical release note for Tags/Snippets, Number Pools, DNI, Dynamic Number Insertion, Javascript, and Google Ads attribution.

Looking for the current setup guide? See DNI, Tracking Tags/Snippets, and Number Pools. For Google Ads upload setup, see Google Ads Integration: Conversion Postbacks with Snippets & DNI.


Location: Integrations → Tags, Numbers → Number Pools, Call Tracking
​Release Date: 11-14-2025


The Call Attribution and Number Pooling release connects web sessions to inbound calls using dynamic JavaScript tags and flexible number assignment. It enables real-time visitor tracking, session-level attribution, and scalable number management — so you can tie every call back to its true origin with confidence.

Note: In the portal, these website tracking scripts may appear as Tracking Tags or Snippets. Both terms refer to the JavaScript installed on your landing pages to capture visitor-session data and power DNI attribution.


MojaAI now supports a fully integrated system for:

  • 🏷️ Capturing visitor data from landing pages using JavaScript tags

  • 🔢 Dynamically assigning and tracking phone numbers from provisioned number pools

  • 📈 Attributing inbound calls to specific sessions and marketing campaigns

  • ⚙️ Managing number provisioning asynchronously with full audit tracking

💡 All visitor interactions are tracked using a unique visitor_id, ensuring persistent attribution across reloads and return visits.


Calls are automatically linked to the session, tag, and campaign that sourced them.

🔄 Assign dynamic phone numbers on the fly

Section titled “🔄 Assign dynamic phone numbers on the fly”

Visitors see campaign-specific numbers pulled from your number pools — updated in real time.

Number pools expand automatically via provisioning webhooks, with all changes tracked and auditable.

Attribution includes UTM parameters, GCLID, referrer, browser info, and more — tied directly to call-level logs.

This session context is also what enables Moja’s Google Ads integration. When a visitor arrives from a Google ad, the tag/snippet captures the Google click identifier, such as gclid, gbraid, or wbraid. When DNI assigns that visitor a trackable number and the visitor calls, Moja can connect the call back to the original ad click and upload the qualified call conversion to Google Ads.


  • A visitor lands on a product or lead-gen page through an email campaign. The MojaAI tag captures their session and replaces the visible phone number with one from your pool.

  • When the visitor calls, MojaAI automatically matches the call to the captured session and updates attribution tables.

  • Later, your team expands the number pool for seasonal traffic. MojaAI provisions the new numbers asynchronously and logs them in the pool’s order history.


If you plan to use Google Ads conversion uploads, make sure Google Ads auto-tagging is enabled and that your Moja tag/snippet is installed on every landing page receiving Google Ads traffic. Without the tag/snippet and DNI number assignment, Moja cannot reliably send call conversions to Google Ads.


  1. Navigate to Numbers → Number Pools

  2. Click Create Pool

  3. Choose a number prefix (local or toll-free), define the pool size, and submit

  4. MojaAI provisions the numbers asynchronously and displays their status in the pool table

🟦 Tip: Once provisioned, the pool is ready to use with your tracking tags.


  1. Navigate to Integrations → Tags

  2. Click Create Tag

  3. Enter a tag name and select the Number Pool created earlier

  4. Choose the on-page number to replace

  5. Submit to generate a custom JavaScript snippet

  6. Embed the snippet in the <head> section of your landing page

🟩 Reminder: The snippet must be placed before any scripts that render dynamic page content.


  • Open the Call Tracking section

  • View inbound call records linked to visitor sessions

  • Attribution includes: tag ID, campaign, visitor_id, UTM metadata, GCLID, FBCLID, referrer, browser data, and more

🟧 Insight: Every call includes full session context for reporting, analytics

Originally published at https://help.mojaai.com/en/articles/12886313-release-notes-2026-01-23-dni-tags-and-number-pools-for-landing-pages

Release Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements

Section titled “Release Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements”

​RTB Requests Reporting Enhancements

Location: Reporting → RTB Requests SectionWhat Changed

  • Added new columns for improved visibility into routing outcomes:

    • Total Routes

    • Failed Routes (ineligible routes, met caps, outside HOO, etc.)

    • Successful Routes

    • Bid Won → If Yes, Duration and Payout are displayed (conditional on successful call transfer).

    • Duration

    • Payout

    • CLID

  • Added API response detail per call, including the actual ping associated with the call.

  • If a call was made, the CLID is now included in the details.

  • Users can click View Call to see specific call details tied to the CLID.

Why This Matters
These updates provide clearer insights into why routes succeed or fail, make bid outcomes more transparent, and align reporting data with API responses. This reduces friction when troubleshooting calls or validating performance.

Example Use Cases

  • Identify if a call failed due to restrictions (caps, budget, state, etc.).

  • Confirm that a winning bid properly shows Duration and Payout.

  • Use CLID details to validate calls against API logs.

RTB request tables now support CSV export. Exports are available for Inbound RTB Life Logs, Inbound RTB Requests, and Outbound RTB Requests.

Exported files use the same date range, filters, search, and sort settings currently applied to the table. Large exports stream with progress feedback and can be cancelled while running.

Getting Started
Navigate to the RTB Requests section on the Reporting page. Look for the new columns in the table, then click View Call for complete call details.

Inbound RTB Requests now include a bid filter in the advanced filters area. Use it to switch between:

  • All pings - show all inbound RTB request pings.

  • With bids - show only pings that produced one or more bids.

  • No bids - show pings that did not produce a bid.

The selected bid filter also applies to CSV exports, so exported data matches the filtered table view. This helps teams separate bid and no-bid traffic quickly while troubleshooting inbound RTB request activity.

Originally published at https://help.mojaai.com/en/articles/13476931-release-notes-2026-01-23-rtb-rtb-requests-reporting-enhancements

Release Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements

Section titled “Release Notes: 2026-01-23 — RTB — RTB Requests Reporting Enhancements”

real-time bidding, rtb, real time bidding, ping, pings

Location: Reporting → RTB Requests
​Release Date: 9/29/25


The RTB Requests reporting view has been enhanced to provide clearer visibility into routing outcomes, bid results, and call-level details. These improvements make it easier to understand why routes succeed or fail and to validate performance against RTB API responses.


The RTB Requests table now includes additional columns to improve transparency:

  • Total Routes

  • Failed Routes
    ​*(ineligible routes, caps reached, outside hours of operation, etc.)*

  • Successful Routes

  • Bid Won

    • If Yes, Duration and Payout are displayed

    • Displayed only when a call is successfully transferred


Additional call-level fields are now available directly in reporting:

  • Duration

  • Payout

  • CLID

These values help tie routing outcomes directly to call performance.


🔍 API Response & Call Detail Visibility

Section titled “🔍 API Response & Call Detail Visibility”

Each RTB request now includes:

  • The actual RTB ping/response associated with the call

  • CLID included when a call is placed

  • A View Call action that links directly to detailed call records tied to the CLID

🟦 Traceability: Reporting data now aligns more closely with RTB API behavior and call execution.


These enhancements make RTB reporting more actionable and easier to troubleshoot by:

  • Clarifying why routes succeed or fail

  • Making bid outcomes more transparent

  • Aligning routing data with API responses and call records

  • Reducing friction when validating performance or investigating issues


  • Identify whether a call failed due to caps, budgets, geography, or hours-of-operation rules

  • Confirm that winning bids correctly display Duration and Payout

  • Use CLID to cross-reference RTB activity with call logs and external API records


  1. Navigate to Reporting → RTB Requests

  2. Review the new routing and bid-related columns in the table

  3. Click View Call to access full call details associated with the CLID


Additional reporting enhancements and expanded analytics are planned to further improve RTB visibility and performance analysis.

Originally published at https://help.mojaai.com/en/articles/13148324-release-notes-2026-01-23-rtb-rtb-requests-reporting-enhancements

Release Notes: 2026-01-23 — Routing — Clone Setup

Section titled “Release Notes: 2026-01-23 — Routing — Clone Setup”

NEW FEATURE RELEASE: Clone Setup for Campaigns, Targets, Routing Plans & IVRs

Location: Campaigns, Targets, Routing Plans, IVRs sections Release Date: 12/10/25

This release introduces the ability to clone existing configurations across the platform. Users can now duplicate Campaigns, Targets, Routing Plans, and IVRs to speed up setup when creating similar configurations. This eliminates the need to manually recreate entire configurations when only minor differences are needed.

Networks managing multiple similar campaigns often need to create configurations that are nearly identical, such as the same vertical with different publishers. Previously, this required manually recreating each configuration from scratch.

This release enables customers to:

  • Quickly create new campaigns based on existing ones

  • Duplicate targets, routing plans, and IVRs with a single click

  • Reduce setup time significantly when managing multiple similar configurations

  • Maintain consistency across related configurations

    - Clone Campaigns – duplicate entire campaigns including all nested elements

  • Clone Targets – create exact copies of existing targets

  • Clone Routing Plans – duplicate routing plan configurations

  • Clone IVRs – copy IVR configurations including all versions

  • Automatic Naming – cloned items receive a “ - Dupe“ suffix automatically

  • Active/inactive status preserved – cloned campaigns, routing plans, targets, and RTB targets keep the same active/inactive status as the source item. Review cloned configurations before sending production traffic to them, especially when cloning an active item.

    1. Select an item to clone – Navigate to the list view for Campaigns, Targets, Routing Plans, or IVRs

  • Click Clone – Use the Clone button on any existing item

  • Review the copy – The system automatically creates a duplicate with “ - Dupe“ appended to the name

  • Edit as needed – Navigate directly to the cloned item to make any necessary changes

  • Confirm status before traffic – The cloned item keeps the source active/inactive status. If needed, adjust the status before sending traffic to it.


    What Is Clone Campaigns?

    Clone Campaigns creates a complete copy of an existing campaign, including all configuration details and associated targets. This allows users to quickly set up new campaigns based on proven configurations.

    How Clone Campaigns Works

    1. Navigate to the Campaigns list view

  • Click the Clone button on any campaign

  • A new campaign is created with the original name plus “ - Dupe“ (e.g., “Flight Booking” becomes “Flight Booking - Dupe”)

  • The system automatically navigates to the edit view for the new campaign

  • All campaign information and targets are retained

  • Publisher and publisher number assignments are NOT copied (must be configured separately)

    What Is Clone Targets?

    Clone Targets creates an exact 1:1 copy of an existing target configuration, allowing users to quickly set up similar targets without manual re-entry.

    How Clone Targets Works

    1. Navigate to the Targets list view

  • Click the Clone button on any target

  • A new target is created with “ - Dupe“ appended to the name

  • All target configuration details are copied exactly

    What Is Clone Routing Plans?

    Clone Routing Plans duplicates existing routing plan configurations, enabling users to create variations of proven routing logic quickly.

    How Clone Routing Plans Works

    1. Navigate to the Routing Plans list view

  • Click the Clone button on any routing plan

  • A new routing plan is created with “ - Dupe“ appended to the name

  • All routing configuration details are copied exactly

    What Is Clone IVRs?

    Clone IVRs creates a complete copy of an IVR configuration, including all versions, allowing users to build on existing IVR flows.

    How Clone IVRs Works

    1. Navigate to the IVRs list view

  • Click the Clone button on any IVR

  • A new IVR is created with “ - Dupe“ appended to the name

  • All IVR versions and configuration details are copied

    - Campaigns → Campaigns list view → Clone button

  • Targets → Targets list view → Clone button

  • Routing Plans → Routing Plans list view → Clone button

  • IVRs → IVRs list view → Clone button

    - Existing configurations are not affected

  • Cloning creates new items without modifying originals

  • Cloned items can be edited independently of source items

  • No migration is required


Release Date: 02/14/26

You can now delete items directly from the portal. The delete button (trash icon) is available in the Actions column of every list view.

  • Campaigns

  • Targets (standard & RTB)

  • RTB Groups

  • Buyers

  • Publishers

  • Routing Plans

  • IVRs

  • Call Flows

  1. Navigate to the list view for the item type (e.g., Campaigns)

  2. Click the delete button (trash icon) in the Actions column

  3. Confirm the deletion in the modal

Important: Deletions are soft deletes — the record is marked as deleted and removed from your view, but not permanently erased. If you need a record restored, contact the Moja team.

Originally published at https://help.mojaai.com/en/articles/13476914-release-notes-2026-01-23-routing-clone-setup

Release Notes: 2026-01-23 — Routing — Enhanced Hours of Operation

Section titled “Release Notes: 2026-01-23 — Routing — Enhanced Hours of Operation”

hours of operation, business hours, breaks, availability, target hours

Manual Editing, Multiple Time Ranges & Schedule Copying

Section titled “Manual Editing, Multiple Time Ranges & Schedule Copying”

Location: Targets / RTB Targets → Hours of Operation
​Release Date: 12/8/25


Hours of Operation has been upgraded to support greater precision, flexibility, and speed when managing availability schedules. You can now manually enter exact times, define multiple operating windows per day, and copy schedules across days — all with a consistent, improved display across Targets and Campaigns.


You can now enter times directly using hour, minute, and AM/PM fields.

  • As you type, the system automatically validates each entry

  • Times are converted into the correct internal format in real time

  • Ideal for fine-grained adjustments and exact availability windows

🟦 Tip: Perfect for entering non-round times like 8:15 AM or 4:45 PM.


You can now configure more than one operating window within the same day.

  • Supports breaks, staggered shifts, and split schedules

  • No need to force continuous availability ranges

🟩 Example: Open from 9:00–12:00, closed for lunch, then open again 1:00–5:00.


Instead of recreating schedules day by day, you can now:

  • Copy a day’s hours

  • Apply them to multiple other days with a single action

🟨 Time Saver: Configure once and reuse across weekdays or recurring patterns.


📊 Improved Hours Display Across Targets & Campaigns

Section titled “📊 Improved Hours Display Across Targets & Campaigns”

Operating hours now render using the upgraded Hours Grid component.

  • Fully supports multi-range schedules

  • Consistent display across Targets, RTB Targets, and Campaigns

  • Clear visual representation of complex availability


This enhancement makes managing complex operating schedules easier, faster, and more accurate.

Whether your team:

  • Runs multiple shifts

  • Closes midday

  • Requires precise open/close times

These tools reduce repetitive work and ensure routing logic always reflects true business availability.


  • Set morning and afternoon operating windows on the same day

  • Model a midday break without creating a continuous range

  • Configure hours once and copy Monday → Friday

  • Fine-tune availability using exact times like 8:15 AM or 4:45 PM


  1. Navigate to any Target → Hours of Operation section

  2. Type exact times using the hour / minute / AM–PM inputs

  3. Add multiple time ranges for any day

  4. Use Copy Schedule to apply hours to other days

  5. View updated hours instantly across Targets and Campaigns

🟩 No additional setup required — changes apply immediately.


Originally published at https://help.mojaai.com/en/articles/13148216-release-notes-2026-01-23-routing-enhanced-hours-of-operation

Release Notes: 2026-01-23 — Routing — Routing Plan Overrides

Section titled “Release Notes: 2026-01-23 — Routing — Routing Plan Overrides”

NEW FEATURE RELEASE: Routing Plan OverridesLocation: Campaign page
Routing Plan Overrides let you set up special-case rules so certain calls can bypass the default routing plan.What’s New
​Match on: Tell the system what to look at to trigger the override. You can match on two fields:

  • Publisher → limits the override to calls from a specific Publisher

Only calls from Pub A with caller ID555-123-4567 trigger this override.

  • Caller ID (Number) → the callerID of the caller

Any call into this campaign with 555-123-4567 triggers the override.
​Publisher: Select the publisher name from the drop down
​Filter type: Caller ID is the only option
​Filter Operator: Select an option

  • Equals — Exact match

  • Starts with — Matches beginning of caller ID

  • Ends with — Matches end of caller ID

  • Contains — Matches anywhere in caller ID

  • Regex — Regular expression pattern matching

Priority: Use if multiple overrides exist within the same campaign.
Lower numbers = higher priority (0 executes before 1)
Status: Enable/disable an override without changing the base plan.
​Routing Plan to target: Select the routing plan to apply when this override matches.Why This Matters
Sometimes you need to handle certain calls or publishers differently than the default routing logic. Overrides let you do this without changing your entire routing plan.Example Use Cases

  • Route test numbers directly to a test campaign.

  • Ensure VIP callers always reach a dedicated plan.

  • Apply special routing rules for traffic from a specific publisher.

  • Redirect problem numbers to a different target.

Getting Started
You’ll find Routing Plan Overrides inside the Campaign page. Start by selecting a Publisher or Caller ID to match on, enter the Caller ID you want to handle differently and choose the routing plan that should be used when the override applies.

Originally published at https://help.mojaai.com/en/articles/13476926-release-notes-2026-01-23-routing-routing-plan-overrides

Release Notes: 2026-01-23 — Routing — SIP Trunk Targets

Section titled “Release Notes: 2026-01-23 — Routing — SIP Trunk Targets”

[NEW FEATURE RELEASE]
​SIP Trunk Targets
​Location: Targets
​Release Date: 2025-11-24
​Overview
You can now route outbound calls through SIP trunks using SIP Targets. This allows campaigns and routing plans to send calls to any valid SIP endpoint, with support for authentication and custom SIP headers.
​
​What’s New
Moja now supports SIP Trunk Targets as routable endpoints, allowing calls to be delivered directly to a buyer’s SIP infrastructure instead of PSTN or standard number targets.

  • SIP Target Type in UI:

  • When creating a Target, you can now select SIP Target and provide:

  • SIP URI (e.g., sip:[email protected]:5070)

  • Optional headers and auth credentials

  • Variable substitution for dynamic headers

  • Routing Plan Support:

    • Add SIP Targets as route actions via “Route to SIP Target”

    • Set priorities and weights just like traditional number-based targets

  • RTB Compatibility:

  • SIP Targets work with Real-Time Bidding allocations, including buyer-level routing.

Why This Matters
This release enables direct interoperability between Moja and enterprise buyers who rely on SIP trunks to receive call traffic. It:

  • Removes the dependency on PSTN delivery for SIP-native buyers.

  • Enables advanced routing configurations with header injection and credential management.

  • Unlocks a new segment of buyers previously constrained by infrastructure compatibility.

Example Use Cases

  • A VoIP provider delivers RTB calls to their SIP SBC using URI-based routing.

  • A buyer bypasses Moja’s default recording layer by routing directly to a SIP device.

  • A routing plan allocates a percentage of traffic to a SIP target with specific custom headers for testing or vendor segmentation.

Getting Started

  1. Go to: Targets > Create Newand select SIP Targetas the Target Type under the Routing Settings section.

  2. Fill out SIP URI, headers and credentials and save.

    • Required: sip_endpoint (e.g. sip:[email protected]:5070)

    • Optional: sip_username, sip_password, sip_headers

  3. Add to a routing plan, then assign the plan to a campaign

Originally published at https://help.mojaai.com/en/articles/13476932-release-notes-2026-01-23-routing-sip-trunk-targets

Release Notes: 2026-01-23 — Routing — SIP Trunk Targets

Section titled “Release Notes: 2026-01-23 — Routing — SIP Trunk Targets”

sip, outbound sip, call transfers, routing

Location: Targets → RTB Targets
​Release Date: 11-24-2025


You can now route outbound calls through SIP trunks using SIP Targets. This enables campaigns and routing plans to send calls directly to any valid SIP endpoint — with full support for authentication, custom SIP headers, and dynamic metadata injection.


🎯 SIP Trunk Targets as Routable Endpoints

Section titled “🎯 SIP Trunk Targets as Routable Endpoints”

Moja now supports SIP Targets as first-class routing destinations, allowing calls to be delivered straight into a buyer’s SIP infrastructure (instead of PSTN or standard number targets).

When creating a Target, you can now choose SIP Target and configure:

  • 🔗 SIP URI (e.g., sip:[email protected]:5070)

  • 🔐 Optional authentication credentials (username/password)

  • 🏷️ Custom SIP headers

  • 🔄 Dynamic variable substitution for header values

You can now:

  • Add SIP Targets as actions inside routing plans using “Route to SIP Target”

  • Configure priorities, weights, and fallback logic like any other target type

Future release will enable SIP Targets to be fully supported within Inbound RTB flows, enabling:

  • Dynamic SIP target assignment (upcoming release)

  • SIP-level delivery to RTB auction winners (upcoming release)

  • Real-time endpoint allocation via RTB logic (upcoming release)

🟦 Note: In a future release, SIP Targets will work everywhere number-based targets do — including RTB, campaigns, and routing plans.


This release enables direct SIP interoperability between Moja and enterprise buyers that rely on SIP trunks.

It:

  • 🚫 Removes dependency on PSTN for SIP-native buyers

  • 🧩 Enables advanced routing with header injection & credential control

  • 🔓 Unlocks new buyer segments previously limited by infrastructure compatibility


  • A routing plan allocates a percentage of traffic to a SIP endpoint using unique headers for testing, segmentation, or vendor separation - Available now

  • A VoIP provider receives RTB calls directly into their SIP SBC via URI routing - Coming soon

  • A buyer in an RTB auction is assigned a SIP Target with credentials and custom headers; if they win, Moja securely dials their SIP trunk - Coming soon


  1. Go to Targets → Create New

  2. Under Routing Settings, select SIP Target

  3. Fill out the SIP configuration fields:

    • Required:

    • Optional:

      • sip_username

      • sip_password

      • sip_headers

🟩 Tip: Headers support dynamic variables like campaign_id, buyer_id, or RTB metadata.


2️⃣ Add the SIP Target to a Routing Plan

Section titled “2️⃣ Add the SIP Target to a Routing Plan”
  • Open a routing plan → select Route to SIP Target

  • Configure priority/weight

  • Save the plan


3️⃣ Assign the Routing Plan to a Campaign

Section titled “3️⃣ Assign the Routing Plan to a Campaign”
  • Go to your campaign settings

  • Choose the routing plan containing your SIP Target

  • Save and activate

🟧 Reminder: SIP-targeted calls originate from Moja’s SIP infrastructure — ensure your SIP firewall/SBC accepts our IPs.

Originally published at https://help.mojaai.com/en/articles/13148195-release-notes-2026-01-23-routing-sip-trunk-targets

Release Notes: 2026-01-24 — Integrations — Google Ads Integration

Section titled “Release Notes: 2026-01-24 — Integrations — Google Ads Integration”

NEW FEATURE RELEASE: Google Ads Integration

Location: Integrations → Google Ads
​

We’ve launched a fully integrated Google Ads experience that makes it simple, secure, and automated for you to send call conversion data directly into your Google Ads account. This helps you improve campaign performance and optimize bidding strategies using accurate call conversion data.What’s New
​Connect Your Google Ads Account Securely
MojaAI now supports secure OAuth authorization for Google Ads, including encrypted storage of your credentials.
​Manage Conversion Actions in One Place
Create, select, and manage conversion actions directly from your Integrations page. From here, you can set the default conversion action that conversions will be sent to.
​Automatically Upload Call Conversions
Eligible call conversions are automatically sent to Google Ads every hour. The system respects your configured upload delays and Google Ads lookback windows.
​Track Upload Performance
You can access detailed statistics for your conversion uploads, including counts of successful and failed uploads, timestamps, durations, retry counts, and error messages.
​Reliable Delivery With Automatic Retries
“If Google Ads is temporarily unavailable, MojaAI automatically retries the upload until successful - once per hour up to a maximum of 10 times.
​Cleaner Navigation and Improved Integration
Google Ads–related routes and workflows have been reorganized for greater clarity and easier setup.Why This Matters
Accurate conversion tracking is essential for optimizing bidding strategies and evaluating advertising performance. With this integration, MojaAI ensures:

  • Reliable delivery of call conversions

  • Reduced manual work

  • Better data for Smart Bidding

  • Higher fidelity in measuring marketing performance

Example Use Cases

  • Automatically feed Google Ads high-quality call conversions for improved optimization

  • Maintain accurate conversion data even during temporary outages

  • Ensure only eligible conversions are sent based on your configured rules

Getting Started

  1. Go to Integrations → Google Ads.

  2. Click “Authorize Google Ads Access” and complete the OAuth flow.

  3. Select your default conversion action.

  4. Conversions will begin syncing automatically every hour.

Upload statistics and retry information are available on the “Overview” tab of each linked Google account.
​

Originally published at https://help.mojaai.com/en/articles/13476923-release-notes-2026-01-24-integrations-google-ads-integration

Release Notes: 2026-01-24 — Integrations — Google Ads Integration

Section titled “Release Notes: 2026-01-24 — Integrations — Google Ads Integration”

google, google ads, integrations, conversion postbacks

🎉 Now Live
​Location: Integrations → Google Ads
​Release Date: Wed, 12/04/2025


We’ve launched a fully integrated Google Ads experience that makes it simple, secure, and automated to send call conversion data directly into your Google Ads account. This enables more accurate optimization, smarter bidding strategies, and improved campaign performance using high-quality call conversion data.


🔐 Connect Your Google Ads Account Securely

Section titled “🔐 Connect Your Google Ads Account Securely”

MojaAI now supports secure OAuth authorization for Google Ads.

  • Encrypted storage of credentials

  • No manual API keys required

  • Safe, revocable access at any time

🟦 Security First: Credentials are encrypted and never exposed.


🎯 Manage Conversion Actions in One Place

Section titled “🎯 Manage Conversion Actions in One Place”

You can now create, select, and manage conversion actions directly from the Integrations page.

  • Choose which conversion actions to use

  • Set a default conversion action for uploads

  • Centralized configuration for all linked accounts


⏱️ Automatically Upload Call Conversions

Section titled “⏱️ Automatically Upload Call Conversions”

Eligible call conversions are uploaded automatically every hour.

  • Respects your configured upload delays

  • Honors Google Ads lookback windows

  • No manual exports or uploads required

🟩 Automation: Once enabled, syncing runs continuously in the background.


Gain visibility into every conversion upload with detailed statistics:

  • Successful vs. failed uploads

  • Upload timestamps and durations

  • Retry counts

  • Google Ads error messages

🟨 Insight: Quickly diagnose issues and verify delivery health.


🔁 Reliable Delivery With Automatic Retries

Section titled “🔁 Reliable Delivery With Automatic Retries”

If Google Ads is temporarily unavailable, MojaAI ensures reliable delivery.

  • Automatic retries once per hour

  • Up to 10 retry attempts per conversion

  • Upload resumes automatically when Google Ads is available

🟧 Resilience: No lost conversions due to temporary outages.


🧭 Cleaner Navigation & Improved Integration Flow

Section titled “🧭 Cleaner Navigation & Improved Integration Flow”

Google Ads–related pages and workflows have been reorganized to provide:

  • Clearer setup steps

  • Improved discoverability

  • Faster onboarding for new integrations


Accurate conversion tracking is essential for evaluating performance and optimizing bids. With this integration, MojaAI delivers:

  • ✅ Reliable delivery of call conversions

  • 🔄 Reduced manual work

  • 🤖 Better data for Smart Bidding

  • 📊 Higher-fidelity marketing performance measurement


  • Automatically feed Google Ads high-quality call conversions for improved optimization

  • Maintain accurate conversion data even during temporary Google Ads outages

  • Ensure only eligible conversions are uploaded based on your configured rules


  1. Go to Integrations → Google Ads

  2. Click Authorize Google Ads Access and complete the OAuth flow

  3. Select your default conversion action

  4. Call conversions will begin syncing automatically every hour

📊 Upload statistics and retry information are available on the Overview tab of each linked Google Ads account.


Meta (Facebook) Ads integrations are coming soon — expanding automated conversion tracking across additional ad platforms.

🔮 Roadmap: Meta Ads integrations

Originally published at https://help.mojaai.com/en/articles/13148224-release-notes-2026-01-24-integrations-google-ads-integration

Release Notes: 2026-01-24 — RTB — Advanced Filters for RTB Campaigns

Section titled “Release Notes: 2026-01-24 — RTB — Advanced Filters for RTB Campaigns”

NEW FEATURE RELEASE! Advanced Filters for RTB Campaigns
​
​Location: RTB Campaigns → Create / Edit PageAdvanced Filters let you control which traffic enters each RTB campaign by allowing or blocking calls based on state, ZIP code, and/or publisher.
You can mix these options in any combination — for example, allow traffic from California and Nevada but block certain ZIP ranges or publishers — all directly from the campaign page.
This feature helps campaign managers target higher-quality calls, reduce unwanted traffic, and adjust routing instantly without backend changes.What’s New

  • Flexible Rules: Allow or block calls by state, ZIP code, and publisher.

  • Combinations Supported: Combine multiple filters for precise targeting.

  • Real-Time Validation: Filters are checked automatically when saving a campaign.

  • Reusable Setup: Saved filters stay attached to the campaign and can be updated anytime.

Why It Matters
Advanced Filters give you fine-grained control over your RTB campaigns.
You can focus spend on high-performing areas and publishers, maintain compliance with geographic restrictions, and react quickly to changing traffic quality — all from the dashboard.
​Works great with Custom Tags: Use tags like [STATE] or [ZIP_CODE] inside Advanced Filters to dynamically match incoming session data and create adaptive routing logic.Example Use Cases

  • Compliance: Block calls from states with regulatory restrictions.

  • Performance: Exclude ZIP codes with low conversion rates.

  • Partner management: Route calls only from approved publishers.

  • Dynamic routing: Combine [STATE] or [ZIP_CODE] tags with filters for precise, adaptive targeting.

Getting Started

  1. Go to Targets/RTB → RTBs.

  2. Open an existing RTB or create a new one.

  3. Scroll to the Advanced Filters section.

  4. Click Add Condition and choose State, ZIP, or Publisher.

  5. Set each rule to Allow or Block, then Save.

All filtering and tag logic run automatically when the RTB executes—no additional setup required.

Originally published at https://help.mojaai.com/en/articles/13476916-release-notes-2026-01-24-rtb-advanced-filters-for-rtb-campaigns

Release Notes: 2026-01-24 — RTB — Custom Tags with RTB

Section titled “Release Notes: 2026-01-24 — RTB — Custom Tags with RTB”

Custom Tags with RTBs
​
​Location: Targets/RTB → RTBs
​Custom Tags let you insert dynamic variables into RTB requests — URL, headers, query params, or body — using bracketed placeholders such as [CALLER_ID], [ZIP_CODE], or user-defined tag IDs.
The system resolves these tags at request time, preserves numeric types, and fills in missing ZIP or State data using NPANXX lookup.
All resolved values can be viewed under Reporting → RTB Requests → (+) beside each RTB entry.What’s New

  • Variables Modal in RTB Builder — Insert tags into Query, Headers, or Body fields using a searchable picker.

  • Body & Raw Body Support — Tags work in both structured and raw JSON payloads; results visible in Reporting.

  • Numeric Tag Handling —

Tags ending with _NUMERIC are automatically emitted as numbers (not strings) when the request is built.
This prevents errors when buyer or partner APIs expect numeric types (e.g., sending "bid": 100 instead of "bid": "100").
By enforcing numeric typing at runtime, the system eliminates a common source of downstream parsing errors and ensures API compliance.

  • Dynamic Resolution Pipeline — Tag placeholders resolve from the current call/session context, with NPANXX fallback for ZIP and State.

  • Pre-Resolution for Filtering — ZIP and State tags are resolved before filters run so Advanced Filters stay compatible.

  • Sequential Filter Evaluation —

Filters now evaluate left-to-right within each group operator (AND/OR).
Previously, mixed operators could yield inconsistent results. Now, each group executes sequentially, producing predictable routing logic — especially when tag-based filters (e.g., [STATE], [PUBLISHER_ID]) are used.

  • Request Logging Upgrades — All query, body, and raw data captured per RTB request and displayed in the Reporting panel.

Why This Matters
Custom Tags make RTB calls more flexible and data-rich without engineering changes.
They ensure correct numeric typing, consistent location data resolution, and predictable filter behavior — improving delivery accuracy and troubleshooting visibility.
The combination of tag-based substitution and improved filter sequencing ensures routing behaves predictably even under complex targeting logic or conditional rules.

Special Note: Custom Tags and Advanced Filters work together within the same RTB configuration. You can use tags like [STATE] or [ZIP_CODE] inside filter conditions to build precise, data-driven routing logic directly from the RTB page.

Example Use Cases

  • Add [CALLER_ID] and [ZIP_CODE] to a POST body; Moja auto-resolves ZIP/State from NPANXX if missing.

  • Include [BUYER_ID] in headers and [PAYOUT_NUMERIC] in the JSON body for buyer-specific attribution.

  • Reference [STATE] or [ZIP_CODE] tags in filters to refine targeting without editing the RTB schema.

Getting Started

  1. In the left navigation, go to Targets/RTB → RTBs.

  2. Select an existing RTB or click Create New.

  3. In Query, Headers, or Body, click Variables to insert a tag.

  4. Save your RTB.

  5. Run a test call and view resolved parameters under Reporting → RTB Requests → (+) beside the RTB**.**

Inbound RTB Behavior: You cannot create Custom Tags directly in Campaigns, but if a Campaign references an RTB that uses them, those tags automatically pass through and resolve in the RTB request.

Originally published at https://help.mojaai.com/en/articles/13476921-release-notes-2026-01-24-rtb-custom-tags-with-rtb

Release Notes: 2026-01-24 — RTB — Multi-Step RTB Target Configuration

Section titled “Release Notes: 2026-01-24 — RTB — Multi-Step RTB Target Configuration”

NEW FEATURE RELEASE: Multi-Step RTB Target Configuration
​Location: Targets/RTBs -> RTBs
​

Overview
The Multi-Step RTB release enables chained bidding sequences—where multiple API requests can occur in order, and each step can use results from previous ones.
It allows flexible “ping-pong” auctions and real-time validation flows, so you can confirm winners or apply advanced decision logic before routing.What’s New
You can now define step-based logic within a single RTB target:

  • Ping-Then-Full Flow: Configure an initial limited “ping” call, then follow with the complete payload once a winning route is determined.

  • Step-Chained Evaluation: Define multiple steps inside an RTB target that execute in sequence.

  • Automatic Variable Chaining: Fields returned in one step (like BID_ID or SESSION_TOKEN) are automatically available in subsequent steps.

  • Per-Step Logic: Assign different payout, duration, or priority rules to each step.

  • RTB Target-Group Behavior: The winning step concept applies when the target is used inside an RTB Target Group only (the selected step determines the effective route for that group). runOnRTBGroupWin setting triggers a post-auction call once a winning route is selected.

  • Expanded Logging: Step responses are recorded to aid troubleshooting and analysis. Built-in resilience using continueOnFailure, ensuring the auction continues even if an intermediate step fails.

  • Backward Compatible: Single-step targets continue to work unchanged.

Why This Matters
Previously, advertisers had to create separate RTBs to simulate multi-layer logic, which complicated setup and reduced transparency.
Now, you can manage complex bidding strategies in one place — cutting down configuration time and minimizing routing errors.
Multi-step RTBs make it easier to:

  • Optimize call routing dynamically based on performance metrics.

  • Run A/B variations between buyer groups or targeting tiers.

  • Improve payout control without duplicating campaigns.

Example Use Cases

  • Two-Step Bid Logic: Send an initial ping to gather responses, then post the complete payload only to the selected bidder.

  • Dynamic Testing: Send the same call through multiple targets and route to whichever performs best.

  • Conditional Fallback: Automatically redirect to alternate buyers when response thresholds aren’t met.

  • Tiered Bidding: Create priority-based sequences for premium vs. secondary routes.

Originally published at https://help.mojaai.com/en/articles/13476924-release-notes-2026-01-24-rtb-multi-step-rtb-target-configuration

Release Notes: 2026-01-24 — RTB — RTB JavaScript Response Processing

Section titled “Release Notes: 2026-01-24 — RTB — RTB JavaScript Response Processing”

FEATURE ENHANCEMENT RELEASE
RTB JavaScript Response Processing
Location: Routing → RTBs → RTB Steps
​

Overview
We’ve enhanced MojaAI’s RTB engine with JavaScript-based response processing, giving you far more flexibility in transforming and shaping RTB responses before routing decisions occur. This improvement unlocks dynamic business logic, deeper control, and greater consistency across multiple buyers or data sources — all without engineering support.

What’s New
Custom JavaScript Processing
You can now write JavaScript directly within an RTB step to transform the API response in real time. This lets you:
Add or modify fields
Apply conditional business rules
Normalize responses across different buyers
Filter and reshape data structures
Build dynamic logic that reacts to real-time bid values
Enhanced Visibility & Testing
The RTB editor now includes:
A built-in JavaScript editor
Test execution using live or example RTB responses
Clear output panels for execution results
Validation and error reporting to help catch mistakes immediately
Secure Execution Environment
Your code runs inside a hardened sandbox with:
No external network access
No timers, async functions, or Node.js APIs
Automatic fallback to the original response on error
Strict performance and safety limits

Why This Matters
This enhancement gives Moja customers the ability to implement complex business logic without engineering involvement. It enables:
Faster setup for multi-buyer RTB workflows
More accurate and consistent routing decisions
Tailored transformations based on each buyer’s unique response structure
Power-user flexibility for advanced routing strategies
Campaign operators can now move significantly faster while maintaining reliability and full control.

Example Use Cases
Here are a few practical ways teams can use RTB JavaScript Response Processing:

  1. Conditional Routing Based on Bid Value
    if (response.bid_amount > 5) {
    response.route_priority = “premium”;
    }
    return response;

  2. Normalizing Buyer Responses
    response.normalized_payout = Number(response.payout) || 0;
    return response;

  3. Filtering Available Offers
    return response.offers.filter(o => o.active);

  4. Array Transformation for Next Steps
    response.offers = response.offers.sort((a, b) => b.payout - a.payout);
    return response;

Getting Started

  1. Open an RTB
    Navigate to Routing → RTBs and select your desired RTB.

  2. Select a Step
    Pick the step whose API response you want to customize.

  3. Open “Process Response (JavaScript)”
    Scroll to the code editor within the step configuration.

  4. Test Your Script
    Run your JavaScript against:
    A real test RTB call
    A sample response you paste in
    You’ll see:
    Execution output
    Validation results
    Any errors in your script

  5. Save & Apply
    Once validated, save the change.
    Your script will now automatically run during every RTB execution.

Originally published at https://help.mojaai.com/en/articles/13476928-release-notes-2026-01-24-rtb-rtb-javascript-response-processing

Release Notes: 2026-01-24 — RTB — RTB Predefined Phone Number Option

Section titled “Release Notes: 2026-01-24 — RTB — RTB Predefined Phone Number Option”

NEW FEATURE RELEASE: RTB Predefined Phone Number Option
​Release Date:
​Location: RTB page → Parameters section

What’s New
RTB formulas can now use a Predefined Phone Number instead of relying on an API response.
This gives teams consistent call routing when an RTB integration does not provide a phone number.
​New Options:

  • Use Predefined Phone Number (skip phone mapping):

  • Checkbox that tells the system to skip phone mapping and use a fixed number for all RTB calls.

  • Predefined Phone Number:

  • Input field for entering the number (E.164 format – e.g. +15551234567).

Behavior & Validation:

  • If unchecked, phone mapping is still required.

  • If checked, only payout and duration mappings must be defined.

  • Backend and RTB execution services apply the flag uniformly to ensure reliable routing.

Why This Matters
Some RTB APIs don’t return a destination number, which can interrupt call flow.
This feature keeps calls running smoothly by letting users define a fixed number directly within RTB.
It’s also helpful for testing, staging, and controlled routing flows that demand predictable behavior.Example Use Cases

  • Partner APIs that omit the phone field

  • Testing or sandbox campaigns using a consistent test number

  • Campaigns that require uniform tracking numbers for analytics

Getting Started

  1. Go to the RTB page.

  2. Open the Parameters section.

  3. Check Use Predefined Phone Number (skip phone mapping).

  4. Enter the Predefined Phone Number in E.164 format.

  5. Save the RTB formula – no further mapping changes required.

Originally published at https://help.mojaai.com/en/articles/13476929-release-notes-2026-01-24-rtb-rtb-predefined-phone-number-option