In 2023, credit card debt in the United States reached a record high, surpassing $1 trillion for the first time in history. That means there are more people in debt now, than ever before, making this a great opportunity for affiliate marketers to make money running debt pay per call.
“Pay Per Call is the lazy way to achieve digital marketing success. No pitching clients, no retainers, no fear of randomly losing contracts ever again.” – Carlos Corona1
No one usually shows you step by step how to do that, but this is where I come in…. this will be a raw and unfilitered Pay Per Call case study and tutorial on how to run debt on Facebook Ads.
Pay per call is not just a marketing channel, it’s a mindset. You have to think like a caller, not a clicker. You have to understand their pain points, their motivations, and their emotions.
So, let’s talk about calls for a second, Pay Per Call is all about the intention. When people pick up the phone and dial your number, they’re not just browsing, they’re seriously considering a purchase. Unlike digital ads that might get clicks but absolutely no guarantees, a call means they’re on the edge of the decision making.
It’s like they’re standing at the checkout, and all they need is a little nudge or info to seal the deal. Calls are more than just interest, they’re a sign that your customers are either ready to buy or just a step away from hitting that convert button.
FACT: Pay per call ranked as the third top-growing marketing channel of the last year, next only to social media (82%) and website (67%).2
#1) Due Diligence & Competitive Analysis
When I get into a new niche, I like to spy and find out how others are running it. For Facebook, best way to do that is to use the Facebook ad library and then use vertical specific keywords which at first you will not know. So first, you will use broad terms to find stuff, like “debt” “credit card debt” “debt-relief”. Here’s my search for FB AD Library, looking for “debt relief”
You want to look for ‘qualifiers’ aka stuff that others are using to pre-qualify the audience. In marketing, using the right words can help laser target who you want to attract to your ad. In this ad for example I see they are localizing by state, and qualifying with 25k in debt:

This one has a minimum qualifier of $10k and targeting people specifically with credit card debt:

FACT: The best verticals for pay per call are considered purchase industries that focus on lead generation like healthcare, insurance, home services, travel, legal services, financial services 3
Invest a few hours into spying, look around, browse all the ads from the fan page, and look for patterns. This is key, because it will allow you to refine your ads and then find more good ads to get inspiration from.
TIP: Be sure to save the ad library for specific pages in a ‘spy file’ you have, so you can just quickly go back and see when they launched new ads.
#2) Getting Rinba Campaign Setup
If you are working with a network like iAmCash, you can easily get an optimized RTB integrated ring-tree setup going where the buyers are already optimized. If you don’t have that setup you will need to create a campaign where you add all the offers one by one, and setup a unique phone number for this and integrate it with your tracking.
This can be ultra complex process, and freelancers in the USA charge upwards of $2000 or more to set it up for you.
I thought that’s crazy, that’s why I hired a full time employee to do tech integrations with conversion API, pixels, data sources on traffic sources, as well as custom landing pages and make it all work with Ringba.
You can work with my guy by reaching out to BannersLanders, we can do most integrations for a few hundred bucks and save you thousands.
#3) Getting the Lander Done
I’m split testing two landing pages, using redirect tracking in RedTrack with native cAPI integration for the actual call conversion. One of my landers is like a chat bot, MAOR Benaim always talks good about chatbots and he’s right, they are ultra engaging and work quite well. The other LP i am using is an advertorial styled landing page which combines the survey style Q&A we’ve used to seeing on dating landing pages.
“The key to success in Pay Per Call is testing. You have to test everything: your landing pages, your ads, your scripts, your IVRs, your call routing, your tracking, your optimization. You have to be willing to fail fast and learn faster.” – Brandon Bowski 4
The landers were configured by my tech guy to track custom conversions and these standard events:
-pageview
-debt below 10k
-debt between 10-15k
-debt above 15k
-click to call button
-conversion
**Having debt level being asked in your lander is a MUST, as most buyers want at least 15k in debt so they can make a profit and pay you the most revenue per call. As we feed it back to Facebook, we’re also creating a custom audience at the same time, this will allow us to generate a lookalike audience later to target those people to increase our call > conversation ratio.
#4) Making Sure Facebook Pixel is Setup Correctly and Tracking
Tracking has changed FOREVER as we know it. Remember the days when we would just grab the Facebook Conversion Pixel and throw it into our lander and call it a day? That def got shook up with the IOS15 update, and since then things have went even worse. Now, Chrome is ending support for the <script> based tracking pixel and switching it all to Server to Server.
This means you need to setup your own 1st party tracking server on Google Cloud, then hook that up to a tag inside Google Tag Manager, and also setup a Web based tag which talks with the server tag, and sends your data back to Facebook via API and also via the legacy script. Then FB deduplicates it, and puts together the most info they can about the click/visitor and hopefully tracks properly.
This is ultra complex, I remember I’ve tried to do it a few times, but ended up hiring that full time tech nerd at my company so now we have a guy that you can also hire on demand. Best, his service is 80% cheaper than hiring a Ringba integration expert from America, they have insane rates over there. With parking at $50/day in Miami, and a coffee at starbucks costing $12. I am not surprised. Thank god, as a marketer the world is your marketplace, even for Human Resources so take advantage of it. Talk to B&L to get help with setting up tracking.
“The most common mistake that Pay Per Callers make is not tracking their data properly. You have to use a reliable and robust call tracking platform that can give you accurate and actionable insights into your campaigns.” – Gene Morris5
#5) Pay Per Call FB Campaign Launch & Structure & Objective – Day #1
I’ve played around with different Facebook campaign objectives a week before writing this post to determine which one did best for me. You can read that case study right here.
With the takeaways learned, and what data told me I decided to run two campaigns now.
One was a PPE engagement campaign to build likes to the page using my debt ads.
The main one was a LEAD objective campaign, where I optimize for Leads, and leads track as the Click to Call button on my landing page.
In terms of the campaign setup itself, I am going with ABO, setting a $30/day budget per and using 2 video ads, and 2 ad texts in each.
We have a 12 day lifetime at $300 which is around 28-30 per day budget (it randomly calculates it as it goes), because if you don’t do lifetime you can’t set call center hours. in Pay per call this is VITAL, you can’t just let er rip 24/7 as then a ton of calls won’t get answered.
TIP: You can actually use FB rules to decrease/increase budgets or pause campaigns during specific hours, but I was too lazy to set that stuff up in this initial stage.
I’ll continue with the updates on how we’re doing and what I am doing moving forward.
#6) Pay Per Call Campaign Day #2
So here’s how things are looking the next day after we ran the campaign.

