Según la documentación, podemos cargar archivos de imagen desde nuestro sistema (que están presentes localmente). https://developers.facebook.com/docs/marketing-api/reference/ad-image
¿Cómo cargar una imagen desde una URL al punto final de /adimages y obtener una identificación de hash de imagen?
Facebook no permite el acceso directo a la URL. Pero hay una solución. Puede publicar el contenido de la imagen en formato de bytes usando la opción de bytes como se describe en la documentación .
A continuación se muestra un comando curl que funcionó para mí:
curl -F 'bytes=iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAOVBMVEX///87WZg7WZg7WZg7WZg7WZg7WZg7WZg7WZg7WZg7WZhMeMJEaa5Xi9tKdb0+Xp5Wi9tXjNxThNH+wk/7AAAACnRSTlMAsHIoaM7g/fx9Zr/g5QAAAGlJREFUeNplkFsOwCAIBPGJrtbX/Q/bqm1qwnxuJrBAE6OVD15pQy/WYePsDiIjp9FGyuC4DK7l6pOrVH4s41D6R4EzpJGXsa0MTQqp/yQo8hhHMuApoB1JQ5COnCN3yT6ys7xL3i7/cwMYsAveYa+MxAAAAABJRU5ErkJggg==' -F 'access_token=#ACCESS_TOKEN#' "https://graph.facebook.com/v13.0/#ACT_ID#/adimages"Para convertir la imagen en formato de bytes puedes usar cualquier idioma. A continuación se muestra un ejemplo usando PHP:
$bytes = base64_encode( file_get_contents( 'https://example.com/PATH/TO/image.jpg' ) );