If calls are showing in Call Logs but revenue is $0, the call may not have met the configured revenue or conversion requirements. In pay-per-call workflows, a connected call is not always a payable call.
This guide explains how to diagnose $0 revenue by checking the call outcome, buyer or target payout rules, publisher payout rules, campaign setup, and any postback or delayed reporting workflow.
Revenue vs publisher payout
Revenue is what the buyer owes for a qualified call. Publisher payout is what you owe the traffic source. A call can have revenue, publisher payout, both, or neither depending on the configured rules.
For example, a buyer may pay only after a 90-second connected call. If the caller hangs up after 35 seconds, the call may connect but still generate $0 revenue. Separately, a publisher payout may also depend on source, number, campaign, buyer, target, duration, conversion, or other payout rules.
Revenue failure layers
Layer | What it means |
Duration rule | The call connected but did not last long enough to qualify for revenue. |
Buyer qualification | The buyer rejected, disqualified, returned, or otherwise did not accept the call as payable. |
Revenue configuration | The revenue rule is missing, disabled, incorrectly configured, or not matched by the call. |
Test/non-billable traffic | The call routed to a test destination, non-paying destination, or other traffic path where revenue should not be expected. |
Postback/delayed reporting | Revenue depends on buyer feedback, postbacks, webhooks, or buyer-side confirmation that has not arrived yet. |
RTB/economics mismatch | An RTB bid or call happened, but no payable outcome was recorded after routing, transfer, duration, or buyer qualification. |
Key Call Log fields to review
Start with the affected call in Call Logs. Use the approximate time, caller ID, tracking number, campaign, publisher/source, buyer, or target to find the call.
Field | Why it matters |
Duration / connected duration | Confirms whether the call met the minimum duration rule for revenue or payout. |
Buyer / target | Shows which destination received the call and which buyer or target rules applied. |
Revenue | Shows what Moja AI recorded from the buyer side. |
Publisher payout | Shows whether the traffic source was payable. |
Conversion / billable status | Confirms whether the call qualified under the configured conversion or billing rules. |
Rejection / return reason | Shows buyer-side disqualification, return, or rejection details when present. |
Postback / webhook status | Helps diagnose delayed, missing, or failed revenue updates from asynchronous buyer reporting. |
Adjusted revenue / adjusted payout | Shows whether the original economics were manually or automatically changed after the call. |
Campaign / source | Confirms the call matched the expected campaign, number, publisher, or traffic source setup. |
Some fields may appear only when the related feature or workflow is enabled. For example, RTB details appear for RTB flows, and postback or webhook status is most relevant when revenue is updated asynchronously.
What to check first
Open the affected call in Call Logs.
Check connected duration against the buyer, target, campaign, or publisher rule.
Confirm which buyer or target received the call.
Review revenue, publisher payout, conversion/billable status, rejection/return reason, and postback/webhook status.
Compare the affected call against a similar call that did generate revenue. Differences in source, campaign, buyer, target, duration, or status usually point to the issue quickly.
Common causes
The call duration was too short. The call connected but did not meet the minimum billable or conversion duration.
The buyer rejected, returned, or disqualified the call. The call may have connected but failed buyer-side qualification criteria.
The revenue rule was not met. Revenue usually depends on the buyer or target payout rules configured for the campaign.
The buyer, target, campaign, or source payout config is missing or disabled. The call may not match any active revenue or payout rule.
The call routed to a non-paying or test destination. Test calls and non-billable destinations may correctly show $0 revenue.
Revenue reporting has not updated yet. This is common when revenue depends on postbacks, webhooks, or buyer-side confirmation.
An RTB bid happened, but the call did not become payable. Winning a bid or routing a call does not guarantee that the final call met the buyer’s payable criteria.
Troubleshooting table
What you see | Likely cause | What to check |
Connected call, $0 revenue, short duration | Minimum duration not met | Connected duration vs buyer or target payout rule. |
Connected call, $0 revenue, no buyer payout configured | Missing payout config | Buyer, target, and campaign revenue settings. |
Connected call, revenue but no publisher payout | Publisher payout rule not met or missing | Number, source, publisher, campaign, buyer, or target payout settings. |
Call converted but revenue still $0 | Postback, reporting, or configuration issue | Conversion event, revenue value, revenue rule, and postback/webhook logs. |
RTB bid won but revenue $0 | Bid did not become a payable call | Call Logs, buyer response, connected duration, transfer outcome, and buyer qualification criteria. |
Calls from one campaign show $0 | Campaign config issue | Campaign routing, payout settings, conversion settings, and test/non-billable setup. |
Calls for one buyer show $0 | Buyer-specific payout rule | Buyer or target revenue settings, duration requirements, and qualification criteria. |
Revenue appears later | Delayed postback or buyer reporting | Buyer reporting timing, revenue postbacks, webhook delivery, and retry status. |
Test calls show $0 | Non-billable traffic | Destination setup, test flag/workflow, and whether the buyer should be charged for test calls. |
Common fixes
Adjust the buyer payout, target payout, or conversion rule if it is configured incorrectly.
Confirm the target has a revenue or payout amount set when it should be payable.
Confirm publisher payout is configured separately if the traffic source should be paid.
Verify the call lasted long enough to qualify under the buyer, target, campaign, or publisher rule.
Review buyer rejection, return, or disqualification reasons.
Confirm postback or webhook delivery if revenue is updated asynchronously.
Exclude test calls and non-billable destinations from revenue expectations.
Compare affected calls against similar calls that did generate revenue to spot campaign, source, buyer, target, or duration differences.
Related articles
What to send support
If the call should have generated revenue and the fields do not explain why it is $0, send support the details below. Money issues are much faster to trace when support has exact examples instead of a general time range.
Call log ID or example call
Campaign name
Buyer or target
Tracking number or source
Time range, including timezone if relevant
Expected revenue amount
Actual revenue shown
Expected buyer payout, target payout, or conversion rule
Whether postbacks or webhooks are involved
Any rejection, return, conversion, billable, or postback status shown
Summary
A call can appear in Call Logs, connect, and still show $0 revenue if it did not meet the configured revenue or conversion requirements. Start with connected duration, buyer/target payout rules, campaign setup, publisher payout rules, conversion or billable status, and any delayed postback or buyer-side confirmation.