- Implemented a new logs page with filters for level, source, and date range.
- Added a data table to display logs with pagination and sorting capabilities.
- Created backend functionality to fetch logs data based on filters.
- Introduced a new Logs class for handling log data operations.
- Added a new database migration for the logs table.
- Enhanced UI with custom checkbox styles for better user experience.
- Updated navigation to include a link to the logs page.
- Implemented a new PHP script to retrieve insights for the last N days (default 30).
- Supports command-line options for token, account ID, days, API version, and output file.
- Fetches data at campaign, adset, and ad levels, with filtering for active statuses.
- Handles JSON output and optional file saving, including directory creation if necessary.
- Includes error handling for cURL requests and JSON responses.
- Added a new field to display the cron URL plan in user settings.
- Updated JavaScript to handle the new plan data.
refactor: Unify product model and migrate data
- Migrated product data from `products_data` to `products` table.
- Added new columns to `products` for better data organization.
- Created `products_aggregate` table for storing aggregated product metrics.
chore: Drop deprecated products_data table
- Removed `products_data` table as data is now stored in `products`.
feat: Add merchant URL flags to products
- Introduced flags for tracking merchant URL status in `products` table.
- Normalized product URLs to handle empty or invalid values.
feat: Link campaign alerts to specific products
- Added `product_id` column to `campaign_alerts` table for better tracking.
- Created an index for efficient querying of alerts by product.
chore: Add debug scripts for client data inspection
- Created debug scripts to inspect client data from local and remote databases.
- Included error handling and output formatting for better readability.
- Introduced a new `CampaignAlerts` class for handling alerts logic.
- Added database migration for `campaign_alerts` table creation.
- Implemented methods for fetching, marking, and deleting alerts in the `CampaignAlerts` factory class.
- Created a new view for displaying campaign alerts with filtering options.
- Updated the main client view to include a badge for the number of alerts.
- Enhanced sync functionality to support campaigns and products separately.
- Adjusted styles for alert badges in the UI.
- Updated SCSS styles for new campaign sync buttons and dropdowns.
- Refactored main_view.php to replace the single select for campaigns with a multi-select dropdown.
- Added JavaScript functions to handle dropdown interactions and sync status updates.
- Introduced sync status bars for clients in main_view.php.
- Created new database migrations for client sync flags and cron sync status tracking.
- Set max-width and overflow properties for body and campaigns-page to enhance responsiveness.
- Adjust flex properties and min-width for filter groups to ensure proper layout.
- Refactor spacing and formatting for better readability in various sections.
- Hide scrollbars for specific elements to improve aesthetics.
- Ensure consistent formatting for nested selectors and properties.
- Created XmlFiles control class for handling XML file views and regeneration.
- Implemented method to retrieve clients with XML feeds in the factory class.
- Added database migration to include google_merchant_account_id in clients table.
- Created migrations for products_keyword_planner_terms and products_merchant_sync_log tables.
- Added campaign_keywords table migration for managing campaign keyword data.
- Developed main view template for displaying XML files and their statuses.
- Introduced a debug script for analyzing product URLs and their statuses.
- Updated GoogleAdsApi class to include new GAQL queries for Performance Max campaigns and fallback mechanisms.
- Refactored data collection logic to handle ad groups and asset groups more effectively.
- Modified get_campaigns_30_days and get_campaigns_all_time methods to accept an optional date parameter for improved date filtering.
- Introduced a new UI feature in the products main view to allow users to toggle column visibility, enhancing user experience.
- Implemented local storage functionality to remember user preferences for column visibility across sessions.
- Changed font from Open Sans to Roboto in layout files.
- Added campaign and ad group filters in products main view.
- Enhanced product history to include campaign and ad group IDs.
- Updated migrations to support new campaign and ad group dimensions in product statistics.
- Introduced new migration files for managing campaign types and dropping obsolete columns.
- Nowy moduł CampaignTerms z widokiem grup reklam, fraz wyszukiwanych i fraz wykluczających
- Frazy wyszukiwane dodane do wykluczonych oznaczane czerwonym kolorem w tabeli
- Instalator migracji (install.php) z obsługą schema_migrations
- Migracja 003 dla tabel campaign_ad_groups, campaign_search_terms, campaign_negative_keywords
- CLAUDE.md z dokumentacją architektury projektu
- Aktualizacja layoutu, stylów i konfiguracji
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create migration for global settings table and add google_ads_customer_id and google_ads_start_date columns to clients table.
- Add migration to include product_url column in products_data table.
- Insert demo data for campaigns, products, and their history for client 'pomysloweprezenty.pl'.
- Implement client management interface with modals for adding and editing clients, including Google Ads Customer ID and data retrieval start date.
- Implemented Google Taxonomy loading via AJAX in main_view.php, allowing users to select categories for products.
- Enhanced product editing modal to include fields for product title, description, and Google category selection.
- Updated AJAX calls to save product data, including custom title, description, and selected Google category.
- Added character count validation for product title input.
- Integrated Select2 for improved category selection UI.
- Created google-taxonomy.php to fetch and cache Google Taxonomy data, ensuring efficient retrieval and fallback mechanisms.
- Removed outdated custom feed XML file.
- Updated layout-logged.php to include necessary Select2 styles and scripts.
- Introduced a new layout for the product history page, integrating a comment form next to the chart.
- Styled the comment form with SCSS for better user experience.
- Implemented form submission via AJAX to save comments without page reload.
- Set default date in the comment form to today's date.
- Enhanced error handling for AJAX requests related to comment submission.