I started with total 14 ads, and the difference between the cost of ClickCallButton on my lander is insane. Ranging from $4.82 all the way to $35 per lead!!
This is why its VITAL for you to split test, and split test PROPERLY. DO NOT RUN a DYNAMIC ad and throw all your ads/angles into one mega campaign, you need to really see the data initially when your pixel is fresh and you don’t have any data for it to munch on.
Report from Ringba says we did $130 revenue, and we spent total $464. We’re at a loss, but this is data collection phase.
If some fake guru tells you, you just copy, paste upload and blast. Then you are the product, and they are making money selling you the dream.
This shit like every other form of affiliate marketing, requires TESTING and finding the way based on what the data says.
And if you know me, you know I always say the data does not lie. And this is 100% indisputable fact.
Things I gotta do on this campaign TODAY:
-I need to setup the Ringba call tracking tags, that will rotate phone numbers in my lander so they can track which conversion came from where.
-I have to look at all the errors inside tracking logs, ie why some calls weren’t connected, why others didn’t convert, etc.
-I’ll have to listen to the recordings of calls that didn’t convert to find out what is going on
-I’ll try and seek databases of people in CC debt 20k+ to see create some LLAs.
-Ill review LP with my coder to see if we can speed optimize it, and we will also add monitoring to see what users do on the LP.
What I will not do:
-I will not pause any ads yet, even though clearly we have some ultra shitty ones. Facebook is ultra sporratic especially in the first 48 hours, so we gotta wait before doing anything for that to settle.
coming tomorrow..
Pay Per Call Campaign Day #3
All right all right… here we go.. Update time..
So things have improved a bit.. we’re moving towards break even…
Total spend yesterday: $474.68
Revenue: $295
Profit: $-179.68
FB Pixel is working well using the conversion API 1st party Google Cloud server we’ve setup…
there’s some problems with Ringba, turns out if you have 3 different numbers, you cannot add 3 different call tracking tag scripts on a page, so it will swap 3 diff numbers.. Need to come up with a solution with our bad ass coder at B&L for this… but it will be done..
I’ve used chatGPT to create some new images using DALL-E for the campaign as I came up with some new angles in the shower. Believe it or not, the shower is one of my favorite places to come up with new fresh ideas, and a study.
The shower facilitates creative thinking due to its relaxing environment, which triggers the release of dopamine, enhancing brain creativity, and the production of alpha waves, associated with relaxed and idle states of the mind.
Plus, being alone in the shower lets your mind daydream and think creatively without any distractions.
6Super cool eh? Try it.
Split testing a ton of ads is vital to the success of lead gen campaigns. Look at this:

