So schlagen Sie den Klick in Y. Direct und AdWords für 600.000 Rubel pro Monat

In den letzten sechs Monaten ist es uns gelungen, das „Klicken“ unserer kontextbezogenen Werbung mit einem Budget von 1 Million Rubel pro Monat zu verhindern.

Der Schlüssel zur Bekämpfung des Betrugs war die minutengenaue Überwachung des Datenverkehrs mit Benachrichtigungen über abnormale Änderungen und das Deaktivieren problematischer Ankündigungen durch die API sowie eine Reihe von Berichten, die die Situation in Echtzeit widerspiegeln.


Abbildung 1. Diagramm der Anzahl der Besucher nach Schlüsselwörtern nach Dekaminen

Woher weißt du, dass du angegriffen wirst?


Eines der ersten Anzeichen für ein "Click-through" der Werbung ist eine Erhöhung des Prozentsatzes der Rückerstattungen für Betrug in Yandex.Direct und AdWords.
„In Yandex Direct werden die Kosten für Betrug automatisch auf den Restbetrag der Werbekampagne zurückgeführt. Die Anzahl der vom Betrugsbekämpfungssystem beseitigten Klicks wird in den Berichten "Tägliche Statistik" "Allgemeine Statistik" in der Zeile "Ungültige Klicks für den gesamten ausgewählten Zeitraum" angezeigt.
- Helfen Sie J. Direct bei "ungültigen Klicks".

In AdWords kann die Anzeige der Stufe "ungültiger Klicks" auf der Registerkarte "Spalten" aktiviert werden:


Abbildung 2. Benutzerdefinierte Spalten mit einer ungültigen Klickstufe in AdWords

In unserem Fall begann Yandex mit einer durchschnittlichen Anzahl von „ ungültigen Klicks “ in Yandex.Direct ≈ 10% plötzlich, 40% des Werbebudgets zurückzugeben, und nach einem Monat überhaupt 54%.

Das nächste Anzeichen für Betrug ist eine unangemessene Zunahme der Anzahl der Übergänge und starke Änderungen der Verhaltensindikatoren für eine Reihe von Anzeigengruppen.

Wir haben festgestellt, dass bei einer Reihe von Keywords, die nie mehr als 200 Besucher pro Tag hatten, plötzlich Spitzen von bis zu 3.000 Besuchern auftraten. Tatsächlich könnte das Budget in den Tagen solcher Aktivitäten für eine Werbekampagne verwendet werden, wenn es nicht rechtzeitig gestoppt würde.


Abbildung 3. Unangemessenes Traffic-Wachstum für eine bestimmte Anzeigengruppe in Direct

Yandex und Google schützen nicht vor Betrug


Es reicht aus, die Diskussion über die Betrugsstufe in der Kontextwerbung im offiziellen Direct Club zu lesen, um sicherzustellen, dass viele Werbetreibende aufgrund von Betrug Geld verlieren.

Google erkennt die Fehler seines Sicherheitssystems offiziell an und stellt Werbetreibenden "Rückerstattungsansprüche" (Return on Budget) zur Verfügung. Laut Statistiken des ClickSease-Dienstes gibt Google Ads durchschnittlich 12% des Werbebudgets zurück.

So erstatten Sie einen Teil des Geldes für einen Klick über AdWords
Sie müssen eine Beschwerde über "ungültige Klicks" an AdWords senden. Danach werden Ihnen 12% des ausgegebenen Geldes erstattet. Außerdem sendet der ClickSease-Dienst automatisch alle zwei Monate ähnliche Anträge auf Rückerstattung an Google.

In unserem Fall hat Google AdWords zunächst 18% unseres Datenverkehrs als " ungültig " erkannt und das Geld dafür zurückgegeben. Als wir die Beschwerde "Rückerstattungsansprüche" gesendet haben, hat Google weitere 13% des Budgets zurückerstattet.

Yandex erkennt die Schwachstelle seiner eigenen Schutzfilter nicht und beschwert sich über offensichtliche Betrugsfälle. Es sendet eine Vorlagenantwort, dass das Problem beim Werbetreibenden und seiner Website liegt.

