import {z} from 'zod' export type GoogleAdsSearchads360V23CommonKeywordInfo = {matchType?: ('UNSPECIFIED' | 'UNKNOWN' | 'EXACT' | 'PHRASE' | 'BROAD') | undefined, text?: string | undefined}; export type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAdGroupInfo = {adGroupType?: ('UNSPECIFIED' | 'UNKNOWN' | 'SEARCH_STANDARD' | 'DISPLAY_STANDARD' | 'SHOPPING_PRODUCT_ADS' | 'HOTEL_ADS' | 'SHOPPING_SMART_ADS' | 'VIDEO_BUMPER' | 'VIDEO_TRUE_VIEW_IN_STREAM' | 'VIDEO_TRUE_VIEW_IN_DISPLAY' | 'VIDEO_NON_SKIPPABLE_IN_STREAM' | 'SEARCH_DYNAMIC_ADS' | 'SHOPPING_COMPARISON_LISTING_ADS' | 'PROMOTED_HOTEL_ADS' | 'VIDEO_RESPONSIVE' | 'VIDEO_EFFICIENT_REACH' | 'SMART_CAMPAIGN_ADS' | 'TRAVEL_ADS') | undefined, keywords?: Array | undefined}; export type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAssetGroupInfo = {description?: Array | undefined, finalUrl?: string | undefined, headline?: Array | undefined}; export type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestTargetImpressionShareInfo = {location?: ('UNSPECIFIED' | 'UNKNOWN' | 'ANYWHERE_ON_PAGE' | 'TOP_OF_PAGE' | 'ABSOLUTE_TOP_OF_PAGE') | undefined, maxCpcBidCeiling?: unknown | undefined, targetImpressionShareMicros?: unknown | undefined}; export type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo = {biddingStrategyType?: ('UNSPECIFIED' | 'UNKNOWN' | 'COMMISSION' | 'ENHANCED_CPC' | '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_IMPRESSION_SHARE' | 'TARGET_OUTRANK_SHARE' | 'TARGET_ROAS' | 'TARGET_SPEND') | undefined, targetCpaMicros?: unknown | undefined, targetImpressionShareInfo?: GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestTargetImpressionShareInfo | undefined, targetRoas?: number | undefined}; export type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBudgetInfo = {currentBudget?: unknown | undefined}; export type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestSeedInfo = {keywordSeeds?: Array | undefined, urlSeed?: string | undefined}; export type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequest = {adGroupInfo?: Array | undefined, advertisingChannelType?: ('UNSPECIFIED' | 'UNKNOWN' | 'SEARCH' | 'DISPLAY' | 'SHOPPING' | 'HOTEL' | 'VIDEO' | 'MULTI_CHANNEL' | 'LOCAL' | 'SMART' | 'PERFORMANCE_MAX' | 'LOCAL_SERVICES' | 'TRAVEL' | 'DEMAND_GEN' | 'SOCIAL') | undefined, assetGroupInfo?: Array | undefined, biddingInfo?: GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo | undefined, budgetInfo?: GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBudgetInfo | undefined, campaignCallAssetCount?: number | undefined, campaignImageAssetCount?: number | undefined, campaignSitelinkCount?: number | undefined, conversionTrackingStatus?: ('UNSPECIFIED' | 'UNKNOWN' | 'NOT_CONVERSION_TRACKED' | 'CONVERSION_TRACKING_MANAGED_BY_SELF' | 'CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER' | 'CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER') | undefined, countryCodes?: Array | undefined, isNewCustomer?: boolean | undefined, languageCodes?: Array | undefined, merchantCenterAccountId?: unknown | undefined, negativeLocationsIds?: Array | undefined, positiveLocationsIds?: Array | undefined, recommendationTypes?: (Array<'UNSPECIFIED' | 'UNKNOWN' | 'CAMPAIGN_BUDGET' | 'KEYWORD' | 'TEXT_AD' | 'TARGET_CPA_OPT_IN' | 'MAXIMIZE_CONVERSIONS_OPT_IN' | 'ENHANCED_CPC_OPT_IN' | 'SEARCH_PARTNERS_OPT_IN' | 'MAXIMIZE_CLICKS_OPT_IN' | 'OPTIMIZE_AD_ROTATION' | 'KEYWORD_MATCH_TYPE' | 'MOVE_UNUSED_BUDGET' | 'FORECASTING_CAMPAIGN_BUDGET' | 'TARGET_ROAS_OPT_IN' | 'RESPONSIVE_SEARCH_AD' | 'MARGINAL_ROI_CAMPAIGN_BUDGET' | 'USE_BROAD_MATCH_KEYWORD' | 'RESPONSIVE_SEARCH_AD_ASSET' | 'UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX' | 'RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH' | 'DISPLAY_EXPANSION_OPT_IN' | 'UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX' | 'RAISE_TARGET_CPA_BID_TOO_LOW' | 'FORECASTING_SET_TARGET_ROAS' | 'CALLOUT_ASSET' | 'SITELINK_ASSET' | 'CALL_ASSET' | 'SHOPPING_ADD_AGE_GROUP' | 'SHOPPING_ADD_COLOR' | 'SHOPPING_ADD_GENDER' | 'SHOPPING_ADD_GTIN' | 'SHOPPING_ADD_MORE_IDENTIFIERS' | 'SHOPPING_ADD_SIZE' | 'SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN' | 'SHOPPING_FIX_DISAPPROVED_PRODUCTS' | 'SHOPPING_TARGET_ALL_OFFERS' | 'SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT' | 'SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING' | 'SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX' | 'DYNAMIC_IMAGE_EXTENSION_OPT_IN' | 'RAISE_TARGET_CPA' | 'LOWER_TARGET_ROAS' | 'PERFORMANCE_MAX_OPT_IN' | 'IMPROVE_PERFORMANCE_MAX_AD_STRENGTH' | 'MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX' | 'FORECASTING_SET_TARGET_CPA' | 'SET_TARGET_CPA' | 'SET_TARGET_ROAS' | 'MAXIMIZE_CONVERSION_VALUE_OPT_IN' | 'IMPROVE_GOOGLE_TAG_COVERAGE' | 'PERFORMANCE_MAX_FINAL_URL_OPT_IN' | 'REFRESH_CUSTOMER_MATCH_LIST' | 'CUSTOM_AUDIENCE_OPT_IN' | 'LEAD_FORM_ASSET' | 'IMPROVE_DEMAND_GEN_AD_STRENGTH'>) | undefined, seedInfo?: GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestSeedInfo | undefined, targetContentNetwork?: boolean | undefined, targetPartnerSearchNetwork?: boolean | undefined}; export type CreateApiV23CustomersCustomersIdRecommendationsGenerateArgs = {customersId: string, body: GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequest}; export type CreateApiV23CustomersCustomersIdRecommendationsGenerateOptions = {baseUrl?: string | undefined, Oauth2?: string | undefined, Oauth2c?: string | undefined, fetch?: typeof fetch | undefined}; export const googleAdsSearchads360V23ResourcesRecommendationCallAssetRecommendation = z.object({}); export const googleAdsSearchads360V23CommonAppDeepLinkAsset = z.object({appDeepLinkUri: z.string().optional()}); export const googleAdsSearchads360V23CommonBookOnGoogleAsset = z.object({}); export const googleAdsSearchads360V23CommonBusinessMessageCallToActionInfo = z.object({callToActionDescription: z.string().optional(), callToActionSelection: z.enum(["UNSPECIFIED", "UNKNOWN", "APPLY_NOW", "BOOK_NOW", "CONTACT_US", "GET_INFO", "GET_OFFER", "GET_QUOTE", "GET_STARTED", "LEARN_MORE"]).optional()}); export const googleAdsSearchads360V23CommonFacebookMessengerBusinessMessageInfo = z.object({pageName: z.string().optional()}); export const googleAdsSearchads360V23CommonWhatsappBusinessMessageInfo = z.object({countryCode: z.string().optional(), phoneNumber: z.string().optional()}); export const googleAdsSearchads360V23CommonZaloBusinessMessageInfo = z.object({customName: z.string().optional(), oaId: z.string().optional()}); export const googleAdsSearchads360V23CommonBusinessMessageAsset = z.object({callToAction: googleAdsSearchads360V23CommonBusinessMessageCallToActionInfo.optional(), facebookMessengerInfo: googleAdsSearchads360V23CommonFacebookMessengerBusinessMessageInfo.optional(), messageProvider: z.enum(["UNSPECIFIED", "UNKNOWN", "WHATSAPP", "FACEBOOK_MESSENGER", "ZALO"]).optional(), starterMessage: z.string().optional(), whatsappInfo: googleAdsSearchads360V23CommonWhatsappBusinessMessageInfo.optional(), zaloInfo: googleAdsSearchads360V23CommonZaloBusinessMessageInfo.optional()}); export const googleAdsSearchads360V23CommonAdScheduleInfo = z.object({dayOfWeek: z.enum(["UNSPECIFIED", "UNKNOWN", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).optional(), endHour: z.number().int().optional(), endMinute: z.enum(["UNSPECIFIED", "UNKNOWN", "ZERO", "FIFTEEN", "THIRTY", "FORTY_FIVE"]).optional(), startHour: z.number().int().optional(), startMinute: z.enum(["UNSPECIFIED", "UNKNOWN", "ZERO", "FIFTEEN", "THIRTY", "FORTY_FIVE"]).optional()}); export const googleAdsSearchads360V23CommonCallAsset = z.object({adScheduleTargets: z.array(googleAdsSearchads360V23CommonAdScheduleInfo).optional(), callConversionAction: z.string().optional(), callConversionReportingState: z.enum(["UNSPECIFIED", "UNKNOWN", "DISABLED", "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION", "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"]).optional(), countryCode: z.string().optional(), phoneNumber: z.string().optional()}); export const googleAdsSearchads360V23CommonCallToActionAsset = z.object({callToAction: z.enum(["UNSPECIFIED", "UNKNOWN", "LEARN_MORE", "GET_QUOTE", "APPLY_NOW", "SIGN_UP", "CONTACT_US", "SUBSCRIBE", "DOWNLOAD", "BOOK_NOW", "SHOP_NOW", "BUY_NOW", "DONATE_NOW", "ORDER_NOW", "PLAY_NOW", "SEE_MORE", "START_NOW", "VISIT_SITE", "WATCH_NOW"]).optional()}); export const googleAdsSearchads360V23CommonCalloutAsset = z.object({adScheduleTargets: z.array(googleAdsSearchads360V23CommonAdScheduleInfo).optional(), calloutText: z.string().optional(), endDate: z.string().optional(), startDate: z.string().optional()}); export const googleAdsSearchads360V23CommonDemandGenCarouselCardAsset = z.object({callToActionText: z.string().optional(), headline: z.string().optional(), marketingImageAsset: z.string().optional(), portraitMarketingImageAsset: z.string().optional(), squareMarketingImageAsset: z.string().optional()}); export const googleAdsSearchads360V23CommonDynamicCustomAsset = z.object({androidAppLink: z.string().optional(), contextualKeywords: z.array(z.string()).optional(), formattedPrice: z.string().optional(), formattedSalePrice: z.string().optional(), id: z.string().optional(), id2: z.string().optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), itemAddress: z.string().optional(), itemCategory: z.string().optional(), itemDescription: z.string().optional(), itemSubtitle: z.string().optional(), itemTitle: z.string().optional(), price: z.string().optional(), salePrice: z.string().optional(), similarIds: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonDynamicEducationAsset = z.object({address: z.string().optional(), androidAppLink: z.string().optional(), contextualKeywords: z.array(z.string()).optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), locationId: z.string().optional(), programDescription: z.string().optional(), programId: z.string().optional(), programName: z.string().optional(), schoolName: z.string().optional(), similarProgramIds: z.array(z.string()).optional(), subject: z.string().optional(), thumbnailImageUrl: z.string().optional()}); export const googleAdsSearchads360V23CommonDynamicFlightsAsset = z.object({androidAppLink: z.string().optional(), customMapping: z.string().optional(), destinationId: z.string().optional(), destinationName: z.string().optional(), flightDescription: z.string().optional(), flightPrice: z.string().optional(), flightSalePrice: z.string().optional(), formattedPrice: z.string().optional(), formattedSalePrice: z.string().optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), originId: z.string().optional(), originName: z.string().optional(), similarDestinationIds: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonDynamicHotelsAndRentalsAsset = z.object({address: z.string().optional(), androidAppLink: z.string().optional(), category: z.string().optional(), contextualKeywords: z.array(z.string()).optional(), description: z.string().optional(), destinationName: z.string().optional(), formattedPrice: z.string().optional(), formattedSalePrice: z.string().optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), price: z.string().optional(), propertyId: z.string().optional(), propertyName: z.string().optional(), salePrice: z.string().optional(), similarPropertyIds: z.array(z.string()).optional(), starRating: z.string().optional()}); export const googleAdsSearchads360V23CommonDynamicJobsAsset = z.object({address: z.string().optional(), androidAppLink: z.string().optional(), contextualKeywords: z.array(z.string()).optional(), description: z.string().optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), jobCategory: z.string().optional(), jobId: z.string().optional(), jobSubtitle: z.string().optional(), jobTitle: z.string().optional(), locationId: z.string().optional(), salary: z.string().optional(), similarJobIds: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonDynamicLocalAsset = z.object({address: z.string().optional(), androidAppLink: z.string().optional(), category: z.string().optional(), contextualKeywords: z.array(z.string()).optional(), dealId: z.string().optional(), dealName: z.string().optional(), description: z.string().optional(), formattedPrice: z.string().optional(), formattedSalePrice: z.string().optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), price: z.string().optional(), salePrice: z.string().optional(), similarDealIds: z.array(z.string()).optional(), subtitle: z.string().optional()}); export const googleAdsSearchads360V23CommonDynamicRealEstateAsset = z.object({address: z.string().optional(), androidAppLink: z.string().optional(), cityName: z.string().optional(), contextualKeywords: z.array(z.string()).optional(), description: z.string().optional(), formattedPrice: z.string().optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), listingId: z.string().optional(), listingName: z.string().optional(), listingType: z.string().optional(), price: z.string().optional(), propertyType: z.string().optional(), similarListingIds: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonDynamicTravelAsset = z.object({androidAppLink: z.string().optional(), category: z.string().optional(), contextualKeywords: z.array(z.string()).optional(), destinationAddress: z.string().optional(), destinationId: z.string().optional(), destinationName: z.string().optional(), formattedPrice: z.string().optional(), formattedSalePrice: z.string().optional(), imageUrl: z.string().optional(), iosAppLink: z.string().optional(), iosAppStoreId: z.string().optional(), originId: z.string().optional(), originName: z.string().optional(), price: z.string().optional(), salePrice: z.string().optional(), similarDestinationIds: z.array(z.string()).optional(), title: z.string().optional()}); export const googleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint = z.object({countryCriterion: z.string().optional()}); export const googleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList = z.object({countries: z.array(googleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint).optional(), totalTargetedCountries: z.number().int().optional()}); export const googleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint = z.object({}); export const googleAdsSearchads360V23CommonPolicyTopicConstraint = z.object({certificateDomainMismatchInCountryList: googleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList.optional(), certificateMissingInCountryList: googleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList.optional(), countryConstraintList: googleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList.optional(), resellerConstraint: googleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint.optional()}); export const googleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch = z.object({urlTypes: z.array(z.enum(["UNSPECIFIED", "UNKNOWN", "DISPLAY_URL", "FINAL_URL", "FINAL_MOBILE_URL", "TRACKING_URL", "MOBILE_TRACKING_URL"])).optional()}); export const googleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking = z.object({device: z.enum(["UNSPECIFIED", "UNKNOWN", "DESKTOP", "ANDROID", "IOS"]).optional(), dnsErrorType: z.enum(["UNSPECIFIED", "UNKNOWN", "HOSTNAME_NOT_FOUND", "GOOGLE_CRAWLER_DNS_ISSUE"]).optional(), expandedUrl: z.string().optional(), httpErrorCode: z.string().optional(), lastCheckedDateTime: z.string().optional()}); export const googleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList = z.object({destinationTexts: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonPolicyTopicEvidenceTextList = z.object({texts: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList = z.object({websites: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonPolicyTopicEvidence = z.object({destinationMismatch: googleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch.optional(), destinationNotWorking: googleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking.optional(), destinationTextList: googleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList.optional(), languageCode: z.string().optional(), textList: googleAdsSearchads360V23CommonPolicyTopicEvidenceTextList.optional(), websiteList: googleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList.optional()}); export const googleAdsSearchads360V23CommonPolicyTopicEntry = z.object({constraints: z.array(googleAdsSearchads360V23CommonPolicyTopicConstraint).optional(), evidences: z.array(googleAdsSearchads360V23CommonPolicyTopicEvidence).optional(), topic: z.string().optional(), type: z.enum(["UNSPECIFIED", "UNKNOWN", "PROHIBITED", "LIMITED", "FULLY_LIMITED", "DESCRIPTIVE", "BROADENING", "AREA_OF_INTEREST_ONLY"]).optional()}); export const googleAdsSearchads360V23ResourcesAssetPolicySummary = z.object({approvalStatus: z.enum(["UNSPECIFIED", "UNKNOWN", "DISAPPROVED", "APPROVED_LIMITED", "APPROVED", "AREA_OF_INTEREST_ONLY"]).optional(), policyTopicEntries: z.array(googleAdsSearchads360V23CommonPolicyTopicEntry).optional(), reviewStatus: z.enum(["UNSPECIFIED", "UNKNOWN", "REVIEW_IN_PROGRESS", "REVIEWED", "UNDER_APPEAL", "ELIGIBLE_MAY_SERVE"]).optional()}); export const googleAdsSearchads360V23ResourcesAssetFieldTypePolicySummary = z.object({assetFieldType: z.enum(["UNSPECIFIED", "UNKNOWN", "HEADLINE", "DESCRIPTION", "MANDATORY_AD_TEXT", "MARKETING_IMAGE", "MEDIA_BUNDLE", "YOUTUBE_VIDEO", "BOOK_ON_GOOGLE", "LEAD_FORM", "PROMOTION", "CALLOUT", "STRUCTURED_SNIPPET", "SITELINK", "MOBILE_APP", "HOTEL_CALLOUT", "CALL", "PRICE", "LONG_HEADLINE", "BUSINESS_NAME", "SQUARE_MARKETING_IMAGE", "PORTRAIT_MARKETING_IMAGE", "LOGO", "LANDSCAPE_LOGO", "VIDEO", "CALL_TO_ACTION_SELECTION", "AD_IMAGE", "BUSINESS_LOGO", "HOTEL_PROPERTY", "DEMAND_GEN_CAROUSEL_CARD", "BUSINESS_MESSAGE", "TALL_PORTRAIT_MARKETING_IMAGE", "LANDING_PAGE_PREVIEW", "LONG_DESCRIPTION", "CALL_TO_ACTION"]).optional(), assetSource: z.enum(["UNSPECIFIED", "UNKNOWN", "ADVERTISER", "AUTOMATICALLY_CREATED"]).optional(), policySummaryInfo: googleAdsSearchads360V23ResourcesAssetPolicySummary.optional()}); export const googleAdsSearchads360V23CommonHotelCalloutAsset = z.object({languageCode: z.string().optional(), text: z.string().optional()}); export const googleAdsSearchads360V23CommonHotelPropertyAsset = z.object({hotelAddress: z.string().optional(), hotelName: z.string().optional(), placeId: z.string().optional()}); export const googleAdsSearchads360V23CommonImageDimension = z.object({heightPixels: z.string().optional(), url: z.string().optional(), widthPixels: z.string().optional()}); export const googleAdsSearchads360V23CommonImageAsset = z.object({data: z.string().optional(), fileSize: z.string().optional(), fullSize: googleAdsSearchads360V23CommonImageDimension.optional(), mimeType: z.enum(["UNSPECIFIED", "UNKNOWN", "IMAGE_JPEG", "IMAGE_GIF", "IMAGE_PNG", "FLASH", "TEXT_HTML", "PDF", "MSWORD", "MSEXCEL", "RTF", "AUDIO_WAV", "AUDIO_MP3", "HTML5_AD_ZIP"]).optional()}); export const googleAdsSearchads360V23CommonLeadFormSingleChoiceAnswers = z.object({answers: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonLeadFormCustomQuestionField = z.object({customQuestionText: z.string().optional(), hasLocationAnswer: z.boolean().optional(), singleChoiceAnswers: googleAdsSearchads360V23CommonLeadFormSingleChoiceAnswers.optional()}); export const googleAdsSearchads360V23CommonWebhookDelivery = z.object({advertiserWebhookUrl: z.string().optional(), googleSecret: z.string().optional(), payloadSchemaVersion: z.string().optional()}); export const googleAdsSearchads360V23CommonLeadFormDeliveryMethod = z.object({webhook: googleAdsSearchads360V23CommonWebhookDelivery.optional()}); export const googleAdsSearchads360V23CommonLeadFormField = z.object({hasLocationAnswer: z.boolean().optional(), inputType: z.enum(["UNSPECIFIED", "UNKNOWN", "FULL_NAME", "EMAIL", "PHONE_NUMBER", "POSTAL_CODE", "STREET_ADDRESS", "CITY", "REGION", "COUNTRY", "WORK_EMAIL", "COMPANY_NAME", "WORK_PHONE", "JOB_TITLE", "GOVERNMENT_ISSUED_ID_CPF_BR", "GOVERNMENT_ISSUED_ID_DNI_AR", "GOVERNMENT_ISSUED_ID_DNI_PE", "GOVERNMENT_ISSUED_ID_RUT_CL", "GOVERNMENT_ISSUED_ID_CC_CO", "GOVERNMENT_ISSUED_ID_CI_EC", "GOVERNMENT_ISSUED_ID_RFC_MX", "FIRST_NAME", "LAST_NAME", "VEHICLE_MODEL", "VEHICLE_TYPE", "PREFERRED_DEALERSHIP", "VEHICLE_PURCHASE_TIMELINE", "VEHICLE_OWNERSHIP", "VEHICLE_PAYMENT_TYPE", "VEHICLE_CONDITION", "COMPANY_SIZE", "ANNUAL_SALES", "YEARS_IN_BUSINESS", "JOB_DEPARTMENT", "JOB_ROLE", "OVER_18_AGE", "OVER_19_AGE", "OVER_20_AGE", "OVER_21_AGE", "OVER_22_AGE", "OVER_23_AGE", "OVER_24_AGE", "OVER_25_AGE", "OVER_26_AGE", "OVER_27_AGE", "OVER_28_AGE", "OVER_29_AGE", "OVER_30_AGE", "OVER_31_AGE", "OVER_32_AGE", "OVER_33_AGE", "OVER_34_AGE", "OVER_35_AGE", "OVER_36_AGE", "OVER_37_AGE", "OVER_38_AGE", "OVER_39_AGE", "OVER_40_AGE", "OVER_41_AGE", "OVER_42_AGE", "OVER_43_AGE", "OVER_44_AGE", "OVER_45_AGE", "OVER_46_AGE", "OVER_47_AGE", "OVER_48_AGE", "OVER_49_AGE", "OVER_50_AGE", "OVER_51_AGE", "OVER_52_AGE", "OVER_53_AGE", "OVER_54_AGE", "OVER_55_AGE", "OVER_56_AGE", "OVER_57_AGE", "OVER_58_AGE", "OVER_59_AGE", "OVER_60_AGE", "OVER_61_AGE", "OVER_62_AGE", "OVER_63_AGE", "OVER_64_AGE", "OVER_65_AGE", "EDUCATION_PROGRAM", "EDUCATION_COURSE", "PRODUCT", "SERVICE", "OFFER", "CATEGORY", "PREFERRED_CONTACT_METHOD", "PREFERRED_LOCATION", "PREFERRED_CONTACT_TIME", "PURCHASE_TIMELINE", "YEARS_OF_EXPERIENCE", "JOB_INDUSTRY", "LEVEL_OF_EDUCATION", "PROPERTY_TYPE", "REALTOR_HELP_GOAL", "PROPERTY_COMMUNITY", "PRICE_RANGE", "NUMBER_OF_BEDROOMS", "FURNISHED_PROPERTY", "PETS_ALLOWED_PROPERTY", "NEXT_PLANNED_PURCHASE", "EVENT_SIGNUP_INTEREST", "PREFERRED_SHOPPING_PLACES", "FAVORITE_BRAND", "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE", "EVENT_BOOKING_INTEREST", "DESTINATION_COUNTRY", "DESTINATION_CITY", "DEPARTURE_COUNTRY", "DEPARTURE_CITY", "DEPARTURE_DATE", "RETURN_DATE", "NUMBER_OF_TRAVELERS", "TRAVEL_BUDGET", "TRAVEL_ACCOMMODATION"]).optional(), singleChoiceAnswers: googleAdsSearchads360V23CommonLeadFormSingleChoiceAnswers.optional()}); export const googleAdsSearchads360V23CommonLeadFormAsset = z.object({backgroundImageAsset: z.string().optional(), businessName: z.string().optional(), callToActionDescription: z.string().optional(), callToActionType: z.enum(["UNSPECIFIED", "UNKNOWN", "LEARN_MORE", "GET_QUOTE", "APPLY_NOW", "SIGN_UP", "CONTACT_US", "SUBSCRIBE", "DOWNLOAD", "BOOK_NOW", "GET_OFFER", "REGISTER", "GET_INFO", "REQUEST_DEMO", "JOIN_NOW", "GET_STARTED"]).optional(), customDisclosure: z.string().optional(), customQuestionFields: z.array(googleAdsSearchads360V23CommonLeadFormCustomQuestionField).optional(), deliveryMethods: z.array(googleAdsSearchads360V23CommonLeadFormDeliveryMethod).optional(), description: z.string().optional(), desiredIntent: z.enum(["UNSPECIFIED", "UNKNOWN", "LOW_INTENT", "HIGH_INTENT"]).optional(), fields: z.array(googleAdsSearchads360V23CommonLeadFormField).optional(), headline: z.string().optional(), postSubmitCallToActionType: z.enum(["UNSPECIFIED", "UNKNOWN", "VISIT_SITE", "DOWNLOAD", "LEARN_MORE", "SHOP_NOW"]).optional(), postSubmitDescription: z.string().optional(), postSubmitHeadline: z.string().optional(), privacyPolicyUrl: z.string().optional()}); export const googleAdsSearchads360V23CommonBusinessProfileLocation = z.object({labels: z.array(z.string()).optional(), listingId: z.string().optional(), storeCode: z.string().optional()}); export const googleAdsSearchads360V23CommonLocationAsset = z.object({businessProfileLocations: z.array(googleAdsSearchads360V23CommonBusinessProfileLocation).optional(), locationOwnershipType: z.enum(["UNSPECIFIED", "UNKNOWN", "BUSINESS_OWNER", "AFFILIATE"]).optional(), placeId: z.string().optional()}); export const googleAdsSearchads360V23CommonMediaBundleAsset = z.object({data: z.string().optional()}); export const googleAdsSearchads360V23CommonMobileAppAsset = z.object({appId: z.string().optional(), appStore: z.enum(["UNSPECIFIED", "UNKNOWN", "APPLE_APP_STORE", "GOOGLE_APP_STORE"]).optional(), endDate: z.string().optional(), linkText: z.string().optional(), startDate: z.string().optional()}); export const googleAdsSearchads360V23CommonPageFeedAsset = z.object({labels: z.array(z.string()).optional(), pageUrl: z.string().optional()}); export const googleAdsSearchads360V23CommonMoney = z.object({amountMicros: z.string().optional(), currencyCode: z.string().optional()}); export const googleAdsSearchads360V23CommonPriceOffering = z.object({description: z.string().optional(), finalMobileUrl: z.string().optional(), finalUrl: z.string().optional(), header: z.string().optional(), price: googleAdsSearchads360V23CommonMoney.optional(), unit: z.enum(["UNSPECIFIED", "UNKNOWN", "PER_HOUR", "PER_DAY", "PER_WEEK", "PER_MONTH", "PER_YEAR", "PER_NIGHT"]).optional()}); export const googleAdsSearchads360V23CommonPriceAsset = z.object({languageCode: z.string().optional(), priceOfferings: z.array(googleAdsSearchads360V23CommonPriceOffering).optional(), priceQualifier: z.enum(["UNSPECIFIED", "UNKNOWN", "FROM", "UP_TO", "AVERAGE"]).optional(), type: z.enum(["UNSPECIFIED", "UNKNOWN", "BRANDS", "EVENTS", "LOCATIONS", "NEIGHBORHOODS", "PRODUCT_CATEGORIES", "PRODUCT_TIERS", "SERVICES", "SERVICE_CATEGORIES", "SERVICE_TIERS"]).optional()}); export const googleAdsSearchads360V23CommonPromotionBarcodeInfo = z.object({barcodeContent: z.string().optional(), type: z.enum(["UNSPECIFIED", "UNKNOWN", "AZTEC", "CODABAR", "CODE39", "CODE128", "DATA_MATRIX", "EAN8", "EAN13", "ITF", "PDF417", "UPC_A"]).optional()}); export const googleAdsSearchads360V23CommonPromotionQrCodeInfo = z.object({qrCodeContent: z.string().optional()}); export const googleAdsSearchads360V23CommonPromotionAsset = z.object({adScheduleTargets: z.array(googleAdsSearchads360V23CommonAdScheduleInfo).optional(), discountModifier: z.enum(["UNSPECIFIED", "UNKNOWN", "UP_TO"]).optional(), endDate: z.string().optional(), languageCode: z.string().optional(), moneyAmountOff: googleAdsSearchads360V23CommonMoney.optional(), occasion: z.enum(["UNSPECIFIED", "UNKNOWN", "NEW_YEARS", "CHINESE_NEW_YEAR", "VALENTINES_DAY", "EASTER", "MOTHERS_DAY", "FATHERS_DAY", "LABOR_DAY", "BACK_TO_SCHOOL", "HALLOWEEN", "BLACK_FRIDAY", "CYBER_MONDAY", "CHRISTMAS", "BOXING_DAY", "INDEPENDENCE_DAY", "NATIONAL_DAY", "END_OF_SEASON", "WINTER_SALE", "SUMMER_SALE", "FALL_SALE", "SPRING_SALE", "RAMADAN", "EID_AL_FITR", "EID_AL_ADHA", "SINGLES_DAY", "WOMENS_DAY", "HOLI", "PARENTS_DAY", "ST_NICHOLAS_DAY", "CARNIVAL", "EPIPHANY", "ROSH_HASHANAH", "PASSOVER", "HANUKKAH", "DIWALI", "NAVRATRI", "SONGKRAN", "YEAR_END_GIFT"]).optional(), ordersOverAmount: googleAdsSearchads360V23CommonMoney.optional(), percentOff: z.string().optional(), promotionBarcodeInfo: googleAdsSearchads360V23CommonPromotionBarcodeInfo.optional(), promotionCode: z.string().optional(), promotionQrCodeInfo: googleAdsSearchads360V23CommonPromotionQrCodeInfo.optional(), promotionTarget: z.string().optional(), redemptionEndDate: z.string().optional(), redemptionStartDate: z.string().optional(), startDate: z.string().optional(), termsAndConditionsText: z.string().optional(), termsAndConditionsUri: z.string().optional()}); export const googleAdsSearchads360V23CommonUnifiedCallAsset = z.object({adScheduleTargets: z.array(googleAdsSearchads360V23CommonAdScheduleInfo).optional(), callConversionAction: z.string().optional(), callConversionReportingState: z.enum(["UNSPECIFIED", "UNKNOWN", "DISABLED", "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION", "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION"]).optional(), callOnly: z.boolean().optional(), callTrackingEnabled: z.boolean().optional(), countryCode: z.string().optional(), endDate: z.string().optional(), phoneNumber: z.string().optional(), startDate: z.string().optional(), useSearcherTimeZone: z.boolean().optional()}); export const googleAdsSearchads360V23CommonUnifiedCalloutAsset = z.object({adScheduleTargets: z.array(googleAdsSearchads360V23CommonAdScheduleInfo).optional(), calloutText: z.string().optional(), endDate: z.string().optional(), startDate: z.string().optional(), useSearcherTimeZone: z.boolean().optional()}); export const googleAdsSearchads360V23CommonUnifiedLocationAsset = z.object({businessProfileLocations: z.array(googleAdsSearchads360V23CommonBusinessProfileLocation).optional(), locationOwnershipType: z.enum(["UNSPECIFIED", "UNKNOWN", "BUSINESS_OWNER", "AFFILIATE"]).optional(), placeId: z.string().optional()}); export const googleAdsSearchads360V23CommonUnifiedPageFeedAsset = z.object({labels: z.array(z.string()).optional(), pageUrl: z.string().optional()}); export const googleAdsSearchads360V23CommonUnifiedSitelinkAsset = z.object({adScheduleTargets: z.array(googleAdsSearchads360V23CommonAdScheduleInfo).optional(), description1: z.string().optional(), description2: z.string().optional(), endDate: z.string().optional(), linkText: z.string().optional(), mobilePreferred: z.boolean().optional(), startDate: z.string().optional(), trackingId: z.string().optional(), useSearcherTimeZone: z.boolean().optional()}); export const googleAdsSearchads360V23CommonSitelinkAsset = z.object({adScheduleTargets: z.array(googleAdsSearchads360V23CommonAdScheduleInfo).optional(), description1: z.string().optional(), description2: z.string().optional(), endDate: z.string().optional(), linkText: z.string().optional(), startDate: z.string().optional()}); export const googleAdsSearchads360V23CommonStructuredSnippetAsset = z.object({header: z.string().optional(), values: z.array(z.string()).optional()}); export const googleAdsSearchads360V23CommonSyntheticContentAttestation = z.object({source: z.enum(["UNSPECIFIED", "UNKNOWN", "ADVERTISER_ATTESTED", "GOOGLE_GENERATED_ADVERTISER_REVIEWED", "GOOGLE_GENERATED_FULLY_AUTOMATED"]).optional(), status: z.enum(["UNSPECIFIED", "UNKNOWN", "NOT_SYNTHETIC", "IS_SYNTHETIC"]).optional()}); export const googleAdsSearchads360V23CommonSyntheticContentInfo = z.object({advertiserAttestation: googleAdsSearchads360V23CommonSyntheticContentAttestation.optional(), systemAttestation: googleAdsSearchads360V23CommonSyntheticContentAttestation.optional()}); export const googleAdsSearchads360V23CommonTextAsset = z.object({text: z.string().optional()}); export const googleAdsSearchads360V23CommonCustomParameter = z.object({key: z.string().optional(), value: z.string().optional()}); export const googleAdsSearchads360V23CommonYoutubeVideoAsset = z.object({youtubeVideoId: z.string().optional(), youtubeVideoTitle: z.string().optional()}); export const googleAdsSearchads360V23ResourcesAsset = z.object({appDeepLinkAsset: googleAdsSearchads360V23CommonAppDeepLinkAsset.optional(), bookOnGoogleAsset: googleAdsSearchads360V23CommonBookOnGoogleAsset.optional(), businessMessageAsset: googleAdsSearchads360V23CommonBusinessMessageAsset.optional(), callAsset: googleAdsSearchads360V23CommonCallAsset.optional(), callToActionAsset: googleAdsSearchads360V23CommonCallToActionAsset.optional(), calloutAsset: googleAdsSearchads360V23CommonCalloutAsset.optional(), creationTime: z.string().optional(), demandGenCarouselCardAsset: googleAdsSearchads360V23CommonDemandGenCarouselCardAsset.optional(), dynamicCustomAsset: googleAdsSearchads360V23CommonDynamicCustomAsset.optional(), dynamicEducationAsset: googleAdsSearchads360V23CommonDynamicEducationAsset.optional(), dynamicFlightsAsset: googleAdsSearchads360V23CommonDynamicFlightsAsset.optional(), dynamicHotelsAndRentalsAsset: googleAdsSearchads360V23CommonDynamicHotelsAndRentalsAsset.optional(), dynamicJobsAsset: googleAdsSearchads360V23CommonDynamicJobsAsset.optional(), dynamicLocalAsset: googleAdsSearchads360V23CommonDynamicLocalAsset.optional(), dynamicRealEstateAsset: googleAdsSearchads360V23CommonDynamicRealEstateAsset.optional(), dynamicTravelAsset: googleAdsSearchads360V23CommonDynamicTravelAsset.optional(), engineStatus: z.enum(["UNSPECIFIED", "UNKNOWN", "SERVING", "SERVING_LIMITED", "DISAPPROVED", "DISABLED", "REMOVED"]).optional(), fieldTypePolicySummaries: z.array(googleAdsSearchads360V23ResourcesAssetFieldTypePolicySummary).optional(), finalMobileUrls: z.array(z.string()).optional(), finalUrlSuffix: z.string().optional(), finalUrls: z.array(z.string()).optional(), hotelCalloutAsset: googleAdsSearchads360V23CommonHotelCalloutAsset.optional(), hotelPropertyAsset: googleAdsSearchads360V23CommonHotelPropertyAsset.optional(), id: z.string().optional(), imageAsset: googleAdsSearchads360V23CommonImageAsset.optional(), lastModifiedTime: z.string().optional(), leadFormAsset: googleAdsSearchads360V23CommonLeadFormAsset.optional(), locationAsset: googleAdsSearchads360V23CommonLocationAsset.optional(), mediaBundleAsset: googleAdsSearchads360V23CommonMediaBundleAsset.optional(), mobileAppAsset: googleAdsSearchads360V23CommonMobileAppAsset.optional(), name: z.string().optional(), orientation: z.enum(["UNSPECIFIED", "UNKNOWN", "LANDSCAPE", "PORTRAIT", "SQUARE"]).optional(), pageFeedAsset: googleAdsSearchads360V23CommonPageFeedAsset.optional(), policySummary: googleAdsSearchads360V23ResourcesAssetPolicySummary.optional(), priceAsset: googleAdsSearchads360V23CommonPriceAsset.optional(), promotionAsset: googleAdsSearchads360V23CommonPromotionAsset.optional(), resourceName: z.string().optional(), searchAds360CallAsset: googleAdsSearchads360V23CommonUnifiedCallAsset.optional(), searchAds360CalloutAsset: googleAdsSearchads360V23CommonUnifiedCalloutAsset.optional(), searchAds360LocationAsset: googleAdsSearchads360V23CommonUnifiedLocationAsset.optional(), searchAds360PageFeedAsset: googleAdsSearchads360V23CommonUnifiedPageFeedAsset.optional(), searchAds360SitelinkAsset: googleAdsSearchads360V23CommonUnifiedSitelinkAsset.optional(), sitelinkAsset: googleAdsSearchads360V23CommonSitelinkAsset.optional(), source: z.enum(["UNSPECIFIED", "UNKNOWN", "ADVERTISER", "AUTOMATICALLY_CREATED"]).optional(), status: z.enum(["UNSPECIFIED", "UNKNOWN", "ENABLED", "REMOVED", "ARCHIVED", "PENDING_SYSTEM_GENERATED"]).optional(), structuredSnippetAsset: googleAdsSearchads360V23CommonStructuredSnippetAsset.optional(), syntheticContentInfo: googleAdsSearchads360V23CommonSyntheticContentInfo.optional(), textAsset: googleAdsSearchads360V23CommonTextAsset.optional(), trackingUrlTemplate: z.string().optional(), type: z.enum(["UNSPECIFIED", "UNKNOWN", "YOUTUBE_VIDEO", "MEDIA_BUNDLE", "IMAGE", "TEXT", "LEAD_FORM", "BOOK_ON_GOOGLE", "PROMOTION", "CALLOUT", "STRUCTURED_SNIPPET", "SITELINK", "PAGE_FEED", "DYNAMIC_EDUCATION", "MOBILE_APP", "HOTEL_CALLOUT", "CALL", "PRICE", "CALL_TO_ACTION", "DYNAMIC_REAL_ESTATE", "DYNAMIC_CUSTOM", "DYNAMIC_HOTELS_AND_RENTALS", "DYNAMIC_FLIGHTS", "DYNAMIC_TRAVEL", "DYNAMIC_LOCAL", "DYNAMIC_JOBS", "LOCATION", "HOTEL_PROPERTY", "DEMAND_GEN_CAROUSEL_CARD", "BUSINESS_MESSAGE", "APP_DEEP_LINK"]).optional(), urlCustomParameters: z.array(googleAdsSearchads360V23CommonCustomParameter).optional(), youtubeVideoAsset: googleAdsSearchads360V23CommonYoutubeVideoAsset.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationCalloutAssetRecommendation = z.object({recommendedCampaignCalloutAssets: z.array(googleAdsSearchads360V23ResourcesAsset).optional(), recommendedCustomerCalloutAssets: z.array(googleAdsSearchads360V23ResourcesAsset).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics = z.object({clicks: z.number().optional(), conversions: z.number().optional(), conversionsValue: z.number().optional(), costMicros: z.string().optional(), impressions: z.number().optional(), videoViews: z.number().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationRecommendationImpact = z.object({baseMetrics: googleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics.optional(), potentialMetrics: googleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendationCampaignBudgetRecommendationOption = z.object({budgetAmountMicros: z.string().optional(), impact: googleAdsSearchads360V23ResourcesRecommendationRecommendationImpact.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation = z.object({budgetOptions: z.array(googleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendationCampaignBudgetRecommendationOption).optional(), currentBudgetAmountMicros: z.string().optional(), recommendedBudgetAmountMicros: z.string().optional()}); export const googleAdsSearchads360V23CommonKeywordInfo = z.object({matchType: z.enum(["UNSPECIFIED", "UNKNOWN", "EXACT", "PHRASE", "BROAD"]).optional(), text: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationCustomAudienceOptInRecommendation = z.object({keywords: z.array(googleAdsSearchads360V23CommonKeywordInfo).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationDisplayExpansionOptInRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationDynamicImageExtensionOptInRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationEnhancedCpcOptInRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationCampaignBudget = z.object({currentAmountMicros: z.string().optional(), newStartDate: z.string().optional(), recommendedNewAmountMicros: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation = z.object({campaignBudget: googleAdsSearchads360V23ResourcesRecommendationCampaignBudget.optional(), recommendedTargetCpaMicros: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation = z.object({campaignBudget: googleAdsSearchads360V23ResourcesRecommendationCampaignBudget.optional(), recommendedTargetRoas: z.number().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationImproveDemandGenAdStrengthRecommendation = z.object({ad: z.string().optional(), adStrength: z.enum(["UNSPECIFIED", "UNKNOWN", "PENDING", "NO_ADS", "POOR", "AVERAGE", "GOOD", "EXCELLENT"]).optional(), demandGenAssetActionItems: z.array(z.string()).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationImproveGoogleTagCoverageRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationImprovePerformanceMaxAdStrengthRecommendation = z.object({adStrength: z.enum(["UNSPECIFIED", "UNKNOWN", "PENDING", "NO_ADS", "POOR", "AVERAGE", "GOOD", "EXCELLENT"]).optional(), assetGroup: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationKeywordMatchTypeRecommendation = z.object({keyword: googleAdsSearchads360V23CommonKeywordInfo.optional(), recommendedMatchType: z.enum(["UNSPECIFIED", "UNKNOWN", "EXACT", "PHRASE", "BROAD"]).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationKeywordRecommendationSearchTerm = z.object({estimatedWeeklySearchCount: z.string().optional(), text: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationKeywordRecommendation = z.object({keyword: googleAdsSearchads360V23CommonKeywordInfo.optional(), recommendedCpcBidMicros: z.string().optional(), searchTerms: z.array(googleAdsSearchads360V23ResourcesRecommendationKeywordRecommendationSearchTerm).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationLeadFormAssetRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo = z.object({currentAverageTargetMicros: z.string().optional(), recommendedTargetMultiplier: z.number().optional(), sharedSet: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationLowerTargetRoasRecommendation = z.object({targetAdjustment: googleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationMaximizeClicksOptInRecommendation = z.object({recommendedBudgetAmountMicros: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationMaximizeConversionValueOptInRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationMaximizeConversionsOptInRecommendation = z.object({recommendedBudgetAmountMicros: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationMigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation = z.object({applyLink: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationMoveUnusedBudgetRecommendation = z.object({budgetRecommendation: googleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation.optional(), excessCampaignBudget: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationOptimizeAdRotationRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationPerformanceMaxFinalUrlOptInRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationPerformanceMaxOptInRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation = z.object({averageTargetCpaMicros: z.string().optional(), recommendedTargetMultiplier: z.number().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaRecommendation = z.object({appBiddingGoal: z.enum(["UNSPECIFIED", "UNKNOWN", "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME", "OPTIMIZE_FOR_IN_APP_CONVERSION_VOLUME", "OPTIMIZE_FOR_TOTAL_CONVERSION_VALUE", "OPTIMIZE_FOR_TARGET_IN_APP_CONVERSION", "OPTIMIZE_FOR_RETURN_ON_ADVERTISING_SPEND", "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME_WITHOUT_TARGET_CPI", "OPTIMIZE_FOR_PRE_REGISTRATION_CONVERSION_VOLUME"]).optional(), targetAdjustment: googleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationAccountInfo = z.object({customerId: z.string().optional(), descriptiveName: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationRefreshCustomerMatchListRecommendation = z.object({daysSinceLastRefresh: z.string().optional(), ownerAccount: googleAdsSearchads360V23ResourcesRecommendationAccountInfo.optional(), targetingAccountsCount: z.string().optional(), topSpendingAccount: z.array(googleAdsSearchads360V23ResourcesRecommendationAccountInfo).optional(), userListId: z.string().optional(), userListName: z.string().optional()}); export const googleAdsSearchads360V23CommonAdAppDeepLinkAsset = z.object({asset: z.string().optional()}); export const googleAdsSearchads360V23CommonAdAssetPolicySummary = z.object({approvalStatus: z.enum(["UNSPECIFIED", "UNKNOWN", "DISAPPROVED", "APPROVED_LIMITED", "APPROVED", "AREA_OF_INTEREST_ONLY"]).optional(), policyTopicEntries: z.array(googleAdsSearchads360V23CommonPolicyTopicEntry).optional(), reviewStatus: z.enum(["UNSPECIFIED", "UNKNOWN", "REVIEW_IN_PROGRESS", "REVIEWED", "UNDER_APPEAL", "ELIGIBLE_MAY_SERVE"]).optional()}); export const googleAdsSearchads360V23CommonAdTextAsset = z.object({assetPerformanceLabel: z.enum(["UNSPECIFIED", "UNKNOWN", "PENDING", "LEARNING", "LOW", "GOOD", "BEST", "NOT_APPLICABLE"]).optional(), pinnedField: z.enum(["UNSPECIFIED", "UNKNOWN", "HEADLINE_1", "HEADLINE_2", "HEADLINE_3", "DESCRIPTION_1", "DESCRIPTION_2", "HEADLINE", "HEADLINE_IN_PORTRAIT", "LONG_HEADLINE", "DESCRIPTION", "DESCRIPTION_IN_PORTRAIT", "BUSINESS_NAME_IN_PORTRAIT", "BUSINESS_NAME", "MARKETING_IMAGE", "MARKETING_IMAGE_IN_PORTRAIT", "SQUARE_MARKETING_IMAGE", "PORTRAIT_MARKETING_IMAGE", "LOGO", "LANDSCAPE_LOGO", "CALL_TO_ACTION", "YOU_TUBE_VIDEO", "SITELINK", "CALL", "MOBILE_APP", "CALLOUT", "STRUCTURED_SNIPPET", "PRICE", "PROMOTION", "AD_IMAGE", "LEAD_FORM", "BUSINESS_LOGO", "DESCRIPTION_PREFIX", "HEADLINE_AS_SITELINK_POSITION_ONE", "HEADLINE_AS_SITELINK_POSITION_TWO", "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE", "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO"]).optional(), policySummaryInfo: googleAdsSearchads360V23CommonAdAssetPolicySummary.optional(), text: z.string().optional()}); export const googleAdsSearchads360V23CommonAdMediaBundleAsset = z.object({asset: z.string().optional()}); export const googleAdsSearchads360V23CommonAdImageAsset = z.object({asset: z.string().optional()}); export const googleAdsSearchads360V23CommonAdVideoAssetLinkFeatureControl = z.object({allowYoutubeComments: z.boolean().optional()}); export const googleAdsSearchads360V23CommonAdVideoAssetInfo = z.object({adVideoAssetFeatureControl: googleAdsSearchads360V23CommonAdVideoAssetLinkFeatureControl.optional()}); export const googleAdsSearchads360V23CommonAdVideoAsset = z.object({adVideoAssetInfo: googleAdsSearchads360V23CommonAdVideoAssetInfo.optional(), asset: z.string().optional()}); export const googleAdsSearchads360V23CommonAppAdInfo = z.object({appDeepLink: googleAdsSearchads360V23CommonAdAppDeepLinkAsset.optional(), descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), html5MediaBundles: z.array(googleAdsSearchads360V23CommonAdMediaBundleAsset).optional(), images: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), mandatoryAdText: googleAdsSearchads360V23CommonAdTextAsset.optional(), youtubeVideos: z.array(googleAdsSearchads360V23CommonAdVideoAsset).optional()}); export const googleAdsSearchads360V23CommonAppEngagementAdInfo = z.object({descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), images: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), videos: z.array(googleAdsSearchads360V23CommonAdVideoAsset).optional()}); export const googleAdsSearchads360V23CommonAppPreRegistrationAdInfo = z.object({descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), images: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), youtubeVideos: z.array(googleAdsSearchads360V23CommonAdVideoAsset).optional()}); export const googleAdsSearchads360V23CommonAdDemandGenCarouselCardAsset = z.object({asset: z.string().optional()}); export const googleAdsSearchads360V23CommonDemandGenCarouselAdInfo = z.object({businessName: z.string().optional(), callToActionText: z.string().optional(), carouselCards: z.array(googleAdsSearchads360V23CommonAdDemandGenCarouselCardAsset).optional(), description: googleAdsSearchads360V23CommonAdTextAsset.optional(), headline: googleAdsSearchads360V23CommonAdTextAsset.optional(), logoImage: googleAdsSearchads360V23CommonAdImageAsset.optional()}); export const googleAdsSearchads360V23CommonDemandGenMultiAssetAdInfo = z.object({businessName: z.string().optional(), callToActionText: z.string().optional(), descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), logoImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), marketingImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), portraitMarketingImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), squareMarketingImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), tallPortraitMarketingImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional()}); export const googleAdsSearchads360V23CommonAdCallToActionAsset = z.object({asset: z.string().optional()}); export const googleAdsSearchads360V23CommonDemandGenProductAdInfo = z.object({breadcrumb1: z.string().optional(), breadcrumb2: z.string().optional(), businessName: googleAdsSearchads360V23CommonAdTextAsset.optional(), callToAction: googleAdsSearchads360V23CommonAdCallToActionAsset.optional(), description: googleAdsSearchads360V23CommonAdTextAsset.optional(), headline: googleAdsSearchads360V23CommonAdTextAsset.optional(), logoImage: googleAdsSearchads360V23CommonAdImageAsset.optional()}); export const googleAdsSearchads360V23CommonDemandGenVideoResponsiveAdInfo = z.object({breadcrumb1: z.string().optional(), breadcrumb2: z.string().optional(), businessName: googleAdsSearchads360V23CommonAdTextAsset.optional(), callToActions: z.array(googleAdsSearchads360V23CommonAdCallToActionAsset).optional(), companionBanners: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), logoImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), longHeadlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), videos: z.array(googleAdsSearchads360V23CommonAdVideoAsset).optional()}); export const googleAdsSearchads360V23CommonDisplayUploadAdInfo = z.object({displayUploadProductType: z.enum(["UNSPECIFIED", "UNKNOWN", "HTML5_UPLOAD_AD", "DYNAMIC_HTML5_EDUCATION_AD", "DYNAMIC_HTML5_FLIGHT_AD", "DYNAMIC_HTML5_HOTEL_RENTAL_AD", "DYNAMIC_HTML5_JOB_AD", "DYNAMIC_HTML5_LOCAL_AD", "DYNAMIC_HTML5_REAL_ESTATE_AD", "DYNAMIC_HTML5_CUSTOM_AD", "DYNAMIC_HTML5_TRAVEL_AD", "DYNAMIC_HTML5_HOTEL_AD"]).optional(), mediaBundle: googleAdsSearchads360V23CommonAdMediaBundleAsset.optional()}); export const googleAdsSearchads360V23CommonExpandedDynamicSearchAdInfo = z.object({description: z.string().optional(), description2: z.string().optional()}); export const googleAdsSearchads360V23CommonExpandedTextAdInfo = z.object({description: z.string().optional(), description2: z.string().optional(), headlinePart1: z.string().optional(), headlinePart2: z.string().optional(), headlinePart3: z.string().optional(), path1: z.string().optional(), path2: z.string().optional()}); export const googleAdsSearchads360V23CommonFinalAppUrl = z.object({osType: z.enum(["UNSPECIFIED", "UNKNOWN", "IOS", "ANDROID"]).optional(), url: z.string().optional()}); export const googleAdsSearchads360V23CommonHotelAdInfo = z.object({}); export const googleAdsSearchads360V23CommonImageAdInfo = z.object({adIdToCopyImageFrom: z.string().optional(), data: z.string().optional(), imageAsset: googleAdsSearchads360V23CommonAdImageAsset.optional(), imageUrl: z.string().optional(), mimeType: z.enum(["UNSPECIFIED", "UNKNOWN", "IMAGE_JPEG", "IMAGE_GIF", "IMAGE_PNG", "FLASH", "TEXT_HTML", "PDF", "MSWORD", "MSEXCEL", "RTF", "AUDIO_WAV", "AUDIO_MP3", "HTML5_AD_ZIP"]).optional(), name: z.string().optional(), pixelHeight: z.string().optional(), pixelWidth: z.string().optional(), previewImageUrl: z.string().optional(), previewPixelHeight: z.string().optional(), previewPixelWidth: z.string().optional()}); export const googleAdsSearchads360V23CommonLegacyAppInstallAdInfo = z.object({appId: z.string().optional(), appStore: z.enum(["UNSPECIFIED", "UNKNOWN", "APPLE_APP_STORE", "GOOGLE_PLAY", "WINDOWS_STORE", "WINDOWS_PHONE_STORE", "CN_APP_STORE"]).optional(), description1: z.string().optional(), description2: z.string().optional(), headline: z.string().optional()}); export const googleAdsSearchads360V23CommonLegacyResponsiveDisplayAdInfo = z.object({accentColor: z.string().optional(), allowFlexibleColor: z.boolean().optional(), businessName: z.string().optional(), callToActionText: z.string().optional(), description: z.string().optional(), formatSetting: z.enum(["UNSPECIFIED", "UNKNOWN", "ALL_FORMATS", "NON_NATIVE", "NATIVE"]).optional(), logoImage: z.string().optional(), longHeadline: z.string().optional(), mainColor: z.string().optional(), marketingImage: z.string().optional(), pricePrefix: z.string().optional(), promoText: z.string().optional(), shortHeadline: z.string().optional(), squareLogoImage: z.string().optional(), squareMarketingImage: z.string().optional()}); export const googleAdsSearchads360V23CommonLocalAdInfo = z.object({callToActions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), logoImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), marketingImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), path1: z.string().optional(), path2: z.string().optional(), videos: z.array(googleAdsSearchads360V23CommonAdVideoAsset).optional()}); export const googleAdsSearchads360V23CommonSearchAds360ProductAdInfo = z.object({}); export const googleAdsSearchads360V23CommonResponsiveDisplayAdControlSpec = z.object({enableAssetEnhancements: z.boolean().optional(), enableAutogenVideo: z.boolean().optional()}); export const googleAdsSearchads360V23CommonResponsiveDisplayAdInfo = z.object({accentColor: z.string().optional(), allowFlexibleColor: z.boolean().optional(), businessName: z.string().optional(), callToActionText: z.string().optional(), controlSpec: googleAdsSearchads360V23CommonResponsiveDisplayAdControlSpec.optional(), descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), formatSetting: z.enum(["UNSPECIFIED", "UNKNOWN", "ALL_FORMATS", "NON_NATIVE", "NATIVE"]).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), logoImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), longHeadline: googleAdsSearchads360V23CommonAdTextAsset.optional(), mainColor: z.string().optional(), marketingImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), pricePrefix: z.string().optional(), promoText: z.string().optional(), squareLogoImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), squareMarketingImages: z.array(googleAdsSearchads360V23CommonAdImageAsset).optional(), youtubeVideos: z.array(googleAdsSearchads360V23CommonAdVideoAsset).optional()}); export const googleAdsSearchads360V23CommonResponsiveSearchAdInfo = z.object({descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), path1: z.string().optional(), path2: z.string().optional()}); export const googleAdsSearchads360V23CommonSearchAds360ExpandedDynamicSearchAdInfo = z.object({adTrackingId: z.string().optional(), description1: z.string().optional(), description2: z.string().optional()}); export const googleAdsSearchads360V23CommonSearchAds360ExpandedTextAdInfo = z.object({adTrackingId: z.string().optional(), description1: z.string().optional(), description2: z.string().optional(), headline: z.string().optional(), headline2: z.string().optional(), headline3: z.string().optional(), path1: z.string().optional(), path2: z.string().optional()}); export const googleAdsSearchads360V23CommonSearchAds360ResponsiveSearchAdInfo = z.object({adTrackingId: z.string().optional(), descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), path1: z.string().optional(), path2: z.string().optional()}); export const googleAdsSearchads360V23CommonSearchAds360TextAdInfo = z.object({adTrackingId: z.string().optional(), description1: z.string().optional(), description2: z.string().optional(), displayMobileUrl: z.string().optional(), displayUrl: z.string().optional(), headline: z.string().optional()}); export const googleAdsSearchads360V23CommonShoppingComparisonListingAdInfo = z.object({headline: z.string().optional()}); export const googleAdsSearchads360V23CommonShoppingProductAdInfo = z.object({}); export const googleAdsSearchads360V23CommonShoppingSmartAdInfo = z.object({}); export const googleAdsSearchads360V23CommonSmartCampaignAdInfo = z.object({descriptions: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional(), headlines: z.array(googleAdsSearchads360V23CommonAdTextAsset).optional()}); export const googleAdsSearchads360V23CommonTextAdInfo = z.object({description1: z.string().optional(), description2: z.string().optional(), headline: z.string().optional()}); export const googleAdsSearchads360V23CommonTravelAdInfo = z.object({}); export const googleAdsSearchads360V23CommonUrlCollection = z.object({finalMobileUrls: z.array(z.string()).optional(), finalUrls: z.array(z.string()).optional(), trackingUrlTemplate: z.string().optional(), urlCollectionId: z.string().optional()}); export const googleAdsSearchads360V23ResourcesAd = z.object({addedByGoogleAds: z.boolean().optional(), appAd: googleAdsSearchads360V23CommonAppAdInfo.optional(), appEngagementAd: googleAdsSearchads360V23CommonAppEngagementAdInfo.optional(), appPreRegistrationAd: googleAdsSearchads360V23CommonAppPreRegistrationAdInfo.optional(), demandGenCarouselAd: googleAdsSearchads360V23CommonDemandGenCarouselAdInfo.optional(), demandGenMultiAssetAd: googleAdsSearchads360V23CommonDemandGenMultiAssetAdInfo.optional(), demandGenProductAd: googleAdsSearchads360V23CommonDemandGenProductAdInfo.optional(), demandGenVideoResponsiveAd: googleAdsSearchads360V23CommonDemandGenVideoResponsiveAdInfo.optional(), devicePreference: z.enum(["UNSPECIFIED", "UNKNOWN", "MOBILE", "TABLET", "DESKTOP", "CONNECTED_TV", "OTHER"]).optional(), displayUploadAd: googleAdsSearchads360V23CommonDisplayUploadAdInfo.optional(), displayUrl: z.string().optional(), expandedDynamicSearchAd: googleAdsSearchads360V23CommonExpandedDynamicSearchAdInfo.optional(), expandedTextAd: googleAdsSearchads360V23CommonExpandedTextAdInfo.optional(), finalAppUrls: z.array(googleAdsSearchads360V23CommonFinalAppUrl).optional(), finalMobileUrls: z.array(z.string()).optional(), finalUrlSuffix: z.string().optional(), finalUrls: z.array(z.string()).optional(), hotelAd: googleAdsSearchads360V23CommonHotelAdInfo.optional(), id: z.string().optional(), imageAd: googleAdsSearchads360V23CommonImageAdInfo.optional(), legacyAppInstallAd: googleAdsSearchads360V23CommonLegacyAppInstallAdInfo.optional(), legacyResponsiveDisplayAd: googleAdsSearchads360V23CommonLegacyResponsiveDisplayAdInfo.optional(), localAd: googleAdsSearchads360V23CommonLocalAdInfo.optional(), name: z.string().optional(), productAd: googleAdsSearchads360V23CommonSearchAds360ProductAdInfo.optional(), resourceName: z.string().optional(), responsiveDisplayAd: googleAdsSearchads360V23CommonResponsiveDisplayAdInfo.optional(), responsiveSearchAd: googleAdsSearchads360V23CommonResponsiveSearchAdInfo.optional(), searchAds360ExpandedDynamicSearchAd: googleAdsSearchads360V23CommonSearchAds360ExpandedDynamicSearchAdInfo.optional(), searchAds360ExpandedTextAd: googleAdsSearchads360V23CommonSearchAds360ExpandedTextAdInfo.optional(), searchAds360ResponsiveSearchAd: googleAdsSearchads360V23CommonSearchAds360ResponsiveSearchAdInfo.optional(), searchAds360TextAd: googleAdsSearchads360V23CommonSearchAds360TextAdInfo.optional(), shoppingComparisonListingAd: googleAdsSearchads360V23CommonShoppingComparisonListingAdInfo.optional(), shoppingProductAd: googleAdsSearchads360V23CommonShoppingProductAdInfo.optional(), shoppingSmartAd: googleAdsSearchads360V23CommonShoppingSmartAdInfo.optional(), smartCampaignAd: googleAdsSearchads360V23CommonSmartCampaignAdInfo.optional(), syntheticContentInfo: googleAdsSearchads360V23CommonSyntheticContentInfo.optional(), systemManagedResourceSource: z.enum(["UNSPECIFIED", "UNKNOWN", "AD_VARIATIONS"]).optional(), textAd: googleAdsSearchads360V23CommonTextAdInfo.optional(), trackingUrlTemplate: z.string().optional(), travelAd: googleAdsSearchads360V23CommonTravelAdInfo.optional(), type: z.enum(["UNSPECIFIED", "UNKNOWN", "TEXT_AD", "EXPANDED_TEXT_AD", "EXPANDED_DYNAMIC_SEARCH_AD", "HOTEL_AD", "SHOPPING_SMART_AD", "SHOPPING_PRODUCT_AD", "VIDEO_AD", "IMAGE_AD", "RESPONSIVE_SEARCH_AD", "LEGACY_RESPONSIVE_DISPLAY_AD", "APP_AD", "LEGACY_APP_INSTALL_AD", "RESPONSIVE_DISPLAY_AD", "LOCAL_AD", "HTML5_UPLOAD_AD", "DYNAMIC_HTML5_AD", "APP_ENGAGEMENT_AD", "SHOPPING_COMPARISON_LISTING_AD", "VIDEO_BUMPER_AD", "VIDEO_NON_SKIPPABLE_IN_STREAM_AD", "VIDEO_TRUEVIEW_IN_STREAM_AD", "VIDEO_RESPONSIVE_AD", "SMART_CAMPAIGN_AD", "CALL_AD", "APP_PRE_REGISTRATION_AD", "DEMAND_GEN_MULTI_ASSET_AD", "DEMAND_GEN_CAROUSEL_AD", "TRAVEL_AD", "DEMAND_GEN_VIDEO_RESPONSIVE_AD", "DEMAND_GEN_PRODUCT_AD", "MULTIMEDIA_AD"]).optional(), urlCollections: z.array(googleAdsSearchads360V23CommonUrlCollection).optional(), urlCustomParameters: z.array(googleAdsSearchads360V23CommonCustomParameter).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdAssetRecommendation = z.object({currentAd: googleAdsSearchads360V23ResourcesAd.optional(), recommendedAssets: googleAdsSearchads360V23ResourcesAd.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdImproveAdStrengthRecommendation = z.object({currentAd: googleAdsSearchads360V23ResourcesAd.optional(), recommendedAd: googleAdsSearchads360V23ResourcesAd.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdRecommendation = z.object({ad: googleAdsSearchads360V23ResourcesAd.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationSearchPartnersOptInRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationMerchantInfo = z.object({id: z.string().optional(), multiClient: z.boolean().optional(), name: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation = z.object({demotedOffersCount: z.string().optional(), feedLabel: z.string().optional(), merchant: googleAdsSearchads360V23ResourcesRecommendationMerchantInfo.optional(), offersCount: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationShoppingAddProductsToCampaignRecommendation = z.object({feedLabel: z.string().optional(), merchant: googleAdsSearchads360V23ResourcesRecommendationMerchantInfo.optional(), reason: z.enum(["UNSPECIFIED", "UNKNOWN", "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS", "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS_IN_FEED", "ADS_ACCOUNT_EXCLUDES_OFFERS_FROM_CAMPAIGN", "ALL_PRODUCTS_ARE_EXCLUDED_FROM_CAMPAIGN"]).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationShoppingFixDisapprovedProductsRecommendation = z.object({disapprovedProductsCount: z.string().optional(), feedLabel: z.string().optional(), merchant: googleAdsSearchads360V23ResourcesRecommendationMerchantInfo.optional(), productsCount: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation = z.object({feedLabel: z.string().optional(), merchant: googleAdsSearchads360V23ResourcesRecommendationMerchantInfo.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation = z.object({feedLabel: z.string().optional(), merchant: googleAdsSearchads360V23ResourcesRecommendationMerchantInfo.optional()}); export const googleAdsSearchads360V23ResourcesRecommendationShoppingTargetAllOffersRecommendation = z.object({feedLabel: z.string().optional(), merchant: googleAdsSearchads360V23ResourcesRecommendationMerchantInfo.optional(), untargetedOffersCount: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationSitelinkAssetRecommendation = z.object({recommendedCampaignSitelinkAssets: z.array(googleAdsSearchads360V23ResourcesAsset).optional(), recommendedCustomerSitelinkAssets: z.array(googleAdsSearchads360V23ResourcesAsset).optional()}); export const googleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendationTargetCpaOptInRecommendationOption = z.object({goal: z.enum(["UNSPECIFIED", "UNKNOWN", "SAME_COST", "SAME_CONVERSIONS", "SAME_CPA", "CLOSEST_CPA"]).optional(), impact: googleAdsSearchads360V23ResourcesRecommendationRecommendationImpact.optional(), requiredCampaignBudgetAmountMicros: z.string().optional(), targetCpaMicros: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendation = z.object({options: z.array(googleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendationTargetCpaOptInRecommendationOption).optional(), recommendedTargetCpaMicros: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation = z.object({recommendedTargetRoas: z.number().optional(), requiredCampaignBudgetAmountMicros: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationTextAdRecommendation = z.object({ad: googleAdsSearchads360V23ResourcesAd.optional(), autoApplyDate: z.string().optional(), creationDate: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationUpgradeLocalCampaignToPerformanceMaxRecommendation = z.object({}); export const googleAdsSearchads360V23ResourcesRecommendationUpgradeSmartShoppingCampaignToPerformanceMaxRecommendation = z.object({merchantId: z.string().optional(), salesCountryCode: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendationUseBroadMatchKeywordRecommendation = z.object({campaignKeywordsCount: z.string().optional(), campaignUsesSharedBudget: z.boolean().optional(), keyword: z.array(googleAdsSearchads360V23CommonKeywordInfo).optional(), requiredCampaignBudgetAmountMicros: z.string().optional(), suggestedKeywordsCount: z.string().optional()}); export const googleAdsSearchads360V23ResourcesRecommendation = z.object({adGroup: z.string().optional(), callAssetRecommendation: googleAdsSearchads360V23ResourcesRecommendationCallAssetRecommendation.optional(), calloutAssetRecommendation: googleAdsSearchads360V23ResourcesRecommendationCalloutAssetRecommendation.optional(), campaign: z.string().optional(), campaignBudget: z.string().optional(), campaignBudgetRecommendation: googleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation.optional(), campaigns: z.array(z.string()).optional(), customAudienceOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationCustomAudienceOptInRecommendation.optional(), dismissed: z.boolean().optional(), displayExpansionOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationDisplayExpansionOptInRecommendation.optional(), dynamicImageExtensionOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationDynamicImageExtensionOptInRecommendation.optional(), enhancedCpcOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationEnhancedCpcOptInRecommendation.optional(), forecastingCampaignBudgetRecommendation: googleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation.optional(), forecastingSetTargetCpaRecommendation: googleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation.optional(), forecastingSetTargetRoasRecommendation: googleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation.optional(), impact: googleAdsSearchads360V23ResourcesRecommendationRecommendationImpact.optional(), improveDemandGenAdStrengthRecommendation: googleAdsSearchads360V23ResourcesRecommendationImproveDemandGenAdStrengthRecommendation.optional(), improveGoogleTagCoverageRecommendation: googleAdsSearchads360V23ResourcesRecommendationImproveGoogleTagCoverageRecommendation.optional(), improvePerformanceMaxAdStrengthRecommendation: googleAdsSearchads360V23ResourcesRecommendationImprovePerformanceMaxAdStrengthRecommendation.optional(), keywordMatchTypeRecommendation: googleAdsSearchads360V23ResourcesRecommendationKeywordMatchTypeRecommendation.optional(), keywordRecommendation: googleAdsSearchads360V23ResourcesRecommendationKeywordRecommendation.optional(), leadFormAssetRecommendation: googleAdsSearchads360V23ResourcesRecommendationLeadFormAssetRecommendation.optional(), lowerTargetRoasRecommendation: googleAdsSearchads360V23ResourcesRecommendationLowerTargetRoasRecommendation.optional(), marginalRoiCampaignBudgetRecommendation: googleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation.optional(), maximizeClicksOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationMaximizeClicksOptInRecommendation.optional(), maximizeConversionValueOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationMaximizeConversionValueOptInRecommendation.optional(), maximizeConversionsOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationMaximizeConversionsOptInRecommendation.optional(), migrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation: googleAdsSearchads360V23ResourcesRecommendationMigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation.optional(), moveUnusedBudgetRecommendation: googleAdsSearchads360V23ResourcesRecommendationMoveUnusedBudgetRecommendation.optional(), optimizeAdRotationRecommendation: googleAdsSearchads360V23ResourcesRecommendationOptimizeAdRotationRecommendation.optional(), performanceMaxFinalUrlOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationPerformanceMaxFinalUrlOptInRecommendation.optional(), performanceMaxOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationPerformanceMaxOptInRecommendation.optional(), raiseTargetCpaBidTooLowRecommendation: googleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation.optional(), raiseTargetCpaRecommendation: googleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaRecommendation.optional(), refreshCustomerMatchListRecommendation: googleAdsSearchads360V23ResourcesRecommendationRefreshCustomerMatchListRecommendation.optional(), resourceName: z.string().optional(), responsiveSearchAdAssetRecommendation: googleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdAssetRecommendation.optional(), responsiveSearchAdImproveAdStrengthRecommendation: googleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdImproveAdStrengthRecommendation.optional(), responsiveSearchAdRecommendation: googleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdRecommendation.optional(), searchPartnersOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationSearchPartnersOptInRecommendation.optional(), setTargetCpaRecommendation: googleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation.optional(), setTargetRoasRecommendation: googleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation.optional(), shoppingAddAgeGroupRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation.optional(), shoppingAddColorRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation.optional(), shoppingAddGenderRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation.optional(), shoppingAddGtinRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation.optional(), shoppingAddMoreIdentifiersRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation.optional(), shoppingAddProductsToCampaignRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingAddProductsToCampaignRecommendation.optional(), shoppingAddSizeRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation.optional(), shoppingFixDisapprovedProductsRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingFixDisapprovedProductsRecommendation.optional(), shoppingFixMerchantCenterAccountSuspensionWarningRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation.optional(), shoppingFixSuspendedMerchantCenterAccountRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation.optional(), shoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation.optional(), shoppingTargetAllOffersRecommendation: googleAdsSearchads360V23ResourcesRecommendationShoppingTargetAllOffersRecommendation.optional(), sitelinkAssetRecommendation: googleAdsSearchads360V23ResourcesRecommendationSitelinkAssetRecommendation.optional(), targetCpaOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendation.optional(), targetRoasOptInRecommendation: googleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation.optional(), textAdRecommendation: googleAdsSearchads360V23ResourcesRecommendationTextAdRecommendation.optional(), type: z.enum(["UNSPECIFIED", "UNKNOWN", "CAMPAIGN_BUDGET", "KEYWORD", "TEXT_AD", "TARGET_CPA_OPT_IN", "MAXIMIZE_CONVERSIONS_OPT_IN", "ENHANCED_CPC_OPT_IN", "SEARCH_PARTNERS_OPT_IN", "MAXIMIZE_CLICKS_OPT_IN", "OPTIMIZE_AD_ROTATION", "KEYWORD_MATCH_TYPE", "MOVE_UNUSED_BUDGET", "FORECASTING_CAMPAIGN_BUDGET", "TARGET_ROAS_OPT_IN", "RESPONSIVE_SEARCH_AD", "MARGINAL_ROI_CAMPAIGN_BUDGET", "USE_BROAD_MATCH_KEYWORD", "RESPONSIVE_SEARCH_AD_ASSET", "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX", "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH", "DISPLAY_EXPANSION_OPT_IN", "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX", "RAISE_TARGET_CPA_BID_TOO_LOW", "FORECASTING_SET_TARGET_ROAS", "CALLOUT_ASSET", "SITELINK_ASSET", "CALL_ASSET", "SHOPPING_ADD_AGE_GROUP", "SHOPPING_ADD_COLOR", "SHOPPING_ADD_GENDER", "SHOPPING_ADD_GTIN", "SHOPPING_ADD_MORE_IDENTIFIERS", "SHOPPING_ADD_SIZE", "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN", "SHOPPING_FIX_DISAPPROVED_PRODUCTS", "SHOPPING_TARGET_ALL_OFFERS", "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT", "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING", "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX", "DYNAMIC_IMAGE_EXTENSION_OPT_IN", "RAISE_TARGET_CPA", "LOWER_TARGET_ROAS", "PERFORMANCE_MAX_OPT_IN", "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH", "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX", "FORECASTING_SET_TARGET_CPA", "SET_TARGET_CPA", "SET_TARGET_ROAS", "MAXIMIZE_CONVERSION_VALUE_OPT_IN", "IMPROVE_GOOGLE_TAG_COVERAGE", "PERFORMANCE_MAX_FINAL_URL_OPT_IN", "REFRESH_CUSTOMER_MATCH_LIST", "CUSTOM_AUDIENCE_OPT_IN", "LEAD_FORM_ASSET", "IMPROVE_DEMAND_GEN_AD_STRENGTH"]).optional(), upgradeLocalCampaignToPerformanceMaxRecommendation: googleAdsSearchads360V23ResourcesRecommendationUpgradeLocalCampaignToPerformanceMaxRecommendation.optional(), upgradeSmartShoppingCampaignToPerformanceMaxRecommendation: googleAdsSearchads360V23ResourcesRecommendationUpgradeSmartShoppingCampaignToPerformanceMaxRecommendation.optional(), useBroadMatchKeywordRecommendation: googleAdsSearchads360V23ResourcesRecommendationUseBroadMatchKeywordRecommendation.optional()}); export const googleAdsSearchads360V23ServicesGenerateRecommendationsResponse = z.object({recommendations: z.array(googleAdsSearchads360V23ResourcesRecommendation).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Generates Recommendations based off the requested recommendation_types. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RecommendationError]() [RequestError]() * * POST /v23/customers/{customersId}/recommendations:generate */ export const createApiV23CustomersCustomersIdRecommendationsGenerate = async (args: CreateApiV23CustomersCustomersIdRecommendationsGenerateArgs, options?: CreateApiV23CustomersCustomersIdRecommendationsGenerateOptions) => { const {baseUrl = "https://searchads360.googleapis.com", fetch: fetchFn = fetch, Oauth2, Oauth2c} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (Oauth2 !== undefined) headers.set('authorization', `Bearer ${Oauth2}`) if (Oauth2c !== undefined) headers.set('authorization', `Bearer ${Oauth2c}`) const url = `${baseUrl.replace(/\/+$/, '')}/v23/customers/${encodeURIComponent(String(args.customersId))}/recommendations:generate${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(googleAdsSearchads360V23ServicesGenerateRecommendationsResponse, await res.json()) };