← Adzviser TikTok AdsCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Adzviser TikTok Ads
Snapshot Sep 30, 2026 · 23:11 UTC · version 1.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "adzviser-preview-ui-mode",
"description": "Open Adzviser's interactive embedded report preview in ChatGPT so the user can inspect, edit, or run a reporting request in the widget. Use only when the user explicitly asks for Preview UI, UI Mode, an interactive or embedded report, a report builder, or a chance to review or edit the request before running it. Do not use for raw rows, Data Mode, audits, calculations, comparisons, or programmatic analysis.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 239
}
],
"skill_md_contents": "---\nname: adzviser-preview-ui-mode\ndescription: Open Adzviser's interactive embedded report preview in ChatGPT so the user can inspect, edit, or run a reporting request in the widget. Use only when the user explicitly asks for Preview UI, UI Mode, an interactive or embedded report, a report builder, or a chance to review or edit the request before running it. Do not use for raw rows, Data Mode, audits, calculations, comparisons, or programmatic analysis.\n---\n\n# Adzviser Preview UI Mode\n\nPrepare a valid reporting request and open the Adzviser component once so the user can inspect or edit it interactively inside ChatGPT.\n\n## Route to the preview tool\n\n- Call `preview_and_retrieve_reporting_data` only for this workflow.\n- Do not call it merely because the user says “show me” when the task requires ChatGPT to inspect numbers. Use `retrieve_reporting_data` for analysis, audits, raw rows, calculations, comparisons, and `reporting_mode=data`.\n- Treat `reporting_mode=ui` as user intent that selects the preview tool; it is not an argument to send.\n- Never send `client_id`, `reporting_mode`, or `_widget_action`. Never call `set_reporting_mode`; that is an app-only preference control used by the component.\n- If a user asks for both an analysis and an interactive report, use Data Mode for the analysis and open Preview UI only as a separate, explicitly requested deliverable.\n\n## Follow the preview workflow\n\n1. Identify the requested data sources, measures, dimensions, time window, and comparison periods. Ask one concise question only when a missing choice would materially change the report.\n2. Resolve relative dates from the current date available to ChatGPT. Pass inclusive `[start_date, end_date]` pairs in `YYYY-MM-DD` format. Never copy a fixed “today” date from an example.\n3. Call `list_workspace`. Use a user-named workspace when it exists. Otherwise auto-select only when one workspace unambiguously contains every requested connected source; ask when multiple candidates remain.\n4. For every requested source, call its `list_metrics_and_breakdowns_*` tool and use the exact returned field names.\n5. Build one `adzviser_request` with `workspace_name`, `date_ranges`, optional `time_granularity`, and an `assorted_requests` object containing only the requested sources.\n6. Call `preview_and_retrieve_reporting_data` exactly once with `{ \"adzviser_request\": ... }`.\n7. Briefly tell the user that the interactive report is ready. Do not invent results or claim that the preview response already contains report rows.\n\n## Compose valid requests\n\n- `assorted_requests` must be an object, never an array.\n- Include only requested sources. Do not add empty source requests.\n- Each ordinary source request must contain `metrics`; include `breakdowns` only when useful.\n- Keep at least one requested metric or breakdown for every included source.\n- Do not put Date, Week, Month, Quarter, or Year in `breakdowns`; use `time_granularity` instead.\n- Use multiple date-range pairs when the user wants distinct comparison periods.\n\nExample shape:\n\n```json\n{\n \"adzviser_request\": {\n \"workspace_name\": \"Workspace Name\",\n \"date_ranges\": [[\"2026-08-01\", \"2026-08-20\"]],\n \"assorted_requests\": {\n \"google_ads_request\": {\n \"metrics\": [\"Cost\", \"Conversions\"],\n \"breakdowns\": [\"Campaign Name\"]\n }\n }\n }\n}\n```\n\nThe field labels above illustrate structure only. Always obtain valid labels from the corresponding discovery tool.\n\n## Respect ChatGPT's component lifecycle\n\n- Calling the preview tool mounts the iframe because the tool descriptor is statically associated with a UI resource. This is why the raw-data path must use a different tool.\n- The preview response contains configuration for the component, not the final reporting rows. Do not analyze it as campaign performance.\n- The component can call reporting tools through the MCP Apps bridge. Let it handle its own Run and mode-toggle interactions; do not duplicate those calls from the conversation.\n- In UI Mode, the rows may stay inside the component for visual inspection. Do not claim to have analyzed rows that were never published to the model.\n- If the user switches the component to Data Mode, it can publish model-visible reporting data and send a follow-up message. Analyze those newly supplied rows directly; do not rerun the same report unless the data is absent or the user changes the request.\n- `structuredContent` is visible to ChatGPT. `_meta` is component-only and hidden from the model; never rely on `_meta` for conclusions.\n- Do not ask the user to confirm or rerun immediately after the preview opens. The component already provides its own controls.\n\n## Handle problems without changing modes\n\n- If the workspace is unavailable, report what `list_workspace` returned and ask the user to choose or connect the needed source.\n- Different ChatGPT and advertising-account email addresses do not by themselves prove an authentication problem. Use the connected Adzviser workspace shown by the tools as the authorization context.\n- If a metric or breakdown is rejected, refresh the corresponding discovery tool, correct the request once, and retry.\n- If the user changes the request to raw data or analysis, stop this workflow and use `retrieve_reporting_data`; do not pass a Data Mode flag to the preview tool.\n"
}SHA-256: d1ded95bc75b5bddf167895f5cc83cf654449eb3f91c830c0b557128ba07cd4e