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".
|
// Erros ligados ao Instagram em que vale refazer o criativo só com o Facebook
|
||||||
const isInstagramPermissionError = (err: unknown) =>
|
// (o anúncio ainda roda no IG pela identidade da página):
|
||||||
err instanceof Error && /1815199/.test(err.message);
|
// - 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 creative;
|
||||||
let instagramDropped = false;
|
let instagramDropped = false;
|
||||||
try {
|
try {
|
||||||
creative = await buildCreative(params.instagram_actor_id);
|
creative = await buildCreative(params.instagram_actor_id);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (params.instagram_actor_id && isInstagramPermissionError(err)) {
|
if (params.instagram_actor_id && isInstagramError(err)) {
|
||||||
creative = await buildCreative(undefined);
|
creative = await buildCreative(undefined);
|
||||||
instagramDropped = true;
|
instagramDropped = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue