[{"data":1,"prerenderedAt":1380},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fes\u002Fgaming\u002Fapple-search-ads-arquitectura-campana-funnel":13},{"i18nKey":4,"paths":5},"gaming-005-2026-06",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Fgaming\u002Fapple-search-ads-kampanya-mimarisini-funnel-olarak-kurmak","\u002Fen\u002Fgaming\u002Fapple-search-ads-funnel-architecture","\u002Fes\u002Fgaming\u002Farquitectura-campana-apple-search-ads-funnel","\u002Ffr\u002Fgaming\u002Fstrategie-campagne-apple-search-ads-entonnoir","\u002Fit\u002Fgaming\u002Fapple-search-ads-funnel-kampanya-mimarisi","\u002Fru\u002Fgaming\u002Fasa-funnel-campaign-architecture","\u002Ftr\u002Fgaming\u002Fapple-search-ads-kampanya-mimarisini-funnel-olarak-kurmak",{"_path":14,"_dir":15,"_draft":16,"_partial":16,"_locale":17,"title":18,"description":19,"publishedAt":20,"modifiedAt":20,"category":15,"i18nKey":4,"tags":21,"readingTime":27,"author":28,"body":29,"_type":1374,"_id":1375,"_source":1376,"_file":1377,"_stem":1378,"_extension":1379},"\u002Fes\u002Fgaming\u002Fapple-search-ads-arquitectura-campana-funnel","gaming",false,"","Apple Search Ads: Construir la Arquitectura de Campaña como Funnel","Flujo de presupuesto desde Discovery a Brand: cómo estructurar campañas broad match, competitor y exact como capas jerárquicas — arquitectura ASA.","2026-06-17",[22,23,24,25,26],"apple-search-ads","arquitectura-campana-asa","adquisicion-usuarios-mobile","estrategia-funnel-app","brand-defense",8,"Roibase",{"type":30,"children":31,"toc":1361},"root",[32,40,47,60,72,84,91,178,183,189,208,213,225,332,338,350,355,367,373,459,471,477,489,494,529,534,710,715,721,733,745,764,769,1023,1028,1034,1046,1057,1289,1294,1300,1312,1345,1350,1355],{"type":33,"tag":34,"props":35,"children":36},"element","p",{},[37],{"type":38,"value":39},"text","Estructurar campañas de Apple Search Ads no como silos aislados, sino como capas de funnel que transfieren presupuesto y señales entre sí, puede reducir el CPP entre 20-40% en growth de mobile games. La señal de usuario capturada en broad match de Discovery fluye hacia competitor exact, luego hacia brand defense — cada capa filtra a la siguiente. Después de iOS 18.2 en 2026, los datos de atribución de custom product page hacen obligatoria esta arquitectura: el enfoque single campaign oculta churn, la distribución de presupuesto permanece excesivamente manual.",{"type":33,"tag":41,"props":42,"children":44},"h2",{"id":43},"capa-discovery-por-qué-broad-match-debe-estar-en-la-parte-superior",[45],{"type":38,"value":46},"Capa Discovery: Por Qué Broad Match Debe Estar en la Parte Superior",{"type":33,"tag":34,"props":48,"children":49},{},[50,52,58],{"type":38,"value":51},"Las campañas de broad match son la capa discovery en la jerarquía de Apple Search Ads — existen para descubrir nuevos clusters de keywords, capturar señales de intent inesperadas. Pero la mayoría de estudios mantienen este modo abierto con mentalidad \"prueba todo, filtra después\", quemando 500-1000 dólares diarios con TTR (Tap-Through Rate) por debajo del 2.5%. El enfoque correcto: colocar broad match en la capa superior del funnel, pero controlar el umbral de CPP con una ",{"type":33,"tag":53,"props":54,"children":55},"strong",{},[56],{"type":38,"value":57},"rolling window de 3 días",{"type":38,"value":59},".",{"type":33,"tag":34,"props":61,"children":62},{},[63,65,70],{"type":38,"value":64},"En una campaña broad, el objetivo no es CPP, sino ",{"type":33,"tag":53,"props":66,"children":67},{},[68],{"type":38,"value":69},"ratio LTV\u002FCPI",{"type":38,"value":71}," — un ratio de 0.4x en los primeros 3 días es aceptable, porque esos datos van al data warehouse. El valor de esa información está aquí: el algoritmo Search Match te permite ver el competitive set de tu juego desde la perspectiva de Apple. Cuando lanzas broad match con \"puzzle game\", el algoritmo expone clusters de intent como \"merge\", \"match-3\", \"interior design\" — estos se convierten en candidatos para migración a la campaña competitor exact.",{"type":33,"tag":34,"props":73,"children":74},{},[75,77,82],{"type":38,"value":76},"Ajuste crítico: en la campaña broad, ",{"type":33,"tag":53,"props":78,"children":79},{},[80],{"type":38,"value":81},"NO incluyas negatives exactas",{"type":38,"value":83},". Las keywords negativas solo deben aplicarse a categorías irrelevantes (por ejemplo, \"poker\" si tu género de juego es diferente). Poner negatives exactas corta el loop de aprendizaje del algoritmo, mata la función de discovery.",{"type":33,"tag":85,"props":86,"children":88},"h3",{"id":87},"fórmula-de-techo-de-presupuesto-para-broad-match",[89],{"type":38,"value":90},"Fórmula de Techo de Presupuesto para Broad Match",{"type":33,"tag":92,"props":93,"children":97},"pre",{"className":94,"code":95,"language":96,"meta":17,"style":17},"language-python shiki shiki-themes github-dark","daily_budget_broad = (target_monthly_installs * 0.15) * target_CPI * 1.8\n# 0.15 → cuota discovery (%15)\n# 1.8 → multiplicador CPI broad (aceptable en 1.8x del exact)\n","python",[98],{"type":33,"tag":99,"props":100,"children":101},"code",{"__ignoreMap":17},[102,159,169],{"type":33,"tag":103,"props":104,"children":107},"span",{"class":105,"line":106},"line",1,[108,114,120,125,130,136,141,145,150,154],{"type":33,"tag":103,"props":109,"children":111},{"style":110},"--shiki-default:#E1E4E8",[112],{"type":38,"value":113},"daily_budget_broad ",{"type":33,"tag":103,"props":115,"children":117},{"style":116},"--shiki-default:#F97583",[118],{"type":38,"value":119},"=",{"type":33,"tag":103,"props":121,"children":122},{"style":110},[123],{"type":38,"value":124}," (target_monthly_installs ",{"type":33,"tag":103,"props":126,"children":127},{"style":116},[128],{"type":38,"value":129},"*",{"type":33,"tag":103,"props":131,"children":133},{"style":132},"--shiki-default:#79B8FF",[134],{"type":38,"value":135}," 0.15",{"type":33,"tag":103,"props":137,"children":138},{"style":110},[139],{"type":38,"value":140},") ",{"type":33,"tag":103,"props":142,"children":143},{"style":116},[144],{"type":38,"value":129},{"type":33,"tag":103,"props":146,"children":147},{"style":110},[148],{"type":38,"value":149}," target_CPI ",{"type":33,"tag":103,"props":151,"children":152},{"style":116},[153],{"type":38,"value":129},{"type":33,"tag":103,"props":155,"children":156},{"style":132},[157],{"type":38,"value":158}," 1.8\n",{"type":33,"tag":103,"props":160,"children":162},{"class":105,"line":161},2,[163],{"type":33,"tag":103,"props":164,"children":166},{"style":165},"--shiki-default:#6A737D",[167],{"type":38,"value":168},"# 0.15 → cuota discovery (%15)\n",{"type":33,"tag":103,"props":170,"children":172},{"class":105,"line":171},3,[173],{"type":33,"tag":103,"props":174,"children":175},{"style":165},[176],{"type":38,"value":177},"# 1.8 → multiplicador CPI broad (aceptable en 1.8x del exact)\n",{"type":33,"tag":34,"props":179,"children":180},{},[181],{"type":38,"value":182},"Ejemplo: objetivo mensual 10K installs, target CPI $2.5 → presupuesto broad $6,750\u002Fmes → ~$225 diarios. Si excedes este techo, broad se convierte en desperdicio, no en discovery.",{"type":33,"tag":41,"props":184,"children":186},{"id":185},"competitor-exact-capa-de-intent-hijacking",[187],{"type":38,"value":188},"Competitor Exact: Capa de Intent Hijacking",{"type":33,"tag":34,"props":190,"children":191},{},[192,194,199,201,206],{"type":38,"value":193},"Dentro de los keywords que emerge de broad match, si encuentras ",{"type":33,"tag":53,"props":195,"children":196},{},[197],{"type":38,"value":198},"nombres de juegos rivales",{"type":38,"value":200}," y ",{"type":33,"tag":53,"props":202,"children":203},{},[204],{"type":38,"value":205},"terms de marca rival",{"type":38,"value":207},", deben migrarse a la segunda capa — campaña competitor exact. La lógica es simple: hijackear la awareness de brand del rival. Un usuario busca \"Candy Crush\", tú muestras tu puzzle game — el intent ya está educado, solo ofreces una alternativa.",{"type":33,"tag":34,"props":209,"children":210},{},[211],{"type":38,"value":212},"El TTR de competitor exact es 30-50% más bajo que brand exact (datos propios de Apple), pero el CPP típicamente es 15-25% más barato porque hay menos competencia bid en la keyword del rival. Lo importante: la estrategia de custom product page cambia en competitor. Si el rival es un juego de \"time management\", tu creative en CPP debe comunicar \"menos tiempo de espera\" — sin este posicionamiento diferencial, el ROI de competitor exact se vuelve negativo.",{"type":33,"tag":34,"props":214,"children":215},{},[216,218,223],{"type":38,"value":217},"El error en selección de keywords competitor: tomar los top-20 del ranking de top-grossing. El método correcto: ",{"type":33,"tag":53,"props":219,"children":220},{},[221],{"type":38,"value":222},"análisis de audience overlap",{"type":38,"value":224}," — extraer demographics de usuarios del rival desde Sensor Tower o data.ai, seleccionar aquellos con 60%+ overlap con los tuyos. Si tienes un hyper-casual, tomar keywords de match-3 legend es desperdicio — las motivaciones core del audience son diferentes.",{"type":33,"tag":226,"props":227,"children":228},"table",{},[229,258],{"type":33,"tag":230,"props":231,"children":232},"thead",{},[233],{"type":33,"tag":234,"props":235,"children":236},"tr",{},[237,243,248,253],{"type":33,"tag":238,"props":239,"children":240},"th",{},[241],{"type":38,"value":242},"Tipo de Competitor",{"type":33,"tag":238,"props":244,"children":245},{},[246],{"type":38,"value":247},"TTR Benchmark",{"type":33,"tag":238,"props":249,"children":250},{},[251],{"type":38,"value":252},"CPP vs Brand Delta",{"type":33,"tag":238,"props":254,"children":255},{},[256],{"type":38,"value":257},"Uso de CPP",{"type":33,"tag":259,"props":260,"children":261},"tbody",{},[262,286,309],{"type":33,"tag":234,"props":263,"children":264},{},[265,271,276,281],{"type":33,"tag":266,"props":267,"children":268},"td",{},[269],{"type":38,"value":270},"Competidor directo (mismo subgénero)",{"type":33,"tag":266,"props":272,"children":273},{},[274],{"type":38,"value":275},"3.5-5%",{"type":33,"tag":266,"props":277,"children":278},{},[279],{"type":38,"value":280},"+%15-20",{"type":33,"tag":266,"props":282,"children":283},{},[284],{"type":38,"value":285},"Sí, alta prioridad",{"type":33,"tag":234,"props":287,"children":288},{},[289,294,299,304],{"type":33,"tag":266,"props":290,"children":291},{},[292],{"type":38,"value":293},"Género adyacente (loop core similar)",{"type":33,"tag":266,"props":295,"children":296},{},[297],{"type":38,"value":298},"2.8-4%",{"type":33,"tag":266,"props":300,"children":301},{},[302],{"type":38,"value":303},"+%25-35",{"type":33,"tag":266,"props":305,"children":306},{},[307],{"type":38,"value":308},"Sí, testea",{"type":33,"tag":234,"props":310,"children":311},{},[312,317,322,327],{"type":33,"tag":266,"props":313,"children":314},{},[315],{"type":38,"value":316},"Líder de categoría (mecánicas distintas)",{"type":33,"tag":266,"props":318,"children":319},{},[320],{"type":38,"value":321},"1.5-2.5%",{"type":33,"tag":266,"props":323,"children":324},{},[325],{"type":38,"value":326},"+%50+",{"type":33,"tag":266,"props":328,"children":329},{},[330],{"type":38,"value":331},"No, riesgo de waste",{"type":33,"tag":41,"props":333,"children":335},{"id":334},"brand-defense-por-qué-proteger-tu-nombre-requiere-campaña-separada",[336],{"type":38,"value":337},"Brand Defense: Por Qué Proteger Tu Nombre Requiere Campaña Separada",{"type":33,"tag":34,"props":339,"children":340},{},[341,343,348],{"type":38,"value":342},"La campaña brand exact — tu nombre de juego, nombre del studio — es la capa inferior del funnel y el ",{"type":33,"tag":53,"props":344,"children":345},{},[346],{"type":38,"value":347},"layer de conversión más barato",{"type":38,"value":349},". En Apple Search Ads, el CPT (Cost Per Tap) para brand típicamente es $0.10-0.30, mientras que broad match está en $1.5-3. Sin embargo, muchos estudios saltan brand porque piensan \"los usuarios que ya nos buscan descargan orgánico\" — esto significa perder 12-18% de installs.",{"type":33,"tag":34,"props":351,"children":352},{},[353],{"type":38,"value":354},"¿Por qué? Porque los rivales también hacen bid en tu brand keyword. Eres dueño de \"Puzzle Master\", pero un rival con \"Match Kingdom\" hace bid en tu brand search por $2. El algoritmo de auction de Apple combina relevancia + bid — si no ofertas, a veces pierde tu rival. Brand defense campaign existe para prevenir este hijack.",{"type":33,"tag":34,"props":356,"children":357},{},[358,360,365],{"type":38,"value":359},"En campaña brand, TTR está entre 18-35% — muy alto, porque el intent es definitivo. Lo que debes hacer en esta capa: ",{"type":33,"tag":53,"props":361,"children":362},{},[363],{"type":38,"value":364},"exact match only",{"type":38,"value":366},", bid de $0.5-1 (suficiente para outbid a rivales), y el creative de CPP debe ser \"nueva temporada\" o \"actualización\" — necesitas dar una razón fresca a quien ya conoce el juego.",{"type":33,"tag":85,"props":368,"children":370},{"id":369},"estrategia-de-bid-para-campaña-brand",[371],{"type":38,"value":372},"Estrategia de Bid para Campaña Brand",{"type":33,"tag":92,"props":374,"children":376},{"className":94,"code":375,"language":96,"meta":17,"style":17},"if competitor_bid_on_brand:\n    brand_bid = competitor_avg_bid * 1.3  # Supera al rival\nelse:\n    brand_bid = 0.3  # Bid mínimo, blend orgánico + paid\n",[377],{"type":33,"tag":99,"props":378,"children":379},{"__ignoreMap":17},[380,393,424,437],{"type":33,"tag":103,"props":381,"children":382},{"class":105,"line":106},[383,388],{"type":33,"tag":103,"props":384,"children":385},{"style":116},[386],{"type":38,"value":387},"if",{"type":33,"tag":103,"props":389,"children":390},{"style":110},[391],{"type":38,"value":392}," competitor_bid_on_brand:\n",{"type":33,"tag":103,"props":394,"children":395},{"class":105,"line":161},[396,401,405,410,414,419],{"type":33,"tag":103,"props":397,"children":398},{"style":110},[399],{"type":38,"value":400},"    brand_bid ",{"type":33,"tag":103,"props":402,"children":403},{"style":116},[404],{"type":38,"value":119},{"type":33,"tag":103,"props":406,"children":407},{"style":110},[408],{"type":38,"value":409}," competitor_avg_bid ",{"type":33,"tag":103,"props":411,"children":412},{"style":116},[413],{"type":38,"value":129},{"type":33,"tag":103,"props":415,"children":416},{"style":132},[417],{"type":38,"value":418}," 1.3",{"type":33,"tag":103,"props":420,"children":421},{"style":165},[422],{"type":38,"value":423},"  # Supera al rival\n",{"type":33,"tag":103,"props":425,"children":426},{"class":105,"line":171},[427,432],{"type":33,"tag":103,"props":428,"children":429},{"style":116},[430],{"type":38,"value":431},"else",{"type":33,"tag":103,"props":433,"children":434},{"style":110},[435],{"type":38,"value":436},":\n",{"type":33,"tag":103,"props":438,"children":440},{"class":105,"line":439},4,[441,445,449,454],{"type":33,"tag":103,"props":442,"children":443},{"style":110},[444],{"type":38,"value":400},{"type":33,"tag":103,"props":446,"children":447},{"style":116},[448],{"type":38,"value":119},{"type":33,"tag":103,"props":450,"children":451},{"style":132},[452],{"type":38,"value":453}," 0.3",{"type":33,"tag":103,"props":455,"children":456},{"style":165},[457],{"type":38,"value":458},"  # Bid mínimo, blend orgánico + paid\n",{"type":33,"tag":34,"props":460,"children":461},{},[462,464,469],{"type":38,"value":463},"En campaña brand, ",{"type":33,"tag":53,"props":465,"children":466},{},[467],{"type":38,"value":468},"Search Match debe estar desactivado",{"type":38,"value":470}," — el algoritmo a veces expande brand terms a keywords no relacionados, creando leaks de presupuesto.",{"type":33,"tag":41,"props":472,"children":474},{"id":473},"flujo-de-presupuesto-entre-capas-arquitectura-waterfall",[475],{"type":38,"value":476},"Flujo de Presupuesto Entre Capas: Arquitectura Waterfall",{"type":33,"tag":34,"props":478,"children":479},{},[480,482,487],{"type":38,"value":481},"Gestionar tres capas con presupuestos aislados vs. establecer una ",{"type":33,"tag":53,"props":483,"children":484},{},[485],{"type":38,"value":486},"asignación de presupuesto waterfall",{"type":38,"value":488}," aumenta ROAS 25-40%. La lógica: cada capa funded hasta umbral de performance, el overflow sube a la capa siguiente — así equilibras investment en discovery con conversión efficiency.",{"type":33,"tag":34,"props":490,"children":491},{},[492],{"type":38,"value":493},"Reglas waterfall:",{"type":33,"tag":495,"props":496,"children":497},"ol",{},[498,509,519],{"type":33,"tag":499,"props":500,"children":501},"li",{},[502,507],{"type":33,"tag":53,"props":503,"children":504},{},[505],{"type":38,"value":506},"Brand exact siempre completamente financiado",{"type":38,"value":508}," — si ROI es positivo, sin límite presupuestario",{"type":33,"tag":499,"props":510,"children":511},{},[512,517],{"type":33,"tag":53,"props":513,"children":514},{},[515],{"type":38,"value":516},"Competitor exact → feed a brand",{"type":38,"value":518}," — si LTV\u002FCPI > 1.2, overflow va a testing de nuevos keywords competitor, no a brand",{"type":33,"tag":499,"props":520,"children":521},{},[522,527],{"type":33,"tag":53,"props":523,"children":524},{},[525],{"type":38,"value":526},"Broad match → cap presupuestario 15%",{"type":38,"value":528}," — nunca más del 15% del presupuesto ASA total a broad, sino el funnel es top-heavy",{"type":33,"tag":34,"props":530,"children":531},{},[532],{"type":38,"value":533},"Con Apple Search Ads API puedes automatizar esto (v5.0 de 2026 tiene endpoint budget adjustment):",{"type":33,"tag":92,"props":535,"children":539},{"className":536,"code":537,"language":538,"meta":17,"style":17},"language-json shiki shiki-themes github-dark","{\n  \"campaignId\": 123456,\n  \"budgetAdjustment\": {\n    \"type\": \"waterfall\",\n    \"source\": \"competitor_exact\",\n    \"condition\": \"LTV_CPI > 1.5\",\n    \"action\": \"reallocate_to_brand\",\n    \"amount\": \"overflow\"\n  }\n}\n","json",[540],{"type":33,"tag":99,"props":541,"children":542},{"__ignoreMap":17},[543,551,574,587,609,631,653,675,692,701],{"type":33,"tag":103,"props":544,"children":545},{"class":105,"line":106},[546],{"type":33,"tag":103,"props":547,"children":548},{"style":110},[549],{"type":38,"value":550},"{\n",{"type":33,"tag":103,"props":552,"children":553},{"class":105,"line":161},[554,559,564,569],{"type":33,"tag":103,"props":555,"children":556},{"style":132},[557],{"type":38,"value":558},"  \"campaignId\"",{"type":33,"tag":103,"props":560,"children":561},{"style":110},[562],{"type":38,"value":563},": ",{"type":33,"tag":103,"props":565,"children":566},{"style":132},[567],{"type":38,"value":568},"123456",{"type":33,"tag":103,"props":570,"children":571},{"style":110},[572],{"type":38,"value":573},",\n",{"type":33,"tag":103,"props":575,"children":576},{"class":105,"line":171},[577,582],{"type":33,"tag":103,"props":578,"children":579},{"style":132},[580],{"type":38,"value":581},"  \"budgetAdjustment\"",{"type":33,"tag":103,"props":583,"children":584},{"style":110},[585],{"type":38,"value":586},": {\n",{"type":33,"tag":103,"props":588,"children":589},{"class":105,"line":439},[590,595,599,605],{"type":33,"tag":103,"props":591,"children":592},{"style":132},[593],{"type":38,"value":594},"    \"type\"",{"type":33,"tag":103,"props":596,"children":597},{"style":110},[598],{"type":38,"value":563},{"type":33,"tag":103,"props":600,"children":602},{"style":601},"--shiki-default:#9ECBFF",[603],{"type":38,"value":604},"\"waterfall\"",{"type":33,"tag":103,"props":606,"children":607},{"style":110},[608],{"type":38,"value":573},{"type":33,"tag":103,"props":610,"children":612},{"class":105,"line":611},5,[613,618,622,627],{"type":33,"tag":103,"props":614,"children":615},{"style":132},[616],{"type":38,"value":617},"    \"source\"",{"type":33,"tag":103,"props":619,"children":620},{"style":110},[621],{"type":38,"value":563},{"type":33,"tag":103,"props":623,"children":624},{"style":601},[625],{"type":38,"value":626},"\"competitor_exact\"",{"type":33,"tag":103,"props":628,"children":629},{"style":110},[630],{"type":38,"value":573},{"type":33,"tag":103,"props":632,"children":634},{"class":105,"line":633},6,[635,640,644,649],{"type":33,"tag":103,"props":636,"children":637},{"style":132},[638],{"type":38,"value":639},"    \"condition\"",{"type":33,"tag":103,"props":641,"children":642},{"style":110},[643],{"type":38,"value":563},{"type":33,"tag":103,"props":645,"children":646},{"style":601},[647],{"type":38,"value":648},"\"LTV_CPI > 1.5\"",{"type":33,"tag":103,"props":650,"children":651},{"style":110},[652],{"type":38,"value":573},{"type":33,"tag":103,"props":654,"children":656},{"class":105,"line":655},7,[657,662,666,671],{"type":33,"tag":103,"props":658,"children":659},{"style":132},[660],{"type":38,"value":661},"    \"action\"",{"type":33,"tag":103,"props":663,"children":664},{"style":110},[665],{"type":38,"value":563},{"type":33,"tag":103,"props":667,"children":668},{"style":601},[669],{"type":38,"value":670},"\"reallocate_to_brand\"",{"type":33,"tag":103,"props":672,"children":673},{"style":110},[674],{"type":38,"value":573},{"type":33,"tag":103,"props":676,"children":677},{"class":105,"line":27},[678,683,687],{"type":33,"tag":103,"props":679,"children":680},{"style":132},[681],{"type":38,"value":682},"    \"amount\"",{"type":33,"tag":103,"props":684,"children":685},{"style":110},[686],{"type":38,"value":563},{"type":33,"tag":103,"props":688,"children":689},{"style":601},[690],{"type":38,"value":691},"\"overflow\"\n",{"type":33,"tag":103,"props":693,"children":695},{"class":105,"line":694},9,[696],{"type":33,"tag":103,"props":697,"children":698},{"style":110},[699],{"type":38,"value":700},"  }\n",{"type":33,"tag":103,"props":702,"children":704},{"class":105,"line":703},10,[705],{"type":33,"tag":103,"props":706,"children":707},{"style":110},[708],{"type":38,"value":709},"}\n",{"type":33,"tag":34,"props":711,"children":712},{},[713],{"type":38,"value":714},"Ejecutar este endpoint diariamente con BigQuery + Airflow automatiza el flujo presupuestario. Sin esto, los ajustes manuales cada 3 días reaccionan lentamente, causando opportunity loss de 8-12%.",{"type":33,"tag":41,"props":716,"children":718},{"id":717},"estrategia-de-negative-keywords-prevenir-salpicaduras-entre-capas",[719],{"type":38,"value":720},"Estrategia de Negative Keywords: Prevenir Salpicaduras Entre Capas",{"type":33,"tag":34,"props":722,"children":723},{},[724,726,731],{"type":38,"value":725},"Cuando corres broad, competitor y brand como campañas separadas, hay ",{"type":33,"tag":53,"props":727,"children":728},{},[729],{"type":38,"value":730},"riesgo de keyword overlap",{"type":38,"value":732}," — el mismo search term activa las tres, compitiendo contigo mismo en bid. El auction de Apple no muestra múltiples campañas del mismo advertiser, pero causa waste: el bid más alto gana, los otros pierden impression pero reservan presupuesto.",{"type":33,"tag":34,"props":734,"children":735},{},[736,738,743],{"type":38,"value":737},"Solución: ",{"type":33,"tag":53,"props":739,"children":740},{},[741],{"type":38,"value":742},"cross-campaign negative sync",{"type":38,"value":744},". Así:",{"type":33,"tag":746,"props":747,"children":748},"ul",{},[749,754,759],{"type":33,"tag":499,"props":750,"children":751},{},[752],{"type":38,"value":753},"Cada keyword en brand exact → negative exact en competitor exact",{"type":33,"tag":499,"props":755,"children":756},{},[757],{"type":38,"value":758},"Cada keyword en competitor exact → negative phrase en broad match",{"type":33,"tag":499,"props":760,"children":761},{},[762],{"type":38,"value":763},"Keyword de broad que convierte → después 14 días, migra a competitor o brand, agrega negative a broad",{"type":33,"tag":34,"props":765,"children":766},{},[767],{"type":38,"value":768},"Esta sincronización no puede hacerse manualmente (40 horas\u002Fsemana en account de 2000+ keywords). Script Python o herramienta de ASA automation es obligatorio:",{"type":33,"tag":92,"props":770,"children":772},{"className":94,"code":771,"language":96,"meta":17,"style":17},"# Pseudo-código\nbrand_kws = get_keywords(campaign_type=\"brand_exact\")\ncomp_kws = get_keywords(campaign_type=\"competitor_exact\")\n\nfor kw in brand_kws:\n    add_negative(campaign=\"competitor_exact\", keyword=kw, match=\"exact\")\n\nfor kw in comp_kws:\n    add_negative(campaign=\"broad_match\", keyword=kw, match=\"phrase\")\n",[773],{"type":33,"tag":99,"props":774,"children":775},{"__ignoreMap":17},[776,784,821,853,862,885,943,950,970],{"type":33,"tag":103,"props":777,"children":778},{"class":105,"line":106},[779],{"type":33,"tag":103,"props":780,"children":781},{"style":165},[782],{"type":38,"value":783},"# Pseudo-código\n",{"type":33,"tag":103,"props":785,"children":786},{"class":105,"line":161},[787,792,796,801,807,811,816],{"type":33,"tag":103,"props":788,"children":789},{"style":110},[790],{"type":38,"value":791},"brand_kws ",{"type":33,"tag":103,"props":793,"children":794},{"style":116},[795],{"type":38,"value":119},{"type":33,"tag":103,"props":797,"children":798},{"style":110},[799],{"type":38,"value":800}," get_keywords(",{"type":33,"tag":103,"props":802,"children":804},{"style":803},"--shiki-default:#FFAB70",[805],{"type":38,"value":806},"campaign_type",{"type":33,"tag":103,"props":808,"children":809},{"style":116},[810],{"type":38,"value":119},{"type":33,"tag":103,"props":812,"children":813},{"style":601},[814],{"type":38,"value":815},"\"brand_exact\"",{"type":33,"tag":103,"props":817,"children":818},{"style":110},[819],{"type":38,"value":820},")\n",{"type":33,"tag":103,"props":822,"children":823},{"class":105,"line":171},[824,829,833,837,841,845,849],{"type":33,"tag":103,"props":825,"children":826},{"style":110},[827],{"type":38,"value":828},"comp_kws ",{"type":33,"tag":103,"props":830,"children":831},{"style":116},[832],{"type":38,"value":119},{"type":33,"tag":103,"props":834,"children":835},{"style":110},[836],{"type":38,"value":800},{"type":33,"tag":103,"props":838,"children":839},{"style":803},[840],{"type":38,"value":806},{"type":33,"tag":103,"props":842,"children":843},{"style":116},[844],{"type":38,"value":119},{"type":33,"tag":103,"props":846,"children":847},{"style":601},[848],{"type":38,"value":626},{"type":33,"tag":103,"props":850,"children":851},{"style":110},[852],{"type":38,"value":820},{"type":33,"tag":103,"props":854,"children":855},{"class":105,"line":439},[856],{"type":33,"tag":103,"props":857,"children":859},{"emptyLinePlaceholder":858},true,[860],{"type":38,"value":861},"\n",{"type":33,"tag":103,"props":863,"children":864},{"class":105,"line":611},[865,870,875,880],{"type":33,"tag":103,"props":866,"children":867},{"style":116},[868],{"type":38,"value":869},"for",{"type":33,"tag":103,"props":871,"children":872},{"style":110},[873],{"type":38,"value":874}," kw ",{"type":33,"tag":103,"props":876,"children":877},{"style":116},[878],{"type":38,"value":879},"in",{"type":33,"tag":103,"props":881,"children":882},{"style":110},[883],{"type":38,"value":884}," brand_kws:\n",{"type":33,"tag":103,"props":886,"children":887},{"class":105,"line":633},[888,893,898,902,906,911,916,920,925,930,934,939],{"type":33,"tag":103,"props":889,"children":890},{"style":110},[891],{"type":38,"value":892},"    add_negative(",{"type":33,"tag":103,"props":894,"children":895},{"style":803},[896],{"type":38,"value":897},"campaign",{"type":33,"tag":103,"props":899,"children":900},{"style":116},[901],{"type":38,"value":119},{"type":33,"tag":103,"props":903,"children":904},{"style":601},[905],{"type":38,"value":626},{"type":33,"tag":103,"props":907,"children":908},{"style":110},[909],{"type":38,"value":910},", ",{"type":33,"tag":103,"props":912,"children":913},{"style":803},[914],{"type":38,"value":915},"keyword",{"type":33,"tag":103,"props":917,"children":918},{"style":116},[919],{"type":38,"value":119},{"type":33,"tag":103,"props":921,"children":922},{"style":110},[923],{"type":38,"value":924},"kw, ",{"type":33,"tag":103,"props":926,"children":927},{"style":803},[928],{"type":38,"value":929},"match",{"type":33,"tag":103,"props":931,"children":932},{"style":116},[933],{"type":38,"value":119},{"type":33,"tag":103,"props":935,"children":936},{"style":601},[937],{"type":38,"value":938},"\"exact\"",{"type":33,"tag":103,"props":940,"children":941},{"style":110},[942],{"type":38,"value":820},{"type":33,"tag":103,"props":944,"children":945},{"class":105,"line":655},[946],{"type":33,"tag":103,"props":947,"children":948},{"emptyLinePlaceholder":858},[949],{"type":38,"value":861},{"type":33,"tag":103,"props":951,"children":952},{"class":105,"line":27},[953,957,961,965],{"type":33,"tag":103,"props":954,"children":955},{"style":116},[956],{"type":38,"value":869},{"type":33,"tag":103,"props":958,"children":959},{"style":110},[960],{"type":38,"value":874},{"type":33,"tag":103,"props":962,"children":963},{"style":116},[964],{"type":38,"value":879},{"type":33,"tag":103,"props":966,"children":967},{"style":110},[968],{"type":38,"value":969}," comp_kws:\n",{"type":33,"tag":103,"props":971,"children":972},{"class":105,"line":694},[973,977,981,985,990,994,998,1002,1006,1010,1014,1019],{"type":33,"tag":103,"props":974,"children":975},{"style":110},[976],{"type":38,"value":892},{"type":33,"tag":103,"props":978,"children":979},{"style":803},[980],{"type":38,"value":897},{"type":33,"tag":103,"props":982,"children":983},{"style":116},[984],{"type":38,"value":119},{"type":33,"tag":103,"props":986,"children":987},{"style":601},[988],{"type":38,"value":989},"\"broad_match\"",{"type":33,"tag":103,"props":991,"children":992},{"style":110},[993],{"type":38,"value":910},{"type":33,"tag":103,"props":995,"children":996},{"style":803},[997],{"type":38,"value":915},{"type":33,"tag":103,"props":999,"children":1000},{"style":116},[1001],{"type":38,"value":119},{"type":33,"tag":103,"props":1003,"children":1004},{"style":110},[1005],{"type":38,"value":924},{"type":33,"tag":103,"props":1007,"children":1008},{"style":803},[1009],{"type":38,"value":929},{"type":33,"tag":103,"props":1011,"children":1012},{"style":116},[1013],{"type":38,"value":119},{"type":33,"tag":103,"props":1015,"children":1016},{"style":601},[1017],{"type":38,"value":1018},"\"phrase\"",{"type":33,"tag":103,"props":1020,"children":1021},{"style":110},[1022],{"type":38,"value":820},{"type":33,"tag":34,"props":1024,"children":1025},{},[1026],{"type":38,"value":1027},"Sin negative sync, el CPI promedio sube 18-25% — no es waste sino ineficiencia. El costo de intentar alcanzar al mismo usuario desde tres campañas diferentes.",{"type":33,"tag":41,"props":1029,"children":1031},{"id":1030},"trampa-de-attribution-en-arquitectura-funnel",[1032],{"type":38,"value":1033},"Trampa de Attribution en Arquitectura Funnel",{"type":33,"tag":34,"props":1035,"children":1036},{},[1037,1039,1044],{"type":38,"value":1038},"Apple Search Ads tiene ventana de attribution de 30 días — si el usuario toca el ad y descarga dentro de 30 días, se atribuye a esa campaña. Pero ",{"type":33,"tag":53,"props":1040,"children":1041},{},[1042],{"type":38,"value":1043},"la realidad multi-touch",{"type":38,"value":1045},": usuario vio broad match, no descargó; 5 días después buscó en brand exact, descargó — attribution va a brand, la contribución de broad desaparece. Esta situación crea tendencia a cortar presupuesto broad, matando discovery.",{"type":33,"tag":34,"props":1047,"children":1048},{},[1049,1050,1055],{"type":38,"value":737},{"type":33,"tag":53,"props":1051,"children":1052},{},[1053],{"type":38,"value":1054},"attribution modeling asistida",{"type":38,"value":1056},". Extraer impression + tap data del API de Apple Search Ads, armar modelo multi-touch attribution en BigQuery. Con Markov chain o Shapley value, asignas contribución a cada campaña. Ejemplo finding: broad match en 30 días generó 120 installs directos pero contribuyó a 840 conversiones asistidas — valor real es 7x.",{"type":33,"tag":92,"props":1058,"children":1062},{"className":1059,"code":1060,"language":1061,"meta":17,"style":17},"language-sql shiki shiki-themes github-dark","-- Ejemplo multi-touch en BigQuery\nWITH touch_chain AS (\n  SELECT user_id, campaign_type, timestamp,\n    LEAD(campaign_type) OVER (PARTITION BY user_id ORDER BY timestamp) as next_touch\n  FROM asa_events\n)\nSELECT campaign_type, COUNT(*) as assisted_conversions\nFROM touch_chain\nWHERE next_touch = 'brand_exact'\nGROUP BY campaign_type;\n","sql",[1063],{"type":33,"tag":99,"props":1064,"children":1065},{"__ignoreMap":17},[1066,1074,1097,1119,1181,1194,1201,1241,1254,1276],{"type":33,"tag":103,"props":1067,"children":1068},{"class":105,"line":106},[1069],{"type":33,"tag":103,"props":1070,"children":1071},{"style":165},[1072],{"type":38,"value":1073},"-- Ejemplo multi-touch en BigQuery\n",{"type":33,"tag":103,"props":1075,"children":1076},{"class":105,"line":161},[1077,1082,1087,1092],{"type":33,"tag":103,"props":1078,"children":1079},{"style":116},[1080],{"type":38,"value":1081},"WITH",{"type":33,"tag":103,"props":1083,"children":1084},{"style":110},[1085],{"type":38,"value":1086}," touch_chain ",{"type":33,"tag":103,"props":1088,"children":1089},{"style":116},[1090],{"type":38,"value":1091},"AS",{"type":33,"tag":103,"props":1093,"children":1094},{"style":110},[1095],{"type":38,"value":1096}," (\n",{"type":33,"tag":103,"props":1098,"children":1099},{"class":105,"line":171},[1100,1105,1110,1115],{"type":33,"tag":103,"props":1101,"children":1102},{"style":116},[1103],{"type":38,"value":1104},"  SELECT",{"type":33,"tag":103,"props":1106,"children":1107},{"style":110},[1108],{"type":38,"value":1109}," user_id, campaign_type, ",{"type":33,"tag":103,"props":1111,"children":1112},{"style":116},[1113],{"type":38,"value":1114},"timestamp",{"type":33,"tag":103,"props":1116,"children":1117},{"style":110},[1118],{"type":38,"value":573},{"type":33,"tag":103,"props":1120,"children":1121},{"class":105,"line":439},[1122,1127,1132,1137,1142,1147,1152,1157,1162,1167,1171,1176],{"type":33,"tag":103,"props":1123,"children":1124},{"style":132},[1125],{"type":38,"value":1126},"    LEAD",{"type":33,"tag":103,"props":1128,"children":1129},{"style":110},[1130],{"type":38,"value":1131},"(campaign_type) ",{"type":33,"tag":103,"props":1133,"children":1134},{"style":116},[1135],{"type":38,"value":1136},"OVER",{"type":33,"tag":103,"props":1138,"children":1139},{"style":110},[1140],{"type":38,"value":1141}," (",{"type":33,"tag":103,"props":1143,"children":1144},{"style":116},[1145],{"type":38,"value":1146},"PARTITION",{"type":33,"tag":103,"props":1148,"children":1149},{"style":116},[1150],{"type":38,"value":1151}," BY",{"type":33,"tag":103,"props":1153,"children":1154},{"style":110},[1155],{"type":38,"value":1156}," user_id ",{"type":33,"tag":103,"props":1158,"children":1159},{"style":116},[1160],{"type":38,"value":1161},"ORDER BY",{"type":33,"tag":103,"props":1163,"children":1164},{"style":116},[1165],{"type":38,"value":1166}," timestamp",{"type":33,"tag":103,"props":1168,"children":1169},{"style":110},[1170],{"type":38,"value":140},{"type":33,"tag":103,"props":1172,"children":1173},{"style":116},[1174],{"type":38,"value":1175},"as",{"type":33,"tag":103,"props":1177,"children":1178},{"style":110},[1179],{"type":38,"value":1180}," next_touch\n",{"type":33,"tag":103,"props":1182,"children":1183},{"class":105,"line":611},[1184,1189],{"type":33,"tag":103,"props":1185,"children":1186},{"style":116},[1187],{"type":38,"value":1188},"  FROM",{"type":33,"tag":103,"props":1190,"children":1191},{"style":110},[1192],{"type":38,"value":1193}," asa_events\n",{"type":33,"tag":103,"props":1195,"children":1196},{"class":105,"line":633},[1197],{"type":33,"tag":103,"props":1198,"children":1199},{"style":110},[1200],{"type":38,"value":820},{"type":33,"tag":103,"props":1202,"children":1203},{"class":105,"line":655},[1204,1209,1214,1219,1224,1228,1232,1236],{"type":33,"tag":103,"props":1205,"children":1206},{"style":116},[1207],{"type":38,"value":1208},"SELECT",{"type":33,"tag":103,"props":1210,"children":1211},{"style":110},[1212],{"type":38,"value":1213}," campaign_type, ",{"type":33,"tag":103,"props":1215,"children":1216},{"style":132},[1217],{"type":38,"value":1218},"COUNT",{"type":33,"tag":103,"props":1220,"children":1221},{"style":110},[1222],{"type":38,"value":1223},"(",{"type":33,"tag":103,"props":1225,"children":1226},{"style":116},[1227],{"type":38,"value":129},{"type":33,"tag":103,"props":1229,"children":1230},{"style":110},[1231],{"type":38,"value":140},{"type":33,"tag":103,"props":1233,"children":1234},{"style":116},[1235],{"type":38,"value":1175},{"type":33,"tag":103,"props":1237,"children":1238},{"style":110},[1239],{"type":38,"value":1240}," assisted_conversions\n",{"type":33,"tag":103,"props":1242,"children":1243},{"class":105,"line":27},[1244,1249],{"type":33,"tag":103,"props":1245,"children":1246},{"style":116},[1247],{"type":38,"value":1248},"FROM",{"type":33,"tag":103,"props":1250,"children":1251},{"style":110},[1252],{"type":38,"value":1253}," touch_chain\n",{"type":33,"tag":103,"props":1255,"children":1256},{"class":105,"line":694},[1257,1262,1267,1271],{"type":33,"tag":103,"props":1258,"children":1259},{"style":116},[1260],{"type":38,"value":1261},"WHERE",{"type":33,"tag":103,"props":1263,"children":1264},{"style":110},[1265],{"type":38,"value":1266}," next_touch ",{"type":33,"tag":103,"props":1268,"children":1269},{"style":116},[1270],{"type":38,"value":119},{"type":33,"tag":103,"props":1272,"children":1273},{"style":601},[1274],{"type":38,"value":1275}," 'brand_exact'\n",{"type":33,"tag":103,"props":1277,"children":1278},{"class":105,"line":703},[1279,1284],{"type":33,"tag":103,"props":1280,"children":1281},{"style":116},[1282],{"type":38,"value":1283},"GROUP BY",{"type":33,"tag":103,"props":1285,"children":1286},{"style":110},[1287],{"type":38,"value":1288}," campaign_type;\n",{"type":33,"tag":34,"props":1290,"children":1291},{},[1292],{"type":38,"value":1293},"Sin estos datos, broad parece \"caro e ineficiente\" y se corta — el funnel colapsa.",{"type":33,"tag":41,"props":1295,"children":1297},{"id":1296},"mantener-viva-la-arquitectura-de-campaña",[1298],{"type":38,"value":1299},"Mantener Viva la Arquitectura de Campaña",{"type":33,"tag":34,"props":1301,"children":1302},{},[1303,1305,1310],{"type":38,"value":1304},"La arquitectura funnel de Apple Search Ads no es estática — nuevos keywords cada semana, landscape competitivo cada mes, trends de género cada trimestre. Para mantenerla viva se necesita ",{"type":33,"tag":53,"props":1306,"children":1307},{},[1308],{"type":38,"value":1309},"ciclo de review de 3 semanas",{"type":38,"value":1311},":",{"type":33,"tag":495,"props":1313,"children":1314},{},[1315,1325,1335],{"type":33,"tag":499,"props":1316,"children":1317},{},[1318,1323],{"type":33,"tag":53,"props":1319,"children":1320},{},[1321],{"type":38,"value":1322},"Semana 1-2:",{"type":38,"value":1324}," Search Match report de broad → discovery de nuevos keyword clusters",{"type":33,"tag":499,"props":1326,"children":1327},{},[1328,1333],{"type":33,"tag":53,"props":1329,"children":1330},{},[1331],{"type":38,"value":1332},"Semana 3:",{"type":38,"value":1334}," Datos de performance keyword → seleccionar migration candidates a competitor exact",{"type":33,"tag":499,"props":1336,"children":1337},{},[1338,1343],{"type":33,"tag":53,"props":1339,"children":1340},{},[1341],{"type":38,"value":1342},"Semana 4:",{"type":38,"value":1344}," Control de hijack de brand keyword → monitoreo de activity bid rival",{"type":33,"tag":34,"props":1346,"children":1347},{},[1348],{"type":38,"value":1349},"El reporting manual en Apple Search Ads Console no es suficiente — necesitas daily pull via API + dashboard en Looker Studio. En clientes de mobile gaming de Roibase, este dashboard expone en tiempo real: TTR por funnel stage, % de keyword overlap cross-campaign, assisted conversion rate, LTV\u002FCPI por capa.",{"type":33,"tag":34,"props":1351,"children":1352},{},[1353],{"type":38,"value":1354},"Ejecutar la arquitectura funnel con esta disciplina convierte Apple Search Ads en tu canal UA más importante — CPP controlado, LTV visible, scale predecible. Discovery, competitor, brand — cada capa alimenta a la siguiente con señal y presupuesto, en lugar de kampanye aisladas construyes un ecosistema. A medida que iOS privacy se tightens en 2026, esta arquitectura no es lujo sino necesidad — jugar en la propia plataforma de Apple, con su atribución, su auction, es el canal de growth más estable post-IDFA.",{"type":33,"tag":1356,"props":1357,"children":1358},"style",{},[1359],{"type":38,"value":1360},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":17,"searchDepth":171,"depth":171,"links":1362},[1363,1366,1367,1370,1371,1372,1373],{"id":43,"depth":161,"text":46,"children":1364},[1365],{"id":87,"depth":171,"text":90},{"id":185,"depth":161,"text":188},{"id":334,"depth":161,"text":337,"children":1368},[1369],{"id":369,"depth":171,"text":372},{"id":473,"depth":161,"text":476},{"id":717,"depth":161,"text":720},{"id":1030,"depth":161,"text":1033},{"id":1296,"depth":161,"text":1299},"markdown","content:es:gaming:apple-search-ads-arquitectura-campana-funnel.md","content","es\u002Fgaming\u002Fapple-search-ads-arquitectura-campana-funnel.md","es\u002Fgaming\u002Fapple-search-ads-arquitectura-campana-funnel","md",1782079490306]