In unserem Fall stieg der Prozentsatz der „ungültigen Klicks“ in Y. Direct's Bericht selbst in den Tagen der heftigsten Ausbrüche, als 80% des Budgets ohne Anrufe in die normalerweise wenig beliebte Anzeigengruppe "verschmolzen" wurden, nie über die begehrten 50% für eine der Werbekampagnen und Anwendungen.


Abbildung 4. Die Anzahl der "ungültigen Klicks" in einer der Kampagnen in Direct

Welchen Angriffsgrad haben wir erlebt?


Der Betrugsverkehr wurde auf vier Geschäftsbereiche in zwei Städten geleitet. Wenn Sie neue Werbekampagnen verbinden oder lange gestoppte Kampagnen starten, wurde innerhalb weniger Stunden auch der „Klick“ auf diese verteilt.

Click Fraud war nicht an die Zeit gebunden, und die Umverteilung des Budgets, beispielsweise nachts, hatte keine Auswirkungen: Wir haben immer noch unser linkes Verkehrsaufkommen. "Klicken" war im YAN, in der Yandex-Suche und im Google Display-Netzwerk gleichermaßen aktiv.

Auf der Site simulierten Bots das Benutzerverhalten, navigierten durch Abschnitte der Site, wählten Text aus, scrollten auf natürliche Weise und bewegten den Cursor.

Gibt es vorgefertigte Mittel?


Alle Klickbetrugsschutzdienste verfügen nur über ein direktes Kampftool: Dadurch werden verdächtige IP-Adressen oder Platzierungsseiten in Ya.Direct- und AdWords-Kampagnen blockiert.

Wenn dynamische IPs gegen Sie verwendet werden, ist jeder Klickbetrugsbekämpfungsdienst immer einen Schritt hinter Betrügern, wenn er sie durch IP blockiert: Der Bot macht bereits mehrere Klicks auf Ihre Werbung, wenn der Dienst diese IP auf die schwarze Liste setzt und keine Anzeigen mehr darauf schalten. Nachdem betrügerische Software Ihre Anzeigen nicht sehen kann, ändert sie einfach die IP-Adresse und die Hardware-ID und setzt ihre Aktionen fort.

Bei Angriffen auf Anzeigen im GDN oder YAN werden normalerweise verschiedene Placements verwendet, und automatische Schutzsysteme können keine verdächtigen Websites zum Blockieren erkennen.

Kehren wir zur IP-Blockierung zurück - hier kommen wir zum interessantesten Teil: Wenn Sie mit AdWords bis zu 500 IP-Adressen blockieren können, kann Yandex Direct nur 25 eindeutige IP-Adressen pro Werbekampagne blockieren ! Eine so kleine schwarze Liste von IP-Adressen ist nicht mehr relevant, da Sie jetzt sicher 500 IPv4-Adressen für 10.000 Rubel erwerben und diese Einschränkung umgehen können.

Es gibt zwei Möglichkeiten, sich vor hochrangigen „Klicks“ zu schützen:

  1. Lernen Sie, betrügerischen Benutzern oder Bots keine Werbung zu zeigen, für die Sie bestimmte „Muster“ in ihrem Verhalten und ihren Merkmalen finden müssen.
  2. Stoppen Sie vorübergehend bestimmte Anzeigengruppen und Keywords, auf die abgezielt wird.

Schneiden Sie einen Teil des Publikums ab, um das meiste davon zu retten


Wenn Sie lernen, Bots oder betrügerischen Benutzern keine Klickwerbung zu zeigen, können diese keinen Schaden anrichten.

Sie können jederzeit ähnliche Verhaltensmuster und Muster verfolgen, z. B. dass Betrug in Moskau normalerweise von 5:00 bis 9:00 Uhr unter Windows 7 ausgeführt wird, und in allen angegriffenen Werbekampagnen eine Gebotsanpassung von -100% für ein ähnliches Publikum festlegen. Die Funktionalität von Gebotsanpassungen in AdWords ist ziemlich umfangreich, was nicht über Anpassungen in Yandex Direct gesagt werden kann.

Wir suchen nach Betrugsmustern durch Sicherheitsdienste


