此 MCP 可以做什么
Verifies addresses, email addresses, and phone numbers individually or in batches using confidence scores and configurable accept, review, or reject policies.
工具
输入模式
{'type': 'object', 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['suggestion_id'], 'properties': {'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'suggestion_id': {'type': 'string', 'description': 'Id of a suggestion previously returned in address.suggestions. CONSUMES A LOQATE CREDIT. Ids are not stable over time; a stale one returns SUGGESTION_NOT_FOUND and you must search again rather than retry'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Policy name: strict shipping standard or permissive'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Your own identifier for this record, echoed back by Loqate'}, 'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header (get one at account.loqate.com)'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}, 'address': {'type': 'string', 'description': 'Full address string (free-form — use this OR structured fields below)'}, 'contact': {'type': 'string', 'description': 'Contact name for the delivery'}, 'country': {'type': 'string', 'description': 'ISO 2-letter country code (e.g. US GB DE)'}, 'options': {'type': 'object', 'description': 'Loqate API options as nested JSON, e.g. {"ServerOptions": {"FieldStatus": "true"}}. Dot notation is equivalent: {"ServerOptions.FieldStatus": "true"}. Pass GeoCode here as a boolean — it is sent at the request root where Loqate expects it. In-Options booleans (Certify Version Enhance Deceased Goneaways) take JSON booleans; ServerOptions values (e.g. OutputCasing DefaultCountry) are strings. Set ServerOptions.FieldStatus to "true" to get the changes list', 'additionalProperties': True}, 'premise': {'type': 'string', 'description': 'Premise or house number'}, 'suggest': {'type': 'boolean', 'description': 'When true, look up alternative addresses suggested by Loqate and return them in the result as suggestions. Requires the Loqate address-suggestion feature to be enabled on the account (licensed separately from verification) — without it, verification still succeeds and the reason appears in suggestions.error. The lookup runs when the address is not accepted (review or reject) OR when it is accepted below the confidence floor (see suggest_below) — a policy accepts from its own minimum, so an accepted address is not necessarily a confident one. Address-only; off by default'}, 'surname': {'type': 'string', 'description': "Recipient's last name"}, 'address2': {'type': 'string', 'description': 'Second address line'}, 'address3': {'type': 'string', 'description': 'Third address line'}, 'address4': {'type': 'string', 'description': 'Fourth address line'}, 'address5': {'type': 'string', 'description': 'Fifth address line'}, 'address6': {'type': 'string', 'description': 'Sixth address line'}, 'address7': {'type': 'string', 'description': 'Seventh address line'}, 'address8': {'type': 'string', 'description': 'Eighth address line'}, 'building': {'type': 'string', 'description': 'Building name'}, 'forename': {'type': 'string', 'description': "Recipient's first name"}, 'function': {'type': 'string', 'description': "Contact's job title or function"}, 'latitude': {'type': 'string', 'description': 'Latitude, for a reverse geocode'}, 'locality': {'type': 'string', 'description': 'City or town'}, 'post_box': {'type': 'string', 'description': 'PO box'}, 'postcode': {'type': 'string', 'description': 'Postal or ZIP code'}, 'full_name': {'type': 'string', 'description': "Recipient's full name"}, 'longitude': {'type': 'string', 'description': 'Longitude, for a reverse geocode'}, 'admin_area': {'type': 'string', 'description': 'State or province'}, 'department': {'type': 'string', 'description': 'Department within the organisation'}, 'verify_key': {'type': 'string', 'description': 'Custom address verification API key (overrides LOQATE_VERIFY_KEY env var)'}, 'verify_url': {'type': 'string', 'description': 'Custom address verification endpoint URL (overrides LOQATE_VERIFY_URL env var)'}, 'middle_name': {'type': 'string', 'description': "Recipient's middle name"}, 'organization': {'type': 'string', 'description': 'Company or organisation name'}, 'sub_building': {'type': 'string', 'description': 'Sub-building (e.g. flat, apartment or suite)'}, 'thoroughfare': {'type': 'string', 'description': 'Street name'}, 'suggest_below': {'type': ['null', 'number'], 'description': 'Confidence floor for suggestions (0-1). An accepted address scoring below it still gets suggestions — policies accept from their own minimum, so an accepted address is not necessarily a confident one. Omit to use the policy value (standard 0.85); 0 disables the floor so only review/reject trigger a lookup'}, 'suggest_limit': {'type': 'integer', 'description': 'Maximum number of suggestions to return (1-10, default 5). Requires suggest'}, 'suggestion_id': {'type': 'string', 'description': "Id of a suggestion previously returned in address.suggestions. The tool retrieves that address's cleansed components from Loqate and verifies those, which is how you confirm a suggestion the user chose. Use INSTEAD OF address, not alongside it. CONSUMES A LOQATE CREDIT — pass one id, for the one suggestion that was chosen, never several. Ids are not stable over time; a stale one returns SUGGESTION_NOT_FOUND and you must search again rather than retry"}, 'detect_country': {'type': 'boolean', 'description': 'When true and no country is supplied, guess the country from the address and flag the guess in the result (country_guessed). Address-only; off by default'}, 'delivery_address': {'type': 'string', 'description': 'Full delivery address'}, 'delivery_address1': {'type': 'string', 'description': 'Delivery address line 1'}, 'delivery_address2': {'type': 'string', 'description': 'Delivery address line 2'}, 'delivery_address3': {'type': 'string', 'description': 'Delivery address line 3'}, 'delivery_address4': {'type': 'string', 'description': 'Delivery address line 4'}, 'delivery_address5': {'type': 'string', 'description': 'Delivery address line 5'}, 'delivery_address6': {'type': 'string', 'description': 'Delivery address line 6'}, 'delivery_address7': {'type': 'string', 'description': 'Delivery address line 7'}, 'delivery_address8': {'type': 'string', 'description': 'Delivery address line 8'}, 'dependent_locality': {'type': 'string', 'description': 'Dependent locality (e.g. neighbourhood)'}, 'sub_building_floor': {'type': 'string', 'description': 'Floor'}, 'dependent_thoroughfare': {'type': 'string', 'description': 'Dependent street name'}, 'sub_administrative_area': {'type': 'string', 'description': 'Sub administrative area (e.g. county)'}, 'double_dependent_locality': {'type': 'string', 'description': 'Double dependent locality'}, 'super_administrative_area': {'type': 'string', 'description': 'Super administrative area'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['addresses'], 'properties': {'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}, 'options': {'type': 'object', 'description': 'Loqate API options as nested JSON, applied to every record in the batch', 'additionalProperties': True}, 'addresses': {'type': ['null', 'array'], 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Your own identifier for this record, echoed back by Loqate'}, 'address': {'type': 'string', 'description': 'Full address string (free-form)'}, 'contact': {'type': 'string', 'description': 'Contact name for the delivery'}, 'country': {'type': 'string', 'description': 'ISO 2-letter country code (e.g. US GB DE)'}, 'premise': {'type': 'string', 'description': 'Premise or house number'}, 'surname': {'type': 'string', 'description': "Recipient's last name"}, 'address2': {'type': 'string', 'description': 'Second address line'}, 'address3': {'type': 'string', 'description': 'Third address line'}, 'address4': {'type': 'string', 'description': 'Fourth address line'}, 'address5': {'type': 'string', 'description': 'Fifth address line'}, 'address6': {'type': 'string', 'description': 'Sixth address line'}, 'address7': {'type': 'string', 'description': 'Seventh address line'}, 'address8': {'type': 'string', 'description': 'Eighth address line'}, 'building': {'type': 'string', 'description': 'Building name'}, 'forename': {'type': 'string', 'description': "Recipient's first name"}, 'function': {'type': 'string', 'description': "Contact's job title or function"}, 'latitude': {'type': 'string', 'description': 'Latitude, for a reverse geocode'}, 'locality': {'type': 'string', 'description': 'City or town'}, 'post_box': {'type': 'string', 'description': 'PO box'}, 'postcode': {'type': 'string', 'description': 'Postal or ZIP code'}, 'full_name': {'type': 'string', 'description': "Recipient's full name"}, 'longitude': {'type': 'string', 'description': 'Longitude, for a reverse geocode'}, 'admin_area': {'type': 'string', 'description': 'State or province'}, 'department': {'type': 'string', 'description': 'Department within the organisation'}, 'middle_name': {'type': 'string', 'description': "Recipient's middle name"}, 'organization': {'type': 'string', 'description': 'Company or organisation name'}, 'sub_building': {'type': 'string', 'description': 'Sub-building (e.g. flat, apartment or suite)'}, 'thoroughfare': {'type': 'string', 'description': 'Street name'}, 'delivery_address': {'type': 'string', 'description': 'Full delivery address'}, 'delivery_address1': {'type': 'string', 'description': 'Delivery address line 1'}, 'delivery_address2': {'type': 'string', 'description': 'Delivery address line 2'}, 'delivery_address3': {'type': 'string', 'description': 'Delivery address line 3'}, 'delivery_address4': {'type': 'string', 'description': 'Delivery address line 4'}, 'delivery_address5': {'type': 'string', 'description': 'Delivery address line 5'}, 'delivery_address6': {'type': 'string', 'description': 'Delivery address line 6'}, 'delivery_address7': {'type': 'string', 'description': 'Delivery address line 7'}, 'delivery_address8': {'type': 'string', 'description': 'Delivery address line 8'}, 'dependent_locality': {'type': 'string', 'description': 'Dependent locality (e.g. neighbourhood)'}, 'sub_building_floor': {'type': 'string', 'description': 'Floor'}, 'dependent_thoroughfare': {'type': 'string', 'description': 'Dependent street name'}, 'sub_administrative_area': {'type': 'string', 'description': 'Sub administrative area (e.g. county)'}, 'double_dependent_locality': {'type': 'string', 'description': 'Double dependent locality'}, 'super_administrative_area': {'type': 'string', 'description': 'Super administrative area'}}, 'additionalProperties': False}, 'description': 'Addresses to verify, up to 100. Results are returned in the same order, each carrying its input index'}, 'verify_key': {'type': 'string', 'description': 'Custom address verification API key'}, 'verify_url': {'type': 'string', 'description': 'Custom address verification endpoint URL'}, 'detect_country': {'type': 'boolean', 'description': "When true, guess the country of any record that does not supply one, from its address text, and flag the guess in that record's result. Records are then grouped by their detected country, so a mixed-country batch each gets the right default. Off by default"}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Your own identifier for this record, echoed back by Loqate'}, 'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'email': {'type': 'string', 'description': 'Email address to verify'}, 'phone': {'type': 'string', 'description': 'Phone number to verify'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}, 'address': {'type': 'string', 'description': 'Full address string'}, 'contact': {'type': 'string', 'description': 'Contact name for the delivery'}, 'country': {'type': 'string', 'description': 'ISO 2-letter country code'}, 'options': {'type': 'object', 'description': 'Loqate API options as nested JSON, e.g. {"ServerOptions": {"FieldStatus": "true"}}. Dot notation is equivalent: {"ServerOptions.FieldStatus": "true"}. Pass GeoCode here as a boolean — it is sent at the request root where Loqate expects it. In-Options booleans (Certify Version Enhance Deceased Goneaways) take JSON booleans; ServerOptions values (e.g. OutputCasing DefaultCountry) are strings. Set ServerOptions.FieldStatus to "true" to get the changes list', 'additionalProperties': True}, 'premise': {'type': 'string', 'description': 'Premise or house number'}, 'suggest': {'type': 'boolean', 'description': 'When true, look up alternative addresses suggested by Loqate and return them under address.suggestions. Requires the Loqate address-suggestion feature to be enabled on the account (licensed separately from verification). The lookup runs when the address is not accepted (review or reject) OR when it is accepted below the confidence floor (see suggest_below). Address-only — does not affect phone or email; off by default'}, 'surname': {'type': 'string', 'description': "Recipient's last name"}, 'address2': {'type': 'string', 'description': 'Second address line'}, 'address3': {'type': 'string', 'description': 'Third address line'}, 'address4': {'type': 'string', 'description': 'Fourth address line'}, 'address5': {'type': 'string', 'description': 'Fifth address line'}, 'address6': {'type': 'string', 'description': 'Sixth address line'}, 'address7': {'type': 'string', 'description': 'Seventh address line'}, 'address8': {'type': 'string', 'description': 'Eighth address line'}, 'building': {'type': 'string', 'description': 'Building name'}, 'forename': {'type': 'string', 'description': "Recipient's first name"}, 'function': {'type': 'string', 'description': "Contact's job title or function"}, 'latitude': {'type': 'string', 'description': 'Latitude, for a reverse geocode'}, 'locality': {'type': 'string', 'description': 'City or town'}, 'post_box': {'type': 'string', 'description': 'PO box'}, 'postcode': {'type': 'string', 'description': 'Postal or ZIP code'}, 'full_name': {'type': 'string', 'description': "Recipient's full name"}, 'longitude': {'type': 'string', 'description': 'Longitude, for a reverse geocode'}, 'admin_area': {'type': 'string', 'description': 'State or province'}, 'department': {'type': 'string', 'description': 'Department within the organisation'}, 'verify_key': {'type': 'string', 'description': 'Custom address verification API key (overrides LOQATE_VERIFY_KEY env var)'}, 'verify_url': {'type': 'string', 'description': 'Custom address verification endpoint URL (overrides LOQATE_VERIFY_URL env var)'}, 'middle_name': {'type': 'string', 'description': "Recipient's middle name"}, 'organization': {'type': 'string', 'description': 'Company or organisation name'}, 'sub_building': {'type': 'string', 'description': 'Sub-building (e.g. flat, apartment or suite)'}, 'thoroughfare': {'type': 'string', 'description': 'Street name'}, 'suggest_below': {'type': ['null', 'number'], 'description': 'Confidence floor for suggestions (0-1). An accepted address scoring below it still gets suggestions. Omit to use the policy value (standard 0.85); 0 disables the floor. Address-only'}, 'suggest_limit': {'type': 'integer', 'description': 'Maximum number of suggestions to return (1-10, default 5). Requires suggest'}, 'suggestion_id': {'type': 'string', 'description': "Id of a suggestion previously returned in address.suggestions. The tool retrieves that address's cleansed components from Loqate and verifies those, which is how you confirm a suggestion the user chose. Use INSTEAD OF address, not alongside it. CONSUMES A LOQATE CREDIT — pass one id, for the one suggestion that was chosen, never several. Ids are not stable over time; a stale one returns SUGGESTION_NOT_FOUND and you must search again rather than retry"}, 'detect_country': {'type': 'boolean', 'description': 'When true and no country is supplied, guess the country from the address and flag the guess in the result (country_guessed). Address-only — does not affect phone or email; off by default'}, 'delivery_address': {'type': 'string', 'description': 'Full delivery address'}, 'delivery_address1': {'type': 'string', 'description': 'Delivery address line 1'}, 'delivery_address2': {'type': 'string', 'description': 'Delivery address line 2'}, 'delivery_address3': {'type': 'string', 'description': 'Delivery address line 3'}, 'delivery_address4': {'type': 'string', 'description': 'Delivery address line 4'}, 'delivery_address5': {'type': 'string', 'description': 'Delivery address line 5'}, 'delivery_address6': {'type': 'string', 'description': 'Delivery address line 6'}, 'delivery_address7': {'type': 'string', 'description': 'Delivery address line 7'}, 'delivery_address8': {'type': 'string', 'description': 'Delivery address line 8'}, 'dependent_locality': {'type': 'string', 'description': 'Dependent locality (e.g. neighbourhood)'}, 'sub_building_floor': {'type': 'string', 'description': 'Floor'}, 'dependent_thoroughfare': {'type': 'string', 'description': 'Dependent street name'}, 'sub_administrative_area': {'type': 'string', 'description': 'Sub administrative area (e.g. county)'}, 'double_dependent_locality': {'type': 'string', 'description': 'Double dependent locality'}, 'super_administrative_area': {'type': 'string', 'description': 'Super administrative area'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['contacts'], 'properties': {'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}, 'options': {'type': 'object', 'description': 'Loqate API options as nested JSON, applied to every address in the batch', 'additionalProperties': True}, 'contacts': {'type': ['null', 'array'], 'items': {'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Your own identifier for this record, echoed back by Loqate'}, 'email': {'type': 'string', 'description': 'Email address'}, 'phone': {'type': 'string', 'description': 'Phone number (E.164 preferred)'}, 'address': {'type': 'string', 'description': 'Full address string (free-form)'}, 'contact': {'type': 'string', 'description': 'Contact name for the delivery'}, 'country': {'type': 'string', 'description': 'ISO 2-letter country code, used for the address and to parse national-format phone numbers'}, 'premise': {'type': 'string', 'description': 'Premise or house number'}, 'surname': {'type': 'string', 'description': "Recipient's last name"}, 'address2': {'type': 'string', 'description': 'Second address line'}, 'address3': {'type': 'string', 'description': 'Third address line'}, 'address4': {'type': 'string', 'description': 'Fourth address line'}, 'address5': {'type': 'string', 'description': 'Fifth address line'}, 'address6': {'type': 'string', 'description': 'Sixth address line'}, 'address7': {'type': 'string', 'description': 'Seventh address line'}, 'address8': {'type': 'string', 'description': 'Eighth address line'}, 'building': {'type': 'string', 'description': 'Building name'}, 'forename': {'type': 'string', 'description': "Recipient's first name"}, 'function': {'type': 'string', 'description': "Contact's job title or function"}, 'latitude': {'type': 'string', 'description': 'Latitude, for a reverse geocode'}, 'locality': {'type': 'string', 'description': 'City or town'}, 'post_box': {'type': 'string', 'description': 'PO box'}, 'postcode': {'type': 'string', 'description': 'Postal or ZIP code'}, 'full_name': {'type': 'string', 'description': "Recipient's full name"}, 'longitude': {'type': 'string', 'description': 'Longitude, for a reverse geocode'}, 'admin_area': {'type': 'string', 'description': 'State or province'}, 'department': {'type': 'string', 'description': 'Department within the organisation'}, 'middle_name': {'type': 'string', 'description': "Recipient's middle name"}, 'organization': {'type': 'string', 'description': 'Company or organisation name'}, 'sub_building': {'type': 'string', 'description': 'Sub-building (e.g. flat, apartment or suite)'}, 'thoroughfare': {'type': 'string', 'description': 'Street name'}, 'delivery_address': {'type': 'string', 'description': 'Full delivery address'}, 'delivery_address1': {'type': 'string', 'description': 'Delivery address line 1'}, 'delivery_address2': {'type': 'string', 'description': 'Delivery address line 2'}, 'delivery_address3': {'type': 'string', 'description': 'Delivery address line 3'}, 'delivery_address4': {'type': 'string', 'description': 'Delivery address line 4'}, 'delivery_address5': {'type': 'string', 'description': 'Delivery address line 5'}, 'delivery_address6': {'type': 'string', 'description': 'Delivery address line 6'}, 'delivery_address7': {'type': 'string', 'description': 'Delivery address line 7'}, 'delivery_address8': {'type': 'string', 'description': 'Delivery address line 8'}, 'dependent_locality': {'type': 'string', 'description': 'Dependent locality (e.g. neighbourhood)'}, 'sub_building_floor': {'type': 'string', 'description': 'Floor'}, 'dependent_thoroughfare': {'type': 'string', 'description': 'Dependent street name'}, 'sub_administrative_area': {'type': 'string', 'description': 'Sub administrative area (e.g. county)'}, 'double_dependent_locality': {'type': 'string', 'description': 'Double dependent locality'}, 'super_administrative_area': {'type': 'string', 'description': 'Super administrative area'}}, 'additionalProperties': False}, 'description': 'Contacts to verify, up to 100. Results are returned in the same order, each carrying its input index'}, 'verify_key': {'type': 'string', 'description': 'Custom address verification API key'}, 'verify_url': {'type': 'string', 'description': 'Custom address verification endpoint URL'}, 'detect_country': {'type': 'boolean', 'description': "When true, guess the country of any contact whose address does not supply one and flag the guess in that contact's address result. Off by default"}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['email'], 'properties': {'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'email': {'type': 'string', 'description': 'Email address to verify'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['emails'], 'properties': {'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'emails': {'type': ['null', 'array'], 'items': {'type': 'string'}, 'description': 'Email addresses to verify, up to 100. Results are returned in the same order, each carrying its input index'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['phone'], 'properties': {'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'phone': {'type': 'string', 'description': 'Phone number (E.164 format preferred e.g. +442071234567)'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}, 'country': {'type': 'string', 'description': 'ISO 2-letter country code (helps with parsing if no country prefix)'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['phones'], 'properties': {'key': {'type': 'string', 'description': 'Loqate API key — required unless the server has one configured or the request carries an Authorization: Bearer header'}, 'phones': {'type': ['null', 'array'], 'items': {'type': 'object', 'required': ['phone'], 'properties': {'phone': {'type': 'string', 'description': 'Phone number (E.164 format preferred e.g. +442071234567)'}, 'country': {'type': 'string', 'description': 'ISO 2-letter country code (helps with parsing if no country prefix)'}}, 'additionalProperties': False}, 'description': 'Phone numbers to verify, up to 100. Results are returned in the same order, each carrying its input index'}, 'policy': {'type': 'string', 'description': 'Policy name: strict shipping standard (default) or permissive'}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
Duvo MCP
Provides governed retail and CPG operations for cases, queues, approvals, automations, process documentation, integrations, and a…
Lovie Company Formation
Supports company formation and business administration with bank accounts, cards, invoicing, bookkeeping, accounting periods, and…
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…