By 37Design |

SnapPress 2.0.1 acaba de entrar en revisión y el cambio principal no es una nueva funcionalidad. Es la localización completa de los metadatos de la App Store en nueve idiomas, además de la fontanería técnica para mantenerla así. Este post es la historia detrás de esa versión.

El punto de partida

SnapPress se lanzó en marzo de 2026. La propuesta era sencilla: dejar de perder 30 minutos subiendo fotos una a una a WordPress y enviar 20 fotos a tu biblioteca multimedia en 10 segundos directamente desde el iPhone. La versión 2.0 a finales de abril añadió una capa freemium, la compra a perpetuidad y una Share Extension más robusta. Las ventas eran modestas pero reales, sobre todo bloggers japoneses de WordPress comprando directamente desde la App Store japonesa.

La sorpresa

Llegaron dos compras desde Australia. Sin publicidad. Sin prensa. Nadie a quien yo conociera. Los compradores habían encontrado SnapPress por su cuenta a través de la búsqueda de la App Store, sobre unos metadatos que ahora me doy cuenta de que estaban apenas localizados.

Ese fue el momento en que miré el panel de App Store Connect como lo haría alguien de fuera. Y vi algo que cambió la lista de prioridades del resto del día.

El problema

El campo de subtítulo de la App Store —esa línea de 30 caracteres bajo el nombre de la app que aparece en los resultados de búsqueda y al navegar por categorías— estaba vacío. En todos los idiomas. En cada uno de los nueve idiomas para los que la App Store ofrece un hueco de localización, incluidos inglés y japonés, los dos mercados con más usuarios actuales.

El subtítulo es uno de los campos con más peso en el ranking de búsqueda de la App Store. Apple le da una importancia indexable comparable a la del propio nombre de la app, y es la primera pieza de copy de apoyo que ve un usuario antes de tocar. Dejarlo en blanco significaba que SnapPress estaba renunciando a 30 caracteres de espacio para palabras clave por idioma, multiplicado por 9 idiomas, en cada consulta de búsqueda relevante.

Las palabras clave estaban parcialmente rellenas, pero solo en inglés y japonés, y faltaban términos clave como "bulk", "iPhone" y "blogger". La descripción solo estaba en inglés y japonés. El texto promocional estaba vacío en todas partes. Lo único totalmente poblado en todos los idiomas eran, irónicamente, las notas de versión configuradas anteriormente.

La solución

Dediqué un domingo por la tarde a escribir dos pequeños toolkits de línea de comandos.

El primero habla con la App Store Connect API para leer el estado actual de cada localización, generar una nueva versión de la app, enviar el subtítulo a través del endpoint appInfoLocalizations, enviar palabras clave / descripción / texto promocional / novedades / URL de soporte / URL de marketing a través del endpoint appStoreVersionLocalizations y adjuntar una build recién archivada. La autenticación se basa en una App Store Connect API key, así que no hay humano en el bucle ni avisos de doble factor a mitad del flujo.

El segundo habla con la Apple Search Ads Advanced API. Mismo patrón: JWT firmado con ES256, OAuth client credentials grant, token Bearer con la cabecera X-AP-Context. Las credenciales se gestionan con la CLI de 1Password, así que ningún secreto acaba en disco en texto plano. El resultado es que "crear una campaña", "listar palabras clave" o "obtener el informe de ayer" se convierten en comandos de una línea en lugar de clics en un panel.

Tiempo total para empujar los nuevos metadatos a los 9 idiomas: menos de tres minutos. Incluyendo el archivado y subida del binario para la nueva build: unos 10 minutos. Toda la versión 2.0.1 se montó y envió desde la línea de comandos.

Lo que ahora está en 9 idiomas

Los nuevos subtítulos, todos por debajo del límite de 30 caracteres:

  • English: Bulk Upload to WordPress Media (Subida masiva a WordPress Media)
  • Japanese: WordPressに写真を一括アップロード (Sube fotos a WordPress en bloque)
  • Spanish: Sube fotos a WordPress en masa (Sube fotos a WordPress en masa)
  • German: Foto-Upload für WordPress (Subida de fotos para WordPress)
  • Portuguese (Brazil): Upload em massa para WordPress (Subida masiva a WordPress)
  • French: Photos en masse vers WordPress (Fotos en masa hacia WordPress)
  • Korean: 워드프레스 사진 일괄 업로드 (Subida masiva de fotos a WordPress)
  • Italian: Foto in blocco su WordPress (Fotos en bloque a WordPress)
  • Traditional Chinese: 批次上傳照片到 WordPress (Subida por lotes de fotos a WordPress)

Cada idioma cuenta además con una descripción adaptada (alrededor de 1.400 caracteres en inglés y los idiomas europeos, comprimida de forma natural en japonés, coreano y chino), una cadena de palabras clave de 100 caracteres optimizada para el comportamiento de búsqueda de cada mercado, un bloque de texto promocional que referencia el precio en la moneda local y una línea de novedades que anuncia el despliegue multilingüe.

La lección

Si desarrollas apps para la App Store y no has comprobado personalmente tu campo de subtítulo en cada idioma en el que está publicada tu app, esto es tu recordatorio. Verificarlo lleva 5 minutos, y un subtítulo vacío es la pieza de espacio más barata que Apple te deja desperdiciar. Lo mismo aplica a las palabras clave, al texto promocional y al texto de novedades después de cada versión.

La otra lección es que tanto App Store Connect como Apple Search Ads tienen APIs completas, y son drásticamente más rápidas de operar que los paneles web una vez configurada la autenticación una sola vez. Si publicas más de unas pocas versiones al año, un script bash de 100 líneas envolviendo la API te ahorrará horas por release y eliminará los errores lentos pero reversibles que se cuelan cuando haces clic en 27 desplegables a mano.

Qué viene ahora

La revisión de Apple tarda entre 24 y 48 horas. Cuando 2.0.1 esté en vivo, la Fase 1 es una pequeña campaña de Apple Search Ads en Japón: presupuesto mensual de 7.500 yenes, coste por instalación objetivo en torno a 250 yenes, diez palabras clave japonesas empezando por "ワードプレス アプリ" y "wordpress 写真 アップロード". El objetivo no es escalar. El objetivo son datos reales de LTV y ROAS por usuario adquirido, para que la siguiente decisión de presupuesto se tome con números y no con optimismo.

Si esos números cuadran, la misma pipeline automatizada amplía la campaña a EE. UU. y luego a los siguientes dos o tres idiomas donde el tráfico de ASO se vea prometedor. Si los números no cuadran, el presupuesto se pausa, las capturas de pantalla y los precios reciben una mirada más de cerca y el experimento continúa con inputs más baratos.

La parte divertida de operar un producto pequeño en solitario es que puedes lanzar algo así en una tarde. La parte aburrida —y la que de verdad importa— es lo que pasa en los 60 días siguientes, cuando los datos empiezan a llegar.

Descarga SnapPress en la App Store →