diff --git a/src/lib/mcp/tools.ts b/src/lib/mcp/tools.ts index c7b0c03..e0c6bf4 100644 --- a/src/lib/mcp/tools.ts +++ b/src/lib/mcp/tools.ts @@ -668,16 +668,24 @@ export async function addAdToAdSet(client: Client, params: AddAdToAdSetParams) { }); }; - // 1815199: "A conta de anúncios não tem acesso a esta conta do Instagram". - const isInstagramPermissionError = (err: unknown) => - err instanceof Error && /1815199/.test(err.message); + // Erros ligados ao Instagram em que vale refazer o criativo só com o Facebook + // (o anúncio ainda roda no IG pela identidade da página): + // - 1815199: a conta de anúncios não tem acesso a esta conta do Instagram. + // - "instagram_actor_id must be a valid Instagram account id": o ID vinculado + // à página não é um ator de Instagram válido para Ads (ex: conta conectada + // pelo fluxo de "login do Instagram" em vez do Business/Página). + const isInstagramError = (err: unknown) => + err instanceof Error && + (/1815199/.test(err.message) || + /instagram_actor_id/i.test(err.message) || + /valid instagram account/i.test(err.message)); let creative; let instagramDropped = false; try { creative = await buildCreative(params.instagram_actor_id); } catch (err) { - if (params.instagram_actor_id && isInstagramPermissionError(err)) { + if (params.instagram_actor_id && isInstagramError(err)) { creative = await buildCreative(undefined); instagramDropped = true; } else {