Este guia explica como criar e publicar anúncios de clique para o WhatsApp usando a API de Marketing.
Os anúncios de clique para o WhatsApp direcionam as pessoas diretamente para conversas com sua empresa no WhatsApp. Esses anúncios podem ser usados para alcançar pessoas em grande escala e fornecer serviço individualizado e com destaque.
Os anúncios de clique para o WhatsApp são compatíveis com anúncios de imagem, vídeo, carrossel ou apresentação multimídia. Também é possível incluir um comando interativo para ligação telefônica nesses anúncios.
Se tiver interesse em criar anúncios que direcionem pessoas para conversas no Messenger ou no Instagram, consulte Anúncios de clique para o Messenger ou Anúncios de clique para o Instagram. Também é possível criar anúncios para o destino no qual o usuário tem mais probabilidade de responder. Para mais informações, acesse Anúncios de clique com vários destinos.
Este documento descreve as etapas que você precisa seguir ao configurar sua integração de anúncios de clique para o WhatsApp.
Você precisará:
Este guia considera que você já tem o seguinte:
Para fazer chamadas aos pontos de extremidade deste guia, você precisará do seguinte:
ads_managementpages_manage_adspages_read_engagementpages_show_listO primeiro passo é criar a campanha de anúncios. Para isso, faça uma solicitação POST para o ponto de extremidade /act_<AD_ACCOUNT_ID>/campaigns, em que <AD_ACCOUNT_ID> é a identificação da conta de anúncios da Meta. A solicitação precisa incluir:
| Nome | Descrição |
|---|---|
string | Obrigatório. |
enumeração | Obrigatório. |
lista<Object> | Obrigatório. |
enumeração | Opcional. |
curl -X POST \
-F 'name=Click to WhatsApp Campaign' \
-F 'objective=OUTCOME_ENGAGEMENT' \
-F 'status=ACTIVE' \
-F 'special_ad_categories=[]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/campaigns
curl -X POST \
-F 'name=Click to WhatsApp Calling Campaign' \
-F 'objective=OUTCOME_ENGAGEMENT' \
-F 'status=PAUSED' \
-F 'special_ad_categories=[]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/campaigns
Caso ela seja bem-sucedida, o app receberá uma resposta JSON com a identificação da campanha recém-criada.
{
"id": "<AD_CAMPAIGN_ID>"
}
É possível atualizar uma campanha fazendo uma solicitação POST para /<AD_CAMPAIGN_ID>.
Para verificar se você criou com sucesso uma campanha de clique para o WhatsApp, faça uma solicitação GET para /<AD_CAMPAIGN_ID>. Consulte a referência sobre campanha de anúncios para ver uma lista completa dos parâmetros disponíveis.
curl -X GET -G \
-d 'fields=name,status,objective' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_CAMPAIGN_ID>
{
"name": "Click to WhatsApp Campaign",
"status": "PAUSED",
"objective": "OUTCOME_ENGAGEMENT",
"id": "<AD_CAMPAIGN_ID>"
}
Quando você já tiver uma campanha, crie um conjunto de anúncios. Para isso, faça uma solicitação POST para o ponto de extremidade /act_<AD_ACCOUNT_ID>/adsets, sendo <AD_ACCOUNT_ID> a identificação da conta de anúncios da Meta. A solicitação precisa incluir:
| Nome | Descrição | Exemplo de valor |
|---|---|---|
unsigned int32 | Obrigatório se bid_strategy for definido como |
|
enumeração | Opcional. |
|
enumeração | Obrigatório. | \ |
string numérica ou número inteiro | Obrigatório. |
|
int64 | Obrigatório se |
|
string | Obrigatório. |
|
datetime | Obrigatório quando |
|
int64 | Obrigatório se |
|
string | Obrigatório. |
|
enumeração | Obrigatório.
|
|
| Obrigatório. Obrigatório:
Opcional:
Para ver mais detalhes, consulte Conjunto de anúncios, objeto promovido. |
|
datetime | Opcional. |
|
enumeração | Opcional. |
|
Objeto de direcionamento | Obrigatório. Para habilitar o recurso de status do WhatsApp, consulte Direcionamento de posicionamento e veja mais detalhes. |
|
datetime | Opcional. |
|
datetime | Obrigatório quando |
|
Consulte o artigo Conjuto de anúncios da conta de anúncios para ver uma lista completa dos parâmetros disponíveis.
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"access_token":"<ACCESS_TOKEN>",
"bid_amount":"<BID_AMOUNT>",
"billing_event":"IMPRESSIONS",
"campaign_id":"<CAMPAIGN_ID>",
"daily_budget":"<DAILY_BUDGET>",
"destination_type":"WHATSAPP",
"name": "<AD_SET_NAME>",
"optimization_goal": "IMPRESSIONS",
"promoted_object": {
"page_id": "<PAGE_ID>"
},
"status": "PAUSED",
"start_time": "<START_TIME>",
"targeting": {
"geo_locations": { "countries":["US","CA"] },
"device_platforms": ["mobile", "desktop"]
}
}' \
"https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adsets"
{
"id": "<AD_SET_ID>"
}
É possível atualizar um conjunto de anúncios fazendo uma solicitação POST para /<AD_SET_ID>.
Para verificar se você criou com sucesso um conjunto de anúncios de clique para o WhatsApp, faça uma solicitação GET para /<AD_SET_ID>. Consulte a referência sobre conjunto de anúncios para ver uma lista completa dos parâmetros disponíveis.
curl -X GET -G \
-d 'fields=name,destination_type,optimization_goal,bid_strategy,status' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_SET_ID>
{
"name": "Click to WhatsApp Campaign",
"status": "PAUSED",
"objective": "OUTCOME_ENGAGEMENT",
"id": "<AD_SET_ID>"
}
Com o criativo, é possível adicionar ativos aos seus anúncios. Para gerar um criativo do anúncio, faça uma solicitação POST para o ponto de extremidade /act_<AD_ACCOUNT_ID>/adcreatives, sendo <AD_ACCOUNT_ID> a identificação da conta de anúncios da Meta. A solicitação precisa incluir:
| Nome | Descrição |
|---|---|
string | Obrigatório. |
| Obrigatório. Obrigatório:
Opcional:
|
| Opcional. |
Acesse a referência sobre criativo do anúncio para ver uma lista completa dos parâmetros disponíveis.
A mensagem padrão exibida ao cliente é "Olá! Posso acessar mais informações sobre isso?". Você pode criar experiências do usuário mais personalizadas em anúncios de clique para o WhatsApp ajustando a mensagem de saudação no campo page_welcome_message em object_story_spec.
Observação: se você estiver usando a mensagem do WhatsApp para disparar WhatsApp Flows, trabalhe com seu provedor de soluções empresariais e as agências ao atualizá-la para garantir que os fluxos não sejam interrompidos.
"page_welcome_message": {
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "welcome_message",
"media_type": "text",
"text_format": {
"customer_action_type": "autofill_message",
"message": {
"autofill_message": {
"content": "<AUTOFILL_MESSAGE>"
},
"text": "<GREETING_MESSAGE>"
}
}
}
"page_welcome_message": {
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "welcome_message",
"media_type": "text",
"text_format": {
"customer_action_type": "autofill_message",
"message": {
"text": "<AUTOMATED_GREETING_MESSAGE_TEXT>",
"automated_greeting_message_cta": {
"type": "call"
},
"autofill_message": {
"content": "<AUTOFILL_MESSAGE_CONTENT>"
}
}
}
}
"page_welcome_message": {
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "welcome_message",
"media_type": "text",
"text_format": {
"customer_action_type": "autofill_message",
"message": {
"text": "<AUTOMATED_GREETING_MESSAGE_TEXT>",
"automated_greeting_message_cta": {
"type": "url",
"url": "<WEBSITE_URL>"
},
"autofill_message": {
"content": "<AUTOFILL_MESSAGE_CONTENT>"
}
}
}
}
"page_welcome_message": {
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "welcome_message",
"media_type": "text",
"text_format": {
"customer_action_type": "autofill_message",
"message": {
"text": "<AUTOMATED_GREETING_MESSAGE_TEXT>",
"automated_greeting_message_cta": {
"type": "catalog"
},
"autofill_message": {
"content": "<AUTOFILL_MESSAGE_CONTENT>"
}
}
}
}
Somente fluxos que se encaixem nos seguintes critérios podem ser usados para criar um criativo do anúncio:
"page_welcome_message": {
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "ctwa_flows",
"media_type": "text",
"text_format": {
"customer_action_type": "whatsapp_flow",
"message": {
"text": "<AUTOMATED_GREETING_MESSAGE_TEXT>",
"automated_greeting_message_cta": {
"type": "flow",
"flow_data":{
"call_to_action":"Apply now",
"flow_id":"<FLOW_ID>"
}
},
"autofill_message": {
"content": "<AUTOFILL_MESSAGE_CONTENT>"
}
}
}
}
Observação: o flow_id passado acima deve pertencer à mesma conta do WhatsApp Business que a do número de telefone promovido no conjunto de anúncios. Ver mais sobre o WhatsApp Flows.
"page_welcome_message": {
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "welcome_message",
"media_type": "text",
"text_format": {
"customer_action_type": "ice_breakers",
"message": {
"text": "<GREETING_MESSAGE>",
"ice_breakers": [
{
"title": "<ICEBREAKER>"
},
{
"title": "<ICEBREAKER>"
},
{
"title": "<ICEBREAKER>"
}
]
}
}
}
}
curl \
-F 'object_story_spec={
"page_id": "<PAGE_ID>"
"link_data": {
"image_hash":<IMAGE_HASH>
"call_to_action": {
"type": "WHATSAPP_MESSAGE",
"value": {
"app_destination": "WHATSAPP"
}
},
"link": "https://api.whatsapp.com/send",
"name": <AD_HEADLINE>",
"page_welcome_message":
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "ctwa_call_prompt",
"media_type": "text",
"text_format": {
"message": {
"text": "<MESSAGE>"",
"call_prompt_data": {
"call_prompt_message": "<CALL_PROMPT_MESSAGE>"
}
}
},
"user_edit": false
},
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives
{
"id": "<AD_CREATIVE_ID>"
}
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"name": "Sample ad creative",
"object_story_spec": {
"page_id": "<PAGE_ID>",
"link_data": {
"name": "<AD_HEADLINE>",
"message": "<AD_PRIMARY_TEXT>",
"description": "<AD_DESCRIPTION>",
"image_hash": "<IMAGE_HASH>",
"link": "https://api.whatsapp.com/send",
"page_welcome_message": "<PAGE_WELCOME_MESSAGE>",
"call_to_action": {
"type": "WHATSAPP_MESSAGE",
"value": {
"app_destination": "WHATSAPP"
}
}
}
},
"degrees_of_freedom_spec": {
"creative_features_spec": {
"standard_enhancements": {
"enroll_status": "OPT_IN"
}
}
}
}' \
"https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives"
Caso ela seja bem-sucedida, o app receberá uma resposta JSON com a identificação do criativo do anúncio recém-gerado.
{
"id": "<AD_CREATIVE_ID>"
}
curl -X POST "https://graph.facebook.com/v25.0/act_<AD_ACCCOUNT_ID>/adcreatives"
-H "Content-Type: application/json"
-d '{
"access_token": "<PAGE_ACCESS_TOKEN>",
"name": "<IMAGE_AD_NAME>",
"object_story_spec": {
"page_id": "<PAGE_ID>",
"link_data": {
"image_hash": "<IMAGE_HASH>",
"link": "<IMAGE_URL>",
"call_to_action": {
"type": "WHATSAPP_MESSAGE",
"value":{"app_destination":"WHATSAPP"}
}
}
},
"asset_feed_spec": {
"additional_data": {
"partner_app_welcome_message_flow_id": "SEQUENCE-ID"
}
}
}'
Para saber mais sobre sequências de mensagens, consulte Sequências de mensagem de boas-vindas na documentação da plataforma do WhatsApp Business.
Você também pode usar o conteúdo existente do Instagram para gerar criativos.
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"source_instagram_media_id": "<INSTAGRAM_MEDIA_ID>",
"instagram_user_id": "<INSTAGRAM_USER_ID>",
"object_id": "<PAGE_ID>",
"call_to_action": {
"type": "WHATSAPP_MESSAGE",
"value": {
"link": "https://api.whatsapp.com/send",
"app_destination": "WHATSAPP"
}
}
},
"degrees_of_freedom_spec": {
"creative_features_spec": {
"standard_enhancements": {
"enroll_status": "OPT_IN"
}
}
}
}' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives
É possível atualizar um criativo do anúncio fazendo uma solicitação POST para /<AD_CREATIVE_ID>.
Para verificar se você criou com sucesso um criativo do anúncio de clique para o WhatsApp, faça uma solicitação GET para /<AD_CREATIVE_ID>. Consulte Criativo do anúncio para ver uma lista completa dos parâmetros disponíveis.
curl -X GET -G \
-d 'fields=name,object_story_spec{link_data{call_to_action,page_welcome_message}}' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_CREATIVE_ID>
{
"name": "Sample ad creative",
"object_story_spec" {
"page_welcome_message": {
"type": "VISUAL_EDITOR",
"version": 2,
"landing_screen_type": "welcome_message",
"media_type": "text",
"text_format": {
"customer_action_type": "autofill_message",
"message": {
"autofill_message": {
"content": "Sample autofill message"
},
"text": "Sample greeting message"
}
}
}
},
"id": "<AD_CREATIVE_ID>"
}
Os anúncios permitem que você associe informações do criativo aos seus conjuntos de anúncios. Para criar um anúncio, envie uma solicitação POST para o ponto de extremidade /act_<AD_ACCOUNT_ID>/ads, sendo <AD_ACCOUNT_ID> a identificação da conta de anúncios da Meta. A solicitação precisa incluir:
| Nome | Descrição |
|---|---|
string | Obrigatório. |
string numérica ou número inteiro | Obrigatório. |
| Obrigatório. |
enumeração | Obrigatório. |
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"name": "Sample ad",
"adset_id": "<AD_SET_ID>",
"creative": {
"creative_id": "<AD_CREATIVE_ID>"
},
"status": "PAUSED"
}' \
"https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/ads"
{
"id": "<AD_ID>"
}
É possível atualizar um anúncio fazendo uma solicitação POST para /<AD_ID>.
Para verificar se você criou com sucesso um anúncio de clique para o WhatsApp, faça uma solicitação GET para /<AD_ID>. Consulte a referência sobre anúncio para ver uma lista completa dos parâmetros disponíveis.
curl -X GET -G \
-d 'fields=status,adset_id,campaign_id \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<AD_ID>
{
"status": "PAUSED",
"adset_id": "<AD_SET_ID>",
"campaign_id": "<AD_CAMPAIGN_ID>",
"id": "<AD_ID>"
}
Confira se o anúncio aparece no Gerenciador de Anúncios. Quando estiver tudo pronto para publicar suas alterações, selecione a campanha, o conjunto de anúncios da campanha e o anúncio. Depois, clique no botão Publicar.
Também é possível publicar o anúncio via API. Para isso, basta enviar uma solicitação POST para /<AD_ID> com o parâmetro status definido como ACTIVE, sendo <AD_ID> o anúncio que você quer publicar.
O anúncio ficará com o status PENDING_REVIEW e será analisado pela Meta. Depois da aprovação, o status será automaticamente atualizado para ACTIVE, e o anúncio será veiculado.