fix: fallback p/ Facebook quando instagram_actor_id é inválido
O fallback que refaz o criativo só com Facebook só pegava o erro de permissão (1815199). Agora também cobre "instagram_actor_id must be a valid Instagram account id", evitando que um IG incompatível (ex: conta do fluxo de login do Instagram) bloqueie a publicação inteira. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
921eb97483
commit
87fdacfb3d
1 changed files with 12 additions and 4 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue