Track AppointmentRequest
The AppointmentRequest event fires when a visitor books a consultation, appointment, or service slot on your site. Common for clinics, dentists, salons, consultants, real-estate agents — any business where a booking is the conversion.
1. Create the AppointmentRequest conversion action in Google Ads
Before AdsPing can forward an AppointmentRequest to Google Ads, the conversion action has to exist on the Google Ads side.
Skip this section if you already have a Book-appointment conversion action set up that uses the website data source.
1.1 — Sign in to ads.google.com
Open ads.google.com with the Google account that has Admin or Standard access.
1.2 — Open the Conversions page
Left navigation → Goals (Hedefler) → Conversions (Dönüşümler) → Summary (Özet).
1.3 — Click “+ New conversion action”
1.4 — Pick “Website” as the data sourceMost important step
Pick Website (Web sitesi). Do NOT pick Phone calls, App, Import, or GA4. (See the equivalent warning on the Purchase page for the full reason.)
Click Save and continue.
1.5 — Pick the conversion category: Book appointment (Randevu rezervasyonu)
On the “Group your conversions” screen, pick:
Randevu rezervasyonu — Book appointment
“Bir kullanıcının işletmenizden randevu almasıdır.”
In English Google Ads UI: Book appointment.
Alternative if your UI doesn’t show Book-appointment: Submit lead form (Potansiyel müşteri formu gönderimi) is acceptable — for Smart Bidding both behave the same way.
Click Save and continue.
1.6 — Recommended settings on the details page
- · Conversion name: “Appointment — [your business]”.
- · Value: Use the same value for each conversion if you have an average revenue-per-appointment figure (e.g. “average appointment brings $300 of business”). Otherwise Don’t use a value is fine.
- · Count: One — one appointment per visitor per session.
- · Click-through window: 30 days.
- · Attribution model: Data-driven.
- · Include in “Conversions”: Yes — for service businesses, the appointment IS the conversion, so optimize bids toward it.
Click Done, then Save and continue.
1.7 — Skip the tag-setup screen
You don’t need to install Google’s tag. Click Done and exit the wizard.
1.8 — Copy the Conversion Action ID
Click your new AppointmentRequest action and copy the number after
ctId=in the URL bar.https://ads.google.com/aw/conversions/customers/3884688380/detail?ctId=987654321
2. Wire the action in AdsPing
- 2.1 — Open your pixel → Destinations tab → Add action on the Google Ads card.
- 2.2 — Fill the form:
- Name: “Appointment — [your business]”
- Customer: pre-filled.
- Conversion action: pick the Book-appointment action you created in step 1.
- Event name filter:
AppointmentRequest
- 2.3 — Save. See wizard Step 3 for screenshots.
3. Find your booking form selector
Open your booking page, right-click the booking form → Inspect. Note its id= attribute. Common ones: booking-form, appointment-form, consultation-form.
If your form has no id, add one — e.g. <form id="booking-form">.
4. Copy the snippet
Replace #booking-form with your form’s actual #+id.
Option A — pbq (recommended)
<!-- Place inside the <body> of the page that contains the booking form
(or button), AFTER the AdsPing script in <head>. -->
<script>
document.querySelector('#booking-form')
.addEventListener('submit', function () {
pbq('track', 'AppointmentRequest', {
content_name: 'Consultation booking',
value: 0,
currency: 'USD'
});
});
</script>Option B — dataLayer
<!-- Place inside the <body> of the page that contains the booking form,
AFTER the AdsPing script in <head>. -->
<script>
document.querySelector('#booking-form')
.addEventListener('submit', function () {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'appointment_request',
form_name: 'Consultation booking',
value: 0,
currency: 'USD'
});
});
</script>5. Where to paste the snippet
Paste it inside the <body> of the page that contains the booking form, near the bottom so the form element exists when the script runs.
Using a third-party booking widget (Calendly, Acuity, Setmore)?
If the booking happens in a popup or iframe, you can’t listen to its submit event from the parent page. Instead, fire the event on the success / confirmation page the visitor is redirected to after booking. Use the page-load version of the snippet (no event listener, just the pbq call directly inside <script>):
<!-- On the post-booking confirmation page (e.g. /booking-confirmed) -->
<script>
pbq('track', 'AppointmentRequest', {
content_name: 'Consultation booking',
value: 0,
currency: 'USD'
});
</script>6. Test it
Open the booking page, submit with test data. Within 10 seconds, an AppointmentRequest row appears in Recent Events with a green Success badge.
✓ AppointmentRequest is live.
Every booking on your site is now a Google Ads conversion. Smart Bidding will optimize toward visitors most likely to book.