Boost Conversions with Google's new Frictionless Re-captcha
Although most bots are harmless, some can be a nuisance as they can trigger form completions and skew success metrics. On the more sinister end of the spectrum they can interact with pages featuring log in forms and leave phoney comments and false data. When such bot activity first appeared, webmasters were quick to respond to the problem by featuring captchas on website forms. Captchas are, of course, those questions and tests that require you to authenticate yourself as a human being. As a counter offensive, these tools work very well to reduce fraudulent form fills, but they also add friction to the system and invariably draw down on conversion rates.
Google, however, has been working to streamline the process and has provided a new means to address bot interference – introducing reCAPTCHA v3.0, an automated process that eliminates the need for those annoying quizzes.
Re-CAPTCHAs is the system which help us to differentiate between real users and automated users, such as bots. CAPTCHAs provide challenges that easy for humans but difficult for computers to perform.
Re-Captcha is a security service provided by Google, currently used by more than 6 million websites. Its purpose is to protect websites from bot-driven abuse.
Re-captcha v2 vs v3
reCAPTCHA v3
reCAPTCHA v3 allows you to verify if an interaction is legitimate without any user interaction. It is a pure JavaScript API returning a score, giving you the ability to take action in the context of your site: for instance requiring additional factors of authentication, sending a post to moderation, or throttling bots that may be scraping content.
reCAPTCHA v2 (“I’m not a robot” Checkbox)
The “I’m not a robot” Checkbox requires the user to click a checkbox indicating the user is not a robot. This will either pass the user immediately (with No CAPTCHA) or challenge them to validate whether or not they are human. This is the simplest option to integrate with and only requires two lines of HTML to render the checkbox.
Re-captcha v2 vs v3
Create a google Re-captcha account and generate the public and private key which will be later used in Marketo webhook and Re-captcha script.
https://www.google.com/recaptcha/admin/create
Create fields in Marketo to capture the Re-captcha response:
- lastRecaptchaAction: String
- lastRecaptchaChallengeTS: String
- lastRecaptchaErrorcodes: String
- lastRecaptchaHostName: String
- lastRecaptchaScore: String
- lastRecaptchaFail: Datetime
- lastRecaptchaPass: Datetime
- lastRecaptchaResponse: Text
- lastReCAPTCHAUserFingerprint: Text
Add V3 Re-captcha script on your landing page template:
Refer the below link and copy and paste the JS at the bottom on your landing page template.
https://codepen.io/figureone/pen/yLgKXge
Tips: For lastReCAPTCHAUserFingerprint field use the API name in the script.
Create a Webhook in Marketo:
- Webhook name: GoogleRecaptcha
- Description: Call the Google recaptcha validation webservice after a form fillout
- URL: https://www.google.com/recaptcha/api/siteverify
- Request type: POST
- Template: secret={ secret={{my.GoogleRecaptchaSecretKey}}&response={{lead.lastReCAPTCHAUserFingerprint}}
- Request token encoding: Form/Url
- Response type: JSON
Response Mappings
- action -> lastRecaptchaAction
- challenge_ts -> lastRecaptchaChallendeTS
- error-codes[0] -> lastRecaptchaErrorcodes
- hostname -> lastRecaptchaHostName
- score -> lastRecaptchaScore
- success -> lastRecaptchaResponse
Tips: If you are using JSON array response (error-codes) to a single Marketo field. This will cause an error so instead of error-codes(0) it should be map to error-codes[0].- Add lastReCAPTCHAUserFingerprint as a hidden field in the Marketo form.
Great Job!!
Setup a smart campaign to test if your webhook is working fine. Call Google Re-captcha webhook when a lead submits the form. Check the lead activity log you should be getting following response,
You can create a trigger campaign to check the bots, if response is not containing any of the following response mark that lead as bot.
- “score”:1.0
- “score”:0.9
- “score”:0.8
- “score”:0.7