Skip to content

Risky words and automatic checks

Markdown

The automatic checks applied to reviews and the management of the word lists these checks use.

Before publication, every review goes through six automatic checks. The checks do not reject a review; they leave a suspicious review for approval and suggest a rejection reason where appropriate. The decision always rests with the moderator. The text checks are applied together to the review’s title, text, author name and photo or video descriptions.

Check What it detects Result
Personal information Email address, phone number, ID number (with its check digits), IBAN, card number (with its checksum), full address Rejection suggested: “Contains personal information”
Profanity Words on the profanity list Rejection suggested: “Contains swearing or insults”
Health claims Wording that presents the product as a medicine Left for approval
Catalogue match Whether the reviewed product exists in the catalogue Left for approval if it does not
Repeated text and bursts The same person submitting the same text again within 30 days; text identical to one another person submitted in the last 30 days; more reviews from the same person within an hour than the limit on the Settings › Automatic checks tab (reviews for different items of the same order are not counted) Same person, same text: rejection suggested. Other cases: flagged
Fake review suspicion A disposable email address, a return shortly after the review, a review written from the brand’s own domain, an address on the staff list A risk score is calculated; a high score is left for approval, a low score is flagged

Possible results: Clean, Flagged, Left for approval, Rejection suggested. When more than one check returns a result, the most severe result applies. If the publishing method is Automatic or Hybrid, a review is only published automatically when all checks are clean.

  • The checks cannot be switched off; they form part of the reasonable and proportionate checks under Article 7/2 of the Turkish Advertising Board’s Guideline on Consumer Reviews.
  • The personal information patterns and the catalogue match check are fixed.
  • Some limits can be changed: the maximum number of reviews accepted from the same person per hour (3 by default) and the return window after a review (14 days by default) on the Settings › Automatic checks tab; the profanity, health claim and address words are managed on this screen.

The check results, the suggested reason and the matched words for each review are shown in the review details.

The profanity and health claim lists are applied with the words of the language the review is written in; a review written in Turkish is not caught by the English profanity list. The address words and disposable email domain lists are applied in every language, whatever the review’s language.

The Rules and compliance › Risky words screen is used to manage the word lists the checks rely on. On wide screens the word lists are on the left and the Live check on the right; on narrow screens the live check is shown below the lists. There are four lists:

List Wording it detects Effect
Abusive language Words containing swearing or insults The review is not published automatically; a rejection is suggested
Health claims Wording that presents the product as a medicine, for example “this cream cured my rheumatism” The review is left for approval
Address words Words showing that a full address has been given (street, district, building), when used together with a house number Counts as personal information; a rejection is suggested
Disposable email domains Temporary email services Raises the fake review suspicion

In each list, Sayproof’s Predefined list and the words you added for your brand are used together. The predefined list is Sayproof’s ready-made word list, prepared and kept up to date by Sayproof; it is checked for every brand. A word in the predefined list cannot be deleted because other brands use it too; if you switch it off, it is only skipped for your brand. The predefined words of the abusive language list are adapted from the Turkish and English lists of LDNOOBW (List of Dirty, Naughty, Obscene, and Otherwise Bad Words, CC BY 4.0) and censor-text/profanity-list: and extended with words compiled by Sayproof: inflected forms were reduced to their stems, and words that match everyday Turkish words once letters are folded (such as “şık” or “sıkı”) or that are ordinary in shopping reviews (such as “nude” as a lipstick shade) were left out.

At the top of the Word lists card there are three buttons: Add a word (see Adding a word), Add from a file and Download (see Bulk actions).

Each list opens on its own tab. The tab shows how many words in the list are checked (for example “120 words checked”); for lists whose words are kept per language, this number is for the selected language. If the text in the live check contains words from that list, a marker on the tab shows how many. Below the tabs, a short text explains what the selected list catches and that a review containing these words is not rejected but waits for approval.

Above the area of the selected list there are these choices:

  • Search: looks in the word itself or in its note; it applies both to the words you added and to the predefined list. Predefined words that match the search are shown in the Predefined words matching the search table.
  • Language: shown for the lists whose words are kept per language (abusive language, health claims, address words) when there is more than one language. The disposable email domains list shows “This list does not depend on language.”