As you can see, split testing ads is VITAL to success. We have ads that generate leads for <$4 and we have ads that spend $30 and generate zero leads. Pretty crazy eh. If you would’ve just tried one ad and a few vars, you would say fuck this it doesn’t work and quit already.
THIS IS WHAT MAKES SUPER AFFILIATES.
TESTING a lot to find the way.
Sadly people are lazy AF, they are entitled and think they deserve to just make money with lil to no effort. Anyways i digressed so back to the topic..
I now need to find out which ad actually brought us the converted CALLS.. so I have to figure out how to do that… right now I have no clue, but this is why I am writing this, so you and I can both learn the ways.
“The most successful affiliate marketers are the ones who are always learning, testing, and improving their skills.” – Pat Flynn7
TODO LIST FOR TODAY
-Find out which ad brought us the converted calls
-Find out which ads brought us calls in general
-Analyze our data, and see which placement and targeting brought us the calls & conversions
-Once we know which ads are ‘good’, we have to look at the script and the videos and come up with variants to scale.
-See if we can get audiences generated from our pixel data and then get those generated.
-Download call recordings, throw them into cockatoo.com to get it transcribed, then translate those into English so I can understand what people are talking about..
Affiliate marketing success is not a sprint, it’s a marathon. You have to be patient, persistent, and passionate about what you do.
I will continue to run everything untouched on FB and optimize my Ringba in the backend. If I come up with some cool new idea like the ChatGPT image.. ill throw that in, by duping an existing adset, and uploading just the image…
Pay Per Call Day #4
$315 revenue / $557.17 spend / -$242.17 (update: Actual revenue was: $358.2 due to reporting error)
Update time: Yesterday’s rollercoaster had us down by $242.17, despite a bump in revenue. This dip? All part of the plan – I introduced a fresh batch of ads into our split testing arena. And here’s the silver lining: We’re finally spotting some promising patterns!
A heads-up for those navigating the digital marketing maze: Beware of so-called ‘experts’ peddling their courses. These self-proclaimed gurus often don’t manage actual campaigns; their real profit comes from teaching, not doing. They rarely spill the beans on a crucial truth – crafting a profitable campaign is a journey, not a sprint.
Here’s what I’ve done yesterday:
I’ve configured Ringba’s custom URL tags and updated Facebook’s tracking to include dynamic values like adset ID, ad ID, and placement, revealing which ads generate calls….. and this is working great!! However, the Ringba-Facebook integration needs tweaking, which we’ll address soon.
Despite Ringba support claiming it’s impossible to track multiple numbers on a landing page, I solved it with ChatGPT’s help. I developed a “Super Coder” in ChatGPT proficient in PHP, JavaScript, and Python. In just two prompts, it generated a script that selects the appropriate Ringba Tracking tag based on visitor responses, swapping in a temporary phone number for comprehensive tracking.
To use this script with Ringba, name your buttons as class=”button1″, “button2”, “button3”, etc., and generate your tracking tag. This is done at the Campaign level in Ringba, under ‘Call Tracking Tags’, where you’ll find code like this:

The stuff in red, which is like a SerialID is what you want to put in place of the XXXXXXX in the scripts below.
<script>
function loadRingbaScript(scriptId) {
// Remove any existing Ringba script
const existingScript = document.getElementById('dynamicRingbaScript');
if (existingScript) {
existingScript.remove();
}
// Create a new script element
const script = document.createElement('script');
script.src = //b-js.ringba.com/${scriptId};
script.id = 'dynamicRingbaScript';
script.async = true;
// Append the script to the document
document.body.appendChild(script);
}
// Event listener for buttons with class '15kbutton'
document.querySelectorAll('.button1').forEach(button => {
button.addEventListener('click', function() {
loadRingbaScript('CA0a2a32a0dXXXXXXXX');
});
});
// Event listener for buttons with class '10kbutton'
document.querySelectorAll('.button2').forEach(button => {
button.addEventListener('click', function() {
loadRingbaScript('CA23751ee620cXXXXXXXXXXXXXXX');
});
});
// Event listener for buttons with class 'under10k'
document.querySelectorAll('.button3').forEach(button => {
button.addEventListener('click', function() {
loadRingbaScript('CA67ed50a1f6XXXXXXXXXXXX');
});
});
</script>
Now looking at stats…
I’ve had 11 no connect calls, this is something worth troubleshooting as every call costs money and we don’t want them to go into the junk.
I’ve made a mistake and even though one offer said they only take calls with debt 15k minimum, we put them into another campaign. That call got refused, so again lost money.
Now adset ID is being passed so we can see which adsets did how, this is vital to find our winning ads that we will scale:

