@postrun/js 2.21.0 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -361,7 +361,7 @@ type ClientOptions = {
361
361
  *
362
362
  * The closed set of machine-readable Postrun error codes. Branch on this. Each links to https://docs.postrun.ai/errors/<code>.
363
363
  */
364
- type ErrorCode = 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
364
+ type ErrorCode = 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
365
365
  type Media = {
366
366
  id: string;
367
367
  object: 'media';
@@ -663,7 +663,7 @@ type PostVariant = {
663
663
  published_at: string;
664
664
  } | null;
665
665
  error: {
666
- code: string;
666
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
667
667
  message: string;
668
668
  /**
669
669
  * A short, friendly end-user line for `code` (render verbatim). `message` stays developer-grade; this is the display string.
@@ -676,12 +676,6 @@ type PostVariant = {
676
676
  * Ordering of this media within the variant (e.g. carousel order).
677
677
  */
678
678
  position: number;
679
- /**
680
- * Per-variant crop, applied at publish; null = none.
681
- */
682
- crop_box: {
683
- [key: string]: unknown;
684
- } | null;
685
679
  /**
686
680
  * Per-variant alt text; falls back to the asset’s alt_text.
687
681
  */
@@ -790,7 +784,7 @@ type PostVariant = {
790
784
  published_at: string;
791
785
  } | null;
792
786
  error: {
793
- code: string;
787
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
794
788
  message: string;
795
789
  /**
796
790
  * A short, friendly end-user line for `code` (render verbatim). `message` stays developer-grade; this is the display string.
@@ -803,12 +797,6 @@ type PostVariant = {
803
797
  * Ordering of this media within the variant (e.g. carousel order).
804
798
  */
805
799
  position: number;
806
- /**
807
- * Per-variant crop, applied at publish; null = none.
808
- */
809
- crop_box: {
810
- [key: string]: unknown;
811
- } | null;
812
800
  /**
813
801
  * Per-variant alt text; falls back to the asset’s alt_text.
814
802
  */
@@ -845,7 +833,7 @@ type PostVariant = {
845
833
  published_at: string;
846
834
  } | null;
847
835
  error: {
848
- code: string;
836
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
849
837
  message: string;
850
838
  /**
851
839
  * A short, friendly end-user line for `code` (render verbatim). `message` stays developer-grade; this is the display string.
@@ -858,12 +846,6 @@ type PostVariant = {
858
846
  * Ordering of this media within the variant (e.g. carousel order).
859
847
  */
860
848
  position: number;
861
- /**
862
- * Per-variant crop, applied at publish; null = none.
863
- */
864
- crop_box: {
865
- [key: string]: unknown;
866
- } | null;
867
849
  /**
868
850
  * Per-variant alt text; falls back to the asset’s alt_text.
869
851
  */
@@ -941,7 +923,7 @@ type PostVariant = {
941
923
  published_at: string;
942
924
  } | null;
943
925
  error: {
944
- code: string;
926
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
945
927
  message: string;
946
928
  /**
947
929
  * A short, friendly end-user line for `code` (render verbatim). `message` stays developer-grade; this is the display string.
@@ -954,12 +936,6 @@ type PostVariant = {
954
936
  * Ordering of this media within the variant (e.g. carousel order).
955
937
  */
956
938
  position: number;
957
- /**
958
- * Per-variant crop, applied at publish; null = none.
959
- */
960
- crop_box: {
961
- [key: string]: unknown;
962
- } | null;
963
939
  /**
964
940
  * Per-variant alt text; falls back to the asset’s alt_text.
965
941
  */
@@ -1032,7 +1008,7 @@ type PostVariant = {
1032
1008
  published_at: string;
1033
1009
  } | null;
1034
1010
  error: {
1035
- code: string;
1011
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
1036
1012
  message: string;
1037
1013
  /**
1038
1014
  * A short, friendly end-user line for `code` (render verbatim). `message` stays developer-grade; this is the display string.
@@ -1045,12 +1021,6 @@ type PostVariant = {
1045
1021
  * Ordering of this media within the variant (e.g. carousel order).
1046
1022
  */
1047
1023
  position: number;
1048
- /**
1049
- * Per-variant crop, applied at publish; null = none.
1050
- */
1051
- crop_box: {
1052
- [key: string]: unknown;
1053
- } | null;
1054
1024
  /**
1055
1025
  * Per-variant alt text; falls back to the asset’s alt_text.
1056
1026
  */
@@ -1259,12 +1229,6 @@ type PostVariantInput = {
1259
1229
  */
1260
1230
  media?: Array<{
1261
1231
  media_id: string;
1262
- /**
1263
- * Per-variant crop applied at publish; omit for none.
1264
- */
1265
- crop_box?: {
1266
- [key: string]: unknown;
1267
- } | null;
1268
1232
  /**
1269
1233
  * Per-variant alt text; falls back to the asset's.
1270
1234
  */
@@ -1367,12 +1331,6 @@ type PostVariantInput = {
1367
1331
  */
1368
1332
  media?: Array<{
1369
1333
  media_id: string;
1370
- /**
1371
- * Per-variant crop applied at publish; omit for none.
1372
- */
1373
- crop_box?: {
1374
- [key: string]: unknown;
1375
- } | null;
1376
1334
  /**
1377
1335
  * Per-variant alt text; falls back to the asset's.
1378
1336
  */
@@ -1444,12 +1402,6 @@ type PostVariantInput = {
1444
1402
  */
1445
1403
  media?: Array<{
1446
1404
  media_id: string;
1447
- /**
1448
- * Per-variant crop applied at publish; omit for none.
1449
- */
1450
- crop_box?: {
1451
- [key: string]: unknown;
1452
- } | null;
1453
1405
  /**
1454
1406
  * Per-variant alt text; falls back to the asset's.
1455
1407
  */
@@ -1480,12 +1432,6 @@ type PostVariantInput = {
1480
1432
  */
1481
1433
  media?: Array<{
1482
1434
  media_id: string;
1483
- /**
1484
- * Per-variant crop applied at publish; omit for none.
1485
- */
1486
- crop_box?: {
1487
- [key: string]: unknown;
1488
- } | null;
1489
1435
  /**
1490
1436
  * Per-variant alt text; falls back to the asset's.
1491
1437
  */
@@ -1552,12 +1498,6 @@ type PostVariantInput = {
1552
1498
  */
1553
1499
  media?: Array<{
1554
1500
  media_id: string;
1555
- /**
1556
- * Per-variant crop applied at publish; omit for none.
1557
- */
1558
- crop_box?: {
1559
- [key: string]: unknown;
1560
- } | null;
1561
1501
  /**
1562
1502
  * Per-variant alt text; falls back to the asset's.
1563
1503
  */
@@ -1676,7 +1616,7 @@ type GoogleAdsCampaignCriterion = {
1676
1616
  negative: boolean;
1677
1617
  language_constant: string | null;
1678
1618
  } | {
1679
- type: 'UNSPECIFIED' | 'UNKNOWN' | 'KEYWORD' | 'PLACEMENT' | 'MOBILE_APP_CATEGORY' | 'MOBILE_APPLICATION' | 'DEVICE' | 'LISTING_GROUP' | 'AD_SCHEDULE' | 'AGE_RANGE' | 'GENDER' | 'INCOME_RANGE' | 'PARENTAL_STATUS' | 'YOUTUBE_VIDEO' | 'YOUTUBE_CHANNEL' | 'USER_LIST' | 'PROXIMITY' | 'TOPIC' | 'LISTING_SCOPE' | 'IP_BLOCK' | 'CONTENT_LABEL' | 'CARRIER' | 'USER_INTEREST' | 'WEBPAGE' | 'OPERATING_SYSTEM_VERSION' | 'APP_PAYMENT_MODEL' | 'MOBILE_DEVICE' | 'CUSTOM_AFFINITY' | 'CUSTOM_INTENT' | 'LOCATION_GROUP' | 'CUSTOM_AUDIENCE' | 'COMBINED_AUDIENCE' | 'KEYWORD_THEME' | 'AUDIENCE' | 'NEGATIVE_KEYWORD_LIST' | 'LOCAL_SERVICE_ID' | 'SEARCH_THEME' | 'BRAND' | 'BRAND_LIST' | 'LIFE_EVENT' | 'WEBPAGE_LIST' | 'VIDEO_LINEUP' | 'PLACEMENT_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE';
1619
+ type: 'UNSPECIFIED' | 'UNKNOWN' | 'KEYWORD' | 'PLACEMENT' | 'MOBILE_APP_CATEGORY' | 'MOBILE_APPLICATION' | 'DEVICE' | 'LISTING_GROUP' | 'AD_SCHEDULE' | 'AGE_RANGE' | 'GENDER' | 'INCOME_RANGE' | 'PARENTAL_STATUS' | 'YOUTUBE_VIDEO' | 'YOUTUBE_CHANNEL' | 'USER_LIST' | 'PROXIMITY' | 'TOPIC' | 'LISTING_SCOPE' | 'IP_BLOCK' | 'CONTENT_LABEL' | 'CARRIER' | 'USER_INTEREST' | 'WEBPAGE' | 'OPERATING_SYSTEM_VERSION' | 'APP_PAYMENT_MODEL' | 'MOBILE_DEVICE' | 'CUSTOM_AFFINITY' | 'CUSTOM_INTENT' | 'LOCATION_GROUP' | 'CUSTOM_AUDIENCE' | 'COMBINED_AUDIENCE' | 'KEYWORD_THEME' | 'AUDIENCE' | 'NEGATIVE_KEYWORD_LIST' | 'LOCAL_SERVICE_ID' | 'SEARCH_THEME' | 'BRAND' | 'BRAND_LIST' | 'LIFE_EVENT' | 'WEBPAGE_LIST' | 'VIDEO_LINEUP' | 'PLACEMENT_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE' | 'RETAIL_FILTER_BUNDLE' | 'RETAIL_FILTER';
1680
1620
  criterion_id: string;
1681
1621
  };
1682
1622
  /**
@@ -1725,7 +1665,7 @@ type GoogleAdsAdGroupCriterion = {
1725
1665
  negative: boolean;
1726
1666
  custom_audience: string | null;
1727
1667
  } | {
1728
- type: 'UNSPECIFIED' | 'UNKNOWN' | 'KEYWORD' | 'PLACEMENT' | 'MOBILE_APP_CATEGORY' | 'MOBILE_APPLICATION' | 'DEVICE' | 'LOCATION' | 'LISTING_GROUP' | 'AD_SCHEDULE' | 'YOUTUBE_VIDEO' | 'YOUTUBE_CHANNEL' | 'PROXIMITY' | 'TOPIC' | 'LISTING_SCOPE' | 'LANGUAGE' | 'IP_BLOCK' | 'CONTENT_LABEL' | 'CARRIER' | 'USER_INTEREST' | 'WEBPAGE' | 'OPERATING_SYSTEM_VERSION' | 'APP_PAYMENT_MODEL' | 'MOBILE_DEVICE' | 'CUSTOM_AFFINITY' | 'CUSTOM_INTENT' | 'LOCATION_GROUP' | 'COMBINED_AUDIENCE' | 'KEYWORD_THEME' | 'NEGATIVE_KEYWORD_LIST' | 'LOCAL_SERVICE_ID' | 'SEARCH_THEME' | 'BRAND' | 'BRAND_LIST' | 'LIFE_EVENT' | 'WEBPAGE_LIST' | 'VIDEO_LINEUP' | 'PLACEMENT_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE';
1668
+ type: 'UNSPECIFIED' | 'UNKNOWN' | 'KEYWORD' | 'PLACEMENT' | 'MOBILE_APP_CATEGORY' | 'MOBILE_APPLICATION' | 'DEVICE' | 'LOCATION' | 'LISTING_GROUP' | 'AD_SCHEDULE' | 'YOUTUBE_VIDEO' | 'YOUTUBE_CHANNEL' | 'PROXIMITY' | 'TOPIC' | 'LISTING_SCOPE' | 'LANGUAGE' | 'IP_BLOCK' | 'CONTENT_LABEL' | 'CARRIER' | 'USER_INTEREST' | 'WEBPAGE' | 'OPERATING_SYSTEM_VERSION' | 'APP_PAYMENT_MODEL' | 'MOBILE_DEVICE' | 'CUSTOM_AFFINITY' | 'CUSTOM_INTENT' | 'LOCATION_GROUP' | 'COMBINED_AUDIENCE' | 'KEYWORD_THEME' | 'NEGATIVE_KEYWORD_LIST' | 'LOCAL_SERVICE_ID' | 'SEARCH_THEME' | 'BRAND' | 'BRAND_LIST' | 'LIFE_EVENT' | 'WEBPAGE_LIST' | 'VIDEO_LINEUP' | 'PLACEMENT_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE_LIST' | 'VERTICAL_ADS_ITEM_GROUP_RULE' | 'RETAIL_FILTER_BUNDLE' | 'RETAIL_FILTER';
1729
1669
  criterion_id: string;
1730
1670
  };
1731
1671
  /**
@@ -1740,6 +1680,19 @@ type GoogleAdsGeoTargetConstant = {
1740
1680
  target_type: string | null;
1741
1681
  status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVAL_PLANNED';
1742
1682
  };
1683
+ /**
1684
+ * A Google Ads URL custom parameter ({_key} → value).
1685
+ */
1686
+ type GoogleAdsUrlCustomParameter = {
1687
+ /**
1688
+ * The {_key} name referenced in a tracking template / suffix. Alphanumeric, ≤ 16 bytes, unique (case-insensitive).
1689
+ */
1690
+ key: string;
1691
+ /**
1692
+ * The value substituted for {_key}. ≤ 200 bytes.
1693
+ */
1694
+ value: string;
1695
+ };
1743
1696
  type GoogleAdsCreateResult = {
1744
1697
  /**
1745
1698
  * The id handle of the created resource (the bare numeric id, or the composite {ad_group_id}~{id} for an association resource such as an ad or keyword), or null on a dry run.
@@ -9548,7 +9501,7 @@ type PostsValidateResponses = {
9548
9501
  object: 'validation';
9549
9502
  publishable: boolean;
9550
9503
  issues: Array<{
9551
- code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
9504
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
9552
9505
  message: string;
9553
9506
  hint?: string;
9554
9507
  allowed?: Array<string>;
@@ -12367,7 +12320,7 @@ type GoogleGetAccountErrors = {
12367
12320
  type GoogleGetAccountError = GoogleGetAccountErrors[keyof GoogleGetAccountErrors];
12368
12321
  type GoogleGetAccountResponses = {
12369
12322
  /**
12370
- * A connected Google Ads account (the `customer` resource): id, descriptive name, currency, time zone, status, and whether it is a manager (MCC) or test account.
12323
+ * A connected Google Ads account (the `customer` resource): id, descriptive name, currency, time zone, status, whether it is a manager (MCC) or test account, and the account-level URL tracking settings.
12371
12324
  */
12372
12325
  200: {
12373
12326
  id: string;
@@ -12377,36 +12330,37 @@ type GoogleGetAccountResponses = {
12377
12330
  status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'CANCELED' | 'SUSPENDED' | 'CLOSED';
12378
12331
  manager: boolean;
12379
12332
  test_account: boolean;
12380
- };
12381
- };
12382
- type GoogleGetAccountResponse = GoogleGetAccountResponses[keyof GoogleGetAccountResponses];
12383
- type GoogleGetInsightsData = {
12384
- body: {
12385
- level?: GoogleAdsInsightLevel;
12386
12333
  /**
12387
- * The metrics to report. At least one.
12334
+ * The account-level tracking URL template ({lpurl}/{unescapedlpurl}…), or null if unset. A campaign-level template OVERRIDES this (lowest level wins).
12388
12335
  */
12389
- metrics?: Array<GoogleAdsInsightMetric>;
12336
+ tracking_url_template: string | null;
12390
12337
  /**
12391
- * Optional breakdowns (e.g. by date or device).
12338
+ * The account-level final-URL suffix (UTMs live here), e.g. "utm_source={_src}", or null if unset.
12392
12339
  */
12393
- segments?: Array<GoogleAdsInsightSegment>;
12340
+ final_url_suffix: string | null;
12341
+ };
12342
+ };
12343
+ type GoogleGetAccountResponse = GoogleGetAccountResponses[keyof GoogleGetAccountResponses];
12344
+ type GoogleEditAccountData = {
12345
+ body?: {
12394
12346
  /**
12395
- * Restrict to one campaign (campaign / ad_group levels only).
12347
+ * Set the account-level tracking URL template ({lpurl}/{unescapedlpurl}…). Omit to leave unchanged; clearing is not yet supported.
12396
12348
  */
12397
- campaign_id?: string;
12349
+ tracking_url_template?: string;
12398
12350
  /**
12399
- * Restrict to one ad group (required at the ad / keyword levels).
12351
+ * Set the account-level final-URL suffix (UTMs live here), e.g. "utm_source={_src}". Omit to leave unchanged; clearing is not yet supported.
12400
12352
  */
12401
- ad_group_id?: string;
12353
+ final_url_suffix?: string;
12402
12354
  /**
12403
- * Start date, inclusive (YYYY-MM-DD).
12355
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
12404
12356
  */
12405
- since: string;
12357
+ dry_run?: boolean;
12358
+ };
12359
+ headers?: {
12406
12360
  /**
12407
- * End date, inclusive (YYYY-MM-DD).
12361
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
12408
12362
  */
12409
- until: string;
12363
+ 'Idempotency-Key'?: string;
12410
12364
  };
12411
12365
  path: {
12412
12366
  /**
@@ -12415,9 +12369,9 @@ type GoogleGetInsightsData = {
12415
12369
  connection_id: string;
12416
12370
  };
12417
12371
  query?: never;
12418
- url: '/google/{connection_id}/insights';
12372
+ url: '/google/{connection_id}/url-settings';
12419
12373
  };
12420
- type GoogleGetInsightsErrors = {
12374
+ type GoogleEditAccountErrors = {
12421
12375
  /**
12422
12376
  * An RFC 9457 problem response.
12423
12377
  */
@@ -12691,32 +12645,33 @@ type GoogleGetInsightsErrors = {
12691
12645
  }>;
12692
12646
  };
12693
12647
  };
12694
- type GoogleGetInsightsError = GoogleGetInsightsErrors[keyof GoogleGetInsightsErrors];
12695
- type GoogleGetInsightsResponses = {
12648
+ type GoogleEditAccountError = GoogleEditAccountErrors[keyof GoogleEditAccountErrors];
12649
+ type GoogleEditAccountResponses = {
12696
12650
  /**
12697
12651
  * OK
12698
12652
  */
12699
- 200: GoogleAdsInsights;
12653
+ 200: GoogleAdsEditResult;
12700
12654
  };
12701
- type GoogleGetInsightsResponse = GoogleGetInsightsResponses[keyof GoogleGetInsightsResponses];
12702
- type GoogleGetAdTreeData = {
12703
- body?: never;
12704
- path: {
12655
+ type GoogleEditAccountResponse = GoogleEditAccountResponses[keyof GoogleEditAccountResponses];
12656
+ type GoogleGetInsightsData = {
12657
+ body: {
12658
+ level?: GoogleAdsInsightLevel;
12705
12659
  /**
12706
- * The id of a Google Ads connection in your account.
12660
+ * The metrics to report. At least one.
12707
12661
  */
12708
- connection_id: string;
12709
- };
12710
- query: {
12662
+ metrics?: Array<GoogleAdsInsightMetric>;
12711
12663
  /**
12712
- * Restrict to one campaign — returns that campaign’s subtree (ad groups + leaf). Omit for the campaign level.
12664
+ * Optional breakdowns (e.g. by date or device).
12665
+ */
12666
+ segments?: Array<GoogleAdsInsightSegment>;
12667
+ /**
12668
+ * Restrict to one campaign (campaign / ad_group levels only).
12713
12669
  */
12714
12670
  campaign_id?: string;
12715
- status?: GoogleAdsReadStatusFilter;
12716
12671
  /**
12717
- * The metric columns to report. At least one.
12672
+ * Restrict to one ad group (required at the ad / keyword levels).
12718
12673
  */
12719
- metrics?: Array<GoogleAdsInsightMetric>;
12674
+ ad_group_id?: string;
12720
12675
  /**
12721
12676
  * Start date, inclusive (YYYY-MM-DD).
12722
12677
  */
@@ -12726,9 +12681,16 @@ type GoogleGetAdTreeData = {
12726
12681
  */
12727
12682
  until: string;
12728
12683
  };
12729
- url: '/google/{connection_id}/ads/tree';
12684
+ path: {
12685
+ /**
12686
+ * The id of a Google Ads connection in your account.
12687
+ */
12688
+ connection_id: string;
12689
+ };
12690
+ query?: never;
12691
+ url: '/google/{connection_id}/insights';
12730
12692
  };
12731
- type GoogleGetAdTreeErrors = {
12693
+ type GoogleGetInsightsErrors = {
12732
12694
  /**
12733
12695
  * An RFC 9457 problem response.
12734
12696
  */
@@ -13002,31 +12964,44 @@ type GoogleGetAdTreeErrors = {
13002
12964
  }>;
13003
12965
  };
13004
12966
  };
13005
- type GoogleGetAdTreeError = GoogleGetAdTreeErrors[keyof GoogleGetAdTreeErrors];
13006
- type GoogleGetAdTreeResponses = {
12967
+ type GoogleGetInsightsError = GoogleGetInsightsErrors[keyof GoogleGetInsightsErrors];
12968
+ type GoogleGetInsightsResponses = {
13007
12969
  /**
13008
12970
  * OK
13009
12971
  */
13010
- 200: GoogleAdTree;
12972
+ 200: GoogleAdsInsights;
13011
12973
  };
13012
- type GoogleGetAdTreeResponse = GoogleGetAdTreeResponses[keyof GoogleGetAdTreeResponses];
13013
- type GoogleRunGaqlData = {
13014
- body: {
13015
- /**
13016
- * A Google Ads Query Language (GAQL) SELECT statement. Read-only — GAQL cannot mutate.
13017
- */
13018
- query: string;
13019
- };
12974
+ type GoogleGetInsightsResponse = GoogleGetInsightsResponses[keyof GoogleGetInsightsResponses];
12975
+ type GoogleGetAdTreeData = {
12976
+ body?: never;
13020
12977
  path: {
13021
12978
  /**
13022
12979
  * The id of a Google Ads connection in your account.
13023
12980
  */
13024
12981
  connection_id: string;
13025
12982
  };
13026
- query?: never;
13027
- url: '/google/{connection_id}/gaql';
12983
+ query: {
12984
+ /**
12985
+ * Restrict to one campaign — returns that campaign’s subtree (ad groups + leaf). Omit for the campaign level.
12986
+ */
12987
+ campaign_id?: string;
12988
+ status?: GoogleAdsReadStatusFilter;
12989
+ /**
12990
+ * The metric columns to report. At least one.
12991
+ */
12992
+ metrics?: Array<GoogleAdsInsightMetric>;
12993
+ /**
12994
+ * Start date, inclusive (YYYY-MM-DD).
12995
+ */
12996
+ since: string;
12997
+ /**
12998
+ * End date, inclusive (YYYY-MM-DD).
12999
+ */
13000
+ until: string;
13001
+ };
13002
+ url: '/google/{connection_id}/ads/tree';
13028
13003
  };
13029
- type GoogleRunGaqlErrors = {
13004
+ type GoogleGetAdTreeErrors = {
13030
13005
  /**
13031
13006
  * An RFC 9457 problem response.
13032
13007
  */
@@ -13300,37 +13275,20 @@ type GoogleRunGaqlErrors = {
13300
13275
  }>;
13301
13276
  };
13302
13277
  };
13303
- type GoogleRunGaqlError = GoogleRunGaqlErrors[keyof GoogleRunGaqlErrors];
13304
- type GoogleRunGaqlResponses = {
13278
+ type GoogleGetAdTreeError = GoogleGetAdTreeErrors[keyof GoogleGetAdTreeErrors];
13279
+ type GoogleGetAdTreeResponses = {
13305
13280
  /**
13306
- * The native GAQL rows for the query (unnormalised).
13281
+ * OK
13307
13282
  */
13308
- 200: {
13309
- object: 'list';
13310
- data: Array<unknown | null>;
13311
- };
13283
+ 200: GoogleAdTree;
13312
13284
  };
13313
- type GoogleRunGaqlResponse = GoogleRunGaqlResponses[keyof GoogleRunGaqlResponses];
13314
- type GoogleCreateBudgetData = {
13285
+ type GoogleGetAdTreeResponse = GoogleGetAdTreeResponses[keyof GoogleGetAdTreeResponses];
13286
+ type GoogleRunGaqlData = {
13315
13287
  body: {
13316
13288
  /**
13317
- * A name for the budget, unique within the Google Ads account.
13318
- */
13319
- name: string;
13320
- /**
13321
- * The daily budget amount in micros of the account currency (1,000,000 micros = 1 unit, e.g. $1.00).
13322
- */
13323
- amount_micros: number;
13324
- /**
13325
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
13326
- */
13327
- dry_run?: boolean;
13328
- };
13329
- headers?: {
13330
- /**
13331
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
13289
+ * A Google Ads Query Language (GAQL) SELECT statement. Read-only — GAQL cannot mutate.
13332
13290
  */
13333
- 'Idempotency-Key'?: string;
13291
+ query: string;
13334
13292
  };
13335
13293
  path: {
13336
13294
  /**
@@ -13339,9 +13297,9 @@ type GoogleCreateBudgetData = {
13339
13297
  connection_id: string;
13340
13298
  };
13341
13299
  query?: never;
13342
- url: '/google/{connection_id}/budgets';
13300
+ url: '/google/{connection_id}/gaql';
13343
13301
  };
13344
- type GoogleCreateBudgetErrors = {
13302
+ type GoogleRunGaqlErrors = {
13345
13303
  /**
13346
13304
  * An RFC 9457 problem response.
13347
13305
  */
@@ -13615,18 +13573,25 @@ type GoogleCreateBudgetErrors = {
13615
13573
  }>;
13616
13574
  };
13617
13575
  };
13618
- type GoogleCreateBudgetError = GoogleCreateBudgetErrors[keyof GoogleCreateBudgetErrors];
13619
- type GoogleCreateBudgetResponses = {
13576
+ type GoogleRunGaqlError = GoogleRunGaqlErrors[keyof GoogleRunGaqlErrors];
13577
+ type GoogleRunGaqlResponses = {
13620
13578
  /**
13621
- * OK
13579
+ * The native GAQL rows for the query (unnormalised).
13622
13580
  */
13623
- 201: GoogleAdsCreateResult;
13581
+ 200: {
13582
+ object: 'list';
13583
+ data: Array<unknown | null>;
13584
+ };
13624
13585
  };
13625
- type GoogleCreateBudgetResponse = GoogleCreateBudgetResponses[keyof GoogleCreateBudgetResponses];
13626
- type GoogleEditBudgetData = {
13586
+ type GoogleRunGaqlResponse = GoogleRunGaqlResponses[keyof GoogleRunGaqlResponses];
13587
+ type GoogleCreateBudgetData = {
13627
13588
  body: {
13628
13589
  /**
13629
- * The new daily budget amount in micros of the account currency (1,000,000 micros = 1 unit, e.g. $1.00).
13590
+ * A name for the budget, unique within the Google Ads account.
13591
+ */
13592
+ name: string;
13593
+ /**
13594
+ * The daily budget amount in micros of the account currency (1,000,000 micros = 1 unit, e.g. $1.00).
13630
13595
  */
13631
13596
  amount_micros: number;
13632
13597
  /**
@@ -13645,15 +13610,11 @@ type GoogleEditBudgetData = {
13645
13610
  * The id of a Google Ads connection in your account.
13646
13611
  */
13647
13612
  connection_id: string;
13648
- /**
13649
- * The numeric id of the resource.
13650
- */
13651
- id: string;
13652
13613
  };
13653
13614
  query?: never;
13654
- url: '/google/{connection_id}/budgets/{id}';
13615
+ url: '/google/{connection_id}/budgets';
13655
13616
  };
13656
- type GoogleEditBudgetErrors = {
13617
+ type GoogleCreateBudgetErrors = {
13657
13618
  /**
13658
13619
  * An RFC 9457 problem response.
13659
13620
  */
@@ -13927,16 +13888,20 @@ type GoogleEditBudgetErrors = {
13927
13888
  }>;
13928
13889
  };
13929
13890
  };
13930
- type GoogleEditBudgetError = GoogleEditBudgetErrors[keyof GoogleEditBudgetErrors];
13931
- type GoogleEditBudgetResponses = {
13891
+ type GoogleCreateBudgetError = GoogleCreateBudgetErrors[keyof GoogleCreateBudgetErrors];
13892
+ type GoogleCreateBudgetResponses = {
13932
13893
  /**
13933
13894
  * OK
13934
13895
  */
13935
- 200: GoogleAdsEditResult;
13896
+ 201: GoogleAdsCreateResult;
13936
13897
  };
13937
- type GoogleEditBudgetResponse = GoogleEditBudgetResponses[keyof GoogleEditBudgetResponses];
13938
- type GoogleRemoveBudgetData = {
13939
- body?: {
13898
+ type GoogleCreateBudgetResponse = GoogleCreateBudgetResponses[keyof GoogleCreateBudgetResponses];
13899
+ type GoogleEditBudgetData = {
13900
+ body: {
13901
+ /**
13902
+ * The new daily budget amount in micros of the account currency (1,000,000 micros = 1 unit, e.g. $1.00).
13903
+ */
13904
+ amount_micros: number;
13940
13905
  /**
13941
13906
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
13942
13907
  */
@@ -13959,9 +13924,9 @@ type GoogleRemoveBudgetData = {
13959
13924
  id: string;
13960
13925
  };
13961
13926
  query?: never;
13962
- url: '/google/{connection_id}/budgets/{id}/remove';
13927
+ url: '/google/{connection_id}/budgets/{id}';
13963
13928
  };
13964
- type GoogleRemoveBudgetErrors = {
13929
+ type GoogleEditBudgetErrors = {
13965
13930
  /**
13966
13931
  * An RFC 9457 problem response.
13967
13932
  */
@@ -14235,26 +14200,41 @@ type GoogleRemoveBudgetErrors = {
14235
14200
  }>;
14236
14201
  };
14237
14202
  };
14238
- type GoogleRemoveBudgetError = GoogleRemoveBudgetErrors[keyof GoogleRemoveBudgetErrors];
14239
- type GoogleRemoveBudgetResponses = {
14203
+ type GoogleEditBudgetError = GoogleEditBudgetErrors[keyof GoogleEditBudgetErrors];
14204
+ type GoogleEditBudgetResponses = {
14240
14205
  /**
14241
14206
  * OK
14242
14207
  */
14243
- 200: GoogleAdsDeleteResult;
14208
+ 200: GoogleAdsEditResult;
14244
14209
  };
14245
- type GoogleRemoveBudgetResponse = GoogleRemoveBudgetResponses[keyof GoogleRemoveBudgetResponses];
14246
- type GoogleListCampaignsData = {
14247
- body?: never;
14210
+ type GoogleEditBudgetResponse = GoogleEditBudgetResponses[keyof GoogleEditBudgetResponses];
14211
+ type GoogleRemoveBudgetData = {
14212
+ body?: {
14213
+ /**
14214
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
14215
+ */
14216
+ dry_run?: boolean;
14217
+ };
14218
+ headers?: {
14219
+ /**
14220
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
14221
+ */
14222
+ 'Idempotency-Key'?: string;
14223
+ };
14248
14224
  path: {
14249
14225
  /**
14250
14226
  * The id of a Google Ads connection in your account.
14251
14227
  */
14252
14228
  connection_id: string;
14229
+ /**
14230
+ * The numeric id of the resource.
14231
+ */
14232
+ id: string;
14253
14233
  };
14254
14234
  query?: never;
14255
- url: '/google/{connection_id}/campaigns';
14235
+ url: '/google/{connection_id}/budgets/{id}/remove';
14256
14236
  };
14257
- type GoogleListCampaignsErrors = {
14237
+ type GoogleRemoveBudgetErrors = {
14258
14238
  /**
14259
14239
  * An RFC 9457 problem response.
14260
14240
  */
@@ -14528,68 +14508,16 @@ type GoogleListCampaignsErrors = {
14528
14508
  }>;
14529
14509
  };
14530
14510
  };
14531
- type GoogleListCampaignsError = GoogleListCampaignsErrors[keyof GoogleListCampaignsErrors];
14532
- type GoogleListCampaignsResponses = {
14511
+ type GoogleRemoveBudgetError = GoogleRemoveBudgetErrors[keyof GoogleRemoveBudgetErrors];
14512
+ type GoogleRemoveBudgetResponses = {
14533
14513
  /**
14534
14514
  * OK
14535
14515
  */
14536
- 200: {
14537
- object: 'list';
14538
- data: Array<{
14539
- id: string;
14540
- name: string | null;
14541
- status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'PAUSED' | 'REMOVED';
14542
- advertising_channel_type: 'UNSPECIFIED' | 'UNKNOWN' | 'SEARCH' | 'DISPLAY' | 'SHOPPING' | 'HOTEL' | 'VIDEO' | 'MULTI_CHANNEL' | 'LOCAL' | 'SMART' | 'PERFORMANCE_MAX' | 'LOCAL_SERVICES' | 'TRAVEL' | 'DEMAND_GEN';
14543
- bidding_strategy_type: 'UNSPECIFIED' | 'UNKNOWN' | 'COMMISSION' | 'ENHANCED_CPC' | 'FIXED_CPM' | 'FIXED_SHARE_OF_VOICE' | 'INVALID' | 'MANUAL_CPA' | 'MANUAL_CPC' | 'MANUAL_CPM' | 'MANUAL_CPV' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'PAGE_ONE_PROMOTED' | 'PERCENT_CPC' | 'TARGET_CPA' | 'TARGET_CPC' | 'TARGET_CPM' | 'TARGET_CPV' | 'TARGET_IMPRESSION_SHARE' | 'TARGET_OUTRANK_SHARE' | 'TARGET_ROAS' | 'TARGET_SPEND';
14544
- /**
14545
- * When the campaign starts serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if unset.
14546
- */
14547
- start_date_time: string | null;
14548
- /**
14549
- * When the campaign stops serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if it runs indefinitely.
14550
- */
14551
- end_date_time: string | null;
14552
- }>;
14553
- };
14516
+ 200: GoogleAdsDeleteResult;
14554
14517
  };
14555
- type GoogleListCampaignsResponse = GoogleListCampaignsResponses[keyof GoogleListCampaignsResponses];
14556
- type GoogleCreateCampaignData = {
14557
- body: {
14558
- /**
14559
- * A name for the campaign, unique within the Google Ads account.
14560
- */
14561
- name: string;
14562
- /**
14563
- * The advertising channel type. Launch scope: SEARCH or DISPLAY (Performance Max is a fast-follow).
14564
- */
14565
- channel: 'SEARCH' | 'DISPLAY';
14566
- /**
14567
- * The budget resource_name to attach (e.g. "customers/123/campaignBudgets/789"), as returned by a budget create.
14568
- */
14569
- campaign_budget: string;
14570
- /**
14571
- * Which embedded bidding strategy to set. bidding_strategy_type is output-only and auto-derived by Google.
14572
- */
14573
- bidding: 'manual_cpc' | 'maximize_conversions' | 'target_spend';
14574
- /**
14575
- * The campaign status. Defaults to PAUSED so a new campaign never spends by accident.
14576
- */
14577
- status?: 'ENABLED' | 'PAUSED';
14578
- /**
14579
- * The campaign’s EU political-advertising declaration (Google requires it). Defaults to DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING.
14580
- */
14581
- contains_eu_political_advertising?: 'DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING' | 'CONTAINS_EU_POLITICAL_ADVERTISING';
14582
- /**
14583
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
14584
- */
14585
- dry_run?: boolean;
14586
- };
14587
- headers?: {
14588
- /**
14589
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
14590
- */
14591
- 'Idempotency-Key'?: string;
14592
- };
14518
+ type GoogleRemoveBudgetResponse = GoogleRemoveBudgetResponses[keyof GoogleRemoveBudgetResponses];
14519
+ type GoogleListCampaignsData = {
14520
+ body?: never;
14593
14521
  path: {
14594
14522
  /**
14595
14523
  * The id of a Google Ads connection in your account.
@@ -14599,7 +14527,7 @@ type GoogleCreateCampaignData = {
14599
14527
  query?: never;
14600
14528
  url: '/google/{connection_id}/campaigns';
14601
14529
  };
14602
- type GoogleCreateCampaignErrors = {
14530
+ type GoogleListCampaignsErrors = {
14603
14531
  /**
14604
14532
  * An RFC 9457 problem response.
14605
14533
  */
@@ -14873,30 +14801,90 @@ type GoogleCreateCampaignErrors = {
14873
14801
  }>;
14874
14802
  };
14875
14803
  };
14876
- type GoogleCreateCampaignError = GoogleCreateCampaignErrors[keyof GoogleCreateCampaignErrors];
14877
- type GoogleCreateCampaignResponses = {
14804
+ type GoogleListCampaignsError = GoogleListCampaignsErrors[keyof GoogleListCampaignsErrors];
14805
+ type GoogleListCampaignsResponses = {
14878
14806
  /**
14879
14807
  * OK
14880
14808
  */
14881
- 201: GoogleAdsCreateResult;
14809
+ 200: {
14810
+ object: 'list';
14811
+ data: Array<{
14812
+ id: string;
14813
+ name: string | null;
14814
+ status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'PAUSED' | 'REMOVED';
14815
+ advertising_channel_type: 'UNSPECIFIED' | 'UNKNOWN' | 'SEARCH' | 'DISPLAY' | 'SHOPPING' | 'HOTEL' | 'VIDEO' | 'MULTI_CHANNEL' | 'LOCAL' | 'SMART' | 'PERFORMANCE_MAX' | 'LOCAL_SERVICES' | 'TRAVEL' | 'DEMAND_GEN';
14816
+ bidding_strategy_type: 'UNSPECIFIED' | 'UNKNOWN' | 'COMMISSION' | 'ENHANCED_CPC' | 'FIXED_CPM' | 'FIXED_SHARE_OF_VOICE' | 'INVALID' | 'MANUAL_CPA' | 'MANUAL_CPC' | 'MANUAL_CPM' | 'MANUAL_CPV' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'PAGE_ONE_PROMOTED' | 'PERCENT_CPC' | 'TARGET_CPA' | 'TARGET_CPC' | 'TARGET_CPM' | 'TARGET_CPV' | 'TARGET_IMPRESSION_SHARE' | 'TARGET_OUTRANK_SHARE' | 'TARGET_ROAS' | 'TARGET_SPEND';
14817
+ /**
14818
+ * When the campaign starts serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if unset.
14819
+ */
14820
+ start_date_time: string | null;
14821
+ /**
14822
+ * When the campaign stops serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if it runs indefinitely.
14823
+ */
14824
+ end_date_time: string | null;
14825
+ /**
14826
+ * The tracking URL template ({lpurl}/{unescapedlpurl}…), or null if unset. A template set at this level OVERRIDES the account-level template (lowest level in the hierarchy wins — it is not concatenated).
14827
+ */
14828
+ tracking_url_template: string | null;
14829
+ /**
14830
+ * Parameters appended to the final URL (UTMs live here), e.g. "utm_source={_src}", or null if unset. Overrides the account-level suffix.
14831
+ */
14832
+ final_url_suffix: string | null;
14833
+ /**
14834
+ * Up to 8 {_key} → value substitutions. A value set here OVERRIDES the account level (not merged).
14835
+ */
14836
+ url_custom_parameters?: Array<GoogleAdsUrlCustomParameter>;
14837
+ }>;
14838
+ };
14882
14839
  };
14883
- type GoogleCreateCampaignResponse = GoogleCreateCampaignResponses[keyof GoogleCreateCampaignResponses];
14884
- type GoogleGetCampaignData = {
14885
- body?: never;
14840
+ type GoogleListCampaignsResponse = GoogleListCampaignsResponses[keyof GoogleListCampaignsResponses];
14841
+ type GoogleCreateCampaignData = {
14842
+ body: {
14843
+ /**
14844
+ * A name for the campaign, unique within the Google Ads account.
14845
+ */
14846
+ name: string;
14847
+ /**
14848
+ * The advertising channel type. Launch scope: SEARCH or DISPLAY (Performance Max is a fast-follow).
14849
+ */
14850
+ channel: 'SEARCH' | 'DISPLAY';
14851
+ /**
14852
+ * The budget resource_name to attach (e.g. "customers/123/campaignBudgets/789"), as returned by a budget create.
14853
+ */
14854
+ campaign_budget: string;
14855
+ /**
14856
+ * Which embedded bidding strategy to set. bidding_strategy_type is output-only and auto-derived by Google.
14857
+ */
14858
+ bidding: 'manual_cpc' | 'maximize_conversions' | 'target_spend';
14859
+ /**
14860
+ * The campaign status. Defaults to PAUSED so a new campaign never spends by accident.
14861
+ */
14862
+ status?: 'ENABLED' | 'PAUSED';
14863
+ /**
14864
+ * The campaign’s EU political-advertising declaration (Google requires it). Defaults to DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING.
14865
+ */
14866
+ contains_eu_political_advertising?: 'DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING' | 'CONTAINS_EU_POLITICAL_ADVERTISING';
14867
+ /**
14868
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
14869
+ */
14870
+ dry_run?: boolean;
14871
+ };
14872
+ headers?: {
14873
+ /**
14874
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
14875
+ */
14876
+ 'Idempotency-Key'?: string;
14877
+ };
14886
14878
  path: {
14887
14879
  /**
14888
14880
  * The id of a Google Ads connection in your account.
14889
14881
  */
14890
14882
  connection_id: string;
14891
- /**
14892
- * The numeric id of the resource.
14893
- */
14894
- id: string;
14895
14883
  };
14896
14884
  query?: never;
14897
- url: '/google/{connection_id}/campaigns/{id}';
14885
+ url: '/google/{connection_id}/campaigns';
14898
14886
  };
14899
- type GoogleGetCampaignErrors = {
14887
+ type GoogleCreateCampaignErrors = {
14900
14888
  /**
14901
14889
  * An RFC 9457 problem response.
14902
14890
  */
@@ -15170,45 +15158,16 @@ type GoogleGetCampaignErrors = {
15170
15158
  }>;
15171
15159
  };
15172
15160
  };
15173
- type GoogleGetCampaignError = GoogleGetCampaignErrors[keyof GoogleGetCampaignErrors];
15174
- type GoogleGetCampaignResponses = {
15161
+ type GoogleCreateCampaignError = GoogleCreateCampaignErrors[keyof GoogleCreateCampaignErrors];
15162
+ type GoogleCreateCampaignResponses = {
15175
15163
  /**
15176
- * A Google Ads campaign (the `campaign` resource): id, name, status, advertising channel type, bidding strategy type, and serving start/end date-times.
15164
+ * OK
15177
15165
  */
15178
- 200: {
15179
- id: string;
15180
- name: string | null;
15181
- status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'PAUSED' | 'REMOVED';
15182
- advertising_channel_type: 'UNSPECIFIED' | 'UNKNOWN' | 'SEARCH' | 'DISPLAY' | 'SHOPPING' | 'HOTEL' | 'VIDEO' | 'MULTI_CHANNEL' | 'LOCAL' | 'SMART' | 'PERFORMANCE_MAX' | 'LOCAL_SERVICES' | 'TRAVEL' | 'DEMAND_GEN';
15183
- bidding_strategy_type: 'UNSPECIFIED' | 'UNKNOWN' | 'COMMISSION' | 'ENHANCED_CPC' | 'FIXED_CPM' | 'FIXED_SHARE_OF_VOICE' | 'INVALID' | 'MANUAL_CPA' | 'MANUAL_CPC' | 'MANUAL_CPM' | 'MANUAL_CPV' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'PAGE_ONE_PROMOTED' | 'PERCENT_CPC' | 'TARGET_CPA' | 'TARGET_CPC' | 'TARGET_CPM' | 'TARGET_CPV' | 'TARGET_IMPRESSION_SHARE' | 'TARGET_OUTRANK_SHARE' | 'TARGET_ROAS' | 'TARGET_SPEND';
15184
- /**
15185
- * When the campaign starts serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if unset.
15186
- */
15187
- start_date_time: string | null;
15188
- /**
15189
- * When the campaign stops serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if it runs indefinitely.
15190
- */
15191
- end_date_time: string | null;
15192
- };
15166
+ 201: GoogleAdsCreateResult;
15193
15167
  };
15194
- type GoogleGetCampaignResponse = GoogleGetCampaignResponses[keyof GoogleGetCampaignResponses];
15195
- type GoogleEditCampaignData = {
15196
- body: {
15197
- /**
15198
- * A new name for the campaign, unique within the Google Ads account.
15199
- */
15200
- name: string;
15201
- /**
15202
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
15203
- */
15204
- dry_run?: boolean;
15205
- };
15206
- headers?: {
15207
- /**
15208
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
15209
- */
15210
- 'Idempotency-Key'?: string;
15211
- };
15168
+ type GoogleCreateCampaignResponse = GoogleCreateCampaignResponses[keyof GoogleCreateCampaignResponses];
15169
+ type GoogleGetCampaignData = {
15170
+ body?: never;
15212
15171
  path: {
15213
15172
  /**
15214
15173
  * The id of a Google Ads connection in your account.
@@ -15222,7 +15181,7 @@ type GoogleEditCampaignData = {
15222
15181
  query?: never;
15223
15182
  url: '/google/{connection_id}/campaigns/{id}';
15224
15183
  };
15225
- type GoogleEditCampaignErrors = {
15184
+ type GoogleGetCampaignErrors = {
15226
15185
  /**
15227
15186
  * An RFC 9457 problem response.
15228
15187
  */
@@ -15496,16 +15455,58 @@ type GoogleEditCampaignErrors = {
15496
15455
  }>;
15497
15456
  };
15498
15457
  };
15499
- type GoogleEditCampaignError = GoogleEditCampaignErrors[keyof GoogleEditCampaignErrors];
15500
- type GoogleEditCampaignResponses = {
15458
+ type GoogleGetCampaignError = GoogleGetCampaignErrors[keyof GoogleGetCampaignErrors];
15459
+ type GoogleGetCampaignResponses = {
15501
15460
  /**
15502
- * OK
15461
+ * A Google Ads campaign (the `campaign` resource): id, name, status, advertising channel type, bidding strategy type, and serving start/end date-times.
15503
15462
  */
15504
- 200: GoogleAdsEditResult;
15463
+ 200: {
15464
+ id: string;
15465
+ name: string | null;
15466
+ status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'PAUSED' | 'REMOVED';
15467
+ advertising_channel_type: 'UNSPECIFIED' | 'UNKNOWN' | 'SEARCH' | 'DISPLAY' | 'SHOPPING' | 'HOTEL' | 'VIDEO' | 'MULTI_CHANNEL' | 'LOCAL' | 'SMART' | 'PERFORMANCE_MAX' | 'LOCAL_SERVICES' | 'TRAVEL' | 'DEMAND_GEN';
15468
+ bidding_strategy_type: 'UNSPECIFIED' | 'UNKNOWN' | 'COMMISSION' | 'ENHANCED_CPC' | 'FIXED_CPM' | 'FIXED_SHARE_OF_VOICE' | 'INVALID' | 'MANUAL_CPA' | 'MANUAL_CPC' | 'MANUAL_CPM' | 'MANUAL_CPV' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE' | 'PAGE_ONE_PROMOTED' | 'PERCENT_CPC' | 'TARGET_CPA' | 'TARGET_CPC' | 'TARGET_CPM' | 'TARGET_CPV' | 'TARGET_IMPRESSION_SHARE' | 'TARGET_OUTRANK_SHARE' | 'TARGET_ROAS' | 'TARGET_SPEND';
15469
+ /**
15470
+ * When the campaign starts serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if unset.
15471
+ */
15472
+ start_date_time: string | null;
15473
+ /**
15474
+ * When the campaign stops serving — `yyyy-MM-dd HH:mm:ss` in the account time zone, or null if it runs indefinitely.
15475
+ */
15476
+ end_date_time: string | null;
15477
+ /**
15478
+ * The tracking URL template ({lpurl}/{unescapedlpurl}…), or null if unset. A template set at this level OVERRIDES the account-level template (lowest level in the hierarchy wins — it is not concatenated).
15479
+ */
15480
+ tracking_url_template: string | null;
15481
+ /**
15482
+ * Parameters appended to the final URL (UTMs live here), e.g. "utm_source={_src}", or null if unset. Overrides the account-level suffix.
15483
+ */
15484
+ final_url_suffix: string | null;
15485
+ /**
15486
+ * Up to 8 {_key} → value substitutions. A value set here OVERRIDES the account level (not merged).
15487
+ */
15488
+ url_custom_parameters?: Array<GoogleAdsUrlCustomParameter>;
15489
+ };
15505
15490
  };
15506
- type GoogleEditCampaignResponse = GoogleEditCampaignResponses[keyof GoogleEditCampaignResponses];
15507
- type GoogleRemoveCampaignData = {
15491
+ type GoogleGetCampaignResponse = GoogleGetCampaignResponses[keyof GoogleGetCampaignResponses];
15492
+ type GoogleEditCampaignData = {
15508
15493
  body?: {
15494
+ /**
15495
+ * A new name for the campaign, unique within the Google Ads account.
15496
+ */
15497
+ name?: string;
15498
+ /**
15499
+ * Set the tracking URL template ({lpurl}/{unescapedlpurl}…). A campaign-level template OVERRIDES the account-level one. Omit to leave unchanged; clearing is not yet supported.
15500
+ */
15501
+ tracking_url_template?: string;
15502
+ /**
15503
+ * Set the final-URL suffix (UTMs live here), e.g. "utm_source={_src}". Omit to leave unchanged; clearing is not yet supported.
15504
+ */
15505
+ final_url_suffix?: string;
15506
+ /**
15507
+ * Replace the campaign’s URL custom parameters (the whole list, up to 8 {_key} → value substitutions). Omit to leave unchanged; clearing is not yet supported.
15508
+ */
15509
+ url_custom_parameters?: Array<GoogleAdsUrlCustomParameter>;
15509
15510
  /**
15510
15511
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
15511
15512
  */
@@ -15528,9 +15529,9 @@ type GoogleRemoveCampaignData = {
15528
15529
  id: string;
15529
15530
  };
15530
15531
  query?: never;
15531
- url: '/google/{connection_id}/campaigns/{id}/remove';
15532
+ url: '/google/{connection_id}/campaigns/{id}';
15532
15533
  };
15533
- type GoogleRemoveCampaignErrors = {
15534
+ type GoogleEditCampaignErrors = {
15534
15535
  /**
15535
15536
  * An RFC 9457 problem response.
15536
15537
  */
@@ -15804,18 +15805,18 @@ type GoogleRemoveCampaignErrors = {
15804
15805
  }>;
15805
15806
  };
15806
15807
  };
15807
- type GoogleRemoveCampaignError = GoogleRemoveCampaignErrors[keyof GoogleRemoveCampaignErrors];
15808
- type GoogleRemoveCampaignResponses = {
15808
+ type GoogleEditCampaignError = GoogleEditCampaignErrors[keyof GoogleEditCampaignErrors];
15809
+ type GoogleEditCampaignResponses = {
15809
15810
  /**
15810
15811
  * OK
15811
15812
  */
15812
- 200: GoogleAdsDeleteResult;
15813
+ 200: GoogleAdsEditResult;
15813
15814
  };
15814
- type GoogleRemoveCampaignResponse = GoogleRemoveCampaignResponses[keyof GoogleRemoveCampaignResponses];
15815
- type GooglePauseCampaignData = {
15815
+ type GoogleEditCampaignResponse = GoogleEditCampaignResponses[keyof GoogleEditCampaignResponses];
15816
+ type GoogleRemoveCampaignData = {
15816
15817
  body?: {
15817
15818
  /**
15818
- * Preview the change without applying it. Default false (the write executes).
15819
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
15819
15820
  */
15820
15821
  dry_run?: boolean;
15821
15822
  };
@@ -15836,9 +15837,9 @@ type GooglePauseCampaignData = {
15836
15837
  id: string;
15837
15838
  };
15838
15839
  query?: never;
15839
- url: '/google/{connection_id}/campaigns/{id}/pause';
15840
+ url: '/google/{connection_id}/campaigns/{id}/remove';
15840
15841
  };
15841
- type GooglePauseCampaignErrors = {
15842
+ type GoogleRemoveCampaignErrors = {
15842
15843
  /**
15843
15844
  * An RFC 9457 problem response.
15844
15845
  */
@@ -16112,20 +16113,15 @@ type GooglePauseCampaignErrors = {
16112
16113
  }>;
16113
16114
  };
16114
16115
  };
16115
- type GooglePauseCampaignError = GooglePauseCampaignErrors[keyof GooglePauseCampaignErrors];
16116
- type GooglePauseCampaignResponses = {
16116
+ type GoogleRemoveCampaignError = GoogleRemoveCampaignErrors[keyof GoogleRemoveCampaignErrors];
16117
+ type GoogleRemoveCampaignResponses = {
16117
16118
  /**
16118
- * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
16119
+ * OK
16119
16120
  */
16120
- 200: {
16121
- id: string;
16122
- status: 'ENABLED' | 'PAUSED';
16123
- dry_run: boolean;
16124
- executed: boolean;
16125
- };
16121
+ 200: GoogleAdsDeleteResult;
16126
16122
  };
16127
- type GooglePauseCampaignResponse = GooglePauseCampaignResponses[keyof GooglePauseCampaignResponses];
16128
- type GoogleEnableCampaignData = {
16123
+ type GoogleRemoveCampaignResponse = GoogleRemoveCampaignResponses[keyof GoogleRemoveCampaignResponses];
16124
+ type GooglePauseCampaignData = {
16129
16125
  body?: {
16130
16126
  /**
16131
16127
  * Preview the change without applying it. Default false (the write executes).
@@ -16149,9 +16145,9 @@ type GoogleEnableCampaignData = {
16149
16145
  id: string;
16150
16146
  };
16151
16147
  query?: never;
16152
- url: '/google/{connection_id}/campaigns/{id}/enable';
16148
+ url: '/google/{connection_id}/campaigns/{id}/pause';
16153
16149
  };
16154
- type GoogleEnableCampaignErrors = {
16150
+ type GooglePauseCampaignErrors = {
16155
16151
  /**
16156
16152
  * An RFC 9457 problem response.
16157
16153
  */
@@ -16425,8 +16421,8 @@ type GoogleEnableCampaignErrors = {
16425
16421
  }>;
16426
16422
  };
16427
16423
  };
16428
- type GoogleEnableCampaignError = GoogleEnableCampaignErrors[keyof GoogleEnableCampaignErrors];
16429
- type GoogleEnableCampaignResponses = {
16424
+ type GooglePauseCampaignError = GooglePauseCampaignErrors[keyof GooglePauseCampaignErrors];
16425
+ type GooglePauseCampaignResponses = {
16430
16426
  /**
16431
16427
  * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
16432
16428
  */
@@ -16437,28 +16433,34 @@ type GoogleEnableCampaignResponses = {
16437
16433
  executed: boolean;
16438
16434
  };
16439
16435
  };
16440
- type GoogleEnableCampaignResponse = GoogleEnableCampaignResponses[keyof GoogleEnableCampaignResponses];
16441
- type GoogleSearchGeoTargetsData = {
16442
- body?: never;
16443
- path: {
16436
+ type GooglePauseCampaignResponse = GooglePauseCampaignResponses[keyof GooglePauseCampaignResponses];
16437
+ type GoogleEnableCampaignData = {
16438
+ body?: {
16444
16439
  /**
16445
- * The id of a Google Ads connection in your account.
16440
+ * Preview the change without applying it. Default false (the write executes).
16446
16441
  */
16447
- connection_id: string;
16442
+ dry_run?: boolean;
16448
16443
  };
16449
- query: {
16444
+ headers?: {
16450
16445
  /**
16451
- * A free-text location name to resolve (e.g. "New York", "California", "United Kingdom").
16446
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
16452
16447
  */
16453
- q: string;
16448
+ 'Idempotency-Key'?: string;
16449
+ };
16450
+ path: {
16454
16451
  /**
16455
- * Optional ISO-3166-1 alpha-2 country code to bias the search (e.g. "US").
16452
+ * The id of a Google Ads connection in your account.
16456
16453
  */
16457
- country_code?: string;
16454
+ connection_id: string;
16455
+ /**
16456
+ * The numeric id of the resource.
16457
+ */
16458
+ id: string;
16458
16459
  };
16459
- url: '/google/{connection_id}/geo-targets/search';
16460
+ query?: never;
16461
+ url: '/google/{connection_id}/campaigns/{id}/enable';
16460
16462
  };
16461
- type GoogleSearchGeoTargetsErrors = {
16463
+ type GoogleEnableCampaignErrors = {
16462
16464
  /**
16463
16465
  * An RFC 9457 problem response.
16464
16466
  */
@@ -16732,33 +16734,40 @@ type GoogleSearchGeoTargetsErrors = {
16732
16734
  }>;
16733
16735
  };
16734
16736
  };
16735
- type GoogleSearchGeoTargetsError = GoogleSearchGeoTargetsErrors[keyof GoogleSearchGeoTargetsErrors];
16736
- type GoogleSearchGeoTargetsResponses = {
16737
+ type GoogleEnableCampaignError = GoogleEnableCampaignErrors[keyof GoogleEnableCampaignErrors];
16738
+ type GoogleEnableCampaignResponses = {
16737
16739
  /**
16738
- * OK
16740
+ * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
16739
16741
  */
16740
16742
  200: {
16741
- object: 'list';
16742
- data: Array<GoogleAdsGeoTargetConstant>;
16743
+ id: string;
16744
+ status: 'ENABLED' | 'PAUSED';
16745
+ dry_run: boolean;
16746
+ executed: boolean;
16743
16747
  };
16744
16748
  };
16745
- type GoogleSearchGeoTargetsResponse = GoogleSearchGeoTargetsResponses[keyof GoogleSearchGeoTargetsResponses];
16746
- type GoogleListCampaignCriteriaData = {
16749
+ type GoogleEnableCampaignResponse = GoogleEnableCampaignResponses[keyof GoogleEnableCampaignResponses];
16750
+ type GoogleSearchGeoTargetsData = {
16747
16751
  body?: never;
16748
16752
  path: {
16749
16753
  /**
16750
16754
  * The id of a Google Ads connection in your account.
16751
16755
  */
16752
16756
  connection_id: string;
16757
+ };
16758
+ query: {
16753
16759
  /**
16754
- * The numeric id of the campaign.
16760
+ * A free-text location name to resolve (e.g. "New York", "California", "United Kingdom").
16755
16761
  */
16756
- campaign_id: string;
16762
+ q: string;
16763
+ /**
16764
+ * Optional ISO-3166-1 alpha-2 country code to bias the search (e.g. "US").
16765
+ */
16766
+ country_code?: string;
16757
16767
  };
16758
- query?: never;
16759
- url: '/google/{connection_id}/campaigns/{campaign_id}/criteria';
16768
+ url: '/google/{connection_id}/geo-targets/search';
16760
16769
  };
16761
- type GoogleListCampaignCriteriaErrors = {
16770
+ type GoogleSearchGeoTargetsErrors = {
16762
16771
  /**
16763
16772
  * An RFC 9457 problem response.
16764
16773
  */
@@ -17032,43 +17041,19 @@ type GoogleListCampaignCriteriaErrors = {
17032
17041
  }>;
17033
17042
  };
17034
17043
  };
17035
- type GoogleListCampaignCriteriaError = GoogleListCampaignCriteriaErrors[keyof GoogleListCampaignCriteriaErrors];
17036
- type GoogleListCampaignCriteriaResponses = {
17044
+ type GoogleSearchGeoTargetsError = GoogleSearchGeoTargetsErrors[keyof GoogleSearchGeoTargetsErrors];
17045
+ type GoogleSearchGeoTargetsResponses = {
17037
17046
  /**
17038
17047
  * OK
17039
17048
  */
17040
17049
  200: {
17041
17050
  object: 'list';
17042
- data: Array<GoogleAdsCampaignCriterion>;
17051
+ data: Array<GoogleAdsGeoTargetConstant>;
17043
17052
  };
17044
17053
  };
17045
- type GoogleListCampaignCriteriaResponse = GoogleListCampaignCriteriaResponses[keyof GoogleListCampaignCriteriaResponses];
17046
- type GoogleCreateCampaignCriterionData = {
17047
- body: {
17048
- /**
17049
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
17050
- */
17051
- dry_run?: boolean;
17052
- type: 'location' | 'language';
17053
- /**
17054
- * The geo target constant resource name to target — the `resource_name` returned by the geo-targets search (e.g. `geoTargetConstants/2840`), NOT the bare id.
17055
- */
17056
- geo_target_constant?: string;
17057
- /**
17058
- * When true, EXCLUDE this location instead of targeting it (a negative location criterion).
17059
- */
17060
- negative?: boolean;
17061
- /**
17062
- * The language constant to target, e.g. `languageConstants/1000` (English). See Google’s language codes table (developers.google.com/google-ads/api/data/codes-formats#languages) for the full id list.
17063
- */
17064
- language_constant?: string;
17065
- };
17066
- headers?: {
17067
- /**
17068
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
17069
- */
17070
- 'Idempotency-Key'?: string;
17071
- };
17054
+ type GoogleSearchGeoTargetsResponse = GoogleSearchGeoTargetsResponses[keyof GoogleSearchGeoTargetsResponses];
17055
+ type GoogleListCampaignCriteriaData = {
17056
+ body?: never;
17072
17057
  path: {
17073
17058
  /**
17074
17059
  * The id of a Google Ads connection in your account.
@@ -17082,7 +17067,7 @@ type GoogleCreateCampaignCriterionData = {
17082
17067
  query?: never;
17083
17068
  url: '/google/{connection_id}/campaigns/{campaign_id}/criteria';
17084
17069
  };
17085
- type GoogleCreateCampaignCriterionErrors = {
17070
+ type GoogleListCampaignCriteriaErrors = {
17086
17071
  /**
17087
17072
  * An RFC 9457 problem response.
17088
17073
  */
@@ -17356,20 +17341,36 @@ type GoogleCreateCampaignCriterionErrors = {
17356
17341
  }>;
17357
17342
  };
17358
17343
  };
17359
- type GoogleCreateCampaignCriterionError = GoogleCreateCampaignCriterionErrors[keyof GoogleCreateCampaignCriterionErrors];
17360
- type GoogleCreateCampaignCriterionResponses = {
17344
+ type GoogleListCampaignCriteriaError = GoogleListCampaignCriteriaErrors[keyof GoogleListCampaignCriteriaErrors];
17345
+ type GoogleListCampaignCriteriaResponses = {
17361
17346
  /**
17362
17347
  * OK
17363
17348
  */
17364
- 201: GoogleAdsCreateResult;
17349
+ 200: {
17350
+ object: 'list';
17351
+ data: Array<GoogleAdsCampaignCriterion>;
17352
+ };
17365
17353
  };
17366
- type GoogleCreateCampaignCriterionResponse = GoogleCreateCampaignCriterionResponses[keyof GoogleCreateCampaignCriterionResponses];
17367
- type GoogleRemoveCampaignCriterionData = {
17368
- body?: {
17354
+ type GoogleListCampaignCriteriaResponse = GoogleListCampaignCriteriaResponses[keyof GoogleListCampaignCriteriaResponses];
17355
+ type GoogleCreateCampaignCriterionData = {
17356
+ body: {
17369
17357
  /**
17370
17358
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
17371
17359
  */
17372
17360
  dry_run?: boolean;
17361
+ type: 'location' | 'language';
17362
+ /**
17363
+ * The geo target constant resource name to target — the `resource_name` returned by the geo-targets search (e.g. `geoTargetConstants/2840`), NOT the bare id.
17364
+ */
17365
+ geo_target_constant?: string;
17366
+ /**
17367
+ * When true, EXCLUDE this location instead of targeting it (a negative location criterion).
17368
+ */
17369
+ negative?: boolean;
17370
+ /**
17371
+ * The language constant to target, e.g. `languageConstants/1000` (English). See Google’s language codes table (developers.google.com/google-ads/api/data/codes-formats#languages) for the full id list.
17372
+ */
17373
+ language_constant?: string;
17373
17374
  };
17374
17375
  headers?: {
17375
17376
  /**
@@ -17386,15 +17387,11 @@ type GoogleRemoveCampaignCriterionData = {
17386
17387
  * The numeric id of the campaign.
17387
17388
  */
17388
17389
  campaign_id: string;
17389
- /**
17390
- * The numeric id of the criterion.
17391
- */
17392
- criterion_id: string;
17393
17390
  };
17394
17391
  query?: never;
17395
- url: '/google/{connection_id}/campaigns/{campaign_id}/criteria/{criterion_id}/remove';
17392
+ url: '/google/{connection_id}/campaigns/{campaign_id}/criteria';
17396
17393
  };
17397
- type GoogleRemoveCampaignCriterionErrors = {
17394
+ type GoogleCreateCampaignCriterionErrors = {
17398
17395
  /**
17399
17396
  * An RFC 9457 problem response.
17400
17397
  */
@@ -17668,28 +17665,20 @@ type GoogleRemoveCampaignCriterionErrors = {
17668
17665
  }>;
17669
17666
  };
17670
17667
  };
17671
- type GoogleRemoveCampaignCriterionError = GoogleRemoveCampaignCriterionErrors[keyof GoogleRemoveCampaignCriterionErrors];
17672
- type GoogleRemoveCampaignCriterionResponses = {
17668
+ type GoogleCreateCampaignCriterionError = GoogleCreateCampaignCriterionErrors[keyof GoogleCreateCampaignCriterionErrors];
17669
+ type GoogleCreateCampaignCriterionResponses = {
17673
17670
  /**
17674
17671
  * OK
17675
17672
  */
17676
- 200: GoogleAdsDeleteResult;
17673
+ 201: GoogleAdsCreateResult;
17677
17674
  };
17678
- type GoogleRemoveCampaignCriterionResponse = GoogleRemoveCampaignCriterionResponses[keyof GoogleRemoveCampaignCriterionResponses];
17679
- type GoogleSetCampaignGeoSettingsData = {
17675
+ type GoogleCreateCampaignCriterionResponse = GoogleCreateCampaignCriterionResponses[keyof GoogleCreateCampaignCriterionResponses];
17676
+ type GoogleRemoveCampaignCriterionData = {
17680
17677
  body?: {
17681
17678
  /**
17682
17679
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
17683
17680
  */
17684
17681
  dry_run?: boolean;
17685
- /**
17686
- * Who a positive location targets: PRESENCE (people in or regularly in the location) or PRESENCE_OR_INTEREST (also people interested in it).
17687
- */
17688
- positive_geo_target_type?: 'PRESENCE_OR_INTEREST' | 'PRESENCE';
17689
- /**
17690
- * Who an excluded location excludes: PRESENCE or PRESENCE_OR_INTEREST.
17691
- */
17692
- negative_geo_target_type?: 'PRESENCE_OR_INTEREST' | 'PRESENCE';
17693
17682
  };
17694
17683
  headers?: {
17695
17684
  /**
@@ -17706,11 +17695,15 @@ type GoogleSetCampaignGeoSettingsData = {
17706
17695
  * The numeric id of the campaign.
17707
17696
  */
17708
17697
  campaign_id: string;
17698
+ /**
17699
+ * The numeric id of the criterion.
17700
+ */
17701
+ criterion_id: string;
17709
17702
  };
17710
17703
  query?: never;
17711
- url: '/google/{connection_id}/campaigns/{campaign_id}/geo-settings';
17704
+ url: '/google/{connection_id}/campaigns/{campaign_id}/criteria/{criterion_id}/remove';
17712
17705
  };
17713
- type GoogleSetCampaignGeoSettingsErrors = {
17706
+ type GoogleRemoveCampaignCriterionErrors = {
17714
17707
  /**
17715
17708
  * An RFC 9457 problem response.
17716
17709
  */
@@ -17984,32 +17977,49 @@ type GoogleSetCampaignGeoSettingsErrors = {
17984
17977
  }>;
17985
17978
  };
17986
17979
  };
17987
- type GoogleSetCampaignGeoSettingsError = GoogleSetCampaignGeoSettingsErrors[keyof GoogleSetCampaignGeoSettingsErrors];
17988
- type GoogleSetCampaignGeoSettingsResponses = {
17980
+ type GoogleRemoveCampaignCriterionError = GoogleRemoveCampaignCriterionErrors[keyof GoogleRemoveCampaignCriterionErrors];
17981
+ type GoogleRemoveCampaignCriterionResponses = {
17989
17982
  /**
17990
17983
  * OK
17991
17984
  */
17992
- 200: GoogleAdsEditResult;
17985
+ 200: GoogleAdsDeleteResult;
17993
17986
  };
17994
- type GoogleSetCampaignGeoSettingsResponse = GoogleSetCampaignGeoSettingsResponses[keyof GoogleSetCampaignGeoSettingsResponses];
17995
- type GoogleListAdGroupsData = {
17996
- body?: never;
17987
+ type GoogleRemoveCampaignCriterionResponse = GoogleRemoveCampaignCriterionResponses[keyof GoogleRemoveCampaignCriterionResponses];
17988
+ type GoogleSetCampaignGeoSettingsData = {
17989
+ body?: {
17990
+ /**
17991
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
17992
+ */
17993
+ dry_run?: boolean;
17994
+ /**
17995
+ * Who a positive location targets: PRESENCE (people in or regularly in the location) or PRESENCE_OR_INTEREST (also people interested in it).
17996
+ */
17997
+ positive_geo_target_type?: 'PRESENCE_OR_INTEREST' | 'PRESENCE';
17998
+ /**
17999
+ * Who an excluded location excludes: PRESENCE or PRESENCE_OR_INTEREST.
18000
+ */
18001
+ negative_geo_target_type?: 'PRESENCE_OR_INTEREST' | 'PRESENCE';
18002
+ };
18003
+ headers?: {
18004
+ /**
18005
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
18006
+ */
18007
+ 'Idempotency-Key'?: string;
18008
+ };
17997
18009
  path: {
17998
18010
  /**
17999
18011
  * The id of a Google Ads connection in your account.
18000
18012
  */
18001
18013
  connection_id: string;
18002
- };
18003
- query?: {
18004
18014
  /**
18005
- * Only return ad groups under this campaign (its numeric id).
18015
+ * The numeric id of the campaign.
18006
18016
  */
18007
- campaign_id?: string;
18008
- status?: GoogleAdsReadStatusFilter;
18017
+ campaign_id: string;
18009
18018
  };
18010
- url: '/google/{connection_id}/ad-groups';
18019
+ query?: never;
18020
+ url: '/google/{connection_id}/campaigns/{campaign_id}/geo-settings';
18011
18021
  };
18012
- type GoogleListAdGroupsErrors = {
18022
+ type GoogleSetCampaignGeoSettingsErrors = {
18013
18023
  /**
18014
18024
  * An RFC 9457 problem response.
18015
18025
  */
@@ -18283,56 +18293,32 @@ type GoogleListAdGroupsErrors = {
18283
18293
  }>;
18284
18294
  };
18285
18295
  };
18286
- type GoogleListAdGroupsError = GoogleListAdGroupsErrors[keyof GoogleListAdGroupsErrors];
18287
- type GoogleListAdGroupsResponses = {
18296
+ type GoogleSetCampaignGeoSettingsError = GoogleSetCampaignGeoSettingsErrors[keyof GoogleSetCampaignGeoSettingsErrors];
18297
+ type GoogleSetCampaignGeoSettingsResponses = {
18288
18298
  /**
18289
18299
  * OK
18290
18300
  */
18291
- 200: {
18292
- object: 'list';
18293
- data: Array<GoogleAdsAdGroup>;
18294
- };
18301
+ 200: GoogleAdsEditResult;
18295
18302
  };
18296
- type GoogleListAdGroupsResponse = GoogleListAdGroupsResponses[keyof GoogleListAdGroupsResponses];
18297
- type GoogleCreateAdGroupData = {
18298
- body: {
18303
+ type GoogleSetCampaignGeoSettingsResponse = GoogleSetCampaignGeoSettingsResponses[keyof GoogleSetCampaignGeoSettingsResponses];
18304
+ type GoogleListAdGroupsData = {
18305
+ body?: never;
18306
+ path: {
18299
18307
  /**
18300
- * A name for the ad group, unique within the campaign.
18308
+ * The id of a Google Ads connection in your account.
18301
18309
  */
18302
- name: string;
18310
+ connection_id: string;
18311
+ };
18312
+ query?: {
18303
18313
  /**
18304
- * The resource name of the parent campaign (e.g. `customers/123/campaigns/456`), as returned by POST /campaigns.
18305
- */
18306
- campaign: string;
18307
- /**
18308
- * The ad group type; must match the parent campaign channel: SEARCH_STANDARD for a Search campaign, DISPLAY_STANDARD for a Display campaign.
18309
- */
18310
- type: 'SEARCH_STANDARD' | 'DISPLAY_STANDARD';
18311
- /**
18312
- * The initial serving status of the ad group. Defaults to ENABLED.
18313
- */
18314
- status?: 'ENABLED' | 'PAUSED';
18315
- /**
18316
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
18317
- */
18318
- dry_run?: boolean;
18319
- };
18320
- headers?: {
18321
- /**
18322
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
18323
- */
18324
- 'Idempotency-Key'?: string;
18325
- };
18326
- path: {
18327
- /**
18328
- * The id of a Google Ads connection in your account.
18314
+ * Only return ad groups under this campaign (its numeric id).
18329
18315
  */
18330
- connection_id: string;
18316
+ campaign_id?: string;
18317
+ status?: GoogleAdsReadStatusFilter;
18331
18318
  };
18332
- query?: never;
18333
18319
  url: '/google/{connection_id}/ad-groups';
18334
18320
  };
18335
- type GoogleCreateAdGroupErrors = {
18321
+ type GoogleListAdGroupsErrors = {
18336
18322
  /**
18337
18323
  * An RFC 9457 problem response.
18338
18324
  */
@@ -18606,30 +18592,56 @@ type GoogleCreateAdGroupErrors = {
18606
18592
  }>;
18607
18593
  };
18608
18594
  };
18609
- type GoogleCreateAdGroupError = GoogleCreateAdGroupErrors[keyof GoogleCreateAdGroupErrors];
18610
- type GoogleCreateAdGroupResponses = {
18595
+ type GoogleListAdGroupsError = GoogleListAdGroupsErrors[keyof GoogleListAdGroupsErrors];
18596
+ type GoogleListAdGroupsResponses = {
18611
18597
  /**
18612
18598
  * OK
18613
18599
  */
18614
- 201: GoogleAdsCreateResult;
18600
+ 200: {
18601
+ object: 'list';
18602
+ data: Array<GoogleAdsAdGroup>;
18603
+ };
18615
18604
  };
18616
- type GoogleCreateAdGroupResponse = GoogleCreateAdGroupResponses[keyof GoogleCreateAdGroupResponses];
18617
- type GoogleGetAdGroupData = {
18618
- body?: never;
18605
+ type GoogleListAdGroupsResponse = GoogleListAdGroupsResponses[keyof GoogleListAdGroupsResponses];
18606
+ type GoogleCreateAdGroupData = {
18607
+ body: {
18608
+ /**
18609
+ * A name for the ad group, unique within the campaign.
18610
+ */
18611
+ name: string;
18612
+ /**
18613
+ * The resource name of the parent campaign (e.g. `customers/123/campaigns/456`), as returned by POST /campaigns.
18614
+ */
18615
+ campaign: string;
18616
+ /**
18617
+ * The ad group type; must match the parent campaign channel: SEARCH_STANDARD for a Search campaign, DISPLAY_STANDARD for a Display campaign.
18618
+ */
18619
+ type: 'SEARCH_STANDARD' | 'DISPLAY_STANDARD';
18620
+ /**
18621
+ * The initial serving status of the ad group. Defaults to ENABLED.
18622
+ */
18623
+ status?: 'ENABLED' | 'PAUSED';
18624
+ /**
18625
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
18626
+ */
18627
+ dry_run?: boolean;
18628
+ };
18629
+ headers?: {
18630
+ /**
18631
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
18632
+ */
18633
+ 'Idempotency-Key'?: string;
18634
+ };
18619
18635
  path: {
18620
18636
  /**
18621
18637
  * The id of a Google Ads connection in your account.
18622
18638
  */
18623
18639
  connection_id: string;
18624
- /**
18625
- * The numeric id of the resource.
18626
- */
18627
- id: string;
18628
18640
  };
18629
18641
  query?: never;
18630
- url: '/google/{connection_id}/ad-groups/{id}';
18642
+ url: '/google/{connection_id}/ad-groups';
18631
18643
  };
18632
- type GoogleGetAdGroupErrors = {
18644
+ type GoogleCreateAdGroupErrors = {
18633
18645
  /**
18634
18646
  * An RFC 9457 problem response.
18635
18647
  */
@@ -18903,31 +18915,16 @@ type GoogleGetAdGroupErrors = {
18903
18915
  }>;
18904
18916
  };
18905
18917
  };
18906
- type GoogleGetAdGroupError = GoogleGetAdGroupErrors[keyof GoogleGetAdGroupErrors];
18907
- type GoogleGetAdGroupResponses = {
18918
+ type GoogleCreateAdGroupError = GoogleCreateAdGroupErrors[keyof GoogleCreateAdGroupErrors];
18919
+ type GoogleCreateAdGroupResponses = {
18908
18920
  /**
18909
18921
  * OK
18910
18922
  */
18911
- 200: GoogleAdsAdGroup;
18923
+ 201: GoogleAdsCreateResult;
18912
18924
  };
18913
- type GoogleGetAdGroupResponse = GoogleGetAdGroupResponses[keyof GoogleGetAdGroupResponses];
18914
- type GoogleEditAdGroupData = {
18915
- body: {
18916
- /**
18917
- * A new name for the ad group, unique within the campaign.
18918
- */
18919
- name: string;
18920
- /**
18921
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
18922
- */
18923
- dry_run?: boolean;
18924
- };
18925
- headers?: {
18926
- /**
18927
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
18928
- */
18929
- 'Idempotency-Key'?: string;
18930
- };
18925
+ type GoogleCreateAdGroupResponse = GoogleCreateAdGroupResponses[keyof GoogleCreateAdGroupResponses];
18926
+ type GoogleGetAdGroupData = {
18927
+ body?: never;
18931
18928
  path: {
18932
18929
  /**
18933
18930
  * The id of a Google Ads connection in your account.
@@ -18941,7 +18938,7 @@ type GoogleEditAdGroupData = {
18941
18938
  query?: never;
18942
18939
  url: '/google/{connection_id}/ad-groups/{id}';
18943
18940
  };
18944
- type GoogleEditAdGroupErrors = {
18941
+ type GoogleGetAdGroupErrors = {
18945
18942
  /**
18946
18943
  * An RFC 9457 problem response.
18947
18944
  */
@@ -19215,32 +19212,20 @@ type GoogleEditAdGroupErrors = {
19215
19212
  }>;
19216
19213
  };
19217
19214
  };
19218
- type GoogleEditAdGroupError = GoogleEditAdGroupErrors[keyof GoogleEditAdGroupErrors];
19219
- type GoogleEditAdGroupResponses = {
19215
+ type GoogleGetAdGroupError = GoogleGetAdGroupErrors[keyof GoogleGetAdGroupErrors];
19216
+ type GoogleGetAdGroupResponses = {
19220
19217
  /**
19221
19218
  * OK
19222
19219
  */
19223
- 200: GoogleAdsEditResult;
19220
+ 200: GoogleAdsAdGroup;
19224
19221
  };
19225
- type GoogleEditAdGroupResponse = GoogleEditAdGroupResponses[keyof GoogleEditAdGroupResponses];
19226
- type GoogleSetAdGroupBidsData = {
19227
- body?: {
19228
- /**
19229
- * Manual CPC bid, in micros of the account currency.
19230
- */
19231
- cpc_bid_micros?: number;
19232
- /**
19233
- * Manual CPM bid, in micros of the account currency.
19234
- */
19235
- cpm_bid_micros?: number;
19236
- /**
19237
- * Target CPA, in micros of the account currency.
19238
- */
19239
- target_cpa_micros?: number;
19222
+ type GoogleGetAdGroupResponse = GoogleGetAdGroupResponses[keyof GoogleGetAdGroupResponses];
19223
+ type GoogleEditAdGroupData = {
19224
+ body: {
19240
19225
  /**
19241
- * Target ROAS as a ratio (e.g. 4.0 means 400%).
19226
+ * A new name for the ad group, unique within the campaign.
19242
19227
  */
19243
- target_roas?: number;
19228
+ name: string;
19244
19229
  /**
19245
19230
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
19246
19231
  */
@@ -19263,9 +19248,9 @@ type GoogleSetAdGroupBidsData = {
19263
19248
  id: string;
19264
19249
  };
19265
19250
  query?: never;
19266
- url: '/google/{connection_id}/ad-groups/{id}/bids';
19251
+ url: '/google/{connection_id}/ad-groups/{id}';
19267
19252
  };
19268
- type GoogleSetAdGroupBidsErrors = {
19253
+ type GoogleEditAdGroupErrors = {
19269
19254
  /**
19270
19255
  * An RFC 9457 problem response.
19271
19256
  */
@@ -19539,16 +19524,32 @@ type GoogleSetAdGroupBidsErrors = {
19539
19524
  }>;
19540
19525
  };
19541
19526
  };
19542
- type GoogleSetAdGroupBidsError = GoogleSetAdGroupBidsErrors[keyof GoogleSetAdGroupBidsErrors];
19543
- type GoogleSetAdGroupBidsResponses = {
19527
+ type GoogleEditAdGroupError = GoogleEditAdGroupErrors[keyof GoogleEditAdGroupErrors];
19528
+ type GoogleEditAdGroupResponses = {
19544
19529
  /**
19545
19530
  * OK
19546
19531
  */
19547
19532
  200: GoogleAdsEditResult;
19548
19533
  };
19549
- type GoogleSetAdGroupBidsResponse = GoogleSetAdGroupBidsResponses[keyof GoogleSetAdGroupBidsResponses];
19550
- type GoogleRemoveAdGroupData = {
19534
+ type GoogleEditAdGroupResponse = GoogleEditAdGroupResponses[keyof GoogleEditAdGroupResponses];
19535
+ type GoogleSetAdGroupBidsData = {
19551
19536
  body?: {
19537
+ /**
19538
+ * Manual CPC bid, in micros of the account currency.
19539
+ */
19540
+ cpc_bid_micros?: number;
19541
+ /**
19542
+ * Manual CPM bid, in micros of the account currency.
19543
+ */
19544
+ cpm_bid_micros?: number;
19545
+ /**
19546
+ * Target CPA, in micros of the account currency.
19547
+ */
19548
+ target_cpa_micros?: number;
19549
+ /**
19550
+ * Target ROAS as a ratio (e.g. 4.0 means 400%).
19551
+ */
19552
+ target_roas?: number;
19552
19553
  /**
19553
19554
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
19554
19555
  */
@@ -19571,9 +19572,9 @@ type GoogleRemoveAdGroupData = {
19571
19572
  id: string;
19572
19573
  };
19573
19574
  query?: never;
19574
- url: '/google/{connection_id}/ad-groups/{id}/remove';
19575
+ url: '/google/{connection_id}/ad-groups/{id}/bids';
19575
19576
  };
19576
- type GoogleRemoveAdGroupErrors = {
19577
+ type GoogleSetAdGroupBidsErrors = {
19577
19578
  /**
19578
19579
  * An RFC 9457 problem response.
19579
19580
  */
@@ -19847,18 +19848,18 @@ type GoogleRemoveAdGroupErrors = {
19847
19848
  }>;
19848
19849
  };
19849
19850
  };
19850
- type GoogleRemoveAdGroupError = GoogleRemoveAdGroupErrors[keyof GoogleRemoveAdGroupErrors];
19851
- type GoogleRemoveAdGroupResponses = {
19851
+ type GoogleSetAdGroupBidsError = GoogleSetAdGroupBidsErrors[keyof GoogleSetAdGroupBidsErrors];
19852
+ type GoogleSetAdGroupBidsResponses = {
19852
19853
  /**
19853
19854
  * OK
19854
19855
  */
19855
- 200: GoogleAdsDeleteResult;
19856
+ 200: GoogleAdsEditResult;
19856
19857
  };
19857
- type GoogleRemoveAdGroupResponse = GoogleRemoveAdGroupResponses[keyof GoogleRemoveAdGroupResponses];
19858
- type GooglePauseAdGroupData = {
19858
+ type GoogleSetAdGroupBidsResponse = GoogleSetAdGroupBidsResponses[keyof GoogleSetAdGroupBidsResponses];
19859
+ type GoogleRemoveAdGroupData = {
19859
19860
  body?: {
19860
19861
  /**
19861
- * Preview the change without applying it. Default false (the write executes).
19862
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
19862
19863
  */
19863
19864
  dry_run?: boolean;
19864
19865
  };
@@ -19879,9 +19880,9 @@ type GooglePauseAdGroupData = {
19879
19880
  id: string;
19880
19881
  };
19881
19882
  query?: never;
19882
- url: '/google/{connection_id}/ad-groups/{id}/pause';
19883
+ url: '/google/{connection_id}/ad-groups/{id}/remove';
19883
19884
  };
19884
- type GooglePauseAdGroupErrors = {
19885
+ type GoogleRemoveAdGroupErrors = {
19885
19886
  /**
19886
19887
  * An RFC 9457 problem response.
19887
19888
  */
@@ -20155,20 +20156,15 @@ type GooglePauseAdGroupErrors = {
20155
20156
  }>;
20156
20157
  };
20157
20158
  };
20158
- type GooglePauseAdGroupError = GooglePauseAdGroupErrors[keyof GooglePauseAdGroupErrors];
20159
- type GooglePauseAdGroupResponses = {
20159
+ type GoogleRemoveAdGroupError = GoogleRemoveAdGroupErrors[keyof GoogleRemoveAdGroupErrors];
20160
+ type GoogleRemoveAdGroupResponses = {
20160
20161
  /**
20161
- * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
20162
+ * OK
20162
20163
  */
20163
- 200: {
20164
- id: string;
20165
- status: 'ENABLED' | 'PAUSED';
20166
- dry_run: boolean;
20167
- executed: boolean;
20168
- };
20164
+ 200: GoogleAdsDeleteResult;
20169
20165
  };
20170
- type GooglePauseAdGroupResponse = GooglePauseAdGroupResponses[keyof GooglePauseAdGroupResponses];
20171
- type GoogleEnableAdGroupData = {
20166
+ type GoogleRemoveAdGroupResponse = GoogleRemoveAdGroupResponses[keyof GoogleRemoveAdGroupResponses];
20167
+ type GooglePauseAdGroupData = {
20172
20168
  body?: {
20173
20169
  /**
20174
20170
  * Preview the change without applying it. Default false (the write executes).
@@ -20192,9 +20188,9 @@ type GoogleEnableAdGroupData = {
20192
20188
  id: string;
20193
20189
  };
20194
20190
  query?: never;
20195
- url: '/google/{connection_id}/ad-groups/{id}/enable';
20191
+ url: '/google/{connection_id}/ad-groups/{id}/pause';
20196
20192
  };
20197
- type GoogleEnableAdGroupErrors = {
20193
+ type GooglePauseAdGroupErrors = {
20198
20194
  /**
20199
20195
  * An RFC 9457 problem response.
20200
20196
  */
@@ -20468,8 +20464,8 @@ type GoogleEnableAdGroupErrors = {
20468
20464
  }>;
20469
20465
  };
20470
20466
  };
20471
- type GoogleEnableAdGroupError = GoogleEnableAdGroupErrors[keyof GoogleEnableAdGroupErrors];
20472
- type GoogleEnableAdGroupResponses = {
20467
+ type GooglePauseAdGroupError = GooglePauseAdGroupErrors[keyof GooglePauseAdGroupErrors];
20468
+ type GooglePauseAdGroupResponses = {
20473
20469
  /**
20474
20470
  * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
20475
20471
  */
@@ -20480,23 +20476,34 @@ type GoogleEnableAdGroupResponses = {
20480
20476
  executed: boolean;
20481
20477
  };
20482
20478
  };
20483
- type GoogleEnableAdGroupResponse = GoogleEnableAdGroupResponses[keyof GoogleEnableAdGroupResponses];
20484
- type GoogleListAdGroupCriteriaData = {
20485
- body?: never;
20479
+ type GooglePauseAdGroupResponse = GooglePauseAdGroupResponses[keyof GooglePauseAdGroupResponses];
20480
+ type GoogleEnableAdGroupData = {
20481
+ body?: {
20482
+ /**
20483
+ * Preview the change without applying it. Default false (the write executes).
20484
+ */
20485
+ dry_run?: boolean;
20486
+ };
20487
+ headers?: {
20488
+ /**
20489
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
20490
+ */
20491
+ 'Idempotency-Key'?: string;
20492
+ };
20486
20493
  path: {
20487
20494
  /**
20488
20495
  * The id of a Google Ads connection in your account.
20489
20496
  */
20490
20497
  connection_id: string;
20491
20498
  /**
20492
- * The numeric id of the ad group.
20499
+ * The numeric id of the resource.
20493
20500
  */
20494
- ad_group_id: string;
20501
+ id: string;
20495
20502
  };
20496
20503
  query?: never;
20497
- url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria';
20504
+ url: '/google/{connection_id}/ad-groups/{id}/enable';
20498
20505
  };
20499
- type GoogleListAdGroupCriteriaErrors = {
20506
+ type GoogleEnableAdGroupErrors = {
20500
20507
  /**
20501
20508
  * An RFC 9457 problem response.
20502
20509
  */
@@ -20770,64 +20777,22 @@ type GoogleListAdGroupCriteriaErrors = {
20770
20777
  }>;
20771
20778
  };
20772
20779
  };
20773
- type GoogleListAdGroupCriteriaError = GoogleListAdGroupCriteriaErrors[keyof GoogleListAdGroupCriteriaErrors];
20774
- type GoogleListAdGroupCriteriaResponses = {
20780
+ type GoogleEnableAdGroupError = GoogleEnableAdGroupErrors[keyof GoogleEnableAdGroupErrors];
20781
+ type GoogleEnableAdGroupResponses = {
20775
20782
  /**
20776
- * OK
20783
+ * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
20777
20784
  */
20778
20785
  200: {
20779
- object: 'list';
20780
- data: Array<GoogleAdsAdGroupCriterion>;
20786
+ id: string;
20787
+ status: 'ENABLED' | 'PAUSED';
20788
+ dry_run: boolean;
20789
+ executed: boolean;
20781
20790
  };
20782
20791
  };
20783
- type GoogleListAdGroupCriteriaResponse = GoogleListAdGroupCriteriaResponses[keyof GoogleListAdGroupCriteriaResponses];
20784
- type GoogleCreateAdGroupCriterionData = {
20785
- body: {
20786
- /**
20787
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
20788
- */
20789
- dry_run?: boolean;
20790
- type: 'age_range' | 'gender' | 'income_range' | 'parental_status' | 'user_list' | 'audience' | 'custom_audience';
20791
- /**
20792
- * The age range to target or exclude (e.g. AGE_RANGE_25_34, or AGE_RANGE_UNDETERMINED for unknown-age users).
20793
- */
20794
- age_range?: 'AGE_RANGE_18_24' | 'AGE_RANGE_25_34' | 'AGE_RANGE_35_44' | 'AGE_RANGE_45_54' | 'AGE_RANGE_55_64' | 'AGE_RANGE_65_UP' | 'AGE_RANGE_UNDETERMINED';
20795
- /**
20796
- * When true, EXCLUDE this demographic instead of targeting it (a negative criterion). Demographics are commonly used as exclusions.
20797
- */
20798
- negative?: boolean;
20799
- /**
20800
- * The gender to target or exclude (MALE, FEMALE, or UNDETERMINED for unknown-gender users).
20801
- */
20802
- gender?: 'MALE' | 'FEMALE' | 'UNDETERMINED';
20803
- /**
20804
- * The household income range to target or exclude (e.g. INCOME_RANGE_0_50 = lowest 50%, INCOME_RANGE_90_UP = top 10%, or INCOME_RANGE_UNDETERMINED).
20805
- */
20806
- income_range?: 'INCOME_RANGE_0_50' | 'INCOME_RANGE_50_60' | 'INCOME_RANGE_60_70' | 'INCOME_RANGE_70_80' | 'INCOME_RANGE_80_90' | 'INCOME_RANGE_90_UP' | 'INCOME_RANGE_UNDETERMINED';
20807
- /**
20808
- * The parental status to target or exclude (PARENT, NOT_A_PARENT, or UNDETERMINED).
20809
- */
20810
- parental_status?: 'PARENT' | 'NOT_A_PARENT' | 'UNDETERMINED';
20811
- /**
20812
- * The resource name of the userLists to target — the `resource_name` from the audiences discovery read (e.g. `customers/123/userLists/456`), NOT a bare id.
20813
- */
20814
- user_list?: string;
20815
- /**
20816
- * The resource name of the audiences to target — the `resource_name` from the audiences discovery read (e.g. `customers/123/audiences/456`), NOT a bare id.
20817
- */
20818
- audience?: string;
20819
- /**
20820
- * The resource name of the customAudiences to target — the `resource_name` from the audiences discovery read (e.g. `customers/123/customAudiences/456`), NOT a bare id.
20821
- */
20822
- custom_audience?: string;
20823
- };
20824
- headers?: {
20825
- /**
20826
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
20827
- */
20828
- 'Idempotency-Key'?: string;
20829
- };
20830
- path: {
20792
+ type GoogleEnableAdGroupResponse = GoogleEnableAdGroupResponses[keyof GoogleEnableAdGroupResponses];
20793
+ type GoogleListAdGroupCriteriaData = {
20794
+ body?: never;
20795
+ path: {
20831
20796
  /**
20832
20797
  * The id of a Google Ads connection in your account.
20833
20798
  */
@@ -20840,7 +20805,7 @@ type GoogleCreateAdGroupCriterionData = {
20840
20805
  query?: never;
20841
20806
  url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria';
20842
20807
  };
20843
- type GoogleCreateAdGroupCriterionErrors = {
20808
+ type GoogleListAdGroupCriteriaErrors = {
20844
20809
  /**
20845
20810
  * An RFC 9457 problem response.
20846
20811
  */
@@ -21114,20 +21079,56 @@ type GoogleCreateAdGroupCriterionErrors = {
21114
21079
  }>;
21115
21080
  };
21116
21081
  };
21117
- type GoogleCreateAdGroupCriterionError = GoogleCreateAdGroupCriterionErrors[keyof GoogleCreateAdGroupCriterionErrors];
21118
- type GoogleCreateAdGroupCriterionResponses = {
21082
+ type GoogleListAdGroupCriteriaError = GoogleListAdGroupCriteriaErrors[keyof GoogleListAdGroupCriteriaErrors];
21083
+ type GoogleListAdGroupCriteriaResponses = {
21119
21084
  /**
21120
21085
  * OK
21121
21086
  */
21122
- 201: GoogleAdsCreateResult;
21087
+ 200: {
21088
+ object: 'list';
21089
+ data: Array<GoogleAdsAdGroupCriterion>;
21090
+ };
21123
21091
  };
21124
- type GoogleCreateAdGroupCriterionResponse = GoogleCreateAdGroupCriterionResponses[keyof GoogleCreateAdGroupCriterionResponses];
21125
- type GoogleRemoveAdGroupCriterionData = {
21126
- body?: {
21092
+ type GoogleListAdGroupCriteriaResponse = GoogleListAdGroupCriteriaResponses[keyof GoogleListAdGroupCriteriaResponses];
21093
+ type GoogleCreateAdGroupCriterionData = {
21094
+ body: {
21127
21095
  /**
21128
21096
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
21129
21097
  */
21130
21098
  dry_run?: boolean;
21099
+ type: 'age_range' | 'gender' | 'income_range' | 'parental_status' | 'user_list' | 'audience' | 'custom_audience';
21100
+ /**
21101
+ * The age range to target or exclude (e.g. AGE_RANGE_25_34, or AGE_RANGE_UNDETERMINED for unknown-age users).
21102
+ */
21103
+ age_range?: 'AGE_RANGE_18_24' | 'AGE_RANGE_25_34' | 'AGE_RANGE_35_44' | 'AGE_RANGE_45_54' | 'AGE_RANGE_55_64' | 'AGE_RANGE_65_UP' | 'AGE_RANGE_UNDETERMINED';
21104
+ /**
21105
+ * When true, EXCLUDE this demographic instead of targeting it (a negative criterion). Demographics are commonly used as exclusions.
21106
+ */
21107
+ negative?: boolean;
21108
+ /**
21109
+ * The gender to target or exclude (MALE, FEMALE, or UNDETERMINED for unknown-gender users).
21110
+ */
21111
+ gender?: 'MALE' | 'FEMALE' | 'UNDETERMINED';
21112
+ /**
21113
+ * The household income range to target or exclude (e.g. INCOME_RANGE_0_50 = lowest 50%, INCOME_RANGE_90_UP = top 10%, or INCOME_RANGE_UNDETERMINED).
21114
+ */
21115
+ income_range?: 'INCOME_RANGE_0_50' | 'INCOME_RANGE_50_60' | 'INCOME_RANGE_60_70' | 'INCOME_RANGE_70_80' | 'INCOME_RANGE_80_90' | 'INCOME_RANGE_90_UP' | 'INCOME_RANGE_UNDETERMINED';
21116
+ /**
21117
+ * The parental status to target or exclude (PARENT, NOT_A_PARENT, or UNDETERMINED).
21118
+ */
21119
+ parental_status?: 'PARENT' | 'NOT_A_PARENT' | 'UNDETERMINED';
21120
+ /**
21121
+ * The resource name of the userLists to target — the `resource_name` from the audiences discovery read (e.g. `customers/123/userLists/456`), NOT a bare id.
21122
+ */
21123
+ user_list?: string;
21124
+ /**
21125
+ * The resource name of the audiences to target — the `resource_name` from the audiences discovery read (e.g. `customers/123/audiences/456`), NOT a bare id.
21126
+ */
21127
+ audience?: string;
21128
+ /**
21129
+ * The resource name of the customAudiences to target — the `resource_name` from the audiences discovery read (e.g. `customers/123/customAudiences/456`), NOT a bare id.
21130
+ */
21131
+ custom_audience?: string;
21131
21132
  };
21132
21133
  headers?: {
21133
21134
  /**
@@ -21144,15 +21145,11 @@ type GoogleRemoveAdGroupCriterionData = {
21144
21145
  * The numeric id of the ad group.
21145
21146
  */
21146
21147
  ad_group_id: string;
21147
- /**
21148
- * The numeric id of the criterion.
21149
- */
21150
- criterion_id: string;
21151
21148
  };
21152
21149
  query?: never;
21153
- url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria/{criterion_id}/remove';
21150
+ url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria';
21154
21151
  };
21155
- type GoogleRemoveAdGroupCriterionErrors = {
21152
+ type GoogleCreateAdGroupCriterionErrors = {
21156
21153
  /**
21157
21154
  * An RFC 9457 problem response.
21158
21155
  */
@@ -21426,35 +21423,45 @@ type GoogleRemoveAdGroupCriterionErrors = {
21426
21423
  }>;
21427
21424
  };
21428
21425
  };
21429
- type GoogleRemoveAdGroupCriterionError = GoogleRemoveAdGroupCriterionErrors[keyof GoogleRemoveAdGroupCriterionErrors];
21430
- type GoogleRemoveAdGroupCriterionResponses = {
21426
+ type GoogleCreateAdGroupCriterionError = GoogleCreateAdGroupCriterionErrors[keyof GoogleCreateAdGroupCriterionErrors];
21427
+ type GoogleCreateAdGroupCriterionResponses = {
21431
21428
  /**
21432
21429
  * OK
21433
21430
  */
21434
- 200: GoogleAdsDeleteResult;
21431
+ 201: GoogleAdsCreateResult;
21435
21432
  };
21436
- type GoogleRemoveAdGroupCriterionResponse = GoogleRemoveAdGroupCriterionResponses[keyof GoogleRemoveAdGroupCriterionResponses];
21437
- type GoogleListAudiencesData = {
21438
- body?: never;
21433
+ type GoogleCreateAdGroupCriterionResponse = GoogleCreateAdGroupCriterionResponses[keyof GoogleCreateAdGroupCriterionResponses];
21434
+ type GoogleRemoveAdGroupCriterionData = {
21435
+ body?: {
21436
+ /**
21437
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
21438
+ */
21439
+ dry_run?: boolean;
21440
+ };
21441
+ headers?: {
21442
+ /**
21443
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
21444
+ */
21445
+ 'Idempotency-Key'?: string;
21446
+ };
21439
21447
  path: {
21440
21448
  /**
21441
21449
  * The id of a Google Ads connection in your account.
21442
21450
  */
21443
21451
  connection_id: string;
21444
- };
21445
- query?: {
21446
21452
  /**
21447
- * Optional case-insensitive filter on the audience name.
21453
+ * The numeric id of the ad group.
21448
21454
  */
21449
- q?: string;
21455
+ ad_group_id: string;
21450
21456
  /**
21451
- * Optional filter to one audience kind (user_list, audience, or custom_audience).
21457
+ * The numeric id of the criterion.
21452
21458
  */
21453
- kind?: 'user_list' | 'audience' | 'custom_audience';
21459
+ criterion_id: string;
21454
21460
  };
21455
- url: '/google/{connection_id}/audiences';
21461
+ query?: never;
21462
+ url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria/{criterion_id}/remove';
21456
21463
  };
21457
- type GoogleListAudiencesErrors = {
21464
+ type GoogleRemoveAdGroupCriterionErrors = {
21458
21465
  /**
21459
21466
  * An RFC 9457 problem response.
21460
21467
  */
@@ -21728,52 +21735,35 @@ type GoogleListAudiencesErrors = {
21728
21735
  }>;
21729
21736
  };
21730
21737
  };
21731
- type GoogleListAudiencesError = GoogleListAudiencesErrors[keyof GoogleListAudiencesErrors];
21732
- type GoogleListAudiencesResponses = {
21738
+ type GoogleRemoveAdGroupCriterionError = GoogleRemoveAdGroupCriterionErrors[keyof GoogleRemoveAdGroupCriterionErrors];
21739
+ type GoogleRemoveAdGroupCriterionResponses = {
21733
21740
  /**
21734
21741
  * OK
21735
21742
  */
21736
- 200: {
21737
- object: 'list';
21738
- data: Array<GoogleAdsAudience>;
21739
- };
21743
+ 200: GoogleAdsDeleteResult;
21740
21744
  };
21741
- type GoogleListAudiencesResponse = GoogleListAudiencesResponses[keyof GoogleListAudiencesResponses];
21742
- type GoogleSetCampaignTargetingSettingData = {
21743
- body: {
21744
- /**
21745
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
21746
- */
21747
- dry_run?: boolean;
21748
- /**
21749
- * The criteria dimension this setting controls — most often AUDIENCE.
21750
- */
21751
- targeting_dimension: 'KEYWORD' | 'AUDIENCE' | 'TOPIC' | 'GENDER' | 'AGE_RANGE' | 'PLACEMENT' | 'PARENTAL_STATUS' | 'INCOME_RANGE';
21752
- /**
21753
- * true = Observation (the criteria do NOT narrow reach; report/bid only). false = Targeting (narrows reach to the targeted criteria). Default in Google is Targeting; Observation is recommended for audience segments in Search.
21754
- */
21755
- bid_only: boolean;
21756
- };
21757
- headers?: {
21758
- /**
21759
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
21760
- */
21761
- 'Idempotency-Key'?: string;
21762
- };
21745
+ type GoogleRemoveAdGroupCriterionResponse = GoogleRemoveAdGroupCriterionResponses[keyof GoogleRemoveAdGroupCriterionResponses];
21746
+ type GoogleListAudiencesData = {
21747
+ body?: never;
21763
21748
  path: {
21764
21749
  /**
21765
21750
  * The id of a Google Ads connection in your account.
21766
21751
  */
21767
21752
  connection_id: string;
21753
+ };
21754
+ query?: {
21768
21755
  /**
21769
- * The numeric id of the campaign.
21756
+ * Optional case-insensitive filter on the audience name.
21770
21757
  */
21771
- campaign_id: string;
21758
+ q?: string;
21759
+ /**
21760
+ * Optional filter to one audience kind (user_list, audience, or custom_audience).
21761
+ */
21762
+ kind?: 'user_list' | 'audience' | 'custom_audience';
21772
21763
  };
21773
- query?: never;
21774
- url: '/google/{connection_id}/campaigns/{campaign_id}/targeting-setting';
21764
+ url: '/google/{connection_id}/audiences';
21775
21765
  };
21776
- type GoogleSetCampaignTargetingSettingErrors = {
21766
+ type GoogleListAudiencesErrors = {
21777
21767
  /**
21778
21768
  * An RFC 9457 problem response.
21779
21769
  */
@@ -22047,32 +22037,52 @@ type GoogleSetCampaignTargetingSettingErrors = {
22047
22037
  }>;
22048
22038
  };
22049
22039
  };
22050
- type GoogleSetCampaignTargetingSettingError = GoogleSetCampaignTargetingSettingErrors[keyof GoogleSetCampaignTargetingSettingErrors];
22051
- type GoogleSetCampaignTargetingSettingResponses = {
22040
+ type GoogleListAudiencesError = GoogleListAudiencesErrors[keyof GoogleListAudiencesErrors];
22041
+ type GoogleListAudiencesResponses = {
22052
22042
  /**
22053
22043
  * OK
22054
22044
  */
22055
- 200: GoogleAdsEditResult;
22045
+ 200: {
22046
+ object: 'list';
22047
+ data: Array<GoogleAdsAudience>;
22048
+ };
22056
22049
  };
22057
- type GoogleSetCampaignTargetingSettingResponse = GoogleSetCampaignTargetingSettingResponses[keyof GoogleSetCampaignTargetingSettingResponses];
22058
- type GoogleListAdsData = {
22059
- body?: never;
22050
+ type GoogleListAudiencesResponse = GoogleListAudiencesResponses[keyof GoogleListAudiencesResponses];
22051
+ type GoogleSetCampaignTargetingSettingData = {
22052
+ body: {
22053
+ /**
22054
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
22055
+ */
22056
+ dry_run?: boolean;
22057
+ /**
22058
+ * The criteria dimension this setting controls — most often AUDIENCE.
22059
+ */
22060
+ targeting_dimension: 'KEYWORD' | 'AUDIENCE' | 'TOPIC' | 'GENDER' | 'AGE_RANGE' | 'PLACEMENT' | 'PARENTAL_STATUS' | 'INCOME_RANGE';
22061
+ /**
22062
+ * true = Observation (the criteria do NOT narrow reach; report/bid only). false = Targeting (narrows reach to the targeted criteria). Default in Google is Targeting; Observation is recommended for audience segments in Search.
22063
+ */
22064
+ bid_only: boolean;
22065
+ };
22066
+ headers?: {
22067
+ /**
22068
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
22069
+ */
22070
+ 'Idempotency-Key'?: string;
22071
+ };
22060
22072
  path: {
22061
22073
  /**
22062
22074
  * The id of a Google Ads connection in your account.
22063
22075
  */
22064
22076
  connection_id: string;
22065
- };
22066
- query?: {
22067
22077
  /**
22068
- * Only return ads under this ad group (its numeric id).
22078
+ * The numeric id of the campaign.
22069
22079
  */
22070
- ad_group_id?: string;
22071
- status?: GoogleAdsReadStatusFilter;
22080
+ campaign_id: string;
22072
22081
  };
22073
- url: '/google/{connection_id}/ads';
22082
+ query?: never;
22083
+ url: '/google/{connection_id}/campaigns/{campaign_id}/targeting-setting';
22074
22084
  };
22075
- type GoogleListAdsErrors = {
22085
+ type GoogleSetCampaignTargetingSettingErrors = {
22076
22086
  /**
22077
22087
  * An RFC 9457 problem response.
22078
22088
  */
@@ -22346,82 +22356,32 @@ type GoogleListAdsErrors = {
22346
22356
  }>;
22347
22357
  };
22348
22358
  };
22349
- type GoogleListAdsError = GoogleListAdsErrors[keyof GoogleListAdsErrors];
22350
- type GoogleListAdsResponses = {
22359
+ type GoogleSetCampaignTargetingSettingError = GoogleSetCampaignTargetingSettingErrors[keyof GoogleSetCampaignTargetingSettingErrors];
22360
+ type GoogleSetCampaignTargetingSettingResponses = {
22351
22361
  /**
22352
22362
  * OK
22353
22363
  */
22354
- 200: {
22355
- object: 'list';
22356
- data: Array<GoogleAdsAd>;
22357
- };
22364
+ 200: GoogleAdsEditResult;
22358
22365
  };
22359
- type GoogleListAdsResponse = GoogleListAdsResponses[keyof GoogleListAdsResponses];
22360
- type GoogleCreateAdData = {
22361
- body: {
22366
+ type GoogleSetCampaignTargetingSettingResponse = GoogleSetCampaignTargetingSettingResponses[keyof GoogleSetCampaignTargetingSettingResponses];
22367
+ type GoogleListAdsData = {
22368
+ body?: never;
22369
+ path: {
22362
22370
  /**
22363
- * The ad group resource name this ad belongs to.
22371
+ * The id of a Google Ads connection in your account.
22364
22372
  */
22365
- ad_group: string;
22366
- /**
22367
- * The landing page URLs for the ad (at least one).
22368
- */
22369
- final_urls: Array<string>;
22370
- /**
22371
- * Between 3 and 15 headline assets.
22372
- */
22373
- headlines: Array<{
22374
- /**
22375
- * Headline text, up to 30 characters.
22376
- */
22377
- text: string;
22378
- /**
22379
- * Optionally pin this headline to position 1, 2, or 3.
22380
- */
22381
- pinned_field?: 'HEADLINE_1' | 'HEADLINE_2' | 'HEADLINE_3';
22382
- }>;
22383
- /**
22384
- * Between 2 and 4 description assets.
22385
- */
22386
- descriptions: Array<{
22387
- /**
22388
- * Description text, up to 90 characters.
22389
- */
22390
- text: string;
22391
- }>;
22392
- /**
22393
- * Optional first path segment shown in the display URL, up to 15 characters.
22394
- */
22395
- path1?: string;
22396
- /**
22397
- * Optional second path segment shown in the display URL, up to 15 characters (requires path1).
22398
- */
22399
- path2?: string;
22400
- /**
22401
- * The ad’s serving status. Defaults to PAUSED.
22402
- */
22403
- status?: 'ENABLED' | 'PAUSED';
22404
- /**
22405
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
22406
- */
22407
- dry_run?: boolean;
22408
- };
22409
- headers?: {
22410
- /**
22411
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
22412
- */
22413
- 'Idempotency-Key'?: string;
22373
+ connection_id: string;
22414
22374
  };
22415
- path: {
22375
+ query?: {
22416
22376
  /**
22417
- * The id of a Google Ads connection in your account.
22377
+ * Only return ads under this ad group (its numeric id).
22418
22378
  */
22419
- connection_id: string;
22379
+ ad_group_id?: string;
22380
+ status?: GoogleAdsReadStatusFilter;
22420
22381
  };
22421
- query?: never;
22422
22382
  url: '/google/{connection_id}/ads';
22423
22383
  };
22424
- type GoogleCreateAdErrors = {
22384
+ type GoogleListAdsErrors = {
22425
22385
  /**
22426
22386
  * An RFC 9457 problem response.
22427
22387
  */
@@ -22695,30 +22655,82 @@ type GoogleCreateAdErrors = {
22695
22655
  }>;
22696
22656
  };
22697
22657
  };
22698
- type GoogleCreateAdError = GoogleCreateAdErrors[keyof GoogleCreateAdErrors];
22699
- type GoogleCreateAdResponses = {
22658
+ type GoogleListAdsError = GoogleListAdsErrors[keyof GoogleListAdsErrors];
22659
+ type GoogleListAdsResponses = {
22700
22660
  /**
22701
22661
  * OK
22702
22662
  */
22703
- 201: GoogleAdsCreateResult;
22663
+ 200: {
22664
+ object: 'list';
22665
+ data: Array<GoogleAdsAd>;
22666
+ };
22704
22667
  };
22705
- type GoogleCreateAdResponse = GoogleCreateAdResponses[keyof GoogleCreateAdResponses];
22706
- type GoogleGetAdData = {
22707
- body?: never;
22668
+ type GoogleListAdsResponse = GoogleListAdsResponses[keyof GoogleListAdsResponses];
22669
+ type GoogleCreateAdData = {
22670
+ body: {
22671
+ /**
22672
+ * The ad group resource name this ad belongs to.
22673
+ */
22674
+ ad_group: string;
22675
+ /**
22676
+ * The landing page URLs for the ad (at least one).
22677
+ */
22678
+ final_urls: Array<string>;
22679
+ /**
22680
+ * Between 3 and 15 headline assets.
22681
+ */
22682
+ headlines: Array<{
22683
+ /**
22684
+ * Headline text, up to 30 characters.
22685
+ */
22686
+ text: string;
22687
+ /**
22688
+ * Optionally pin this headline to position 1, 2, or 3.
22689
+ */
22690
+ pinned_field?: 'HEADLINE_1' | 'HEADLINE_2' | 'HEADLINE_3';
22691
+ }>;
22692
+ /**
22693
+ * Between 2 and 4 description assets.
22694
+ */
22695
+ descriptions: Array<{
22696
+ /**
22697
+ * Description text, up to 90 characters.
22698
+ */
22699
+ text: string;
22700
+ }>;
22701
+ /**
22702
+ * Optional first path segment shown in the display URL, up to 15 characters.
22703
+ */
22704
+ path1?: string;
22705
+ /**
22706
+ * Optional second path segment shown in the display URL, up to 15 characters (requires path1).
22707
+ */
22708
+ path2?: string;
22709
+ /**
22710
+ * The ad’s serving status. Defaults to PAUSED.
22711
+ */
22712
+ status?: 'ENABLED' | 'PAUSED';
22713
+ /**
22714
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
22715
+ */
22716
+ dry_run?: boolean;
22717
+ };
22718
+ headers?: {
22719
+ /**
22720
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
22721
+ */
22722
+ 'Idempotency-Key'?: string;
22723
+ };
22708
22724
  path: {
22709
22725
  /**
22710
22726
  * The id of a Google Ads connection in your account.
22711
22727
  */
22712
22728
  connection_id: string;
22713
- /**
22714
- * The composite id {ad_group_id}~{id} of the resource (as returned by the list/get read).
22715
- */
22716
- id: string;
22717
22729
  };
22718
22730
  query?: never;
22719
- url: '/google/{connection_id}/ads/{id}';
22731
+ url: '/google/{connection_id}/ads';
22720
22732
  };
22721
- type GoogleGetAdErrors = {
22733
+ type GoogleCreateAdErrors = {
22722
22734
  /**
22723
22735
  * An RFC 9457 problem response.
22724
22736
  */
@@ -22992,128 +23004,30 @@ type GoogleGetAdErrors = {
22992
23004
  }>;
22993
23005
  };
22994
23006
  };
22995
- type GoogleGetAdError = GoogleGetAdErrors[keyof GoogleGetAdErrors];
22996
- type GoogleGetAdResponses = {
23007
+ type GoogleCreateAdError = GoogleCreateAdErrors[keyof GoogleCreateAdErrors];
23008
+ type GoogleCreateAdResponses = {
22997
23009
  /**
22998
23010
  * OK
22999
23011
  */
23000
- 200: GoogleAdsAd;
23012
+ 201: GoogleAdsCreateResult;
23001
23013
  };
23002
- type GoogleGetAdResponse = GoogleGetAdResponses[keyof GoogleGetAdResponses];
23003
- type GoogleCreateDisplayAdData = {
23004
- body: {
23005
- /**
23006
- * The ad group resource name this ad belongs to.
23007
- */
23008
- ad_group: string;
23009
- /**
23010
- * The landing page URLs for the ad (at least one).
23011
- */
23012
- final_urls: Array<string>;
23013
- /**
23014
- * Landscape (1.91:1) marketing image asset resource_names. Combined with square_marketing_images: at least 1, at most 15.
23015
- */
23016
- marketing_images?: Array<{
23017
- /**
23018
- * The resource_name of an uploaded Google Ads image asset.
23019
- */
23020
- asset: string;
23021
- }>;
23022
- /**
23023
- * Square (1:1) marketing image asset resource_names. Combined with marketing_images: at least 1, at most 15.
23024
- */
23025
- square_marketing_images?: Array<{
23026
- /**
23027
- * The resource_name of an uploaded Google Ads image asset.
23028
- */
23029
- asset: string;
23030
- }>;
23031
- /**
23032
- * Landscape (4:1) logo image asset resource_names. Combined with square_logo_images: at most 5.
23033
- */
23034
- logo_images?: Array<{
23035
- /**
23036
- * The resource_name of an uploaded Google Ads image asset.
23037
- */
23038
- asset: string;
23039
- }>;
23040
- /**
23041
- * Square (1:1) logo image asset resource_names. Combined with logo_images: at most 5.
23042
- */
23043
- square_logo_images?: Array<{
23044
- /**
23045
- * The resource_name of an uploaded Google Ads image asset.
23046
- */
23047
- asset: string;
23048
- }>;
23049
- /**
23050
- * Between 1 and 5 short headline assets.
23051
- */
23052
- headlines: Array<{
23053
- /**
23054
- * Short headline text, up to 30 characters.
23055
- */
23056
- text: string;
23057
- }>;
23058
- /**
23059
- * The required long headline (up to 90 characters).
23060
- */
23061
- long_headline: {
23062
- /**
23063
- * The long headline text, up to 90 characters.
23064
- */
23065
- text: string;
23066
- };
23067
- /**
23068
- * Between 1 and 5 description assets.
23069
- */
23070
- descriptions: Array<{
23071
- /**
23072
- * Description text, up to 90 characters.
23073
- */
23074
- text: string;
23075
- }>;
23076
- /**
23077
- * The advertiser/business name, up to 25 characters.
23078
- */
23079
- business_name?: string;
23080
- /**
23081
- * Optional call-to-action button text.
23082
- */
23083
- call_to_action_text?: string;
23084
- /**
23085
- * Optional main brand color as a hex string (e.g. #0a0a0a).
23086
- */
23087
- main_color?: string;
23088
- /**
23089
- * Optional accent brand color as a hex string (e.g. #ffffff).
23090
- */
23091
- accent_color?: string;
23092
- /**
23093
- * The ad’s serving status. Defaults to PAUSED.
23094
- */
23095
- status?: 'ENABLED' | 'PAUSED';
23096
- /**
23097
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
23098
- */
23099
- dry_run?: boolean;
23100
- };
23101
- headers?: {
23102
- /**
23103
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
23104
- */
23105
- 'Idempotency-Key'?: string;
23106
- };
23014
+ type GoogleCreateAdResponse = GoogleCreateAdResponses[keyof GoogleCreateAdResponses];
23015
+ type GoogleGetAdData = {
23016
+ body?: never;
23107
23017
  path: {
23108
23018
  /**
23109
23019
  * The id of a Google Ads connection in your account.
23110
23020
  */
23111
23021
  connection_id: string;
23022
+ /**
23023
+ * The composite id {ad_group_id}~{id} of the resource (as returned by the list/get read).
23024
+ */
23025
+ id: string;
23112
23026
  };
23113
23027
  query?: never;
23114
- url: '/google/{connection_id}/display-ads';
23028
+ url: '/google/{connection_id}/ads/{id}';
23115
23029
  };
23116
- type GoogleCreateDisplayAdErrors = {
23030
+ type GoogleGetAdErrors = {
23117
23031
  /**
23118
23032
  * An RFC 9457 problem response.
23119
23033
  */
@@ -23387,16 +23301,107 @@ type GoogleCreateDisplayAdErrors = {
23387
23301
  }>;
23388
23302
  };
23389
23303
  };
23390
- type GoogleCreateDisplayAdError = GoogleCreateDisplayAdErrors[keyof GoogleCreateDisplayAdErrors];
23391
- type GoogleCreateDisplayAdResponses = {
23304
+ type GoogleGetAdError = GoogleGetAdErrors[keyof GoogleGetAdErrors];
23305
+ type GoogleGetAdResponses = {
23392
23306
  /**
23393
23307
  * OK
23394
23308
  */
23395
- 201: GoogleAdsCreateResult;
23309
+ 200: GoogleAdsAd;
23396
23310
  };
23397
- type GoogleCreateDisplayAdResponse = GoogleCreateDisplayAdResponses[keyof GoogleCreateDisplayAdResponses];
23398
- type GoogleRemoveAdData = {
23399
- body?: {
23311
+ type GoogleGetAdResponse = GoogleGetAdResponses[keyof GoogleGetAdResponses];
23312
+ type GoogleCreateDisplayAdData = {
23313
+ body: {
23314
+ /**
23315
+ * The ad group resource name this ad belongs to.
23316
+ */
23317
+ ad_group: string;
23318
+ /**
23319
+ * The landing page URLs for the ad (at least one).
23320
+ */
23321
+ final_urls: Array<string>;
23322
+ /**
23323
+ * Landscape (1.91:1) marketing image asset resource_names. Combined with square_marketing_images: at least 1, at most 15.
23324
+ */
23325
+ marketing_images?: Array<{
23326
+ /**
23327
+ * The resource_name of an uploaded Google Ads image asset.
23328
+ */
23329
+ asset: string;
23330
+ }>;
23331
+ /**
23332
+ * Square (1:1) marketing image asset resource_names. Combined with marketing_images: at least 1, at most 15.
23333
+ */
23334
+ square_marketing_images?: Array<{
23335
+ /**
23336
+ * The resource_name of an uploaded Google Ads image asset.
23337
+ */
23338
+ asset: string;
23339
+ }>;
23340
+ /**
23341
+ * Landscape (4:1) logo image asset resource_names. Combined with square_logo_images: at most 5.
23342
+ */
23343
+ logo_images?: Array<{
23344
+ /**
23345
+ * The resource_name of an uploaded Google Ads image asset.
23346
+ */
23347
+ asset: string;
23348
+ }>;
23349
+ /**
23350
+ * Square (1:1) logo image asset resource_names. Combined with logo_images: at most 5.
23351
+ */
23352
+ square_logo_images?: Array<{
23353
+ /**
23354
+ * The resource_name of an uploaded Google Ads image asset.
23355
+ */
23356
+ asset: string;
23357
+ }>;
23358
+ /**
23359
+ * Between 1 and 5 short headline assets.
23360
+ */
23361
+ headlines: Array<{
23362
+ /**
23363
+ * Short headline text, up to 30 characters.
23364
+ */
23365
+ text: string;
23366
+ }>;
23367
+ /**
23368
+ * The required long headline (up to 90 characters).
23369
+ */
23370
+ long_headline: {
23371
+ /**
23372
+ * The long headline text, up to 90 characters.
23373
+ */
23374
+ text: string;
23375
+ };
23376
+ /**
23377
+ * Between 1 and 5 description assets.
23378
+ */
23379
+ descriptions: Array<{
23380
+ /**
23381
+ * Description text, up to 90 characters.
23382
+ */
23383
+ text: string;
23384
+ }>;
23385
+ /**
23386
+ * The advertiser/business name, up to 25 characters.
23387
+ */
23388
+ business_name?: string;
23389
+ /**
23390
+ * Optional call-to-action button text.
23391
+ */
23392
+ call_to_action_text?: string;
23393
+ /**
23394
+ * Optional main brand color as a hex string (e.g. #0a0a0a).
23395
+ */
23396
+ main_color?: string;
23397
+ /**
23398
+ * Optional accent brand color as a hex string (e.g. #ffffff).
23399
+ */
23400
+ accent_color?: string;
23401
+ /**
23402
+ * The ad’s serving status. Defaults to PAUSED.
23403
+ */
23404
+ status?: 'ENABLED' | 'PAUSED';
23400
23405
  /**
23401
23406
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
23402
23407
  */
@@ -23413,15 +23418,11 @@ type GoogleRemoveAdData = {
23413
23418
  * The id of a Google Ads connection in your account.
23414
23419
  */
23415
23420
  connection_id: string;
23416
- /**
23417
- * The composite id {ad_group_id}~{id} of the resource (as returned by the list/get read).
23418
- */
23419
- id: string;
23420
23421
  };
23421
23422
  query?: never;
23422
- url: '/google/{connection_id}/ads/{id}/remove';
23423
+ url: '/google/{connection_id}/display-ads';
23423
23424
  };
23424
- type GoogleRemoveAdErrors = {
23425
+ type GoogleCreateDisplayAdErrors = {
23425
23426
  /**
23426
23427
  * An RFC 9457 problem response.
23427
23428
  */
@@ -23695,18 +23696,18 @@ type GoogleRemoveAdErrors = {
23695
23696
  }>;
23696
23697
  };
23697
23698
  };
23698
- type GoogleRemoveAdError = GoogleRemoveAdErrors[keyof GoogleRemoveAdErrors];
23699
- type GoogleRemoveAdResponses = {
23699
+ type GoogleCreateDisplayAdError = GoogleCreateDisplayAdErrors[keyof GoogleCreateDisplayAdErrors];
23700
+ type GoogleCreateDisplayAdResponses = {
23700
23701
  /**
23701
23702
  * OK
23702
23703
  */
23703
- 200: GoogleAdsDeleteResult;
23704
+ 201: GoogleAdsCreateResult;
23704
23705
  };
23705
- type GoogleRemoveAdResponse = GoogleRemoveAdResponses[keyof GoogleRemoveAdResponses];
23706
- type GooglePauseAdData = {
23706
+ type GoogleCreateDisplayAdResponse = GoogleCreateDisplayAdResponses[keyof GoogleCreateDisplayAdResponses];
23707
+ type GoogleRemoveAdData = {
23707
23708
  body?: {
23708
23709
  /**
23709
- * Preview the change without applying it. Default false (the write executes).
23710
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
23710
23711
  */
23711
23712
  dry_run?: boolean;
23712
23713
  };
@@ -23727,9 +23728,9 @@ type GooglePauseAdData = {
23727
23728
  id: string;
23728
23729
  };
23729
23730
  query?: never;
23730
- url: '/google/{connection_id}/ads/{id}/pause';
23731
+ url: '/google/{connection_id}/ads/{id}/remove';
23731
23732
  };
23732
- type GooglePauseAdErrors = {
23733
+ type GoogleRemoveAdErrors = {
23733
23734
  /**
23734
23735
  * An RFC 9457 problem response.
23735
23736
  */
@@ -24003,20 +24004,15 @@ type GooglePauseAdErrors = {
24003
24004
  }>;
24004
24005
  };
24005
24006
  };
24006
- type GooglePauseAdError = GooglePauseAdErrors[keyof GooglePauseAdErrors];
24007
- type GooglePauseAdResponses = {
24007
+ type GoogleRemoveAdError = GoogleRemoveAdErrors[keyof GoogleRemoveAdErrors];
24008
+ type GoogleRemoveAdResponses = {
24008
24009
  /**
24009
- * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
24010
+ * OK
24010
24011
  */
24011
- 200: {
24012
- id: string;
24013
- status: 'ENABLED' | 'PAUSED';
24014
- dry_run: boolean;
24015
- executed: boolean;
24016
- };
24012
+ 200: GoogleAdsDeleteResult;
24017
24013
  };
24018
- type GooglePauseAdResponse = GooglePauseAdResponses[keyof GooglePauseAdResponses];
24019
- type GoogleEnableAdData = {
24014
+ type GoogleRemoveAdResponse = GoogleRemoveAdResponses[keyof GoogleRemoveAdResponses];
24015
+ type GooglePauseAdData = {
24020
24016
  body?: {
24021
24017
  /**
24022
24018
  * Preview the change without applying it. Default false (the write executes).
@@ -24040,9 +24036,9 @@ type GoogleEnableAdData = {
24040
24036
  id: string;
24041
24037
  };
24042
24038
  query?: never;
24043
- url: '/google/{connection_id}/ads/{id}/enable';
24039
+ url: '/google/{connection_id}/ads/{id}/pause';
24044
24040
  };
24045
- type GoogleEnableAdErrors = {
24041
+ type GooglePauseAdErrors = {
24046
24042
  /**
24047
24043
  * An RFC 9457 problem response.
24048
24044
  */
@@ -24316,8 +24312,8 @@ type GoogleEnableAdErrors = {
24316
24312
  }>;
24317
24313
  };
24318
24314
  };
24319
- type GoogleEnableAdError = GoogleEnableAdErrors[keyof GoogleEnableAdErrors];
24320
- type GoogleEnableAdResponses = {
24315
+ type GooglePauseAdError = GooglePauseAdErrors[keyof GooglePauseAdErrors];
24316
+ type GooglePauseAdResponses = {
24321
24317
  /**
24322
24318
  * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
24323
24319
  */
@@ -24328,25 +24324,34 @@ type GoogleEnableAdResponses = {
24328
24324
  executed: boolean;
24329
24325
  };
24330
24326
  };
24331
- type GoogleEnableAdResponse = GoogleEnableAdResponses[keyof GoogleEnableAdResponses];
24332
- type GoogleListKeywordsData = {
24333
- body?: never;
24327
+ type GooglePauseAdResponse = GooglePauseAdResponses[keyof GooglePauseAdResponses];
24328
+ type GoogleEnableAdData = {
24329
+ body?: {
24330
+ /**
24331
+ * Preview the change without applying it. Default false (the write executes).
24332
+ */
24333
+ dry_run?: boolean;
24334
+ };
24335
+ headers?: {
24336
+ /**
24337
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
24338
+ */
24339
+ 'Idempotency-Key'?: string;
24340
+ };
24334
24341
  path: {
24335
24342
  /**
24336
24343
  * The id of a Google Ads connection in your account.
24337
24344
  */
24338
24345
  connection_id: string;
24339
- };
24340
- query?: {
24341
24346
  /**
24342
- * Only return keywords under this ad group (its numeric id).
24347
+ * The composite id {ad_group_id}~{id} of the resource (as returned by the list/get read).
24343
24348
  */
24344
- ad_group_id?: string;
24345
- status?: GoogleAdsReadStatusFilter;
24349
+ id: string;
24346
24350
  };
24347
- url: '/google/{connection_id}/keywords';
24351
+ query?: never;
24352
+ url: '/google/{connection_id}/ads/{id}/enable';
24348
24353
  };
24349
- type GoogleListKeywordsErrors = {
24354
+ type GoogleEnableAdErrors = {
24350
24355
  /**
24351
24356
  * An RFC 9457 problem response.
24352
24357
  */
@@ -24620,60 +24625,37 @@ type GoogleListKeywordsErrors = {
24620
24625
  }>;
24621
24626
  };
24622
24627
  };
24623
- type GoogleListKeywordsError = GoogleListKeywordsErrors[keyof GoogleListKeywordsErrors];
24624
- type GoogleListKeywordsResponses = {
24628
+ type GoogleEnableAdError = GoogleEnableAdErrors[keyof GoogleEnableAdErrors];
24629
+ type GoogleEnableAdResponses = {
24625
24630
  /**
24626
- * OK
24631
+ * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
24627
24632
  */
24628
24633
  200: {
24629
- object: 'list';
24630
- data: Array<GoogleAdsKeyword>;
24634
+ id: string;
24635
+ status: 'ENABLED' | 'PAUSED';
24636
+ dry_run: boolean;
24637
+ executed: boolean;
24631
24638
  };
24632
24639
  };
24633
- type GoogleListKeywordsResponse = GoogleListKeywordsResponses[keyof GoogleListKeywordsResponses];
24634
- type GoogleCreateKeywordData = {
24635
- body: {
24636
- /**
24637
- * The resource name of the ad group to add the keyword to (e.g. `customers/123/adGroups/456`).
24638
- */
24639
- ad_group: string;
24640
- /**
24641
- * The keyword text (Google’s 80-character limit).
24642
- */
24643
- text: string;
24644
- /**
24645
- * How the keyword matches a search query.
24646
- */
24647
- match_type: 'EXACT' | 'PHRASE' | 'BROAD';
24648
- /**
24649
- * When true, the keyword excludes traffic (a negative keyword) rather than targeting it.
24650
- */
24651
- negative?: boolean;
24652
- /**
24653
- * The keyword’s initial status.
24654
- */
24655
- status?: 'ENABLED' | 'PAUSED';
24656
- /**
24657
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
24658
- */
24659
- dry_run?: boolean;
24660
- };
24661
- headers?: {
24662
- /**
24663
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
24664
- */
24665
- 'Idempotency-Key'?: string;
24666
- };
24640
+ type GoogleEnableAdResponse = GoogleEnableAdResponses[keyof GoogleEnableAdResponses];
24641
+ type GoogleListKeywordsData = {
24642
+ body?: never;
24667
24643
  path: {
24668
24644
  /**
24669
24645
  * The id of a Google Ads connection in your account.
24670
24646
  */
24671
24647
  connection_id: string;
24672
24648
  };
24673
- query?: never;
24649
+ query?: {
24650
+ /**
24651
+ * Only return keywords under this ad group (its numeric id).
24652
+ */
24653
+ ad_group_id?: string;
24654
+ status?: GoogleAdsReadStatusFilter;
24655
+ };
24674
24656
  url: '/google/{connection_id}/keywords';
24675
24657
  };
24676
- type GoogleCreateKeywordErrors = {
24658
+ type GoogleListKeywordsErrors = {
24677
24659
  /**
24678
24660
  * An RFC 9457 problem response.
24679
24661
  */
@@ -24947,30 +24929,60 @@ type GoogleCreateKeywordErrors = {
24947
24929
  }>;
24948
24930
  };
24949
24931
  };
24950
- type GoogleCreateKeywordError = GoogleCreateKeywordErrors[keyof GoogleCreateKeywordErrors];
24951
- type GoogleCreateKeywordResponses = {
24932
+ type GoogleListKeywordsError = GoogleListKeywordsErrors[keyof GoogleListKeywordsErrors];
24933
+ type GoogleListKeywordsResponses = {
24952
24934
  /**
24953
24935
  * OK
24954
24936
  */
24955
- 201: GoogleAdsCreateResult;
24937
+ 200: {
24938
+ object: 'list';
24939
+ data: Array<GoogleAdsKeyword>;
24940
+ };
24956
24941
  };
24957
- type GoogleCreateKeywordResponse = GoogleCreateKeywordResponses[keyof GoogleCreateKeywordResponses];
24958
- type GoogleGetKeywordData = {
24959
- body?: never;
24942
+ type GoogleListKeywordsResponse = GoogleListKeywordsResponses[keyof GoogleListKeywordsResponses];
24943
+ type GoogleCreateKeywordData = {
24944
+ body: {
24945
+ /**
24946
+ * The resource name of the ad group to add the keyword to (e.g. `customers/123/adGroups/456`).
24947
+ */
24948
+ ad_group: string;
24949
+ /**
24950
+ * The keyword text (Google’s 80-character limit).
24951
+ */
24952
+ text: string;
24953
+ /**
24954
+ * How the keyword matches a search query.
24955
+ */
24956
+ match_type: 'EXACT' | 'PHRASE' | 'BROAD';
24957
+ /**
24958
+ * When true, the keyword excludes traffic (a negative keyword) rather than targeting it.
24959
+ */
24960
+ negative?: boolean;
24961
+ /**
24962
+ * The keyword’s initial status.
24963
+ */
24964
+ status?: 'ENABLED' | 'PAUSED';
24965
+ /**
24966
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
24967
+ */
24968
+ dry_run?: boolean;
24969
+ };
24970
+ headers?: {
24971
+ /**
24972
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
24973
+ */
24974
+ 'Idempotency-Key'?: string;
24975
+ };
24960
24976
  path: {
24961
24977
  /**
24962
24978
  * The id of a Google Ads connection in your account.
24963
24979
  */
24964
24980
  connection_id: string;
24965
- /**
24966
- * The composite id {ad_group_id}~{id} of the resource (as returned by the list/get read).
24967
- */
24968
- id: string;
24969
24981
  };
24970
24982
  query?: never;
24971
- url: '/google/{connection_id}/keywords/{id}';
24983
+ url: '/google/{connection_id}/keywords';
24972
24984
  };
24973
- type GoogleGetKeywordErrors = {
24985
+ type GoogleCreateKeywordErrors = {
24974
24986
  /**
24975
24987
  * An RFC 9457 problem response.
24976
24988
  */
@@ -25244,31 +25256,16 @@ type GoogleGetKeywordErrors = {
25244
25256
  }>;
25245
25257
  };
25246
25258
  };
25247
- type GoogleGetKeywordError = GoogleGetKeywordErrors[keyof GoogleGetKeywordErrors];
25248
- type GoogleGetKeywordResponses = {
25259
+ type GoogleCreateKeywordError = GoogleCreateKeywordErrors[keyof GoogleCreateKeywordErrors];
25260
+ type GoogleCreateKeywordResponses = {
25249
25261
  /**
25250
25262
  * OK
25251
25263
  */
25252
- 200: GoogleAdsKeyword;
25264
+ 201: GoogleAdsCreateResult;
25253
25265
  };
25254
- type GoogleGetKeywordResponse = GoogleGetKeywordResponses[keyof GoogleGetKeywordResponses];
25255
- type GoogleSetKeywordBidData = {
25256
- body: {
25257
- /**
25258
- * Manual CPC bid for the keyword, in micros.
25259
- */
25260
- cpc_bid_micros: number;
25261
- /**
25262
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
25263
- */
25264
- dry_run?: boolean;
25265
- };
25266
- headers?: {
25267
- /**
25268
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
25269
- */
25270
- 'Idempotency-Key'?: string;
25271
- };
25266
+ type GoogleCreateKeywordResponse = GoogleCreateKeywordResponses[keyof GoogleCreateKeywordResponses];
25267
+ type GoogleGetKeywordData = {
25268
+ body?: never;
25272
25269
  path: {
25273
25270
  /**
25274
25271
  * The id of a Google Ads connection in your account.
@@ -25280,9 +25277,9 @@ type GoogleSetKeywordBidData = {
25280
25277
  id: string;
25281
25278
  };
25282
25279
  query?: never;
25283
- url: '/google/{connection_id}/keywords/{id}/bid';
25280
+ url: '/google/{connection_id}/keywords/{id}';
25284
25281
  };
25285
- type GoogleSetKeywordBidErrors = {
25282
+ type GoogleGetKeywordErrors = {
25286
25283
  /**
25287
25284
  * An RFC 9457 problem response.
25288
25285
  */
@@ -25556,16 +25553,20 @@ type GoogleSetKeywordBidErrors = {
25556
25553
  }>;
25557
25554
  };
25558
25555
  };
25559
- type GoogleSetKeywordBidError = GoogleSetKeywordBidErrors[keyof GoogleSetKeywordBidErrors];
25560
- type GoogleSetKeywordBidResponses = {
25556
+ type GoogleGetKeywordError = GoogleGetKeywordErrors[keyof GoogleGetKeywordErrors];
25557
+ type GoogleGetKeywordResponses = {
25561
25558
  /**
25562
25559
  * OK
25563
25560
  */
25564
- 200: GoogleAdsEditResult;
25561
+ 200: GoogleAdsKeyword;
25565
25562
  };
25566
- type GoogleSetKeywordBidResponse = GoogleSetKeywordBidResponses[keyof GoogleSetKeywordBidResponses];
25567
- type GoogleRemoveKeywordData = {
25568
- body?: {
25563
+ type GoogleGetKeywordResponse = GoogleGetKeywordResponses[keyof GoogleGetKeywordResponses];
25564
+ type GoogleSetKeywordBidData = {
25565
+ body: {
25566
+ /**
25567
+ * Manual CPC bid for the keyword, in micros.
25568
+ */
25569
+ cpc_bid_micros: number;
25569
25570
  /**
25570
25571
  * When true, validate the request against Google without creating anything (Google’s native validate_only).
25571
25572
  */
@@ -25588,9 +25589,9 @@ type GoogleRemoveKeywordData = {
25588
25589
  id: string;
25589
25590
  };
25590
25591
  query?: never;
25591
- url: '/google/{connection_id}/keywords/{id}/remove';
25592
+ url: '/google/{connection_id}/keywords/{id}/bid';
25592
25593
  };
25593
- type GoogleRemoveKeywordErrors = {
25594
+ type GoogleSetKeywordBidErrors = {
25594
25595
  /**
25595
25596
  * An RFC 9457 problem response.
25596
25597
  */
@@ -25864,18 +25865,18 @@ type GoogleRemoveKeywordErrors = {
25864
25865
  }>;
25865
25866
  };
25866
25867
  };
25867
- type GoogleRemoveKeywordError = GoogleRemoveKeywordErrors[keyof GoogleRemoveKeywordErrors];
25868
- type GoogleRemoveKeywordResponses = {
25868
+ type GoogleSetKeywordBidError = GoogleSetKeywordBidErrors[keyof GoogleSetKeywordBidErrors];
25869
+ type GoogleSetKeywordBidResponses = {
25869
25870
  /**
25870
25871
  * OK
25871
25872
  */
25872
- 200: GoogleAdsDeleteResult;
25873
+ 200: GoogleAdsEditResult;
25873
25874
  };
25874
- type GoogleRemoveKeywordResponse = GoogleRemoveKeywordResponses[keyof GoogleRemoveKeywordResponses];
25875
- type GooglePauseKeywordData = {
25875
+ type GoogleSetKeywordBidResponse = GoogleSetKeywordBidResponses[keyof GoogleSetKeywordBidResponses];
25876
+ type GoogleRemoveKeywordData = {
25876
25877
  body?: {
25877
25878
  /**
25878
- * Preview the change without applying it. Default false (the write executes).
25879
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
25879
25880
  */
25880
25881
  dry_run?: boolean;
25881
25882
  };
@@ -25896,9 +25897,9 @@ type GooglePauseKeywordData = {
25896
25897
  id: string;
25897
25898
  };
25898
25899
  query?: never;
25899
- url: '/google/{connection_id}/keywords/{id}/pause';
25900
+ url: '/google/{connection_id}/keywords/{id}/remove';
25900
25901
  };
25901
- type GooglePauseKeywordErrors = {
25902
+ type GoogleRemoveKeywordErrors = {
25902
25903
  /**
25903
25904
  * An RFC 9457 problem response.
25904
25905
  */
@@ -26172,20 +26173,15 @@ type GooglePauseKeywordErrors = {
26172
26173
  }>;
26173
26174
  };
26174
26175
  };
26175
- type GooglePauseKeywordError = GooglePauseKeywordErrors[keyof GooglePauseKeywordErrors];
26176
- type GooglePauseKeywordResponses = {
26176
+ type GoogleRemoveKeywordError = GoogleRemoveKeywordErrors[keyof GoogleRemoveKeywordErrors];
26177
+ type GoogleRemoveKeywordResponses = {
26177
26178
  /**
26178
- * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
26179
+ * OK
26179
26180
  */
26180
- 200: {
26181
- id: string;
26182
- status: 'ENABLED' | 'PAUSED';
26183
- dry_run: boolean;
26184
- executed: boolean;
26185
- };
26181
+ 200: GoogleAdsDeleteResult;
26186
26182
  };
26187
- type GooglePauseKeywordResponse = GooglePauseKeywordResponses[keyof GooglePauseKeywordResponses];
26188
- type GoogleEnableKeywordData = {
26183
+ type GoogleRemoveKeywordResponse = GoogleRemoveKeywordResponses[keyof GoogleRemoveKeywordResponses];
26184
+ type GooglePauseKeywordData = {
26189
26185
  body?: {
26190
26186
  /**
26191
26187
  * Preview the change without applying it. Default false (the write executes).
@@ -26209,9 +26205,9 @@ type GoogleEnableKeywordData = {
26209
26205
  id: string;
26210
26206
  };
26211
26207
  query?: never;
26212
- url: '/google/{connection_id}/keywords/{id}/enable';
26208
+ url: '/google/{connection_id}/keywords/{id}/pause';
26213
26209
  };
26214
- type GoogleEnableKeywordErrors = {
26210
+ type GooglePauseKeywordErrors = {
26215
26211
  /**
26216
26212
  * An RFC 9457 problem response.
26217
26213
  */
@@ -26485,8 +26481,8 @@ type GoogleEnableKeywordErrors = {
26485
26481
  }>;
26486
26482
  };
26487
26483
  };
26488
- type GoogleEnableKeywordError = GoogleEnableKeywordErrors[keyof GoogleEnableKeywordErrors];
26489
- type GoogleEnableKeywordResponses = {
26484
+ type GooglePauseKeywordError = GooglePauseKeywordErrors[keyof GooglePauseKeywordErrors];
26485
+ type GooglePauseKeywordResponses = {
26490
26486
  /**
26491
26487
  * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
26492
26488
  */
@@ -26497,19 +26493,34 @@ type GoogleEnableKeywordResponses = {
26497
26493
  executed: boolean;
26498
26494
  };
26499
26495
  };
26500
- type GoogleEnableKeywordResponse = GoogleEnableKeywordResponses[keyof GoogleEnableKeywordResponses];
26501
- type GoogleListConversionActionsData = {
26502
- body?: never;
26496
+ type GooglePauseKeywordResponse = GooglePauseKeywordResponses[keyof GooglePauseKeywordResponses];
26497
+ type GoogleEnableKeywordData = {
26498
+ body?: {
26499
+ /**
26500
+ * Preview the change without applying it. Default false (the write executes).
26501
+ */
26502
+ dry_run?: boolean;
26503
+ };
26504
+ headers?: {
26505
+ /**
26506
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
26507
+ */
26508
+ 'Idempotency-Key'?: string;
26509
+ };
26503
26510
  path: {
26504
26511
  /**
26505
26512
  * The id of a Google Ads connection in your account.
26506
26513
  */
26507
26514
  connection_id: string;
26515
+ /**
26516
+ * The composite id {ad_group_id}~{id} of the resource (as returned by the list/get read).
26517
+ */
26518
+ id: string;
26508
26519
  };
26509
26520
  query?: never;
26510
- url: '/google/{connection_id}/conversion-actions';
26521
+ url: '/google/{connection_id}/keywords/{id}/enable';
26511
26522
  };
26512
- type GoogleListConversionActionsErrors = {
26523
+ type GoogleEnableKeywordErrors = {
26513
26524
  /**
26514
26525
  * An RFC 9457 problem response.
26515
26526
  */
@@ -26783,95 +26794,21 @@ type GoogleListConversionActionsErrors = {
26783
26794
  }>;
26784
26795
  };
26785
26796
  };
26786
- type GoogleListConversionActionsError = GoogleListConversionActionsErrors[keyof GoogleListConversionActionsErrors];
26787
- type GoogleListConversionActionsResponses = {
26797
+ type GoogleEnableKeywordError = GoogleEnableKeywordErrors[keyof GoogleEnableKeywordErrors];
26798
+ type GoogleEnableKeywordResponses = {
26788
26799
  /**
26789
- * OK
26800
+ * The outcome of a status change: the resource id, the new status, whether it was a dry run, and whether it executed.
26790
26801
  */
26791
26802
  200: {
26792
- object: 'list';
26793
- data: Array<{
26794
- id: string;
26795
- name: string | null;
26796
- status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' | 'HIDDEN';
26797
- type: 'UNSPECIFIED' | 'UNKNOWN' | 'AD_CALL' | 'CLICK_TO_CALL' | 'GOOGLE_PLAY_DOWNLOAD' | 'GOOGLE_PLAY_IN_APP_PURCHASE' | 'UPLOAD_CALLS' | 'UPLOAD_CLICKS' | 'WEBPAGE' | 'WEBSITE_CALL' | 'STORE_SALES_DIRECT_UPLOAD' | 'STORE_SALES' | 'FIREBASE_ANDROID_FIRST_OPEN' | 'FIREBASE_ANDROID_IN_APP_PURCHASE' | 'FIREBASE_ANDROID_CUSTOM' | 'FIREBASE_IOS_FIRST_OPEN' | 'FIREBASE_IOS_IN_APP_PURCHASE' | 'FIREBASE_IOS_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM' | 'ANDROID_APP_PRE_REGISTRATION' | 'ANDROID_INSTALLS_ALL_OTHER_APPS' | 'FLOODLIGHT_ACTION' | 'FLOODLIGHT_TRANSACTION' | 'GOOGLE_HOSTED' | 'LEAD_FORM_SUBMIT' | 'SALESFORCE' | 'SEARCH_ADS_360' | 'SMART_CAMPAIGN_AD_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_DIRECTIONS' | 'SMART_CAMPAIGN_TRACKED_CALLS' | 'STORE_VISITS' | 'WEBPAGE_CODELESS' | 'UNIVERSAL_ANALYTICS_GOAL' | 'UNIVERSAL_ANALYTICS_TRANSACTION' | 'GOOGLE_ANALYTICS_4_CUSTOM' | 'GOOGLE_ANALYTICS_4_PURCHASE';
26798
- category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD';
26799
- origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
26800
- primary_for_goal: boolean;
26801
- counting_type: 'UNSPECIFIED' | 'UNKNOWN' | 'ONE_PER_CLICK' | 'MANY_PER_CLICK';
26802
- value_settings: {
26803
- default_value: number | null;
26804
- default_currency_code: string | null;
26805
- always_use_default_value: boolean | null;
26806
- } | null;
26807
- tag_snippets: Array<{
26808
- type: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBPAGE' | 'WEBPAGE_ONCLICK' | 'CLICK_TO_CALL' | 'WEBSITE_CALL';
26809
- page_format: 'UNSPECIFIED' | 'UNKNOWN' | 'HTML' | 'AMP';
26810
- global_site_tag: string | null;
26811
- event_snippet: string | null;
26812
- }>;
26813
- }>;
26803
+ id: string;
26804
+ status: 'ENABLED' | 'PAUSED';
26805
+ dry_run: boolean;
26806
+ executed: boolean;
26814
26807
  };
26815
26808
  };
26816
- type GoogleListConversionActionsResponse = GoogleListConversionActionsResponses[keyof GoogleListConversionActionsResponses];
26817
- type GoogleCreateConversionActionData = {
26818
- body: {
26819
- /**
26820
- * A name for the conversion action, unique within the Google Ads account.
26821
- */
26822
- name: string;
26823
- /**
26824
- * The conversion action type. Launch scope: WEBPAGE (a website tag) or UPLOAD_CLICKS (offline / API-reported conversions).
26825
- */
26826
- type: 'WEBPAGE' | 'UPLOAD_CLICKS';
26827
- /**
26828
- * The conversion category (e.g. PURCHASE, SIGNUP, SUBMIT_LEAD_FORM) — any member of Google’s ConversionActionCategory.
26829
- */
26830
- category: 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD';
26831
- /**
26832
- * The conversion action status. Only ENABLED is a valid create state (the proto has no PAUSED); defaults to ENABLED.
26833
- */
26834
- status?: 'ENABLED';
26835
- /**
26836
- * How to value conversions. Omit to let Google apply its category-based defaults.
26837
- */
26838
- value_settings?: {
26839
- /**
26840
- * The value to assign a conversion when the event reports no value.
26841
- */
26842
- default_value?: number;
26843
- /**
26844
- * The ISO 4217 currency code (3 letters) for the default value.
26845
- */
26846
- default_currency_code?: string;
26847
- /**
26848
- * When true, always use the default value (ignore any value reported with the event).
26849
- */
26850
- always_use_default_value?: boolean;
26851
- };
26852
- /**
26853
- * How to count conversions per ad interaction: ONE_PER_CLICK (e.g. leads) or MANY_PER_CLICK (e.g. purchases).
26854
- */
26855
- counting_type?: 'ONE_PER_CLICK' | 'MANY_PER_CLICK';
26856
- /**
26857
- * The max days between an ad click and a conversion to attribute it (click-through).
26858
- */
26859
- click_through_lookback_window_days?: number;
26860
- /**
26861
- * The max days between an ad impression and a conversion to attribute it (view-through).
26862
- */
26863
- view_through_lookback_window_days?: number;
26864
- /**
26865
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
26866
- */
26867
- dry_run?: boolean;
26868
- };
26869
- headers?: {
26870
- /**
26871
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
26872
- */
26873
- 'Idempotency-Key'?: string;
26874
- };
26809
+ type GoogleEnableKeywordResponse = GoogleEnableKeywordResponses[keyof GoogleEnableKeywordResponses];
26810
+ type GoogleListConversionActionsData = {
26811
+ body?: never;
26875
26812
  path: {
26876
26813
  /**
26877
26814
  * The id of a Google Ads connection in your account.
@@ -26881,7 +26818,7 @@ type GoogleCreateConversionActionData = {
26881
26818
  query?: never;
26882
26819
  url: '/google/{connection_id}/conversion-actions';
26883
26820
  };
26884
- type GoogleCreateConversionActionErrors = {
26821
+ type GoogleListConversionActionsErrors = {
26885
26822
  /**
26886
26823
  * An RFC 9457 problem response.
26887
26824
  */
@@ -27128,57 +27065,132 @@ type GoogleCreateConversionActionErrors = {
27128
27065
  title: string;
27129
27066
  status: number;
27130
27067
  /**
27131
- * The machine-readable error code — branch on this. Narrowed to the codes this endpoint can return at this status.
27068
+ * The machine-readable error code — branch on this. Narrowed to the codes this endpoint can return at this status.
27069
+ */
27070
+ code: 'google_server_error';
27071
+ display_error: string;
27072
+ detail?: string;
27073
+ request_id?: string;
27074
+ /**
27075
+ * Structured detail from the wrapped platform: its own error code, the offending field path + value, and its request id (for that platform’s support).
27076
+ */
27077
+ source?: {
27078
+ platform: 'google' | 'meta' | 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube';
27079
+ platform_code?: string;
27080
+ field?: string;
27081
+ value?: string;
27082
+ platform_request_id?: string;
27083
+ };
27084
+ errors?: Array<{
27085
+ field: string;
27086
+ code: string;
27087
+ detail: string;
27088
+ display_error: string;
27089
+ hint?: string;
27090
+ allowed?: Array<string>;
27091
+ got?: string;
27092
+ }>;
27093
+ };
27094
+ };
27095
+ type GoogleListConversionActionsError = GoogleListConversionActionsErrors[keyof GoogleListConversionActionsErrors];
27096
+ type GoogleListConversionActionsResponses = {
27097
+ /**
27098
+ * OK
27099
+ */
27100
+ 200: {
27101
+ object: 'list';
27102
+ data: Array<{
27103
+ id: string;
27104
+ name: string | null;
27105
+ status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' | 'HIDDEN';
27106
+ type: 'UNSPECIFIED' | 'UNKNOWN' | 'AD_CALL' | 'CLICK_TO_CALL' | 'GOOGLE_PLAY_DOWNLOAD' | 'GOOGLE_PLAY_IN_APP_PURCHASE' | 'UPLOAD_CALLS' | 'UPLOAD_CLICKS' | 'WEBPAGE' | 'WEBSITE_CALL' | 'STORE_SALES_DIRECT_UPLOAD' | 'STORE_SALES' | 'FIREBASE_ANDROID_FIRST_OPEN' | 'FIREBASE_ANDROID_IN_APP_PURCHASE' | 'FIREBASE_ANDROID_CUSTOM' | 'FIREBASE_IOS_FIRST_OPEN' | 'FIREBASE_IOS_IN_APP_PURCHASE' | 'FIREBASE_IOS_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM' | 'ANDROID_APP_PRE_REGISTRATION' | 'ANDROID_INSTALLS_ALL_OTHER_APPS' | 'FLOODLIGHT_ACTION' | 'FLOODLIGHT_TRANSACTION' | 'GOOGLE_HOSTED' | 'LEAD_FORM_SUBMIT' | 'SALESFORCE' | 'SEARCH_ADS_360' | 'SMART_CAMPAIGN_AD_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_DIRECTIONS' | 'SMART_CAMPAIGN_TRACKED_CALLS' | 'STORE_VISITS' | 'WEBPAGE_CODELESS' | 'UNIVERSAL_ANALYTICS_GOAL' | 'UNIVERSAL_ANALYTICS_TRANSACTION' | 'GOOGLE_ANALYTICS_4_CUSTOM' | 'GOOGLE_ANALYTICS_4_PURCHASE' | 'GOOGLE_ANALYTICS_4_GENERATE_LEAD' | 'GOOGLE_ANALYTICS_4_QUALIFY_LEAD' | 'GOOGLE_ANALYTICS_4_CLOSE_CONVERT_LEAD' | 'FIREBASE_ANDROID_GENERATE_LEAD' | 'FIREBASE_ANDROID_QUALIFY_LEAD' | 'FIREBASE_ANDROID_CLOSE_CONVERT_LEAD' | 'FIREBASE_IOS_GENERATE_LEAD' | 'FIREBASE_IOS_QUALIFY_LEAD' | 'FIREBASE_IOS_CLOSE_CONVERT_LEAD';
27107
+ category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD' | 'YOUTUBE_FOLLOW_ON_VIEWS';
27108
+ origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
27109
+ primary_for_goal: boolean;
27110
+ counting_type: 'UNSPECIFIED' | 'UNKNOWN' | 'ONE_PER_CLICK' | 'MANY_PER_CLICK';
27111
+ value_settings: {
27112
+ default_value: number | null;
27113
+ default_currency_code: string | null;
27114
+ always_use_default_value: boolean | null;
27115
+ } | null;
27116
+ tag_snippets: Array<{
27117
+ type: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBPAGE' | 'WEBPAGE_ONCLICK' | 'CLICK_TO_CALL' | 'WEBSITE_CALL';
27118
+ page_format: 'UNSPECIFIED' | 'UNKNOWN' | 'HTML' | 'AMP';
27119
+ global_site_tag: string | null;
27120
+ event_snippet: string | null;
27121
+ }>;
27122
+ }>;
27123
+ };
27124
+ };
27125
+ type GoogleListConversionActionsResponse = GoogleListConversionActionsResponses[keyof GoogleListConversionActionsResponses];
27126
+ type GoogleCreateConversionActionData = {
27127
+ body: {
27128
+ /**
27129
+ * A name for the conversion action, unique within the Google Ads account.
27130
+ */
27131
+ name: string;
27132
+ /**
27133
+ * The conversion action type. Launch scope: WEBPAGE (a website tag) or UPLOAD_CLICKS (offline / API-reported conversions).
27134
+ */
27135
+ type: 'WEBPAGE' | 'UPLOAD_CLICKS';
27136
+ /**
27137
+ * The conversion category (e.g. PURCHASE, SIGNUP, SUBMIT_LEAD_FORM) — any member of Google’s ConversionActionCategory.
27138
+ */
27139
+ category: 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD' | 'YOUTUBE_FOLLOW_ON_VIEWS';
27140
+ /**
27141
+ * The conversion action status. Only ENABLED is a valid create state (the proto has no PAUSED); defaults to ENABLED.
27142
+ */
27143
+ status?: 'ENABLED';
27144
+ /**
27145
+ * How to value conversions. Omit to let Google apply its category-based defaults.
27146
+ */
27147
+ value_settings?: {
27148
+ /**
27149
+ * The value to assign a conversion when the event reports no value.
27150
+ */
27151
+ default_value?: number;
27152
+ /**
27153
+ * The ISO 4217 currency code (3 letters) for the default value.
27154
+ */
27155
+ default_currency_code?: string;
27156
+ /**
27157
+ * When true, always use the default value (ignore any value reported with the event).
27158
+ */
27159
+ always_use_default_value?: boolean;
27160
+ };
27161
+ /**
27162
+ * How to count conversions per ad interaction: ONE_PER_CLICK (e.g. leads) or MANY_PER_CLICK (e.g. purchases).
27132
27163
  */
27133
- code: 'google_server_error';
27134
- display_error: string;
27135
- detail?: string;
27136
- request_id?: string;
27164
+ counting_type?: 'ONE_PER_CLICK' | 'MANY_PER_CLICK';
27137
27165
  /**
27138
- * Structured detail from the wrapped platform: its own error code, the offending field path + value, and its request id (for that platform’s support).
27166
+ * The max days between an ad click and a conversion to attribute it (click-through).
27139
27167
  */
27140
- source?: {
27141
- platform: 'google' | 'meta' | 'x' | 'linkedin' | 'instagram' | 'facebook' | 'tiktok' | 'youtube';
27142
- platform_code?: string;
27143
- field?: string;
27144
- value?: string;
27145
- platform_request_id?: string;
27146
- };
27147
- errors?: Array<{
27148
- field: string;
27149
- code: string;
27150
- detail: string;
27151
- display_error: string;
27152
- hint?: string;
27153
- allowed?: Array<string>;
27154
- got?: string;
27155
- }>;
27168
+ click_through_lookback_window_days?: number;
27169
+ /**
27170
+ * The max days between an ad impression and a conversion to attribute it (view-through).
27171
+ */
27172
+ view_through_lookback_window_days?: number;
27173
+ /**
27174
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
27175
+ */
27176
+ dry_run?: boolean;
27177
+ };
27178
+ headers?: {
27179
+ /**
27180
+ * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
27181
+ */
27182
+ 'Idempotency-Key'?: string;
27156
27183
  };
27157
- };
27158
- type GoogleCreateConversionActionError = GoogleCreateConversionActionErrors[keyof GoogleCreateConversionActionErrors];
27159
- type GoogleCreateConversionActionResponses = {
27160
- /**
27161
- * OK
27162
- */
27163
- 201: GoogleAdsCreateResult;
27164
- };
27165
- type GoogleCreateConversionActionResponse = GoogleCreateConversionActionResponses[keyof GoogleCreateConversionActionResponses];
27166
- type GoogleGetConversionActionData = {
27167
- body?: never;
27168
27184
  path: {
27169
27185
  /**
27170
27186
  * The id of a Google Ads connection in your account.
27171
27187
  */
27172
27188
  connection_id: string;
27173
- /**
27174
- * The numeric id of the resource.
27175
- */
27176
- id: string;
27177
27189
  };
27178
27190
  query?: never;
27179
- url: '/google/{connection_id}/conversion-actions/{id}';
27191
+ url: '/google/{connection_id}/conversion-actions';
27180
27192
  };
27181
- type GoogleGetConversionActionErrors = {
27193
+ type GoogleCreateConversionActionErrors = {
27182
27194
  /**
27183
27195
  * An RFC 9457 problem response.
27184
27196
  */
@@ -27452,46 +27464,30 @@ type GoogleGetConversionActionErrors = {
27452
27464
  }>;
27453
27465
  };
27454
27466
  };
27455
- type GoogleGetConversionActionError = GoogleGetConversionActionErrors[keyof GoogleGetConversionActionErrors];
27456
- type GoogleGetConversionActionResponses = {
27467
+ type GoogleCreateConversionActionError = GoogleCreateConversionActionErrors[keyof GoogleCreateConversionActionErrors];
27468
+ type GoogleCreateConversionActionResponses = {
27457
27469
  /**
27458
- * A Google Ads conversion action (the `conversion_action` resource): id, name, status, type, category, origin, whether it is a primary goal, counting type, value settings, and the website tag snippets (present only for a WEBPAGE action).
27470
+ * OK
27459
27471
  */
27460
- 200: {
27461
- id: string;
27462
- name: string | null;
27463
- status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' | 'HIDDEN';
27464
- type: 'UNSPECIFIED' | 'UNKNOWN' | 'AD_CALL' | 'CLICK_TO_CALL' | 'GOOGLE_PLAY_DOWNLOAD' | 'GOOGLE_PLAY_IN_APP_PURCHASE' | 'UPLOAD_CALLS' | 'UPLOAD_CLICKS' | 'WEBPAGE' | 'WEBSITE_CALL' | 'STORE_SALES_DIRECT_UPLOAD' | 'STORE_SALES' | 'FIREBASE_ANDROID_FIRST_OPEN' | 'FIREBASE_ANDROID_IN_APP_PURCHASE' | 'FIREBASE_ANDROID_CUSTOM' | 'FIREBASE_IOS_FIRST_OPEN' | 'FIREBASE_IOS_IN_APP_PURCHASE' | 'FIREBASE_IOS_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM' | 'ANDROID_APP_PRE_REGISTRATION' | 'ANDROID_INSTALLS_ALL_OTHER_APPS' | 'FLOODLIGHT_ACTION' | 'FLOODLIGHT_TRANSACTION' | 'GOOGLE_HOSTED' | 'LEAD_FORM_SUBMIT' | 'SALESFORCE' | 'SEARCH_ADS_360' | 'SMART_CAMPAIGN_AD_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_DIRECTIONS' | 'SMART_CAMPAIGN_TRACKED_CALLS' | 'STORE_VISITS' | 'WEBPAGE_CODELESS' | 'UNIVERSAL_ANALYTICS_GOAL' | 'UNIVERSAL_ANALYTICS_TRANSACTION' | 'GOOGLE_ANALYTICS_4_CUSTOM' | 'GOOGLE_ANALYTICS_4_PURCHASE';
27465
- category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD';
27466
- origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
27467
- primary_for_goal: boolean;
27468
- counting_type: 'UNSPECIFIED' | 'UNKNOWN' | 'ONE_PER_CLICK' | 'MANY_PER_CLICK';
27469
- value_settings: {
27470
- default_value: number | null;
27471
- default_currency_code: string | null;
27472
- always_use_default_value: boolean | null;
27473
- } | null;
27474
- tag_snippets: Array<{
27475
- type: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBPAGE' | 'WEBPAGE_ONCLICK' | 'CLICK_TO_CALL' | 'WEBSITE_CALL';
27476
- page_format: 'UNSPECIFIED' | 'UNKNOWN' | 'HTML' | 'AMP';
27477
- global_site_tag: string | null;
27478
- event_snippet: string | null;
27479
- }>;
27480
- };
27472
+ 201: GoogleAdsCreateResult;
27481
27473
  };
27482
- type GoogleGetConversionActionResponse = GoogleGetConversionActionResponses[keyof GoogleGetConversionActionResponses];
27483
- type GoogleListConversionGoalsData = {
27474
+ type GoogleCreateConversionActionResponse = GoogleCreateConversionActionResponses[keyof GoogleCreateConversionActionResponses];
27475
+ type GoogleGetConversionActionData = {
27484
27476
  body?: never;
27485
27477
  path: {
27486
27478
  /**
27487
27479
  * The id of a Google Ads connection in your account.
27488
27480
  */
27489
27481
  connection_id: string;
27482
+ /**
27483
+ * The numeric id of the resource.
27484
+ */
27485
+ id: string;
27490
27486
  };
27491
27487
  query?: never;
27492
- url: '/google/{connection_id}/conversion-goals';
27488
+ url: '/google/{connection_id}/conversion-actions/{id}';
27493
27489
  };
27494
- type GoogleListConversionGoalsErrors = {
27490
+ type GoogleGetConversionActionErrors = {
27495
27491
  /**
27496
27492
  * An RFC 9457 problem response.
27497
27493
  */
@@ -27765,46 +27761,36 @@ type GoogleListConversionGoalsErrors = {
27765
27761
  }>;
27766
27762
  };
27767
27763
  };
27768
- type GoogleListConversionGoalsError = GoogleListConversionGoalsErrors[keyof GoogleListConversionGoalsErrors];
27769
- type GoogleListConversionGoalsResponses = {
27764
+ type GoogleGetConversionActionError = GoogleGetConversionActionErrors[keyof GoogleGetConversionActionErrors];
27765
+ type GoogleGetConversionActionResponses = {
27770
27766
  /**
27771
- * OK
27767
+ * A Google Ads conversion action (the `conversion_action` resource): id, name, status, type, category, origin, whether it is a primary goal, counting type, value settings, and the website tag snippets (present only for a WEBPAGE action).
27772
27768
  */
27773
27769
  200: {
27774
- object: 'list';
27775
- data: Array<{
27776
- category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD';
27777
- origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
27778
- biddable: boolean;
27770
+ id: string;
27771
+ name: string | null;
27772
+ status: 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' | 'HIDDEN';
27773
+ type: 'UNSPECIFIED' | 'UNKNOWN' | 'AD_CALL' | 'CLICK_TO_CALL' | 'GOOGLE_PLAY_DOWNLOAD' | 'GOOGLE_PLAY_IN_APP_PURCHASE' | 'UPLOAD_CALLS' | 'UPLOAD_CLICKS' | 'WEBPAGE' | 'WEBSITE_CALL' | 'STORE_SALES_DIRECT_UPLOAD' | 'STORE_SALES' | 'FIREBASE_ANDROID_FIRST_OPEN' | 'FIREBASE_ANDROID_IN_APP_PURCHASE' | 'FIREBASE_ANDROID_CUSTOM' | 'FIREBASE_IOS_FIRST_OPEN' | 'FIREBASE_IOS_IN_APP_PURCHASE' | 'FIREBASE_IOS_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM' | 'THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN' | 'THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE' | 'THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM' | 'ANDROID_APP_PRE_REGISTRATION' | 'ANDROID_INSTALLS_ALL_OTHER_APPS' | 'FLOODLIGHT_ACTION' | 'FLOODLIGHT_TRANSACTION' | 'GOOGLE_HOSTED' | 'LEAD_FORM_SUBMIT' | 'SALESFORCE' | 'SEARCH_ADS_360' | 'SMART_CAMPAIGN_AD_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_CLICKS_TO_CALL' | 'SMART_CAMPAIGN_MAP_DIRECTIONS' | 'SMART_CAMPAIGN_TRACKED_CALLS' | 'STORE_VISITS' | 'WEBPAGE_CODELESS' | 'UNIVERSAL_ANALYTICS_GOAL' | 'UNIVERSAL_ANALYTICS_TRANSACTION' | 'GOOGLE_ANALYTICS_4_CUSTOM' | 'GOOGLE_ANALYTICS_4_PURCHASE' | 'GOOGLE_ANALYTICS_4_GENERATE_LEAD' | 'GOOGLE_ANALYTICS_4_QUALIFY_LEAD' | 'GOOGLE_ANALYTICS_4_CLOSE_CONVERT_LEAD' | 'FIREBASE_ANDROID_GENERATE_LEAD' | 'FIREBASE_ANDROID_QUALIFY_LEAD' | 'FIREBASE_ANDROID_CLOSE_CONVERT_LEAD' | 'FIREBASE_IOS_GENERATE_LEAD' | 'FIREBASE_IOS_QUALIFY_LEAD' | 'FIREBASE_IOS_CLOSE_CONVERT_LEAD';
27774
+ category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD' | 'YOUTUBE_FOLLOW_ON_VIEWS';
27775
+ origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
27776
+ primary_for_goal: boolean;
27777
+ counting_type: 'UNSPECIFIED' | 'UNKNOWN' | 'ONE_PER_CLICK' | 'MANY_PER_CLICK';
27778
+ value_settings: {
27779
+ default_value: number | null;
27780
+ default_currency_code: string | null;
27781
+ always_use_default_value: boolean | null;
27782
+ } | null;
27783
+ tag_snippets: Array<{
27784
+ type: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBPAGE' | 'WEBPAGE_ONCLICK' | 'CLICK_TO_CALL' | 'WEBSITE_CALL';
27785
+ page_format: 'UNSPECIFIED' | 'UNKNOWN' | 'HTML' | 'AMP';
27786
+ global_site_tag: string | null;
27787
+ event_snippet: string | null;
27779
27788
  }>;
27780
27789
  };
27781
27790
  };
27782
- type GoogleListConversionGoalsResponse = GoogleListConversionGoalsResponses[keyof GoogleListConversionGoalsResponses];
27783
- type GoogleSetConversionGoalData = {
27784
- body: {
27785
- /**
27786
- * The conversion category of the goal to update.
27787
- */
27788
- category: 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD';
27789
- /**
27790
- * The origin of the goal to update.
27791
- */
27792
- origin: 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
27793
- /**
27794
- * Whether the goal is biddable: true makes it a primary goal Google optimises toward, false makes it secondary (observation-only).
27795
- */
27796
- biddable: boolean;
27797
- /**
27798
- * When true, validate the request against Google without creating anything (Google’s native validate_only).
27799
- */
27800
- dry_run?: boolean;
27801
- };
27802
- headers?: {
27803
- /**
27804
- * Optional. A unique key (1–255 chars; a UUID is ideal) that makes this write safe to retry: the first request executes and its outcome is stored; an identical retry replays that exact outcome instead of re-executing. A retry with the same key but a different body returns 422; a retry while the first is still in flight returns 409. See https://docs.postrun.ai/idempotency.
27805
- */
27806
- 'Idempotency-Key'?: string;
27807
- };
27791
+ type GoogleGetConversionActionResponse = GoogleGetConversionActionResponses[keyof GoogleGetConversionActionResponses];
27792
+ type GoogleListConversionGoalsData = {
27793
+ body?: never;
27808
27794
  path: {
27809
27795
  /**
27810
27796
  * The id of a Google Ads connection in your account.
@@ -27814,7 +27800,7 @@ type GoogleSetConversionGoalData = {
27814
27800
  query?: never;
27815
27801
  url: '/google/{connection_id}/conversion-goals';
27816
27802
  };
27817
- type GoogleSetConversionGoalErrors = {
27803
+ type GoogleListConversionGoalsErrors = {
27818
27804
  /**
27819
27805
  * An RFC 9457 problem response.
27820
27806
  */
@@ -28088,91 +28074,37 @@ type GoogleSetConversionGoalErrors = {
28088
28074
  }>;
28089
28075
  };
28090
28076
  };
28091
- type GoogleSetConversionGoalError = GoogleSetConversionGoalErrors[keyof GoogleSetConversionGoalErrors];
28092
- type GoogleSetConversionGoalResponses = {
28077
+ type GoogleListConversionGoalsError = GoogleListConversionGoalsErrors[keyof GoogleListConversionGoalsErrors];
28078
+ type GoogleListConversionGoalsResponses = {
28093
28079
  /**
28094
- * The outcome of a conversion-goal update: the goal’s category and origin, the new biddable value, whether it was a dry run, and whether it executed.
28080
+ * OK
28095
28081
  */
28096
28082
  200: {
28097
- category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD';
28098
- origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
28099
- biddable: boolean;
28100
- dry_run: boolean;
28101
- executed: boolean;
28083
+ object: 'list';
28084
+ data: Array<{
28085
+ category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD' | 'YOUTUBE_FOLLOW_ON_VIEWS';
28086
+ origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
28087
+ biddable: boolean;
28088
+ }>;
28102
28089
  };
28103
28090
  };
28104
- type GoogleSetConversionGoalResponse = GoogleSetConversionGoalResponses[keyof GoogleSetConversionGoalResponses];
28105
- type GoogleUploadConversionsData = {
28091
+ type GoogleListConversionGoalsResponse = GoogleListConversionGoalsResponses[keyof GoogleListConversionGoalsResponses];
28092
+ type GoogleSetConversionGoalData = {
28106
28093
  body: {
28107
28094
  /**
28108
- * The conversions to upload (1–2000 per request).
28095
+ * The conversion category of the goal to update.
28109
28096
  */
28110
- conversions: Array<{
28111
- /**
28112
- * The resource_name of an UPLOAD_CLICKS conversion action (create one via POST /v1/google/{connection_id}/conversion-actions). Google validates the action type.
28113
- */
28114
- conversion_action: string;
28115
- /**
28116
- * When the conversion happened, as `yyyy-mm-dd HH:mm:ss+|-HH:mm`. The timezone offset is REQUIRED.
28117
- */
28118
- conversion_date_time: string;
28119
- /**
28120
- * The value of the conversion (in `currency_code`).
28121
- */
28122
- conversion_value?: number;
28123
- /**
28124
- * The ISO 4217 currency code (3 letters) for the value.
28125
- */
28126
- currency_code?: string;
28127
- /**
28128
- * Your order/transaction id — Google’s dedup key; set it (and keep it stable) to avoid double-counting an upload you retry or also send via the tag.
28129
- */
28130
- order_id?: string;
28131
- /**
28132
- * The Google click id that drove the conversion.
28133
- */
28134
- gclid?: string;
28135
- /**
28136
- * The click id for iOS app-to-web (when gclid is unavailable).
28137
- */
28138
- gbraid?: string;
28139
- /**
28140
- * The click id for iOS web-to-app (when gclid is unavailable).
28141
- */
28142
- wbraid?: string;
28143
- /**
28144
- * Enhanced-conversion identifiers — already-hashed first-party data (up to 5). May be sent with or without a click id; Google uses any click id present as an additional match hint.
28145
- */
28146
- user_identifiers?: Array<{
28147
- /**
28148
- * A normalised, SHA-256-hashed email (64 lowercase hex chars). We never hash — hash it yourself per Google’s spec.
28149
- */
28150
- hashed_email?: string;
28151
- /**
28152
- * A normalised (E.164), SHA-256-hashed phone number (64 lowercase hex chars). We never hash — hash it yourself per Google’s spec.
28153
- */
28154
- hashed_phone_number?: string;
28155
- /**
28156
- * Where the identifier came from: FIRST_PARTY (your own data) or THIRD_PARTY.
28157
- */
28158
- user_identifier_source?: 'FIRST_PARTY' | 'THIRD_PARTY';
28159
- }>;
28160
- /**
28161
- * EEA consent signals for this conversion.
28162
- */
28163
- consent?: {
28164
- /**
28165
- * Consent for using the data for ads (GRANTED/DENIED).
28166
- */
28167
- ad_user_data?: 'GRANTED' | 'DENIED';
28168
- /**
28169
- * Consent for ad personalization (GRANTED/DENIED).
28170
- */
28171
- ad_personalization?: 'GRANTED' | 'DENIED';
28172
- };
28173
- }>;
28097
+ category: 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD' | 'YOUTUBE_FOLLOW_ON_VIEWS';
28098
+ /**
28099
+ * The origin of the goal to update.
28100
+ */
28101
+ origin: 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
28102
+ /**
28103
+ * Whether the goal is biddable: true makes it a primary goal Google optimises toward, false makes it secondary (observation-only).
28104
+ */
28105
+ biddable: boolean;
28174
28106
  /**
28175
- * When true, validate the batch against Google without recording anything (Google’s native validate_only).
28107
+ * When true, validate the request against Google without creating anything (Google’s native validate_only).
28176
28108
  */
28177
28109
  dry_run?: boolean;
28178
28110
  };
@@ -28189,9 +28121,9 @@ type GoogleUploadConversionsData = {
28189
28121
  connection_id: string;
28190
28122
  };
28191
28123
  query?: never;
28192
- url: '/google/{connection_id}/conversion-uploads';
28124
+ url: '/google/{connection_id}/conversion-goals';
28193
28125
  };
28194
- type GoogleUploadConversionsErrors = {
28126
+ type GoogleSetConversionGoalErrors = {
28195
28127
  /**
28196
28128
  * An RFC 9457 problem response.
28197
28129
  */
@@ -28465,48 +28397,20 @@ type GoogleUploadConversionsErrors = {
28465
28397
  }>;
28466
28398
  };
28467
28399
  };
28468
- type GoogleUploadConversionsError = GoogleUploadConversionsErrors[keyof GoogleUploadConversionsErrors];
28469
- type GoogleUploadConversionsResponses = {
28400
+ type GoogleSetConversionGoalError = GoogleSetConversionGoalErrors[keyof GoogleSetConversionGoalErrors];
28401
+ type GoogleSetConversionGoalResponses = {
28470
28402
  /**
28471
- * The outcome of an offline conversion upload: received / succeeded / failed counts and the per-row errors Google returned.
28403
+ * The outcome of a conversion-goal update: the goal’s category and origin, the new biddable value, whether it was a dry run, and whether it executed.
28472
28404
  */
28473
28405
  200: {
28474
- /**
28475
- * How many conversions were in the request.
28476
- */
28477
- received: number;
28478
- /**
28479
- * How many rows Google accepted.
28480
- */
28481
- succeeded: number;
28482
- /**
28483
- * How many rows Google rejected.
28484
- */
28485
- failed: number;
28486
- /**
28487
- * One entry per rejected row, with Google’s own error.
28488
- */
28489
- errors: Array<{
28490
- /**
28491
- * The 0-based index of the failed conversion in your request (-1 if Google did not address a specific row).
28492
- */
28493
- index: number;
28494
- /**
28495
- * Google’s error code as `<group>:<NAME>` (e.g. conversion_upload_error:UNPARSEABLE_GCLID).
28496
- */
28497
- error_code: string;
28498
- /**
28499
- * Google’s human-readable error message for the row.
28500
- */
28501
- message: string;
28502
- }>;
28503
- /**
28504
- * Whether this was a validate-only dry run.
28505
- */
28406
+ category: 'UNSPECIFIED' | 'UNKNOWN' | 'DEFAULT' | 'PAGE_VIEW' | 'PURCHASE' | 'SIGNUP' | 'DOWNLOAD' | 'ADD_TO_CART' | 'BEGIN_CHECKOUT' | 'SUBSCRIBE_PAID' | 'PHONE_CALL_LEAD' | 'IMPORTED_LEAD' | 'SUBMIT_LEAD_FORM' | 'BOOK_APPOINTMENT' | 'REQUEST_QUOTE' | 'GET_DIRECTIONS' | 'OUTBOUND_CLICK' | 'CONTACT' | 'ENGAGEMENT' | 'STORE_VISIT' | 'STORE_SALE' | 'QUALIFIED_LEAD' | 'CONVERTED_LEAD' | 'YOUTUBE_FOLLOW_ON_VIEWS';
28407
+ origin: 'UNSPECIFIED' | 'UNKNOWN' | 'WEBSITE' | 'GOOGLE_HOSTED' | 'APP' | 'CALL_FROM_ADS' | 'STORE' | 'YOUTUBE_HOSTED';
28408
+ biddable: boolean;
28506
28409
  dry_run: boolean;
28410
+ executed: boolean;
28507
28411
  };
28508
28412
  };
28509
- type GoogleUploadConversionsResponse = GoogleUploadConversionsResponses[keyof GoogleUploadConversionsResponses];
28413
+ type GoogleSetConversionGoalResponse = GoogleSetConversionGoalResponses[keyof GoogleSetConversionGoalResponses];
28510
28414
  type GoogleUploadImageAssetData = {
28511
28415
  body: {
28512
28416
  /**
@@ -29007,7 +28911,7 @@ type TiktokCreatorInfoErrors = {
29007
28911
  /**
29008
28912
  * The machine-readable error code — branch on this. Narrowed to the codes this endpoint can return at this status.
29009
28913
  */
29010
- code: 'idempotency_key_reused';
28914
+ code: 'idempotency_key_reused' | 'tiktok_cannot_post_now';
29011
28915
  display_error: string;
29012
28916
  detail?: string;
29013
28917
  request_id?: string;
@@ -29450,9 +29354,18 @@ type LogsListResponses = {
29450
29354
  */
29451
29355
  response_body?: unknown | null;
29452
29356
  /**
29453
- * Typed error `{ code, message }` (see RequestLogError) for a failed action, or null on success. INVARIANT: `status: "error"` always carries a non-null `error`. For a publish that failed/partially-published it is the rollup summary (`post_publish_failed` / `post_partially_published`), distinct from any single target — the per-target reasons live in `outcome.targets[].error`. Stored as jsonb.
29357
+ * Typed error `{ code, message }` for a failed action, or null on success. INVARIANT: `status: "error"` always carries a non-null `error`. For a publish that failed/partially-published it is the rollup summary (`post_publish_failed` / `post_partially_published`), distinct from any single target — the per-target reasons live in `outcome.targets[].error`. Stored as jsonb.
29454
29358
  */
29455
- error?: unknown | null;
29359
+ error: {
29360
+ /**
29361
+ * Stable, machine-readable error code from the closed registry.
29362
+ */
29363
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
29364
+ /**
29365
+ * Human-readable, non-sensitive message.
29366
+ */
29367
+ message: string;
29368
+ } | null;
29456
29369
  /**
29457
29370
  * Per-target publish breakdown (see LogOutcome): the rollup status plus one entry per platform target. Present on a publish action (create/update/scheduled publish that ran), null otherwise.
29458
29371
  */
@@ -29479,7 +29392,7 @@ type LogsListResponses = {
29479
29392
  /**
29480
29393
  * The typed error code the variant carries.
29481
29394
  */
29482
- code: string;
29395
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
29483
29396
  message: string;
29484
29397
  /**
29485
29398
  * A short, friendly end-user line for `code` (render verbatim). `message` stays developer-grade.
@@ -29842,9 +29755,18 @@ type LogsGetResponses = {
29842
29755
  */
29843
29756
  response_body?: unknown | null;
29844
29757
  /**
29845
- * Typed error `{ code, message }` (see RequestLogError) for a failed action, or null on success. INVARIANT: `status: "error"` always carries a non-null `error`. For a publish that failed/partially-published it is the rollup summary (`post_publish_failed` / `post_partially_published`), distinct from any single target — the per-target reasons live in `outcome.targets[].error`. Stored as jsonb.
29758
+ * Typed error `{ code, message }` for a failed action, or null on success. INVARIANT: `status: "error"` always carries a non-null `error`. For a publish that failed/partially-published it is the rollup summary (`post_publish_failed` / `post_partially_published`), distinct from any single target — the per-target reasons live in `outcome.targets[].error`. Stored as jsonb.
29846
29759
  */
29847
- error?: unknown | null;
29760
+ error: {
29761
+ /**
29762
+ * Stable, machine-readable error code from the closed registry.
29763
+ */
29764
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
29765
+ /**
29766
+ * Human-readable, non-sensitive message.
29767
+ */
29768
+ message: string;
29769
+ } | null;
29848
29770
  /**
29849
29771
  * Per-target publish breakdown (see LogOutcome): the rollup status plus one entry per platform target. Present on a publish action (create/update/scheduled publish that ran), null otherwise.
29850
29772
  */
@@ -29871,7 +29793,7 @@ type LogsGetResponses = {
29871
29793
  /**
29872
29794
  * The typed error code the variant carries.
29873
29795
  */
29874
- code: string;
29796
+ code: 'unauthorized' | 'forbidden' | 'not_found' | 'conflict' | 'validation_failed' | 'rate_limited' | 'internal_error' | 'idempotency_key_invalid' | 'idempotency_key_reused' | 'idempotency_request_in_progress' | 'account_not_available' | 'connection_reauth_required' | 'connection_not_pending' | 'not_implemented' | 'connection_discovery_failed' | 'tiktok_creator_info_unavailable' | 'tiktok_cannot_post_now' | 'media_processing' | 'media_upload_init_failed' | 'media_upload_incomplete' | 'not_publishable' | 'invalid_connection' | 'invalid_media' | 'profile_scope_invalid' | 'media_unprobeable' | 'media_too_large' | 'media_aspect_ratio_unsupported' | 'media_resolution_too_low' | 'media_gif_unsupported' | 'media_format_recompressed' | 'media_resolution_downscaled' | 'video_container_unsupported' | 'video_codec_unsupported' | 'video_audio_codec_unsupported' | 'video_too_large' | 'video_too_small' | 'video_dimensions_unsupported' | 'video_dimensions_too_large' | 'video_fps_unsupported' | 'video_fps_too_low' | 'video_aspect_unsupported' | 'video_duration_too_short' | 'video_duration_exceeds_max' | 'video_transform_failed' | 'media_fetch_failed' | 'document_format_unsupported' | 'document_too_large' | 'document_too_many_pages' | 'media_format_indeterminate' | 'media_format_unsupported' | 'media_count_invalid' | 'body_too_long' | 'content_missing' | 'content_conflict' | 'content_incomplete' | 'content_kind_mismatch' | 'media_type_mismatch' | 'tag_limit_exceeded' | 'reel_field_on_non_reel' | 'field_placement_invalid' | 'media_not_ready' | 'media_failed' | 'media_unsupported' | 'media_kind_mismatch' | 'variant_unparseable' | 'publishing_unavailable' | 'x_duplicate_content' | 'x_not_authorized' | 'x_access_not_permitted' | 'x_rate_limited' | 'x_publish_failed' | 'x_media_upload_failed' | 'linkedin_duplicate_content' | 'linkedin_auth_expired' | 'linkedin_permission_denied' | 'linkedin_rate_limited' | 'linkedin_media_processing' | 'linkedin_media_failed' | 'linkedin_media_upload_failed' | 'linkedin_publish_failed' | 'instagram_media_processing' | 'instagram_container_expired' | 'instagram_container_failed' | 'instagram_rate_limited' | 'instagram_daily_limit_reached' | 'instagram_aspect_ratio_unsupported' | 'instagram_media_unsupported' | 'instagram_not_authorized' | 'instagram_publish_failed' | 'facebook_reel_processing' | 'facebook_reel_failed' | 'facebook_rate_limited' | 'facebook_duplicate_content' | 'facebook_temporarily_blocked' | 'facebook_not_authorized' | 'facebook_publish_failed' | 'tiktok_privacy_not_allowed' | 'tiktok_duration_exceeds_max' | 'tiktok_media_processing' | 'tiktok_not_authorized' | 'tiktok_rate_limited' | 'tiktok_url_ownership_unverified' | 'tiktok_unaudited_private_only' | 'tiktok_spam_risk' | 'tiktok_file_format_invalid' | 'tiktok_duration_invalid' | 'tiktok_frame_rate_invalid' | 'tiktok_resolution_invalid' | 'tiktok_media_pull_failed' | 'tiktok_server_error' | 'tiktok_publish_failed' | 'google_rate_limited' | 'google_server_error' | 'google_auth_expired' | 'google_permission_denied' | 'google_request_failed' | 'post_publish_failed' | 'post_partially_published' | 'connection_platform_mismatch' | 'connection_removed';
29875
29797
  message: string;
29876
29798
  /**
29877
29799
  * A short, friendly end-user line for `code` (render verbatim). `message` stays developer-grade.
@@ -32202,7 +32124,7 @@ type TokensMintData = {
32202
32124
  * Which profiles the minted token may act on. Resolved dynamically per request, so an `external_id` selector also covers profiles created after the token was minted.
32203
32125
  */
32204
32126
  profile_scope: {
32205
- type: 'ids';
32127
+ type: 'profile_ids';
32206
32128
  values: Array<string>;
32207
32129
  } | {
32208
32130
  type: 'external_id';
@@ -32481,4 +32403,4 @@ type TokensMintResponses = {
32481
32403
  };
32482
32404
  type TokensMintResponse = TokensMintResponses[keyof TokensMintResponses];
32483
32405
 
32484
- export { type GoogleEditBudgetData as $, type GoogleCreateAdGroupCriterionErrors as A, type GoogleCreateBudgetData as B, type Client as C, type GoogleCreateBudgetResponses as D, type GoogleCreateBudgetErrors as E, type GoogleCreateCampaignData as F, type GoogleCreateAdData as G, type GoogleCreateCampaignResponses as H, type GoogleCreateCampaignErrors as I, type GoogleCreateCampaignCriterionData as J, type GoogleCreateCampaignCriterionResponses as K, type GoogleCreateCampaignCriterionErrors as L, type GoogleCreateConversionActionData as M, type GoogleCreateConversionActionResponses as N, type Options as O, type GoogleCreateConversionActionErrors as P, type GoogleCreateDisplayAdData as Q, type RequestResult as R, type GoogleCreateDisplayAdResponses as S, type TDataShape as T, type GoogleCreateDisplayAdErrors as U, type GoogleCreateKeywordData as V, type GoogleCreateKeywordResponses as W, type GoogleCreateKeywordErrors as X, type GoogleEditAdGroupData as Y, type GoogleEditAdGroupResponses as Z, type GoogleEditAdGroupErrors as _, type ClientMeta as a, type GoogleListConversionGoalsResponses as a$, type GoogleEditBudgetResponses as a0, type GoogleEditBudgetErrors as a1, type GoogleEditCampaignData as a2, type GoogleEditCampaignResponses as a3, type GoogleEditCampaignErrors as a4, type GoogleEnableAdData as a5, type GoogleEnableAdResponses as a6, type GoogleEnableAdErrors as a7, type GoogleEnableAdGroupData as a8, type GoogleEnableAdGroupResponses as a9, type GoogleGetInsightsResponses as aA, type GoogleGetInsightsErrors as aB, type GoogleGetKeywordData as aC, type GoogleGetKeywordResponses as aD, type GoogleGetKeywordErrors as aE, type GoogleListAdGroupCriteriaData as aF, type GoogleListAdGroupCriteriaResponses as aG, type GoogleListAdGroupCriteriaErrors as aH, type GoogleListAdGroupsData as aI, type GoogleListAdGroupsResponses as aJ, type GoogleListAdGroupsErrors as aK, type GoogleListAdsData as aL, type GoogleListAdsResponses as aM, type GoogleListAdsErrors as aN, type GoogleListAudiencesData as aO, type GoogleListAudiencesResponses as aP, type GoogleListAudiencesErrors as aQ, type GoogleListCampaignCriteriaData as aR, type GoogleListCampaignCriteriaResponses as aS, type GoogleListCampaignCriteriaErrors as aT, type GoogleListCampaignsData as aU, type GoogleListCampaignsResponses as aV, type GoogleListCampaignsErrors as aW, type GoogleListConversionActionsData as aX, type GoogleListConversionActionsResponses as aY, type GoogleListConversionActionsErrors as aZ, type GoogleListConversionGoalsData as a_, type GoogleEnableAdGroupErrors as aa, type GoogleEnableCampaignData as ab, type GoogleEnableCampaignResponses as ac, type GoogleEnableCampaignErrors as ad, type GoogleEnableKeywordData as ae, type GoogleEnableKeywordResponses as af, type GoogleEnableKeywordErrors as ag, type GoogleGetAccountData as ah, type GoogleGetAccountResponses as ai, type GoogleGetAccountErrors as aj, type GoogleGetAdData as ak, type GoogleGetAdResponses as al, type GoogleGetAdErrors as am, type GoogleGetAdGroupData as an, type GoogleGetAdGroupResponses as ao, type GoogleGetAdGroupErrors as ap, type GoogleGetAdTreeData as aq, type GoogleGetAdTreeResponses as ar, type GoogleGetAdTreeErrors as as, type GoogleGetCampaignData as at, type GoogleGetCampaignResponses as au, type GoogleGetCampaignErrors as av, type GoogleGetConversionActionData as aw, type GoogleGetConversionActionResponses as ax, type GoogleGetConversionActionErrors as ay, type GoogleGetInsightsData as az, type ConnectionsConnectData as b, type GoogleUploadImageAssetErrors as b$, type GoogleListConversionGoalsErrors as b0, type GoogleListKeywordsData as b1, type GoogleListKeywordsResponses as b2, type GoogleListKeywordsErrors as b3, type GooglePauseAdData as b4, type GooglePauseAdResponses as b5, type GooglePauseAdErrors as b6, type GooglePauseAdGroupData as b7, type GooglePauseAdGroupResponses as b8, type GooglePauseAdGroupErrors as b9, type GoogleRemoveKeywordErrors as bA, type GoogleRunGaqlData as bB, type GoogleRunGaqlResponses as bC, type GoogleRunGaqlErrors as bD, type GoogleSearchGeoTargetsData as bE, type GoogleSearchGeoTargetsResponses as bF, type GoogleSearchGeoTargetsErrors as bG, type GoogleSetAdGroupBidsData as bH, type GoogleSetAdGroupBidsResponses as bI, type GoogleSetAdGroupBidsErrors as bJ, type GoogleSetCampaignGeoSettingsData as bK, type GoogleSetCampaignGeoSettingsResponses as bL, type GoogleSetCampaignGeoSettingsErrors as bM, type GoogleSetCampaignTargetingSettingData as bN, type GoogleSetCampaignTargetingSettingResponses as bO, type GoogleSetCampaignTargetingSettingErrors as bP, type GoogleSetConversionGoalData as bQ, type GoogleSetConversionGoalResponses as bR, type GoogleSetConversionGoalErrors as bS, type GoogleSetKeywordBidData as bT, type GoogleSetKeywordBidResponses as bU, type GoogleSetKeywordBidErrors as bV, type GoogleUploadConversionsData as bW, type GoogleUploadConversionsResponses as bX, type GoogleUploadConversionsErrors as bY, type GoogleUploadImageAssetData as bZ, type GoogleUploadImageAssetResponses as b_, type GooglePauseCampaignData as ba, type GooglePauseCampaignResponses as bb, type GooglePauseCampaignErrors as bc, type GooglePauseKeywordData as bd, type GooglePauseKeywordResponses as be, type GooglePauseKeywordErrors as bf, type GoogleRemoveAdData as bg, type GoogleRemoveAdResponses as bh, type GoogleRemoveAdErrors as bi, type GoogleRemoveAdGroupData as bj, type GoogleRemoveAdGroupResponses as bk, type GoogleRemoveAdGroupErrors as bl, type GoogleRemoveAdGroupCriterionData as bm, type GoogleRemoveAdGroupCriterionResponses as bn, type GoogleRemoveAdGroupCriterionErrors as bo, type GoogleRemoveBudgetData as bp, type GoogleRemoveBudgetResponses as bq, type GoogleRemoveBudgetErrors as br, type GoogleRemoveCampaignData as bs, type GoogleRemoveCampaignResponses as bt, type GoogleRemoveCampaignErrors as bu, type GoogleRemoveCampaignCriterionData as bv, type GoogleRemoveCampaignCriterionResponses as bw, type GoogleRemoveCampaignCriterionErrors as bx, type GoogleRemoveKeywordData as by, type GoogleRemoveKeywordResponses as bz, type ConnectionsConnectResponses as c, type PostsGetData as c$, type LogsGetData as c0, type LogsGetResponses as c1, type LogsGetErrors as c2, type LogsListData as c3, type LogsListResponses as c4, type LogsListErrors as c5, type MediaAbortData as c6, type MediaAbortResponses as c7, type MediaAbortErrors as c8, type MediaCompleteData as c9, type MetaAdData as cA, type MetaAdResponses as cB, type MetaAdErrors as cC, type MetaAdsData as cD, type MetaAdsResponses as cE, type MetaAdsErrors as cF, type MetaAdsetData as cG, type MetaAdsetResponses as cH, type MetaAdsetErrors as cI, type MetaAdsetsData as cJ, type MetaAdsetsResponses as cK, type MetaAdsetsErrors as cL, type MetaCampaignData as cM, type MetaCampaignResponses as cN, type MetaCampaignErrors as cO, type MetaCampaignsData as cP, type MetaCampaignsResponses as cQ, type MetaCampaignsErrors as cR, type MetaInsightsData as cS, type MetaInsightsResponses as cT, type MetaInsightsErrors as cU, type PostsCreateData as cV, type PostsCreateResponses as cW, type PostsCreateErrors as cX, type PostsDeleteData as cY, type PostsDeleteResponses as cZ, type PostsDeleteErrors as c_, type MediaCompleteResponses as ca, type MediaCompleteErrors as cb, type MediaCreateData as cc, type MediaCreateResponses as cd, type MediaCreateErrors as ce, type MediaDeleteData as cf, type MediaDeleteResponses as cg, type MediaDeleteErrors as ch, type MediaGetData as ci, type MediaGetResponses as cj, type MediaGetErrors as ck, type MediaListData as cl, type MediaListResponses as cm, type MediaListErrors as cn, type MediaListPartsData as co, type MediaListPartsResponses as cp, type MediaListPartsErrors as cq, type MediaSignPartData as cr, type MediaSignPartResponses as cs, type MediaSignPartErrors as ct, type MediaUpdateData as cu, type MediaUpdateResponses as cv, type MediaUpdateErrors as cw, type MetaAccountData as cx, type MetaAccountResponses as cy, type MetaAccountErrors as cz, type ConnectionsConnectErrors as d, type ConnectionsListAccountsResponse as d$, type PostsGetResponses as d0, type PostsGetErrors as d1, type PostsListData as d2, type PostsListResponses as d3, type PostsListErrors as d4, type PostsUpdateData as d5, type PostsUpdateResponses as d6, type PostsUpdateErrors as d7, type PostsValidateData as d8, type PostsValidateResponses as d9, type WebhooksCreatePortalData as dA, type WebhooksCreatePortalResponses as dB, type WebhooksCreatePortalErrors as dC, type WebhooksDeleteEndpointData as dD, type WebhooksDeleteEndpointResponses as dE, type WebhooksDeleteEndpointErrors as dF, type WebhooksGetEndpointData as dG, type WebhooksGetEndpointResponses as dH, type WebhooksGetEndpointErrors as dI, type WebhooksListEndpointsData as dJ, type WebhooksListEndpointsResponses as dK, type WebhooksListEndpointsErrors as dL, type WebhooksListEventTypesData as dM, type WebhooksListEventTypesResponses as dN, type WebhooksListEventTypesErrors as dO, type WebhooksPingData as dP, type WebhooksPingResponses as dQ, type WebhooksPingErrors as dR, type WebhooksUpdateEndpointData as dS, type WebhooksUpdateEndpointResponses as dT, type WebhooksUpdateEndpointErrors as dU, type ErrorCode as dV, type MediaGetResponse as dW, type ConnectionsConnectResponse as dX, type ConnectionsGetResponse as dY, type ConnectionsListByProfileResponse as dZ, type MediaCreateResponse as d_, type PostsValidateErrors as da, type ProfilesCreateData as db, type ProfilesCreateResponses as dc, type ProfilesCreateErrors as dd, type ProfilesDeleteData as de, type ProfilesDeleteResponses as df, type ProfilesDeleteErrors as dg, type ProfilesGetData as dh, type ProfilesGetResponses as di, type ProfilesGetErrors as dj, type ProfilesListData as dk, type ProfilesListResponses as dl, type ProfilesListErrors as dm, type ProfilesUpdateData as dn, type ProfilesUpdateResponses as dp, type ProfilesUpdateErrors as dq, type TiktokCreatorInfoData as dr, type TiktokCreatorInfoResponses as ds, type TiktokCreatorInfoErrors as dt, type TokensMintData as du, type TokensMintResponses as dv, type TokensMintErrors as dw, type WebhooksCreateEndpointData as dx, type WebhooksCreateEndpointResponses as dy, type WebhooksCreateEndpointErrors as dz, type ConnectionsDeleteData as e, type GoogleEditCampaignError as e$, type MediaListResponse as e0, type PostsGetResponse as e1, type PostsListResponse as e2, type PostsValidateResponse as e3, type ProfilesGetResponse as e4, type ProfilesListResponse as e5, type TiktokCreatorInfoResponse as e6, type PostrunClient as e7, type GoogleAdTreeNode as e8, type ClientOptions as e9, type GoogleAdsInsights as eA, type GoogleAdsInsightsQuery as eB, type GoogleAdsInsightsRow as eC, type GoogleAdsKeyword as eD, type GoogleAdsReadStatusFilter as eE, type GoogleCreateAdError as eF, type GoogleCreateAdGroupCriterionError as eG, type GoogleCreateAdGroupCriterionResponse as eH, type GoogleCreateAdGroupError as eI, type GoogleCreateAdGroupResponse as eJ, type GoogleCreateAdResponse as eK, type GoogleCreateBudgetError as eL, type GoogleCreateBudgetResponse as eM, type GoogleCreateCampaignCriterionError as eN, type GoogleCreateCampaignCriterionResponse as eO, type GoogleCreateCampaignError as eP, type GoogleCreateCampaignResponse as eQ, type GoogleCreateConversionActionError as eR, type GoogleCreateConversionActionResponse as eS, type GoogleCreateDisplayAdError as eT, type GoogleCreateDisplayAdResponse as eU, type GoogleCreateKeywordError as eV, type GoogleCreateKeywordResponse as eW, type GoogleEditAdGroupError as eX, type GoogleEditAdGroupResponse as eY, type GoogleEditBudgetError as eZ, type GoogleEditBudgetResponse as e_, type ConnectionsConnectError as ea, type ConnectionsDeleteError as eb, type ConnectionsDeleteResponse as ec, type ConnectionsGetError as ed, type ConnectionsListAccountsError as ee, type ConnectionsListByProfileError as ef, type ConnectionsSelectError as eg, type ConnectionsSelectResponse as eh, type CreatePostBody as ei, type DiscoverableAccount as ej, type GoogleAdTree as ek, type GoogleAdsAd as el, type GoogleAdsAdGroup as em, type GoogleAdsAdGroupCriterion as en, type GoogleAdsAudience as eo, type GoogleAdsCampaignCriterion as ep, type GoogleAdsCreateAdGroupCriterionRequest as eq, type GoogleAdsCreateCampaignCriterionRequest as er, type GoogleAdsCreateResult as es, type GoogleAdsDeleteResult as et, type GoogleAdsEditResult as eu, type GoogleAdsGeoSettingsRequest as ev, type GoogleAdsGeoTargetConstant as ew, type GoogleAdsInsightLevel as ex, type GoogleAdsInsightMetric as ey, type GoogleAdsInsightSegment as ez, type ConnectionsDeleteResponses as f, type GoogleRemoveKeywordError as f$, type GoogleEditCampaignResponse as f0, type GoogleEnableAdError as f1, type GoogleEnableAdGroupError as f2, type GoogleEnableAdGroupResponse as f3, type GoogleEnableAdResponse as f4, type GoogleEnableCampaignError as f5, type GoogleEnableCampaignResponse as f6, type GoogleEnableKeywordError as f7, type GoogleEnableKeywordResponse as f8, type GoogleGetAccountError as f9, type GoogleListCampaignsResponse as fA, type GoogleListConversionActionsError as fB, type GoogleListConversionActionsResponse as fC, type GoogleListConversionGoalsError as fD, type GoogleListConversionGoalsResponse as fE, type GoogleListKeywordsError as fF, type GoogleListKeywordsResponse as fG, type GooglePauseAdError as fH, type GooglePauseAdGroupError as fI, type GooglePauseAdGroupResponse as fJ, type GooglePauseAdResponse as fK, type GooglePauseCampaignError as fL, type GooglePauseCampaignResponse as fM, type GooglePauseKeywordError as fN, type GooglePauseKeywordResponse as fO, type GoogleRemoveAdError as fP, type GoogleRemoveAdGroupCriterionError as fQ, type GoogleRemoveAdGroupCriterionResponse as fR, type GoogleRemoveAdGroupError as fS, type GoogleRemoveAdGroupResponse as fT, type GoogleRemoveAdResponse as fU, type GoogleRemoveBudgetError as fV, type GoogleRemoveBudgetResponse as fW, type GoogleRemoveCampaignCriterionError as fX, type GoogleRemoveCampaignCriterionResponse as fY, type GoogleRemoveCampaignError as fZ, type GoogleRemoveCampaignResponse as f_, type GoogleGetAccountResponse as fa, type GoogleGetAdError as fb, type GoogleGetAdGroupError as fc, type GoogleGetAdGroupResponse as fd, type GoogleGetAdResponse as fe, type GoogleGetAdTreeError as ff, type GoogleGetAdTreeResponse as fg, type GoogleGetCampaignError as fh, type GoogleGetCampaignResponse as fi, type GoogleGetConversionActionError as fj, type GoogleGetConversionActionResponse as fk, type GoogleGetInsightsError as fl, type GoogleGetInsightsResponse as fm, type GoogleGetKeywordError as fn, type GoogleGetKeywordResponse as fo, type GoogleListAdGroupCriteriaError as fp, type GoogleListAdGroupCriteriaResponse as fq, type GoogleListAdGroupsError as fr, type GoogleListAdGroupsResponse as fs, type GoogleListAdsError as ft, type GoogleListAdsResponse as fu, type GoogleListAudiencesError as fv, type GoogleListAudiencesResponse as fw, type GoogleListCampaignCriteriaError as fx, type GoogleListCampaignCriteriaResponse as fy, type GoogleListCampaignsError as fz, type ConnectionsDeleteErrors as g, type PostsDeleteResponse as g$, type GoogleRemoveKeywordResponse as g0, type GoogleRunGaqlError as g1, type GoogleRunGaqlResponse as g2, type GoogleSearchGeoTargetsError as g3, type GoogleSearchGeoTargetsResponse as g4, type GoogleSetAdGroupBidsError as g5, type GoogleSetAdGroupBidsResponse as g6, type GoogleSetCampaignGeoSettingsError as g7, type GoogleSetCampaignGeoSettingsResponse as g8, type GoogleSetCampaignTargetingSettingError as g9, type MediaSignPartError as gA, type MediaSignPartResponse as gB, type MediaStage as gC, type MediaUpdateError as gD, type MediaUpdateResponse as gE, type MetaAccountError as gF, type MetaAccountResponse as gG, type MetaAdError as gH, type MetaAdResponse as gI, type MetaAdsError as gJ, type MetaAdsResponse as gK, type MetaAdsetError as gL, type MetaAdsetResponse as gM, type MetaAdsetsError as gN, type MetaAdsetsResponse as gO, type MetaCampaignError as gP, type MetaCampaignResponse as gQ, type MetaCampaignsError as gR, type MetaCampaignsResponse as gS, type MetaInsightsError as gT, type MetaInsightsResponse as gU, type PostType as gV, type PostVariantStatus as gW, type PostrunClientOptions as gX, type PostsCreateError as gY, type PostsCreateResponse as gZ, type PostsDeleteError as g_, type GoogleSetCampaignTargetingSettingResponse as ga, type GoogleSetConversionGoalError as gb, type GoogleSetConversionGoalResponse as gc, type GoogleSetKeywordBidError as gd, type GoogleSetKeywordBidResponse as ge, type GoogleUploadConversionsError as gf, type GoogleUploadConversionsResponse as gg, type GoogleUploadImageAssetError as gh, type GoogleUploadImageAssetResponse as gi, type IdempotencyKey as gj, type LogsGetError as gk, type LogsGetResponse as gl, type LogsListError as gm, type LogsListResponse as gn, type Media as go, type MediaAbortError as gp, type MediaAbortResponse as gq, type MediaCompleteError as gr, type MediaCompleteResponse as gs, type MediaCreateError as gt, type MediaDeleteError as gu, type MediaDeleteResponse as gv, type MediaGetError as gw, type MediaListError as gx, type MediaListPartsError as gy, type MediaListPartsResponse as gz, type ConnectionsGetData as h, type PostsGetError as h0, type PostsListError as h1, type PostsUpdateError as h2, type PostsUpdateResponse as h3, type PostsValidateError as h4, type ProfilesCreateError as h5, type ProfilesCreateResponse as h6, type ProfilesDeleteError as h7, type ProfilesDeleteResponse as h8, type ProfilesGetError as h9, type ProfilesListError as ha, type ProfilesUpdateError as hb, type ProfilesUpdateResponse as hc, type TiktokCreatorInfoError as hd, type TokensMintError as he, type TokensMintResponse as hf, type WebhooksCreateEndpointError as hg, type WebhooksCreateEndpointResponse as hh, type WebhooksCreatePortalError as hi, type WebhooksCreatePortalResponse as hj, type WebhooksDeleteEndpointError as hk, type WebhooksDeleteEndpointResponse as hl, type WebhooksGetEndpointError as hm, type WebhooksGetEndpointResponse as hn, type WebhooksListEndpointsError as ho, type WebhooksListEndpointsResponse as hp, type WebhooksListEventTypesError as hq, type WebhooksListEventTypesResponse as hr, type WebhooksPingError as hs, type WebhooksPingResponse as ht, type WebhooksUpdateEndpointError as hu, type WebhooksUpdateEndpointResponse as hv, createPostrunClient as hw, type ConnectionsGetResponses as i, type ConnectionsGetErrors as j, type ConnectionsListAccountsData as k, type ConnectionsListAccountsResponses as l, type ConnectionsListAccountsErrors as m, type ConnectionsListByProfileData as n, type ConnectionsListByProfileResponses as o, type ConnectionsListByProfileErrors as p, type ConnectionsSelectData as q, type ConnectionsSelectResponses as r, type ConnectionsSelectErrors as s, type GoogleCreateAdResponses as t, type GoogleCreateAdErrors as u, type GoogleCreateAdGroupData as v, type GoogleCreateAdGroupResponses as w, type GoogleCreateAdGroupErrors as x, type GoogleCreateAdGroupCriterionData as y, type GoogleCreateAdGroupCriterionResponses as z };
32406
+ export { type GoogleEditAdGroupData as $, type GoogleCreateAdGroupCriterionErrors as A, type GoogleCreateBudgetData as B, type Client as C, type GoogleCreateBudgetResponses as D, type GoogleCreateBudgetErrors as E, type GoogleCreateCampaignData as F, type GoogleCreateAdData as G, type GoogleCreateCampaignResponses as H, type GoogleCreateCampaignErrors as I, type GoogleCreateCampaignCriterionData as J, type GoogleCreateCampaignCriterionResponses as K, type GoogleCreateCampaignCriterionErrors as L, type GoogleCreateConversionActionData as M, type GoogleCreateConversionActionResponses as N, type Options as O, type GoogleCreateConversionActionErrors as P, type GoogleCreateDisplayAdData as Q, type RequestResult as R, type GoogleCreateDisplayAdResponses as S, type TDataShape as T, type GoogleCreateDisplayAdErrors as U, type GoogleCreateKeywordData as V, type GoogleCreateKeywordResponses as W, type GoogleCreateKeywordErrors as X, type GoogleEditAccountData as Y, type GoogleEditAccountResponses as Z, type GoogleEditAccountErrors as _, type ClientMeta as a, type GoogleListConversionActionsResponses as a$, type GoogleEditAdGroupResponses as a0, type GoogleEditAdGroupErrors as a1, type GoogleEditBudgetData as a2, type GoogleEditBudgetResponses as a3, type GoogleEditBudgetErrors as a4, type GoogleEditCampaignData as a5, type GoogleEditCampaignResponses as a6, type GoogleEditCampaignErrors as a7, type GoogleEnableAdData as a8, type GoogleEnableAdResponses as a9, type GoogleGetConversionActionResponses as aA, type GoogleGetConversionActionErrors as aB, type GoogleGetInsightsData as aC, type GoogleGetInsightsResponses as aD, type GoogleGetInsightsErrors as aE, type GoogleGetKeywordData as aF, type GoogleGetKeywordResponses as aG, type GoogleGetKeywordErrors as aH, type GoogleListAdGroupCriteriaData as aI, type GoogleListAdGroupCriteriaResponses as aJ, type GoogleListAdGroupCriteriaErrors as aK, type GoogleListAdGroupsData as aL, type GoogleListAdGroupsResponses as aM, type GoogleListAdGroupsErrors as aN, type GoogleListAdsData as aO, type GoogleListAdsResponses as aP, type GoogleListAdsErrors as aQ, type GoogleListAudiencesData as aR, type GoogleListAudiencesResponses as aS, type GoogleListAudiencesErrors as aT, type GoogleListCampaignCriteriaData as aU, type GoogleListCampaignCriteriaResponses as aV, type GoogleListCampaignCriteriaErrors as aW, type GoogleListCampaignsData as aX, type GoogleListCampaignsResponses as aY, type GoogleListCampaignsErrors as aZ, type GoogleListConversionActionsData as a_, type GoogleEnableAdErrors as aa, type GoogleEnableAdGroupData as ab, type GoogleEnableAdGroupResponses as ac, type GoogleEnableAdGroupErrors as ad, type GoogleEnableCampaignData as ae, type GoogleEnableCampaignResponses as af, type GoogleEnableCampaignErrors as ag, type GoogleEnableKeywordData as ah, type GoogleEnableKeywordResponses as ai, type GoogleEnableKeywordErrors as aj, type GoogleGetAccountData as ak, type GoogleGetAccountResponses as al, type GoogleGetAccountErrors as am, type GoogleGetAdData as an, type GoogleGetAdResponses as ao, type GoogleGetAdErrors as ap, type GoogleGetAdGroupData as aq, type GoogleGetAdGroupResponses as ar, type GoogleGetAdGroupErrors as as, type GoogleGetAdTreeData as at, type GoogleGetAdTreeResponses as au, type GoogleGetAdTreeErrors as av, type GoogleGetCampaignData as aw, type GoogleGetCampaignResponses as ax, type GoogleGetCampaignErrors as ay, type GoogleGetConversionActionData as az, type ConnectionsConnectData as b, type GoogleUploadImageAssetErrors as b$, type GoogleListConversionActionsErrors as b0, type GoogleListConversionGoalsData as b1, type GoogleListConversionGoalsResponses as b2, type GoogleListConversionGoalsErrors as b3, type GoogleListKeywordsData as b4, type GoogleListKeywordsResponses as b5, type GoogleListKeywordsErrors as b6, type GooglePauseAdData as b7, type GooglePauseAdResponses as b8, type GooglePauseAdErrors as b9, type GoogleRemoveCampaignCriterionErrors as bA, type GoogleRemoveKeywordData as bB, type GoogleRemoveKeywordResponses as bC, type GoogleRemoveKeywordErrors as bD, type GoogleRunGaqlData as bE, type GoogleRunGaqlResponses as bF, type GoogleRunGaqlErrors as bG, type GoogleSearchGeoTargetsData as bH, type GoogleSearchGeoTargetsResponses as bI, type GoogleSearchGeoTargetsErrors as bJ, type GoogleSetAdGroupBidsData as bK, type GoogleSetAdGroupBidsResponses as bL, type GoogleSetAdGroupBidsErrors as bM, type GoogleSetCampaignGeoSettingsData as bN, type GoogleSetCampaignGeoSettingsResponses as bO, type GoogleSetCampaignGeoSettingsErrors as bP, type GoogleSetCampaignTargetingSettingData as bQ, type GoogleSetCampaignTargetingSettingResponses as bR, type GoogleSetCampaignTargetingSettingErrors as bS, type GoogleSetConversionGoalData as bT, type GoogleSetConversionGoalResponses as bU, type GoogleSetConversionGoalErrors as bV, type GoogleSetKeywordBidData as bW, type GoogleSetKeywordBidResponses as bX, type GoogleSetKeywordBidErrors as bY, type GoogleUploadImageAssetData as bZ, type GoogleUploadImageAssetResponses as b_, type GooglePauseAdGroupData as ba, type GooglePauseAdGroupResponses as bb, type GooglePauseAdGroupErrors as bc, type GooglePauseCampaignData as bd, type GooglePauseCampaignResponses as be, type GooglePauseCampaignErrors as bf, type GooglePauseKeywordData as bg, type GooglePauseKeywordResponses as bh, type GooglePauseKeywordErrors as bi, type GoogleRemoveAdData as bj, type GoogleRemoveAdResponses as bk, type GoogleRemoveAdErrors as bl, type GoogleRemoveAdGroupData as bm, type GoogleRemoveAdGroupResponses as bn, type GoogleRemoveAdGroupErrors as bo, type GoogleRemoveAdGroupCriterionData as bp, type GoogleRemoveAdGroupCriterionResponses as bq, type GoogleRemoveAdGroupCriterionErrors as br, type GoogleRemoveBudgetData as bs, type GoogleRemoveBudgetResponses as bt, type GoogleRemoveBudgetErrors as bu, type GoogleRemoveCampaignData as bv, type GoogleRemoveCampaignResponses as bw, type GoogleRemoveCampaignErrors as bx, type GoogleRemoveCampaignCriterionData as by, type GoogleRemoveCampaignCriterionResponses as bz, type ConnectionsConnectResponses as c, type PostsGetData as c$, type LogsGetData as c0, type LogsGetResponses as c1, type LogsGetErrors as c2, type LogsListData as c3, type LogsListResponses as c4, type LogsListErrors as c5, type MediaAbortData as c6, type MediaAbortResponses as c7, type MediaAbortErrors as c8, type MediaCompleteData as c9, type MetaAdData as cA, type MetaAdResponses as cB, type MetaAdErrors as cC, type MetaAdsData as cD, type MetaAdsResponses as cE, type MetaAdsErrors as cF, type MetaAdsetData as cG, type MetaAdsetResponses as cH, type MetaAdsetErrors as cI, type MetaAdsetsData as cJ, type MetaAdsetsResponses as cK, type MetaAdsetsErrors as cL, type MetaCampaignData as cM, type MetaCampaignResponses as cN, type MetaCampaignErrors as cO, type MetaCampaignsData as cP, type MetaCampaignsResponses as cQ, type MetaCampaignsErrors as cR, type MetaInsightsData as cS, type MetaInsightsResponses as cT, type MetaInsightsErrors as cU, type PostsCreateData as cV, type PostsCreateResponses as cW, type PostsCreateErrors as cX, type PostsDeleteData as cY, type PostsDeleteResponses as cZ, type PostsDeleteErrors as c_, type MediaCompleteResponses as ca, type MediaCompleteErrors as cb, type MediaCreateData as cc, type MediaCreateResponses as cd, type MediaCreateErrors as ce, type MediaDeleteData as cf, type MediaDeleteResponses as cg, type MediaDeleteErrors as ch, type MediaGetData as ci, type MediaGetResponses as cj, type MediaGetErrors as ck, type MediaListData as cl, type MediaListResponses as cm, type MediaListErrors as cn, type MediaListPartsData as co, type MediaListPartsResponses as cp, type MediaListPartsErrors as cq, type MediaSignPartData as cr, type MediaSignPartResponses as cs, type MediaSignPartErrors as ct, type MediaUpdateData as cu, type MediaUpdateResponses as cv, type MediaUpdateErrors as cw, type MetaAccountData as cx, type MetaAccountResponses as cy, type MetaAccountErrors as cz, type ConnectionsConnectErrors as d, type ConnectionsListAccountsResponse as d$, type PostsGetResponses as d0, type PostsGetErrors as d1, type PostsListData as d2, type PostsListResponses as d3, type PostsListErrors as d4, type PostsUpdateData as d5, type PostsUpdateResponses as d6, type PostsUpdateErrors as d7, type PostsValidateData as d8, type PostsValidateResponses as d9, type WebhooksCreatePortalData as dA, type WebhooksCreatePortalResponses as dB, type WebhooksCreatePortalErrors as dC, type WebhooksDeleteEndpointData as dD, type WebhooksDeleteEndpointResponses as dE, type WebhooksDeleteEndpointErrors as dF, type WebhooksGetEndpointData as dG, type WebhooksGetEndpointResponses as dH, type WebhooksGetEndpointErrors as dI, type WebhooksListEndpointsData as dJ, type WebhooksListEndpointsResponses as dK, type WebhooksListEndpointsErrors as dL, type WebhooksListEventTypesData as dM, type WebhooksListEventTypesResponses as dN, type WebhooksListEventTypesErrors as dO, type WebhooksPingData as dP, type WebhooksPingResponses as dQ, type WebhooksPingErrors as dR, type WebhooksUpdateEndpointData as dS, type WebhooksUpdateEndpointResponses as dT, type WebhooksUpdateEndpointErrors as dU, type ErrorCode as dV, type MediaGetResponse as dW, type ConnectionsConnectResponse as dX, type ConnectionsGetResponse as dY, type ConnectionsListByProfileResponse as dZ, type MediaCreateResponse as d_, type PostsValidateErrors as da, type ProfilesCreateData as db, type ProfilesCreateResponses as dc, type ProfilesCreateErrors as dd, type ProfilesDeleteData as de, type ProfilesDeleteResponses as df, type ProfilesDeleteErrors as dg, type ProfilesGetData as dh, type ProfilesGetResponses as di, type ProfilesGetErrors as dj, type ProfilesListData as dk, type ProfilesListResponses as dl, type ProfilesListErrors as dm, type ProfilesUpdateData as dn, type ProfilesUpdateResponses as dp, type ProfilesUpdateErrors as dq, type TiktokCreatorInfoData as dr, type TiktokCreatorInfoResponses as ds, type TiktokCreatorInfoErrors as dt, type TokensMintData as du, type TokensMintResponses as dv, type TokensMintErrors as dw, type WebhooksCreateEndpointData as dx, type WebhooksCreateEndpointResponses as dy, type WebhooksCreateEndpointErrors as dz, type ConnectionsDeleteData as e, type GoogleEditAdGroupResponse as e$, type MediaListResponse as e0, type PostsGetResponse as e1, type PostsListResponse as e2, type PostsValidateResponse as e3, type ProfilesGetResponse as e4, type ProfilesListResponse as e5, type TiktokCreatorInfoResponse as e6, type PostrunClient as e7, type GoogleAdTreeNode as e8, type ClientOptions as e9, type GoogleAdsInsights as eA, type GoogleAdsInsightsQuery as eB, type GoogleAdsInsightsRow as eC, type GoogleAdsKeyword as eD, type GoogleAdsReadStatusFilter as eE, type GoogleAdsUrlCustomParameter as eF, type GoogleCreateAdError as eG, type GoogleCreateAdGroupCriterionError as eH, type GoogleCreateAdGroupCriterionResponse as eI, type GoogleCreateAdGroupError as eJ, type GoogleCreateAdGroupResponse as eK, type GoogleCreateAdResponse as eL, type GoogleCreateBudgetError as eM, type GoogleCreateBudgetResponse as eN, type GoogleCreateCampaignCriterionError as eO, type GoogleCreateCampaignCriterionResponse as eP, type GoogleCreateCampaignError as eQ, type GoogleCreateCampaignResponse as eR, type GoogleCreateConversionActionError as eS, type GoogleCreateConversionActionResponse as eT, type GoogleCreateDisplayAdError as eU, type GoogleCreateDisplayAdResponse as eV, type GoogleCreateKeywordError as eW, type GoogleCreateKeywordResponse as eX, type GoogleEditAccountError as eY, type GoogleEditAccountResponse as eZ, type GoogleEditAdGroupError as e_, type ConnectionsConnectError as ea, type ConnectionsDeleteError as eb, type ConnectionsDeleteResponse as ec, type ConnectionsGetError as ed, type ConnectionsListAccountsError as ee, type ConnectionsListByProfileError as ef, type ConnectionsSelectError as eg, type ConnectionsSelectResponse as eh, type CreatePostBody as ei, type DiscoverableAccount as ej, type GoogleAdTree as ek, type GoogleAdsAd as el, type GoogleAdsAdGroup as em, type GoogleAdsAdGroupCriterion as en, type GoogleAdsAudience as eo, type GoogleAdsCampaignCriterion as ep, type GoogleAdsCreateAdGroupCriterionRequest as eq, type GoogleAdsCreateCampaignCriterionRequest as er, type GoogleAdsCreateResult as es, type GoogleAdsDeleteResult as et, type GoogleAdsEditResult as eu, type GoogleAdsGeoSettingsRequest as ev, type GoogleAdsGeoTargetConstant as ew, type GoogleAdsInsightLevel as ex, type GoogleAdsInsightMetric as ey, type GoogleAdsInsightSegment as ez, type ConnectionsDeleteResponses as f, type GoogleRemoveCampaignCriterionResponse as f$, type GoogleEditBudgetError as f0, type GoogleEditBudgetResponse as f1, type GoogleEditCampaignError as f2, type GoogleEditCampaignResponse as f3, type GoogleEnableAdError as f4, type GoogleEnableAdGroupError as f5, type GoogleEnableAdGroupResponse as f6, type GoogleEnableAdResponse as f7, type GoogleEnableCampaignError as f8, type GoogleEnableCampaignResponse as f9, type GoogleListCampaignCriteriaError as fA, type GoogleListCampaignCriteriaResponse as fB, type GoogleListCampaignsError as fC, type GoogleListCampaignsResponse as fD, type GoogleListConversionActionsError as fE, type GoogleListConversionActionsResponse as fF, type GoogleListConversionGoalsError as fG, type GoogleListConversionGoalsResponse as fH, type GoogleListKeywordsError as fI, type GoogleListKeywordsResponse as fJ, type GooglePauseAdError as fK, type GooglePauseAdGroupError as fL, type GooglePauseAdGroupResponse as fM, type GooglePauseAdResponse as fN, type GooglePauseCampaignError as fO, type GooglePauseCampaignResponse as fP, type GooglePauseKeywordError as fQ, type GooglePauseKeywordResponse as fR, type GoogleRemoveAdError as fS, type GoogleRemoveAdGroupCriterionError as fT, type GoogleRemoveAdGroupCriterionResponse as fU, type GoogleRemoveAdGroupError as fV, type GoogleRemoveAdGroupResponse as fW, type GoogleRemoveAdResponse as fX, type GoogleRemoveBudgetError as fY, type GoogleRemoveBudgetResponse as fZ, type GoogleRemoveCampaignCriterionError as f_, type GoogleEnableKeywordError as fa, type GoogleEnableKeywordResponse as fb, type GoogleGetAccountError as fc, type GoogleGetAccountResponse as fd, type GoogleGetAdError as fe, type GoogleGetAdGroupError as ff, type GoogleGetAdGroupResponse as fg, type GoogleGetAdResponse as fh, type GoogleGetAdTreeError as fi, type GoogleGetAdTreeResponse as fj, type GoogleGetCampaignError as fk, type GoogleGetCampaignResponse as fl, type GoogleGetConversionActionError as fm, type GoogleGetConversionActionResponse as fn, type GoogleGetInsightsError as fo, type GoogleGetInsightsResponse as fp, type GoogleGetKeywordError as fq, type GoogleGetKeywordResponse as fr, type GoogleListAdGroupCriteriaError as fs, type GoogleListAdGroupCriteriaResponse as ft, type GoogleListAdGroupsError as fu, type GoogleListAdGroupsResponse as fv, type GoogleListAdsError as fw, type GoogleListAdsResponse as fx, type GoogleListAudiencesError as fy, type GoogleListAudiencesResponse as fz, type ConnectionsDeleteErrors as g, type PostsDeleteError as g$, type GoogleRemoveCampaignError as g0, type GoogleRemoveCampaignResponse as g1, type GoogleRemoveKeywordError as g2, type GoogleRemoveKeywordResponse as g3, type GoogleRunGaqlError as g4, type GoogleRunGaqlResponse as g5, type GoogleSearchGeoTargetsError as g6, type GoogleSearchGeoTargetsResponse as g7, type GoogleSetAdGroupBidsError as g8, type GoogleSetAdGroupBidsResponse as g9, type MediaListPartsResponse as gA, type MediaSignPartError as gB, type MediaSignPartResponse as gC, type MediaStage as gD, type MediaUpdateError as gE, type MediaUpdateResponse as gF, type MetaAccountError as gG, type MetaAccountResponse as gH, type MetaAdError as gI, type MetaAdResponse as gJ, type MetaAdsError as gK, type MetaAdsResponse as gL, type MetaAdsetError as gM, type MetaAdsetResponse as gN, type MetaAdsetsError as gO, type MetaAdsetsResponse as gP, type MetaCampaignError as gQ, type MetaCampaignResponse as gR, type MetaCampaignsError as gS, type MetaCampaignsResponse as gT, type MetaInsightsError as gU, type MetaInsightsResponse as gV, type PostType as gW, type PostVariantStatus as gX, type PostrunClientOptions as gY, type PostsCreateError as gZ, type PostsCreateResponse as g_, type GoogleSetCampaignGeoSettingsError as ga, type GoogleSetCampaignGeoSettingsResponse as gb, type GoogleSetCampaignTargetingSettingError as gc, type GoogleSetCampaignTargetingSettingResponse as gd, type GoogleSetConversionGoalError as ge, type GoogleSetConversionGoalResponse as gf, type GoogleSetKeywordBidError as gg, type GoogleSetKeywordBidResponse as gh, type GoogleUploadImageAssetError as gi, type GoogleUploadImageAssetResponse as gj, type IdempotencyKey as gk, type LogsGetError as gl, type LogsGetResponse as gm, type LogsListError as gn, type LogsListResponse as go, type Media as gp, type MediaAbortError as gq, type MediaAbortResponse as gr, type MediaCompleteError as gs, type MediaCompleteResponse as gt, type MediaCreateError as gu, type MediaDeleteError as gv, type MediaDeleteResponse as gw, type MediaGetError as gx, type MediaListError as gy, type MediaListPartsError as gz, type ConnectionsGetData as h, type PostsDeleteResponse as h0, type PostsGetError as h1, type PostsListError as h2, type PostsUpdateError as h3, type PostsUpdateResponse as h4, type PostsValidateError as h5, type ProfilesCreateError as h6, type ProfilesCreateResponse as h7, type ProfilesDeleteError as h8, type ProfilesDeleteResponse as h9, type ProfilesGetError as ha, type ProfilesListError as hb, type ProfilesUpdateError as hc, type ProfilesUpdateResponse as hd, type TiktokCreatorInfoError as he, type TokensMintError as hf, type TokensMintResponse as hg, type WebhooksCreateEndpointError as hh, type WebhooksCreateEndpointResponse as hi, type WebhooksCreatePortalError as hj, type WebhooksCreatePortalResponse as hk, type WebhooksDeleteEndpointError as hl, type WebhooksDeleteEndpointResponse as hm, type WebhooksGetEndpointError as hn, type WebhooksGetEndpointResponse as ho, type WebhooksListEndpointsError as hp, type WebhooksListEndpointsResponse as hq, type WebhooksListEventTypesError as hr, type WebhooksListEventTypesResponse as hs, type WebhooksPingError as ht, type WebhooksPingResponse as hu, type WebhooksUpdateEndpointError as hv, type WebhooksUpdateEndpointResponse as hw, createPostrunClient as hx, type ConnectionsGetResponses as i, type ConnectionsGetErrors as j, type ConnectionsListAccountsData as k, type ConnectionsListAccountsResponses as l, type ConnectionsListAccountsErrors as m, type ConnectionsListByProfileData as n, type ConnectionsListByProfileResponses as o, type ConnectionsListByProfileErrors as p, type ConnectionsSelectData as q, type ConnectionsSelectResponses as r, type ConnectionsSelectErrors as s, type GoogleCreateAdResponses as t, type GoogleCreateAdErrors as u, type GoogleCreateAdGroupData as v, type GoogleCreateAdGroupResponses as w, type GoogleCreateAdGroupErrors as x, type GoogleCreateAdGroupCriterionData as y, type GoogleCreateAdGroupCriterionResponses as z };