For the selected list (and language), the area has these parts:

  1. Summary tiles: the Predefined list tile shows the number of words in the list and “Checked for every brand” or how many are switched off for your brand; Open the table in a new tab opens the whole list in a new tab as a numbered, searchable table (columns Word, What to catch, Status, Reviews it caught). The Your words tile shows how many words you added for your brand.
  2. Words you added: shown only if you added words; they appear as clickable chips in a cloud.
  3. Predefined words that need attention: shown only if a predefined word caught a review, is switched off for your brand or was caught in the live check’s text. When you search, Predefined words matching the search replaces this table. The columns are Word, What to catch, Status (On or Off for your brand; the ⓘ in the column header explains both: a review containing an on word waits for approval, an off word isn’t checked in your brand’s reviews) and Reviews it caught; clicking a row opens the word’s details panel, where the word can be switched off for your brand. Because the predefined list can contain swear words, it is not shown in full on the screen; the whole list is in the new-tab table and in the file from Download.
  4. Words that are never caught: the exceptions; shown only if there are any (see Words that are never caught).

The look of a chip in a cloud:

Look Meaning
You tag You added the word
Number next to the word How many reviews the word was found in
Chip highlighted with an orange border The word is caught in the text of the live check

Hovering over a chip shows how the word is caught.

Clicking a word in a cloud or a row in the predefined list’s table opens the word’s details in a side panel: its state (On, Off for your brand or Exception), its source (Predefined list or Your own), What to catch (“similar spellings too” follows the match type if similar spellings are caught as well) with an explanation, how many reviews it was found in and its note, if any. The count is of reviews, not check runs: a review that was corrected and checked again counts once. The See the reviews link lists the reviews the word caught, newest first; clicking a review in the list opens its detail panel.

The actions in the panel depend on the word’s source:

  • A word in the predefined list is switched off for your brand with Switch off for my brand; if it is off, Switch back on makes it checked again.
  • For a word you added, the Edit button opens a box that changes the What to catch choice (the same picker as in the add form; see Match types) and the note; for an exception only the note can be changed. The change is saved with Save. The word itself cannot be changed in this box.
  • A word you added, or an exception, is deleted with Delete; you are asked to confirm first. The list of reviews the word caught is deleted with it; the reviews themselves are not affected.
  • Sayproof’s exceptions in the predefined list apply to every brand; the details panel explains why the word is an exception and offers no action.
  • Use in the live check adds the word to the text of the live check, so you can see at once what it catches.

The Add a word button at the top of the Word lists card opens the add form in the selected list’s area, below the search box and above the words; while the form is open, the button cannot be used. In the form, you first answer What should happen?:

  • Check for this word: Adds a new word to the list; a review that contains it waits for approval before it is published. How the word is caught is set with the What to catch picker; the list’s default match type is preselected (see Match types). The word is saved with the Add the word button.
  • This word is fine for us: Saves the word as an exception with the Add as an exception button. Matches on this word are disregarded for your brand, whichever rule catches it (whole word, start of word, anywhere in the text, pattern or similar spellings). Use this option if a similar-spellings or start-of-word rule catches an ordinary term in your industry by mistake. The word is added to Words that are never caught. If you do not want a word in the predefined list to be checked for your brand, switch it off in the predefined list with Switch off for my brand instead of adding it as an exception.

You can also write an optional Note. If the word you type is already in the selected list, the form says why and the add button cannot be used:

Case Warning in the form
The word is in your own list “This word is already in your list.”
The word is in the predefined list and on “This word is already in the predefined list and on; no need to add it.”
The word is in the predefined list but switched off for your brand “This word is in the predefined list but switched off for your brand.” with a Switch back on button next to it; the button switches the word back on for your brand.
The word is among the words that are never caught “This word is among the words that are never caught; it can’t be added as a word to check.”

The words you added as exceptions and Sayproof’s exceptions in the predefined list are shown below the predefined list in a separate cloud headed Words that are never caught; the ones you added carry the You tag. Matches on these words are disregarded for your brand, whichever rule catches them (whole word, start of word, anywhere in the text, pattern or similar spellings). To remove an exception you added, click the word and use the Delete button in the details panel.

Write or paste a sample review in the Live check box. Words caught by the lists are marked as you type: shortly after you stop typing, the text is checked and the result is shown as “This review would wait for your approval before going live.” or “This review is not caught by the word lists.” The caught words are marked in the text, and at the same time on the tab of the list concerned and on the word’s chip in the cloud or its row in the predefined list’s table. If there is more than one language, the language is chosen above the box.

For each match, the wording caught in the text, the word on the list if it differs, the list, the match type and the source (Predefined list or Your own) are shown. The actions next to a match:

  • Show in the list: Opens the tab of the list concerned and highlights the word; if the word is in the predefined list, the table opens and the word’s row is highlighted.
  • Switch off for my brand: Switches off a word in the predefined list for your brand.
  • Delete: Deletes a word you added; you are asked to confirm first.
  • Don’t catch “…”: If the word was caught in the text with a different spelling (for example through similar spellings or a start-of-word rule), adds that spelling as an exception in one click.

