{"id":48727,"plugin_id":"plugins_6abfd06fd7b481918f511feab2f806ea","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:37:22.690Z","digest":"f7a2b7b2b46b8934970909bb75a1e17876f6a69a05671fceebed8e7f21da5e34","against":null,"payload":{"description":"Set Google Ads target CPA or target ROAS from unit economics instead of past results. Calculates break-even and target CPA or ROAS for e-commerce (order value, margin, lifetime value) and lead generation (deal value, funnel rates), adjusted for incrementality. Use when the user asks what tCPA or tROAS to set, whether a target is too high or low, or how much they can pay per lead or sale.","included_files":[{"relative_path":"references/ad-copy.md","size_in_bytes":1871},{"relative_path":"references/audit-checklist.md","size_in_bytes":2665},{"relative_path":"references/bidding-budgets.md","size_in_bytes":3945},{"relative_path":"references/diagnostics.md","size_in_bytes":3464},{"relative_path":"references/measurement.md","size_in_bytes":2413},{"relative_path":"references/myths.md","size_in_bytes":3618},{"relative_path":"references/platform-facts.md","size_in_bytes":17913},{"relative_path":"references/principles.md","size_in_bytes":3471},{"relative_path":"references/search-terms-negatives.md","size_in_bytes":3561},{"relative_path":"references/structure-pmax.md","size_in_bytes":3357},{"relative_path":"scripts/ppc.py","size_in_bytes":75759}],"name":"bid-targets","skill_md_contents":"---\nname: bid-targets\ndescription: Set Google Ads target CPA or target ROAS from unit economics instead of past results. Calculates break-even and target CPA or ROAS for e-commerce (order value, margin, lifetime value) and lead generation (deal value, funnel rates), adjusted for incrementality. Use when the user asks what tCPA or tROAS to set, whether a target is too high or low, or how much they can pay per lead or sale.\n---\n\n# Bid targets from unit economics\n\nTurns business numbers into a target CPA or ROAS the bidder can use, and explains the gap with the current target.\n\nThe user's explicit instructions take priority over this guidance. Reply in the user's language.\n\n## Inputs\n\nE-commerce: average order value, gross margin, repeat purchase (lifetime value as a multiple of the first order), profit to keep.\n\nLead generation: deal or customer value, margin, lead-to-opportunity rate, opportunity-to-win rate, lifetime multiple, profit to keep.\n\nOptional: share of reported conversions that are incremental (from a lift test; default 100%). Current target and current CPA or ROAS.\n\nAsk for what is missing in one message. If the user does not know a rate, use their best estimate and say the result moves with it.\n\n## Steps\n\n1. Run `python scripts/ppc.py targets --order-value V --margin M [--ltv-multiple L] [--profit-share P] [--incrementality I]`, or `--deal-value D --lead-to-opp R1 --opp-to-win R2 --margin M ...` for leads.\n2. Show the calculation steps from `steps`, one per line.\n3. Compare with the current target and the current results:\n   - Target far below break-even: room to scale; raise it in steps of 10% to 20%.\n   - Target above break-even: the account buys conversions at a loss at the margin.\n4. Remind that the target governs the marginal conversion. Average CPA is below the marginal one.\n\n## Rules\n\n- Never set a target by copying last period's ROAS or CPA. Start from the economics, then watch volume.\n- Do not apply margin or LTV twice if conversion values already include them.\n- Check whether the campaign uses a portfolio before suggesting a change (`references/bidding-budgets.md`).\n- Changes in steps, then wait 1 to 2 conversion cycles (`references/platform-facts.md`).\n\n## Scripts and references\n\n- `scripts/ppc.py targets`; `references/bidding-budgets.md`.\n- If code execution is not available, show the arithmetic by hand.\n\n## Running the script\n\n- Run it with the Python that has pandas installed (`python` in ChatGPT's code environment). Write outputs to the working folder (for example `--out /mnt/data/result`) and share the files with the user.\n- Put ad text and any value with `$` in single quotes, or pass a CSV with `--data`: the shell expands `\"$12\"`.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}