Nenhuma atualização no ACS ao coletar informações de PII
Este artigo descreve como resolver o problema do Adobe Campaign Standard em que a tabela de assinantes de aplicativos não é atualizada com informações configuradas na regra de postback PII após implementar notificações por push usando o SDK nativo do react.
Descrição description
Ambiente
Adobe Campaign Standard
Problema/Sintomas
Você pode ter implementado notificações por push usando o SDK nativo do react, que é comum ao iOS e ao Android. Você também pode conseguir criar e receber uma notificação por push do Adobe Campaign Standard com êxito
https://developer.adobe.com/client-sdks/documentation/mobile-core/api-reference/
No entanto, a tabela do assinante do aplicativo não é atualizada com as informações que foram configuradas na regra de postback PII.
Para isso implementamos o código ACPCore.collectPii({"myPii": "data"})
- Na inicialização, configuramos a regra 'Mobile Core - Coletar PII' como postback
- A URL está configurada como 'https://{%%camp-server%%}/rest/head/mobileAppV5/{%%pkey%%}/subscriptions/{%%mcid%%}'
- o corpo da publicação é:
{
"marketingCloudId": "{%%mcid%%}",
"cusCustomerNumber": "{%contextdata.customerNumber%}"
}
- o campo no registro de inscrição do aplicativo é chamado
cusCustomerNumber
- o código que está sendo executado é
ACPCore.collectPii({"cusCustomerNumber": "data"})
Resolução resolution
Foram observados dois problemas que foram resolvidos.
1 - O mapa que está sendo enviado é contextdata
que nós configuramos, portanto, o SDK está tentando encontrar um campo de dados chamado customerNumber
, mas não há nenhum porque ele foi definido como cusCustomerNumber.
. Em vez disso, altere ACPCore.collectPii({"cus.CustomerNumber": "data"})
para ACPCore.collectPii({"customerNumber": "data"})
Além disso, verifique se sua parte no código, bem como o texto destacado acima, também devem corresponder ao código. Veja abaixo o que tínhamos para esse cliente.
setTimeout(() => { ACPCore.collectPii({"customerNumber": "data"}); console.log('collectPii'); }, 2000);
2 - Ao alterar isso, ainda não conseguíamos ver os dados que estavam sendo armazenados na tabela de assinatura no aplicativo. Portanto, a captura de dados foi feita por meio da ferramenta Charles. Você pode notar o seguinte problema:
{ "marketingCloudId": "0000000000000000", "cus.CustomerNumber": "data"}
RST-360011 Ocorreu um erro - entre em contato com o administrador.
A propriedade 'cusCustomerNumber
' não é válida para o recurso 'nms:appSubscriptionRcp:appSubscriptionRcpDetail
'.
Ao observar o banco de dados para essa tabela, vemos as seguintes colunas.
Tabela "public.nmsappsubscriptionrcp"
Coluna | Tipo | Agrupamento | Anulável | Padrão
—+—+—+—+—
iappsubscriptionrcpid | inteiro | | não nulo | 0
icreatedbyid | inteiro | | não nulo | 0
idisabled | smallint | | não nulo | 0
imobileappid | inteiro | | não nulo | 0
imodifiedbyid | inteiro | | não nulo | 0
ipushplatform | smallint | | não nulo | 0
sdevicebrand | caractere variável(128) | | |
sdeviceid | caractere variável(128) | | |
sdevicemmanufaturer | caractere variável(128) | | |
sdevicemodel | caractere variável(128) | | |
sdevicename | caractere variável(128) | | |
smarketingcloudid | variável de caractere(256) | | |
sysystemlanguage | caractere variável(128) | | |
ssystemname | caractere variável(128) | | |
ssystemversion | caractere variável(128) | | |
suserkey | caractere variável(128) | | |
tscreated | carimbo de data e hora com fuso horário | | |
tsdisabled | carimbo de data e hora com fuso horário | | |
tslastmodified | carimbo de data e hora com fuso horário | | |
tsregistration | carimbo de data e hora com fuso horário | | |
número_do_cliente_do_scusc | caractere variável(127) | | |
scusfirstname | caractere variável(127) | | |
scuslastname | caractere variável(127) | | |
O que parece agora é uma incompatibilidade de campo. Altere o código do corpo da publicação no lançamento conforme abaixo e publique as alterações e solicite um teste, que deve resolver o problema.
{
"marketingCloudId": "{%%mcid%%}",
"cusCus.CustomerNumber": "{%contextdata.customerNumber%}"
}