When a list changes, the check runs again by itself. The check uses the same word lists and matching rules as the check applied to reviews: the selected language decides the profanity and health claim lists, and the address and disposable email lists are tried in every language. Address words are shown on their own in the check; in reviews they count as an address when a door number is close by (at most three words apart). The check saves nothing. If the search stops early because the text is long or complex, you are told that the result may be incomplete.

How a word is caught is set with the What to catch picker. The same picker is used in the add form, in the Edit box of a word’s details and in the Add from a file wizard (for rows in the file that do not say how to match). In the picker you first choose a method: By word or By pattern (advanced).

  • By word: Whole word, Start of word and Anywhere in the text are shown as nested checkboxes, each with a short example below it (for example “Words that start with it too: “badly”, “badness”” for Start of word). Whole word is always ticked. When a wider option is ticked, the narrower ones are ticked too and marked included; unticking the wider option goes back to the previous one. A note below the checkboxes reminds you that a wider option covers the narrower ones, so you don’t need to add the same word once per option. The Also catch similar spellings box is in the same group.
  • By pattern (advanced): Wildcard pattern is chosen as the Pattern type; only the Sayproof team defines the Advanced rule type. An explanation of how the chosen type works is shown below it.
Type How it works
Whole word Only the word itself matches: “bad” matches, “badly” does not.
Start of word Every form beginning with the word matches: “illness” also matches “illnesses”. It covers the whole word too.
Anywhere in the text Every occurrence matches: “mail” also matches “gmail”. It covers the whole word and the start of word too. Use with care.
Wildcard pattern The * sign stands for any sequence of letters: “ill*”. Works within a single word and requires at least 3 letters.
Advanced rule A technical rule that only the Sayproof team can define.

The Also catch similar spellings box can be ticked together with Whole word and Start of word. When it is, spellings with one letter missing, added or changed are also caught in words of 6 letters or more: “scumbag” also catches “scumbg”. For shorter words the choice has no effect. While Anywhere in the text is chosen, the box cannot be used and says “Not available while “Anywhere in the text” is chosen.”; when By pattern (advanced) is chosen, the box is not shown. Similar spelling is not a separate match type; it cannot be chosen together with Anywhere in the text, Wildcard pattern or Advanced rule (similar_not_allowed). In the predefined list’s table, in the word details and in the live check, “similar spellings too” follows the match type of these words.

Matching is resistant to spelling variations; the text and the word are simplified in the same way. Turkish letters (ı/i, ş/s, ğ/g…) are matched, digits and symbols used in place of letters (qu4l1ty, @) are converted to letters, letters separated by dots or spaces (q.u.a.l.i.t.y) are joined, and stretched letters (quaaality) are reduced to one. Numbers made up only of digits (“5 stars”, “10/10”) are left unchanged.

The bulk actions are at the top of the Word lists card, next to the Add a word button:

  • Add from a file: A CSV or Excel file is uploaded (up to 1 MB and 2,000 rows, one word per row). The wizard has four steps: File → Preview → Conflicts → Confirm. The preview shows, with row numbers and reasons, the rows to be added and the rows that already exist, conflict or are invalid. Only new rows are saved; conflicts are resolved by hand. In a file whose first row holds column names (with a value, term or word column), the suppressed column is read too: a row with 1, true, yes, evet, doğru or x in this column is added as an exception, its match type becomes whole word and the preview’s What to catch column shows Exception. The match column gives the row’s match type (word, prefix, contains, pattern) and the similar column whether similar spellings are caught too (the same values as suppressed); similar can only be used with word and prefix. A row with fuzzy in the match column of an older file is read as whole word with similar spellings. Rows that do not say how to match are added with the match type chosen with the What to catch picker in the wizard’s File step; in the preview, “similar spellings too” follows the match type of rows that will catch similar spellings. When compared with the predefined list, a row whose word is already in the predefined list with the same match type counts as Already there (“the word is already in the predefined list”). A row counts as a conflict if the word is in the predefined list with a different match type (“the word is in the predefined list with a different match”), or if it is an exception in the predefined list and comes in the file as a word to check (“the word is an exception in the predefined list; it can’t be added as a checked word”). A row also counts as a conflict if a word that is checked in your list is marked as an exception in the file.
  • Download: Exports the selected list in the format picked from the menu (CSV, Excel or JSON). A CSV or Excel file can be imported again; because the file carries the similar and suppressed columns, the similar spellings choice and the exceptions come back as they were. Rows loaded into a list of another language show as Invalid, and words already in the predefined list show as Already there.

Using this screen requires the “Can change settings” permission; other roles do not see it in the menu. Every addition, edit and removal is recorded in the Activity history.