we can also see that FB outperforms in RPC, instagram:

and Placement wise seems like Reels/Stories does better than feed…. but our data is not significant, still good to analyze it..

To kick assin affiliate marketing, it’s vital to conduct A/B testing on different offers due to their varying results. For instance, I discontinued an offer now after 27 calls resulted in zero conversions.
Also, we’re still experiencing issues with our Facebook conversion integration in Ringba; it’s only showing one conversion out of nine. We’re awaiting support for a solution.
Today, I’ll focus on enhancing the Event Match Quality for the GTM-Facebook integration via Adsmurai. While Facebook requests detailed information like email and phone number, I can currently provide only state, city, and zip from Analytics, plus possibly an external ID. I’m exploring ways to send phone numbers from Ringba to GTM, and then to Facebook.
Our data collection is ongoing to identify and scale profitable ad sets while discontinuing the unprofitable ones. Will be back later with an update…
Pay Per Call Day #5 – WE ARE PROFITABLE – $225 profit!
$769.6 in revenue on $544.47 spend.
Profit came after 5 days. Key to success? Testing a ton of ads and killing the crap early on. And having good tracking, and tracking every damn thing in your funnel so you can figure out your KPIs.
Today I realized that since I am running Special Category > Credit, I cannot use the LLAs I generated to target people who look like the ones that clicked on qualifying questions in my funnel. And I also realized I cannot exclude states I don’t want.
Reviewing reports I’ve identified my top 3 ads, so what I will do is try and scale these now.. I turned off my bad ads that had high lead costs… Also, Since I don’t have LLAs and custom audiences and much targeting available due to Special Ad Category.. I will keep my scaling strategy to the following.
1) Duplicate winning creatives 10x and apply Automatic Rules to stop the adset if Lead Cost is beyond $9 and spend is more than $15.
2) Create Variations of my Winning Ads using CapCut by applying my favorite effects, and then dupe the winning original adset, and replace the video in it.
3) Play with automatic bidding and see if I can blow stuff up using the Accelerated bidding method.
Pay Per Call Day #6 – Slight Profit

The scaling methods ate my profit margin, but we still came out in the green.
$799.2 revenue on $787.45 spend. LOL, but we were able to find some adsets that had insane lead costs, below our target of $9.
The bid capped Adsets didn’t spend nor get any impressions. Need to troubleshoot this. Also continue making variants and testing.
Also the rules I applied didn’t work so need to figure out why… overall, not bad .. we’re soon going to hit $1k in rev per day on calls.. Then 5k is next… won’t be hard to get one of the million dollar or higher Ringba awards with this momentum 😉
One of the hardest parts of PayPerCall is finding the direct buyers, I have a full time biz dev girl who does this for us so we can find the best ones with highest EPCs (RPCs)… this pay per call stuff is truly a business with tons of moving parts, not like running Affiliate CPA where you just blast traffic (or POUR traffic as our Ukranian affiliate friends from Conversion Club would say).
To Do List For Today (Saturday)
-Setup rules to start/stop campaigns based on call center hours. Not really a fan of this lifetime budget thing. *Note, it will be interesting to see if I do daily budgets vs lifetime budgets how it affects my lead costs*
-Try the bidding method using ABO instead of lifetime, maybe that’s why it didn’t get even 1 impression. We will see, data will confirm.
-Create more ad variants, and upload them with the rules attached respecting the KPIs of max lead cost. I saw a tip from Carlos Corona, where it says to cap it at 500 impressions instead of a $ ammount, I’ll try that, that could be maybe I didn’t get any impressions too, who knows, again data will confirm.
Things to keep in mind for next week.
-Try different optimization goals in FB
-Try using chatbots ie ManyChat
-Try using Facebook lead calls with an IVR which qualifies the visitor *this is next level shit, maybe i will have to write another guide for this one*
-Figure out how to automatically optimize the buyers in our Ringba system, now I am doing it by hand and its exhausting.
Reference Sources:
- https://zuubly.com/corona/ ↩︎
- https://ppcmode.com/strategy/pay-per-call ↩︎
- https://www.invoca.com/blog/pay-per-call-11-common-questions-answered ↩︎
- https://www.youtube.com/watch?v=NZ2FPNGPBVc ↩︎
- https://udemarketing.com/product/gene-morris-pay-per-call-blueprint-2-0/ ↩︎
https://scienceabc.com/humans/why-do-we-get-our-most-creative-ideas-in-the-shower.html
↩︎- 7 Success Stories of Affiliate Marketers Who Made Millions | Hashtag Expert ↩︎