| @@ -5,8 +5,9 @@ | ||
| 5 | 5 | use WP_REST_Request; |
| 6 | 6 | use WPDeveloper\BetterDocs\Core\BaseAPI; |
| 7 | 7 | use WPDeveloper\BetterDocs\Core\SiteProfiler; |
| 8 | 8 | use WPDeveloper\BetterDocs\Core\Settings; |
| 9 | +use WPDeveloper\BetterDocs\Utils\AIUsage; | |
| 9 | 10 | use WPDeveloper\BetterDocs\Dependencies\DI\Container; |
| 10 | 11 | |
| 11 | 12 | /** |
| 12 | 13 | * REST surface for the AI "Generate Sample Docs" feature (Phase 2). |
| @@ -254,8 +255,12 @@ | ||
| 254 | 255 | } |
| 255 | 256 | |
| 256 | 257 | do_action( 'betterdocs_sample_docs_generated', $content_type, count( $categories ) ); |
| 257 | 258 | |
| 259 | + // Usage telemetry: one successful generation, bucketed by content type | |
| 260 | + // (docs/faq/product_faq). No single post here, so post_id = 0. | |
| 261 | + AIUsage::record( 'sample_docs', 0, $content_type ); | |
| 262 | + | |
| 258 | 263 | return $this->success( |
| 259 | 264 | [ |
| 260 | 265 | 'content_type' => $content_type, |
| 261 | 266 | 'categories' => $categories, |
| @@ -363,8 +368,12 @@ | ||
| 363 | 368 | |
| 364 | 369 | $outline = $this->sanitize_outline( $parsed['outline'] ); |
| 365 | 370 | |
| 366 | 371 | do_action( 'betterdocs_sample_docs_generated', 'docs', count( $outline['categories'] ) ); |
| 372 | + | |
| 373 | + // Usage telemetry: the deep-KB outline is the once-per-generation success point | |
| 374 | + // for the docs flow (article() runs per-article and must NOT be counted). | |
| 375 | + AIUsage::record( 'sample_docs', 0, 'docs' ); | |
| 367 | 376 | |
| 368 | 377 | return $this->success( |
| 369 | 378 | [ |
| 370 | 379 | 'content_type' => 'docs', |