A traffic-quality report: a template for a marketer
Contents
Share
A traffic-quality report is not one “bots” chart. Direct’s library has an “Invalid traffic” report, and the number in it can change if filtering runs later. Network placements are read in the Placements report. UTM reaches Metrica’s standard report only as a full set. End-to-end analytics compares channel spend with CRM revenue when its conditions are met. These reports do not promise a column named “bots”.

Click fraud takes one line in the template: a snapshot of invalid traffic on the export date. The other lines are placements, tags and revenue. Click fraud and sklikivanie do not replace report names. Below is the template and the order for filling it.
The invalid-traffic line
Export the report from the library and write down the period plus the export date. The number can still arrive later. The template has two columns on this line: the figure and the date. Without the date the next meeting will not see why the figure grew: that is later filtering, not a backdated edit.
Invalid clicks explain why not everything suspicious is already on this line. Whether Yandex refunds click fraud is not substituted into the template instead of the export.
The placements line
The Placements report is filtered by the type “Networks” and by the statuses “Active” and “Stopped”. Groupings: placement type, name, campaign number and campaign name. Metrics: spend, impressions, clicks, conversions, CR, CPA. You can add revenue and DRR. A column can be filtered by spend for the period. The help-text example of a filter is spend over 1,000 rubles. That is an interface example, not a threshold of a suspicious placement.
Copy into the template the placement name, the campaign and the metrics you actually added. Label the filter “over 1,000 ₽” as a way to drop small rows in the interface, not as evidence. Who clicks ads, and why does not turn a placement above that example into a motive.
The UTM line
Direct’s help splits Metrica reports: your own parameter names are read in URL parameters, the UTM standard in the UTM report. The standard report needs every UTM tag for correct data. If only utm_content is missing, utm_term data appears after you remove the utm_content grouping from the report. Direct advises Latin or transliteration, no capitals, words separated by _ or -: Cyrillic in values can get distorted. On a click, utm_source=yandex is sometimes shortened to ya, and that happens for any value that starts with yandex.
In the template, mark whether the tag set is complete. An empty utm_content is not fixed by waiting: remove the grouping to see utm_term. Label a shortening to ya as the behaviour of some clicks, not as a counter error. Visits that already happened are not restored by changing the tag on the ad: the help text does not describe that kind of rewind. Mark new clicks again.
The end-to-end line
Metrica’s help describes end-to-end analytics as a comparison of channel costs with those channels’ revenue, and as the client’s path from an ad visit to an order or a purchase. To assemble it you need UTM on the ads, expenses loaded for the tagged channels over the period, the ClientID from getClientID stored in the CRM, and clients and orders passed from the CRM to Metrica. On this help text ClientID is the identifier of a unique visitor, which Metrica sets itself.
The same data is read in the reports “CRM order sources”, “Sources, expenses and ROI” and “Visitors and clients”. Goals used to pass order statuses can be added to other reports so the funnel stages are visible.
The report names do not promise a “bots” column. ROI is not unpacked as a formula on this help text. This is a way to see channel revenue, not a method of “spend before and after protection”: Binetro’s documentation does not set that method. In the template, channel revenue and the invalid-traffic snapshot are different lines.
Filling order
Fix the template period. It is the same for every line, or a placement CPA and CRM revenue live in different windows.
Export “Invalid traffic”, write the number and the date. Leave room for a second export.
Open Placements with the type “Networks” and the statuses you need. Copy groupings and metrics. If there is a spend filter, label the sum. 1,000 ₽ is only the help-text example.
Check UTM: every tag is present, Latin or transliteration, no capitals, separator
_or-. Do not defend Cyrillic as a reliable value.If
utm_sourcearrived asya, do not repair history. Note the click’s behaviour.If the standard report is empty on
utm_termbecauseutm_contentis empty, remove theutm_contentgrouping.For channel revenue, check the four end-to-end conditions: UTM, loaded expenses, ClientID via
getClientIDin the CRM, and clients and orders passed.Open the three reports: CRM orders, expenses and ROI, visitors and clients. Add order-status goals to other reports if you need the stages.
Do not add a “bots” column and do not label ROI with a formula this help text does not contain.
Do not compare spend “before protection” and “after” as a method: Binetro’s documentation does not set it.
A teaching sheet
An example, not your account.
The period is 1–7 March. On 8 March invalid traffic is exported as one number. On 10 March the number is higher. Both dates are in the template. That is later filtering.
In Placements the type is “Networks”, the status is active. The spend filter “over 1,000 ₽” left three names. Each has a campaign, clicks, CR, CPA. Revenue was added, DRR was added. The 1,000 ₽ threshold is in the comment: a filter example, not evidence.
UTM is complete, values in Latin with _. One click arrived with ya instead of yandex. The line is marked, history is not rewritten.
ClientID is in the CRM, expenses for 1–7 March are loaded, orders are passed. “CRM order sources” shows channel revenue. In “Sources, expenses and ROI” the template footnote does not unpack ROI as a formula: this help text does not give one. There is no separate bots column. The invalid-traffic snapshot stays on the first line and is not added to revenue.
What to write in each column
The template falls apart when a column is named “quality” and everything lands in it. The names below are ones you can defend from the help text.
The period column is one for the sheet. If placements were read for March and invalid traffic for a week, that is two sheets, not one report.
The export-date column belongs only to invalid traffic. Placements and UTM do not have it: those are a slice at the moment you build them, and later filtering is described for the “Invalid traffic” library report. Do not copy the caveat onto CPA.
The placement column is the name from the report, with placement type, campaign number and campaign name beside it. The status “active” or “stopped” is written in the slice header. Mixing stopped with active without a label is wrong: the status filter makes them different slices.
The placement-metrics column takes what the help text lists: spend, impressions, clicks, conversions, CR, CPA. Revenue and DRR only if you added them. Do not fill an empty DRR cell with zero “to keep the row even”: a zero would mean DRR was calculated.
The UTM column notes whether the set is complete. Do not put a traffic score in it. “Set complete”, or “the utm_content grouping was removed, otherwise term is not visible”. Beside that, the writing rule: Latin or transliteration, lower case, _ or -. If a value was Cyrillic, mark the risk of distortion. Do not rewrite the visit by hand.
The source column keeps yandex and ya as they arrived. Replacing them in the template after the fact creates a source the click did not have.
The end-to-end column is four yes/no answers: tagging, expenses loaded, ClientID from getClientID stored in the CRM, clients and orders passed. Any “no” means it is early to compare channel revenue for the period. You can still open the reports and see what is missing: “CRM order sources”, “Sources, expenses and ROI”, “Visitors and clients”. Funnel stages appear when order-status goals are added to other reports, not when the word “bots” appears in the template.
The ROI column stays a number from the report, with no homemade formula in a footnote. If a manager asks for a formula, it is not taken from this help text: it is not here, and the template must not invent a fraction. Do not put a “protection effect” beside it: Binetro’s documentation does not set a before-and-after spend comparison.
The second week of the teaching sheet
The period is 8–14 March. Invalid traffic is exported on the 15th and again on the 17th. Both numbers are on the line. Placements are again type “Networks”. The filter “over 1,000 ₽” left one name this week: it is still an interface example. A placement that passed the filter last week and missed it this week does not become “good”. Its spend is simply on the other side of an example filter.
UTM on new ads was rewritten in Latin. Old visits with Cyrillic stay on the sheet with the note “the value may have been distorted”. They are not repaired. Clicks with ya for both weeks are gathered on a separate line, so they are not mixed with full yandex in a grouping.
ClientID for the second week is in the CRM, and expenses were loaded a day after the orders. Until expenses sit on the same period, the end-to-end line is “no”, even if orders are already in “CRM order sources”. After expenses are loaded the line becomes “yes”, and only then “Sources, expenses and ROI” compares channel cost with revenue. Visitors and clients stay the third report, not a replacement for the first.
The two-week outcome for a manager is a table without the word “bots”: two invalid-traffic dates, a list of placements with metrics, UTM completeness, four revenue conditions. Who clicks the ads does not become a paragraph inside this table. A motive, if you need one, lives as a link, not as a new column.
Reread the sheet on a day when filtering may have arrived. Open the invalid-traffic line, export again and add the date. Do not erase the old one. Placements and UTM do not “update themselves” from that export: they are other reports. End-to-end analytics updates when expenses or orders for the period were loaded, not when the number in Direct’s library grew. If you stamp every line with one export date, the template becomes one chart again. Keep the four blocks apart, and traffic quality stays checkable: what was recognised as invalid on a date, what placements spent, how the tags are written, and whether channel revenue met spend.
Template checklist
One period.
Invalid traffic has an export date and room for a second.
Placements are filtered by type “Networks”, and the statuses are named.
Groupings and metrics are listed; revenue and DRR only if they were added.
The 1,000 ₽ filter is not called a fraud threshold.
UTM is complete, or it says which grouping was removed.
Values have no capitals, the separator is
_or-, not Cyrillic.yais not corrected after the fact.The four end-to-end conditions are marked yes or no.
The three reports are named as themselves.
There is no “bots” column.
There is no “before and after protection”.