Campaign Offer Guard: Promotion & Ad Review
Pricing
from $0.25 / completed campaign review
Campaign Offer Guard: Promotion & Ad Review
Compare approved offers with campaign records you supply. Review price, timing and evidence conflicts without connecting to advertising accounts.
Pricing
from $0.25 / completed campaign review
Rating
0.0
(0)
Developer
Critical Distinction
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Put the approved offer beside the campaign.
Compare approved promotions with the campaign and observed-offer records you supply. See recorded price or timing conflicts, missing evidence and the campaigns needing another look. Advertising accounts stay untouched.
Try the example · Prepare your files · Pricing · Help
What you receive
Open REPORT.html for the overview, then use exceptions.csv for the working list. report.json preserves structured findings and source-row references.
The review distinguishes Recorded offer conflict, Needs source confirmation and No discrepancy found in the checked fields. A record can have both a conflict and missing evidence. No discrepancy means only that the checked fields agree; it is not approval to launch an advertisement.
For example, an approved price can disagree with the campaign record while the offer observation is also too old. Both issues stay visible instead of becoming one unexplained score.
Try the fictional example
Open the campaign example, or select Try the fictional example in the Actor's form. Check the maximum cost, start the run and open REPORT.html from Output.
The example is fictional and historical, not an active promotion. It uses the normal price: $0.25 per completed report plus $0.00005 per start. Platform “Try for free” wording does not waive that price.
Use your own prepared records
Choose Review my files and supply three tables:
- Approved offers: product variant, approved revision, price and time windows.
- Campaign records: the explicit relationship between each recorded campaign activation and its approved offer.
- Observed offers: the recorded price and when it was observed.
Use the templates in the input form. When your headers differ, supply an explicit column mapping. Choose an evaluation time and acceptable observation age; upload time is not a substitute for observation time.
A raw advertising export may not contain everything needed. You must also supply the approved register and the identity, price-scale and timezone declarations needed to compare it. Google Ads and Merchant Center files are not automatically compatible. A published promotion does not prove that it was approved.
The supported review checks fixed-price offers with one variant per record. Coupons, baskets, bundles, percentage discounts and subscriptions are not treated as equivalent fixed-price offers. Unsupported or incomplete conditions remain questions. The Actor does not test live checkout, change advertising accounts or calculate money saved.
Know what to fix before trying again
When preparation prevents a review, the run identifies supported corrections such as a missing mapping, invalid time format or exceeded limit. Guidance names our required fields instead of exposing private source headers or values in logs. Some failures can give only general guidance. An unresolved mapped approval clock can remain a normal completed review; not every evidence gap is invalid input.
Invalid preparation does not initiate a completed-report charge. The start event may still apply.
Can two approved offers contradict each other?
Compare the fixed-price offers you plan to show together. See overlapping prices, the shared product and time window, and the missing details that prevent a clear comparison. Catch a conflict before asking someone to approve a launch.
This checks your supplied records and placement declarations. It does not test checkout, change campaigns, authenticate approval or prove lost sales. A conflict-free review is not permission to launch.
Try the complete fictional case: select Try the offer collision example in the Actor's form, or supply {"mode":"collision-example"} through the API. It returns three conflicting pairs across two offer IDs and three revisions, associated with one campaign. The campaign's supplied $100 spend is counted once. Normal pricing applies: $0.25 per completed report plus $0.00005 per start. The original campaign example remains available.
In Review my files, optionally fill Compare offers shown together (collisionReview) with JSON text:
{"bindings":[{"account":"fictional-account","source":"approved-ledger","row_id":"offer-row-a","placement":"homepage","audience":"retail"},{"account":"fictional-account","source":"approved-ledger","row_id":"offer-row-b","placement":"homepage","audience":"retail"}]}
Each reference must match a row in your approved-offer table. Identical placement and audience labels declare that those offers can be shown together, within the same account and source. A shared SKU alone never establishes that relationship. Missing or different labels leave the relationship unassessed; they do not prove the offers are mutually exclusive.
The review compares exact fixed prices for the same product, variant, market and currency during the intersection of both offers' effective and display windows. Starts are inclusive; your declared end inclusivity is retained, including a single shared instant. Equivalent values such as 10.0 and 10.00 agree. Unsupported conditions, incomparable currencies and missing evidence remain questions. A newer file or approval timestamp never silently replaces another revision.
For prelaunch offers without campaign or observed records, supply [] for both tables, select JSON for their formats, and clear the example mapping when using canonical field names. At least two approved offers are required for this collision-only route. The original review remains available by leaving collisionReview blank.
REPORT.html and summary.txt explain every recorded collision or question; report.json retains exact scoped source rows, original prices and clocks, shared windows, coverage and distinct affected offer/revision/campaign counts. exceptions.csv continues to list campaign activation findings. Pair counts are not separate spend, losses or savings. Missing declarations and unassessed pairs remain visible in coverage.
At most 250 bindings share the existing input limit. Complete collision findings also share the 10,000 source-reference and 8 MiB combined-result limits with the ordinary review. Dense reviews can exceed these limits before reaching 250 offers; split the declared review instead of accepting a truncated answer. Splitting does not check pairs across separate runs. Price and completion/recovery rules are unchanged.
Pricing and limits
$0.25 per completed report, including this Actor's platform usage, plus $0.00005 per start. No extra fee applies per conflict, source row or Dataset row. Event prices are the same across plan tiers. Subscriptions, taxes and unrelated services are separate; check the current Pricing tab before starting.
A valid completed report with missing or conflicting evidence is still billable. Invalid preparation and incomplete or unacknowledged report publication do not initiate the completed-report charge. An unknown charge request may already have settled.
Input ceilings are 250 approved-offer rows, 1,000 campaign-activation rows and 1,000 observation rows, subject to 8 MiB combined input, 256 UTF-8 bytes per field, bounded source references and 8 MiB combined results. Mapping and controls count toward input limits. Not every maximum-width combination fits. Over-limit work stops rather than silently dropping records.
Understand the result
Supplied campaign spend is not lost revenue, avoidable loss or potential savings. Spend that cannot be reconciled by identity, currency and period remains unresolved. Repeated warnings do not represent distinct spend. Source labels, revision declarations and file fingerprints do not authenticate approval or grant data-use permission.
This is a review of your files. Keep the original records and make any campaign or approval decisions through your own processes.
Privacy, recovery and help
Use records you are permitted to supply, without credentials or unrelated personal information. Inputs and results remain in selected Apify storage; choose suitable access and retention. The Actor does not connect to private systems, purchase data, edit campaigns, relay files to our workstation or automatically delete storage.
A stopped run may already have a report or a charge. Inspect Output and retained completion/billing state before starting another. An unknown operation is not proof that nothing happened or that repeating it is free. Results are published before the completed-report charge is requested; interrupted effects are not blindly replayed.
Use the Issues tab with a run ID and fictional example. Do not post confidential exports, access links or credentials.
Existing saved workflows
New users can start with the example. The delivered numbered build 0.2.2, verified October 8, 2026, supports this guide's prepared-file review and preparation corrections. Saved tasks may retain older selections. Preserve original files and read the public release notes before changing them. A numbered build is a fixed selection; movable tags are not permanent version identifiers.
The 0.2 contract preserves explicit mapping, fixed-price review, evidence gaps and pricing from the earlier hosted release, while improving preparation guidance. Earlier local file-only prototypes are not selectable public releases.