top of page
תמונת הסופר/תאלעד לוי

איך לזהות טראפיק של בוטים בקמפיינים שלכם באמצעות GTM ובחינם

עודכן: 2 ביולי 2022

קליקים מזויפים הם מזמן כבר לא תופעה זניחה של מפרסמים בתקציבי ענק. עם הקלות הגדולה של יצירת בוטים והפיתוי ביצירת הכנסה צדדית בעולמות ה-Ad Sense, מפרסמים בכל הגדלים נתקלים כיום בתופעה של קליקים מזויפים.

נהוג להבחין בין סוגי קליקים פסולים, שמצד אחד יכולים להכיל קליקים של מתחרים מצד אחד (מתוך כוונה לפגוע בתקציב המפרסם) ומצד שני יכולים להיות מונעים מרשתות של בוטים שאינם קשורים ישירות אל המפרסם.

בתחום ההתמודדות עם קליקים שכאלה פועלות מספר חברות, בינן Clickcease ו-Cheq הישראליות, אך הפתרון שהן מציעות לרוב מתאים למפרסמים בתקציבים משמעותייים, שהחסכון שישיגו יצדיק את ההשקעה בכלי שכזה.

בפוסט היום נציג פתרון חלופי למעקב אחר קליקים מזויפים אשר יחשוף את היקף התופעה בחשבון שלכם.

הפתרון המוצג מסתמך על פוסט של סימו אהבה, אשר בעצמו הסתמך על קוד קיים.

זיהוי טראפיק בוטים

הבסיס לכל הפתרון שנציע הוא שימוש בכלי ה-recaptcha של גוגל עצמה. כן, זה שמונע שליחת ספאם בטפסים באתר.

בגרסה העדכנית של הכלי, 3V, הוא מאפשר מעקב אחר פעולות הגולש באופן סמוי, כך שגם ללא פעולה אקטיבית של הגולש (דוגמת סימון תמונות), המערכת יודעת לקבוע האם הגולש הוא אדם או רובוט. הציון הוא על סקאלה של 0 עד 1, כאשר ציון קרוב יותר ל-0 מעיד על גולש החשוד כרובוט.

הפתרון של סימו משתמש בציון הזה, המתקבל בזמן אמת, כדי להזין אותו אל גוגל אנליטיקס ושם לנתח את היקף התופעה בחשבון. במדריך הזה נסביר איך לעשות זאת עבור אנליטיקס וגם עבור גוגל אדס.

הפתרון המתואר במדריך הזה מתאים לאתרים עם מערכות מבוססות PHP, דוגמת וורדפרס או Joomla. ניתן להתאים את הקוד גם למערכות מבוססות שפות אחרות אך לא ניכנס לכך. המאמר של סימו מתאר גם פתרון גם עבור node.js למי שירצה להקים שרת ייעודי.

בנוסף, הוא מניח שיש לכם גוגל תג מנג'ר מותקן באתר. ניתן כמובן להטמיע את הפתרון ללא שימוש בתג מנג'ר על ידי הוספה של הקוד ישירות לאתר.

שלב 1: יצירת חשבון recaptcha

ראשית, צריך לרשום את האתר במערכת של recaptcha (בחינם) ולקבל עבורו את המפתחות: site key & secret key.

הרישום נעשה באתר של recaptcha בכתובת הזו.

יש לבחור את סוג הrecaptcha החדיש יותר – V3.

לאחר מכן יש לרשום כל דומיין עליו תרצו להתקין את הפתרון. אין צורך לרשום subdomains, למשל אם רשמתי את example.com, אין צורך לרשום גם את sub.example.com

יצירת חשבון recaptcha

יצירת חשבון recaptcha

שלב 2: הוספת תגית Custom HTML לתג מנג'ר

בשלב הזה, ניצור תגית מסוג Custom HTML בחשבון התג מנג'ר. בתגית הזו נדביק את הקוד הבא, תוך החלפה של ערך _reCAPTCHA_site_key_ עם הערך שקיבלנו בסעיף הקודם.

<style>
  /* hides the recaptcha badge */
  .grecaptcha-badge {
    display: none !important;
  }
</style>
<script src="https://www.google.com/recaptcha/api.js?render=_reCAPTCHA_site_key_"></script>
<script>
  grecaptcha.ready(function() {
    grecaptcha.execute('_reCAPTCHA_site_key_', {
      action: 'homepage'
    }).then(function(token) {
      var xhr = new XMLHttpRequest();
      xhr.onload = function() {
        if (xhr.response !== 'noChange') {
          var greResult = JSON.parse(xhr.response);
          window.dataLayer.push({
            event: 'recaptcha',
            recaptchaAnswer: greResult.success,
            recaptchaScore: greResult.score
          });
        }
      };
      xhr.open('POST', '/gtm/recaptcha.php', true); //replace this with URL to your PHP fil
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
      xhr.send('token=' + token + '&action=homepage');
    });
  });
</script> 

שימו לב כי כאן גם מוגדר היכן באתר יישב הקובץ שניצור בשלב הבא. ברירת החדל הוא בתיקייה gtm תחת שם הקובץ recaptcha.php, כלומר הכתובת המלאה של הקובץ היא:

את התגית יש להגדיר כך שתיטען בכל העמודים באתר (Page View).

הוספת תגית recaptcha בתג מנג'ר

הוספת תגית recaptcha בתג מנג'ר

מה התגית הזו עושה בעצם?

1. טוענת את הקוד של recaptcha באתר

2. מעלימה את הבאנר הכחול שבד"כ מלווה אותו

3. שולחת את התגובה של recaptcha אל הקובץ שמיד ניצור ומחכה ממנו לתשובה

שלב 3: הוספת קובץ PHP לשרת

השלב הזה פשוט יותר ממה שזה נשמע. אם יש לכם webmaster, פשוט תבקשו ממנו להעלות את הקובץ הבא לשרת תחת התיקייה gtm והשם recaptcha.php

כמובן שאפשר לשנות את התיקייה או שם הקובץ, רק שימו לב שאתם משנים בהתאם את הפנייה אליהם בתגית Custom HTML שיצרתם בשלב הקודם.

בקטע הקוד הזה יש להחליף את _reCAPTCHA_secret_key_ עם הערך שקיבלתם בשלב הראשון.

<?php
          	// reCaptcha info
    $url = 'https://www.google.com/recaptcha/api/siteverify';    	
    $secret = "_reCAPTCHA_secret_key_";
          	$remoteip = $_SERVER['REMOTE_ADDR'];
          	// Form info
          	$action = $_POST['action'];
          	$response = $_POST['token'];
          	// Botscore
          	$botscore = $_COOKIE['_rbs'];
 
          	// Curl Request
          	$curl = curl_init();
          	curl_setopt($curl, CURLOPT_URL, $url);
          	curl_setopt($curl, CURLOPT_POST, true);
          	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
          	curl_setopt($curl, CURLOPT_POSTFIELDS, array(
                         	'secret' => $secret,
                         	'remoteip' => $remoteip,
                         	'action' => $action,                    	
                         	'response' => $response
          	));
          	$curlData = curl_exec($curl);
          	curl_close($curl);
          	$curlJson = json_decode($curlData, true);
          	
          	//defining the answer
          	$answer = $curlData;
          	
          	//refresh the cookie
          	setcookie('_rbs', $curlJson['score'], time()+1800, '/','', 0);
          	
          	// only fire $answer if botscore cookie is not set or different from acutal score
          	if ($botscore != $curlJson['score']) {
                         	echo $answer;
          	} else {
                         	echo "noChange";
          	}
?> 

מה התגית הזו עושה בעצם?

התגית הזו מקבלת את התגובה מהדפדפן של הגולש, מאמתת אותו מול ה-API של recaptcha ומחזירה את הציון הגולמי חזרה לדפדפן. הציון שמוחזר נדחף אל ה-datalayer, שם הוא זמין לשימוש בתג מנג'ר.

יצירת אוונט לגוגל אנליטקס

אוקי, אז כל החלק הטכני מאחורינו, אפשר לעבור לחלק הכיפי – גוגל אנליטיקס (טוב, כיף שלי בכל אופן).

כדי להעביר את הציון שקיבלנו, צריך ליצור תגית של Google Analytics בתג מנג'ר. התגית היא מסוג Event.

עבור ה-event category אני ממליץ להשתמש בשם שיהיה פשוט לזכור, למשל, recaptcha. עבור ה-event action ניצור variable (משתנה) חדש בשם recaptchaScore. המשתנה הוא מסוג Datalayer Variable כאשר שם המשתנה הוא recaptchaScore.

יצירת Data Layer Variable

יצירת Data Layer Variable

עבור ה-event labelניצור variable (משתנה) חדש בשם recaptchaAnswer. המשתנה הוא מסוג Datalayer Variable כאשר שם המשתנה הוא recaptchaAnswer.

יצירת Data Layer Variable

יצירת Data Layer Variable

להפעלת התגית ניצור טריגר מסוג Custom event התופס אירועים בשם recaptcha.

יצירת הטריגר בתג מנג'ר

יצירת הטריגר בתג מנג'ר

חשוב לוודא כי האוונט שיצרנו מוגדר כ-Non-interaction hit בכדי שלא ישפיע לרעה על מדד ה-Bounce rate של האתר.

יצירת איבנט ב GTM

יצירת איבנט ב GTM

אם חשבון האנליטיקס שלכם מחובר אל גוגל אדס, תוכלו ליצור המרה עבור גולשים עם ציון נמוך, 0.1 או 0.2 וכך להבין אילו קמפיינים שלכם מושפעים מקליקים מזויפים.

יצירת המרה בגוגל אנליטיקס

כדי לדווח על הטראפיק החשוד למול ערוצי התנועה השונים, ניתן ליצור המרה על בסיס האוונט שנשלח לאנליטיקס. כדי ליצור את ההמרה, יש לגשת אל אזור ה-admin של החשבון ולבחור את ה-view עבורו נרצה ליצור את ההמרה.

כדי לא הסיט את יחס ההמרה הכולל של ה-view, מומלץ ליצור view נפרד

ניצור המרה חדשה כאשר סוג ההמרה הוא Custom והיא מוגדרת על Event. ניתן להמרה שם, למשל Bot Traffic.

הכלל להמרה הוא:

Event Category Equals to 'recaptcha'

Event Action Regular Expression '0\.[1-3]'

יצירת המרה באנליטיקס

יצירת המרה באנליטיקס

ניתן גם לייבא את ההמרה הזו לגוגל אדס כדי לראות איך היא משפיעה על קמפיינים, אך חשוב מאוד לשים לב שלא לכלול אותה כהמרה, אחרת חשבון המודעות יבצע אופטימיזציה כלפי הקהל הזה.

יבוא לגוגל אדס

bottom of page