Um eine Vorstellung davon zu bekommen, wie genau sie uns angreifen, und um Muster in betrügerischem Verkehr manuell zu verfolgen, haben wir den russischen Betrugsbekämpfungsdienst ClickFrog angeschlossen. Das Produkt ist seit langem allen bekannt, beliebt in der CPA-Umgebung und so weiter.

ClickFrog erwies sich schnell als vollständige Behinderung:

  1. pro Tag nicht mehr als 40 verdächtige IP-Adressen zugewiesen, mit einem Datenverkehr von Direct von 3.000.000 Klicks pro Tag und, selbst von Yandex erkannt, 1300 "linken" Klicks pro Tag;
  2. Das Hauptwerkzeug zum Schutz des Dienstes ist das Blockieren nach IP-Adresse, deren Befehl über die API an J. Direct gesendet wird. Sobald jedoch die schwarze Liste mit 25 IP-Adressen ausgefüllt ist, müssen Sie die letzten IPs in jeder Werbekampagne manuell löschen und warten, bis die Liste erneut ausgefüllt wird also im Kreis.

Anschließend haben wir den Code für ClickSease installiert, einen amerikanischen Dienst, der auf AdWords ausgerichtet ist und noch nicht mit Yandex.Direct zusammenarbeitet. Der Service hat im Gegensatz zu ClickFrog übrigens eine kostenlose Testphase von 2 Wochen.

ClickSease erwies sich als nützlicher: Es wurden 300 bis 400 eindeutige betrügerische IPs pro Tag abgefangen. Für jeden blockierten IP-Dienst gibt es Statistiken:

  • Internetdienstanbieter
  • die Plattform, von der aus der Übergang erfolgte;
  • operationssystem;
  • Eindeutige Geräte-ID
  • Zeit des ersten und letzten Übergangs;
  • Region.

Aus dem ClickSease-Bericht konnten wir Muster im Betrug identifizieren:
  • In 81% der Fälle simuliert das Gerät ein mobiles Betriebssystem: Android oder iOS;
  • In 59% der Fälle gilt die Geolokalisierung der IP-Adresse nicht für Moskau, da der Betrug an Moskau gerichtet ist.

Manuelles Suchen nach Betrugsmustern


Selbst solche offensichtlichen Muster reichten jedoch nicht aus, um den durch Betrug verursachten Schaden zu verringern, und ich wollte Handy-Anzeigen nicht deaktivieren. Services können in der Regel nur Ideen zur Identifizierung ähnlicher Betrugsmuster liefern. Anschließend müssen Sie den Betrug in Metrica finden (im Falle eines Angriffs auf Direct) und ihn zur weiteren Analyse und Blockierung in einem separaten Yandex Audience-Segment auswählen.


Abbildung 5. Ein Beispiel für eine Verkehrsanalyse nach Altersgruppen in der Metrik zur Suche nach Betrugsmustern

Traffic Slices zur Identifizierung von Betrugsmustern:
  • Publikumsdynamik nach Altersgruppen;
  • Dynamik langfristiger Interessen der Nutzer;
  • Geräte- und Betriebssystemdynamik.

Bei AdWords sind die Mechanismen der Gegenwirkung klar:

  1. Wir definieren ein mit Betrug „infiziertes“ Zielgruppensegment.
  2. Wir haben Gebotsanpassungen von -100% für das ausgewählte Segment festgelegt.
  3. Wir überwachen Änderungen der Indikatoren: Conversion, Zeit auf der Website, Anzeigetiefe, Absprungrate.

In Yandex Direct sind die Mechanismen des Kampfes komplexer und in zwei Optionen unterteilt:

a) Sie haben es geschafft, ein offensichtliches Betrugsmuster in Bezug auf Geschlecht, Alter oder Mobilität zu finden:

  1. Wir haben eine Gebotsanpassung von -50% oder -100% für das ausgewählte Segment festgelegt.
  2. Wir überwachen die Veränderung der Schlüsselindikatoren.

b) Es wurden keine offensichtlichen Muster gefunden:

  1. Wir wählen den Betrugsverkehr in einem separaten Yandex.Audience- Segment aus (Sie wussten beispielsweise, dass vom 1. bis 20. Oktober nicht 5.000 Klicks auf eine Anzeigengruppe möglich waren, die immer nicht mehr als 30 Besuche pro Tag hatte).
  2. Durch das ähnliche Aussehen von Yandex schaffen wir ein Benutzersegment, das unserem Betrug ähnelt.
  3. Legen Sie eine Gebotsanpassung von -100% für ein manuell erstelltes Zielgruppensegment fest.
  4. Wir testen sorgfältig die Reduzierung der Werbekosten für von Yandex erstellte Segmente.

