add google ads app with actions and triggers and add design files#233
add google ads app with actions and triggers and add design files#233nickmazurenko merged 14 commits intodevelopfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new Google Ads TypeScript integration to the Qore actions catalogue, including a polling trigger and a broad set of campaign/ad/keyword/reporting/conversion/customer-match actions, along with supporting docs and CI env wiring.
Changes:
- Introduces
src/apps/google-ads/with Google Ads SDK client, actions, trigger, helpers, and app registration. - Updates i18n and app grouping to include an “Advertising & Marketing” group and registers the new app in the English locale index.
- Adds design documentation for integration patterns/checklists and updates dependencies + CI env vars for Google Ads tests.
Reviewed changes
Copilot reviewed 67 out of 69 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| ts/yarn.lock | Locks new dependency graph including google-ads-api and its transitive deps. |
| ts/package.json | Adds google-ads-api dependency. |
| ts/src/i18n/groups.ts | Adds/renames marketing grouping to include “Advertising & Marketing”. |
| ts/src/i18n/en/index.ts | Registers GoogleAds locale module. |
| ts/src/ActionsCatalogue/index.ts | Imports/registers the new google-ads app in the catalogue. |
| ts/src/apps/google-ads/index.ts | Defines the Google Ads app entry (OAuth + connection modifiers + action/trigger mapping). |
| ts/src/apps/google-ads/constants.ts | Adds app constants, logo, and GoogleAdsError, plus connection options. |
| ts/src/apps/google-ads/client.ts | Adds SDK-backed customer client construction. |
| ts/src/apps/google-ads/helpers/*.ts | Adds GAQL-based allowed-values helpers and shared constants/error parsing. |
| ts/src/apps/google-ads/actions/*.ts | Adds campaign/ad group/ad/keyword/budget/bidding/reporting/conversion/customer-match actions. |
| ts/src/apps/google-ads/triggers/new-lead-form-submission.trigger.ts | Adds polling trigger for lead form submissions. |
| ts/src/apps/google-ads/triggers/index.ts | Exposes the trigger from the app trigger module. |
| ts/design/ts-integration-checklist.md | Adds a comprehensive TS integration pre-completion checklist. |
| ts/design/ts-integration-architecture.md | Adds architecture overview and integration pattern decision guidance. |
| ts/design/standard-app-development-guide.md | Adds guidance for unified client vs SDK-based (“third-party library”) apps. |
| ts/design/swagger-app-development-guide.md | Adds guidance for swagger-based integrations. |
| ts/design/record-based-app-development-guide.md | Adds guidance for record-based CRUD integrations. |
| ts/design/triggers-and-events-guide.md | Adds guidance for polling/webhook triggers and event schemas. |
| .github/workflows/pull_request.yml | Adds Google Ads env vars sourced from TEST_VARIABLES secrets. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 76 out of 78 changed files in this pull request and generated 25 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 77 out of 79 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 77 out of 79 changed files in this pull request and generated 10 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 78 out of 80 changed files in this pull request and generated 9 comments.
Comments suppressed due to low confidence (6)
ts/src/tests/klaviyo.test.ts:264
- This test is now unconditionally skipped via
it.skip(...), which removes CI coverage for listing segments. Prefer conditionally skipping based on credentials/plan support rather than permanently disabling within the main test suite.
ts/src/tests/facebook.test.ts:254 - Cleanup is now unconditionally skipped via
it.skip(...), meaning the suite will no longer exercise or validate deletion logic for created posts. Prefer structuring create/get/delete tests so cleanup runs when a resource is created, and conditionally skip only when prerequisites are missing.
ts/src/tests/klaviyo.test.ts:392 - This test is now unconditionally skipped via
it.skip(...), which removes CI coverage for removing tags from segments. Prefer conditionally skipping based on capability/permissions and keep the test enabled when possible.
ts/src/tests/facebook.test.ts:164 - This test is now unconditionally skipped via
it.skip(...), which removes CI coverage for fetching a created page post. Prefer conditionally skipping based on whethercreatedPostIdis set (and whether the environment permits creating posts) instead of permanently skipping.
ts/src/tests/facebook.test.ts:140 - This test is now unconditionally skipped via
it.skip(...), which removes CI coverage for creating a page post. Prefer conditionally skipping based on permissions/required FB app review rather than permanently disabling within the main test file.
ts/src/tests/klaviyo.test.ts:377 - This test is now unconditionally skipped via
it.skip(...), which removes CI coverage for adding tags to segments. Prefer conditionally skipping based on capability/permissions and keep the test enabled when the environment supports it.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 78 out of 80 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Fix contacts_added/contacts_removed to report validContacts.length - Standardize toMicros import to use shared helper instead of google-ads-api - Add required_groups to update actions and contact identifier fields - Add runtime validation for at least one update field in update actions - Wrap JSON.stringify in try/catch in getGoogleAdsErrorMessage - Mark developer_token as sensitive in connection options
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 79 out of 82 changed files in this pull request and generated 8 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.