Erstellen Sie Diagramme, die Betrug anzeigen


Betrug erzeugt immer offensichtliche Schwerpunkte und Spitzen , egal ob es sich um abstruse Software handelt, die das Verhalten eines echten Benutzers nachahmt, oder um eine Gruppe von Freiberuflern, die die technische Aufgabe ausführen.


Abbildung 6. Diagramm der Anzahl der Besucher nach Schlüsselwörtern nach Dekaminen

Betrug tritt aus mehreren Gründen ungleichmäßig auf:
  • Um den Angriff „auszugleichen“, müssen Sie vertrauliche Informationen haben und wissen, wer, wann und wie viele Klicks Ihre Anzeigen machen.
  • Software agiert in Rucken, und in der Minute, 10 Minuten und manchmal auf dem Stunden-Chart werden ihre Aktionen auffällig sein.
  • Selbst wenn „Schulkinder“ über Bulletin Boards gegen Sie arbeiten, bearbeiten sie eine bestimmte Aufgabe mit einem Algorithmus, und die von ihnen erzeugten Anomalien sind leicht zu verfolgen.

Wenn Sie lernen, die Brennpunkte schnell zu finden und zu beseitigen, können Sie den durch den Betrug verursachten Schaden erheblich reduzieren. In unserem Fall war ein offensichtliches Zeichen eine abnormale Zunahme der Anzahl der Klicks auf kontextbezogene Werbung in bestimmten 10 Minuten oder einer Minute für einige Keywords.

Für die Visualisierung ist Google Data Studio am besten geeignet, da nur Analytics in der Lage ist, zeitlich nach 1 und 10 Minuten aufgeschlüsselte Daten korrekt zu erfassen, und Metrika beim Erstellen von Berichten über Dekomints falsche Indikatoren angibt.

Erstellen von Diagrammen in 10 Minuten und nicht stündlich in Google Data Studio
Standardmäßig können Sie in Analytics oder Data Studio keine Diagramme pro Minute oder 10 Minuten lang erstellen. Dies kann jedoch in Date Studio wie folgt erfolgen:

Schritt 1. Öffnen Sie die Feldbearbeitung



Schritt 2. Erstellen Sie Kopien der folgenden Felder: Jahr, Monat des Jahres, Tag des Monats, Stunde, Minute und benennen Sie sie, z. B. Jahr (Tag), Monat des Jahres (Tag) usw. Auch in den kopierten Feldern müssen Sie den Typ vom Zeit- und Datumsformat in "Nummer" ändern, wie in der Abbildung gezeigt.


Schritt 2. Ändern Sie den Typ des kopierten Feldes von "Datum" in "Nummer".

Schritt 3. Erstellen Sie ein neues Feld, in das wir die folgende Formel schreiben: Jahr (Tag) * 10000000 + Monat des Jahres (Tag) * 100000 + Tag des Monats (Tag) * 1000 + Stunde (Tag) * 10 + BODEN (Minute (Tag) / 10)


Schritt 3. Erstellen Sie ein berechnetes Feld "Zeit für 10 Minuten".

Schritt 4. Wir speichern das erstellte Feld, kehren dann zur Liste aller Felder zurück und finden unser neues Feld "Zeit für 10 Minuten (Dezamenut)". Es ist erforderlich, den Typ wie in der Abbildung gezeigt von "Nummer" in "Datum und Uhrzeit" zu ändern und diesem Feld dann den Typ "Nummer" zuzuweisen.


Schritt 4. Erstellen Sie ein berechnetes Feld "Zeit für 10 Minuten".

Schritt 5. Erstellen Sie ein „kombiniertes Diagramm“ und legen Sie unser neues Feld „Zeit für 10 Minuten“ als Parameter fest, wie in der Abbildung gezeigt. Fertig.


Schritt 5. Erstellen Sie ein Kombinationsdiagramm.


Konfigurieren Sie Benachrichtigungen zu Betrugsausbrüchen


Um nicht alle Betrugsfälle manuell zu verfolgen, habe ich in Google Sheets einen Bericht erstellt, der die Daten jede Minute aktualisiert und den Beginn des Betrugs benachrichtigt.

Google Sheets unterstützt die Core Reporting API , auf die über den Skripteditor in Sheets zugegriffen werden kann.

Schritt 1. Wechseln Sie zum Skripteditor, um auf Analytics zuzugreifen


Abbildung 7. Skripteditor für den Zugriff auf die Analytics Core Reporting-API über Google Tables

Schritt 2. Wir schreiben eine API-Anfrage an Analytics, um Daten zu den erforderlichen Indikatoren zu erhalten (z. B. die Anzahl der Benutzer, die wie in unserem Fall zu jeder Minute des Tages auf bezahlte Werbung geklickt haben).

Google Script-Code zum Anfordern von Daten von Analytics in Google Sheets
function runDemo() { try { var firstProfile = getFirstProfile(); var results = getReportDataForProfile(firstProfile); outputToSpreadsheet(results); } catch(error) { Browser.msgBox(error.message); } } function getFirstProfile() { var accounts = Analytics.Management.Accounts.list(); if (accounts.getItems()) { var firstAccountId = accounts.getItems()[0].getId(); var webProperties = Analytics.Management.Webproperties.list(firstAccountId); if (webProperties.getItems()) { var firstWebPropertyId = webProperties.getItems()[0].getId(); var profiles = Analytics.Management.Profiles.list(firstAccountId, firstWebPropertyId); if (profiles.getItems()) { var firstProfile = profiles.getItems()[0]; return firstProfile; } else { throw new Error('No views (profiles) found.'); } } else { throw new Error('No webproperties found.'); } } else { throw new Error('No accounts found.'); } } function getReportDataForProfile(firstProfile) { var profileId = firstProfile.getId(); var tableId = 'ga:' + profileId; var startDate = "today"; // getLastNdays(14)  2 weeks (a fortnight) ago. var endDate = "today"; //getLastNdays(0)  Today. var optArgs = { 'dimensions': 'ga:date,ga:hour,ga:minute,ga:sourceMedium', // Comma separated list of dimensions. 'sort': 'ga:date,ga:hour,ga:minute', // Sort by sessions descending, then keyword. //'segment': 'dynamic::ga:isMobile==Yes', // Process only mobile traffic. 'filters': 'ga:sourceMedium==yandex / cpc', 'start-index': '1', 'max-results': '10000' // Display the first 250 results. }; // Make a request to the API. var results = Analytics.Data.Ga.get( tableId, // Table id (format ga:xxxxxx). startDate, // Start-date (format yyyy-MM-dd). endDate, // End-date (format yyyy-MM-dd). 'ga:users', // Comma seperated list of metrics. optArgs); if (results.getRows()) { return results; } else { throw new Error('No views (profiles) found'); } } function getLastNdays(nDaysAgo) { var today = new Date(); var before = new Date(); before.setDate(today.getDate() - nDaysAgo); return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd'); } function outputToSpreadsheet(results) { var sheets = SpreadsheetApp.getActiveSpreadsheet(); var sheet = sheets.getSheetByName("coeff1"); var range = sheet.getRange('A:E'); range.clear(); // Print the headers. var headerNames = []; for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) { headerNames.push(header.getName()); } sheet.getRange(1, 1, 1, headerNames.length) .setValues([headerNames]); // Print the rows of data. sheet.getRange(2, 1, results.getRows().length, headerNames.length) .setValues(results.getRows()); } 



Schritt 3. Wir setzen den Auslöser, um Daten jede Minute zu aktualisieren:


Abbildung 8. Wir fordern jede Minute neue Daten an, um schnell auf Betrug reagieren zu können

Schritt 4. Wir erstellen aus dem Blatt eine Pivot-Tabelle, die einmal pro Minute mit den erforderlichen Daten aktualisiert wird, und analysieren diese Indikatoren, um Trigger für E-Mail-Benachrichtigungen zu konfigurieren oder Anzeigengruppen mithilfe der Yandex.Direct-API oder AdWords zu deaktivieren.

Bild Abbildung 9. Ein Beispiel für das Festlegen von Formeln für Anomalie-Benachrichtigungen

Ein Beispiel für meinen Google Script-Code zum Senden von E-Mail-Benachrichtigungen
 function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("notification"); var range = sheet.getRange("D2:E4"); // The row and column here are relative to the range // getCell(1,1) in this code returns the cell at B2, B2 var cell = range.getCell(1, 2); Logger.log(cell.getValue()); if (cell.getValue() !== "no") { MailApp.sendEmail("your_email@yandex.ru", "Fraud notification "+cell.getValue(), "Check me "+range.getCell(1, 1).getValue()); } else { } var cell2 = range.getCell(2, 2); Logger.log(cell2.getValue()); if (cell2.getValue() !== "no") { MailApp.sendEmail("your_email@yandex.ru", "Fraud notification "+cell2.getValue(), "Check me "+range.getCell(2, 1).getValue()); } else { } var cell3 = range.getCell(3, 2); Logger.log(cell3.getValue()); if (cell3.getValue() !== "no") { MailApp.sendEmail("your_email@yandex.ru", "Fraud notification "+cell3.getValue(), "Check me "+range.getCell(3, 1).getValue()); } else { } } 


Fazit: Wie man den Klick schlägt


Die Bekämpfung von Klickbetrug kann in drei Gruppen unterteilt werden:

a) Proaktive Maßnahmen:
  • Abschaltung von "verschmutzten Standorten";
  • Deaktivieren der Werbung für ein Publikum mit Betrugszeichen für Sie, z. B. für Personen auf Tablets aus St. Petersburg (komplexere Parameter für das Blockieren können über AdWords-Listen und Metriksegmente verwendet werden).
  • Gebotsanpassung für Zielgruppensegmente ähnlich wie bei Betrugssegmenten (in Y. Zielgruppen- und Google-Listen werden "Look-Alike" -Segmente erstellt);
  • Blockieren Sie Betrug durch IP-Netzwerkmasken (nur in AdWords verfügbar).

b) Vorbeugende Maßnahmen:
  • Berichterstattung über Budgetrückerstattungen an AdWords und Direct
  • die Untersuchung von "wer hat den Angriff auf Sie angeordnet";
  • Gruppierung verdächtiger und häufig angegriffener Anzeigengruppen zu einer einzigen Werbekampagne;
  • "Fallen" für die einfachsten Bots, nämlich versteckte Schaltflächen auf der Site, die nur für den Bot sichtbar sind und beim Klicken in die Liste aufgenommen werden.

c) Post-Factum-Aktionen:
  • Blockieren durch IP-Adressen;
  • Schnelle Trennung von Click Centern: Keywords, Anzeigengruppen, Werbekampagnen, Zielgruppensegmente.

Bild
Abbildung 10. Schutz vor Klickbetrug

Nützliche Links:


So finden Sie heraus, wer den Angriff auf Ihre Anzeige angeordnet hat
Jeder adäquate Konkurrent minimiert seinen Schaden, wenn er andere angreift:

  1. Erstens wird der Angreifer versuchen, seine Werbung nicht in den Richtungen zu zeigen, in denen der Angriff gerade stattfindet, um seine Klickrate nicht zusammenzuführen und seinen CPC zu erhöhen.
  2. Zweitens wählt ein skrupelloser Konkurrent solche Keywords für den Angriff aus, nach denen er die Schaltung seiner Anzeigen einstellen kann, ohne sich selbst großen Schaden zuzufügen.

In unserem Fall hat der Konkurrent auch in zwei Städten in vier Richtungen auf Betrug geklickt, sodass es nicht schwierig war, ihn zu berechnen.

Um die Analyse der Konkurrenten, mit denen Sie sich überschneiden, zu vereinfachen, können Sie alle enthaltenen Mitbewerberanzeigen für jedes Keyword in der Yandex.Direct-Oberfläche anzeigen:


Abbildung 9. Alle Mitbewerberanzeigen nach Keyword


Wer auch mit dem kontextuellen Werbeklick konfrontiert war - schreibe in die Kommentare, wir werden versuchen uns gegenseitig zu helfen!

Source: https://habr.com/ru/post/de423335/


All Articles