Target Layer
Neste guia, veremos como registrar uma Target Layer (camada de destino) para integrar um destino como Facebook, Google Analytics, UXCam ou sua própria API de destino ao AgnosticData. Com a Target Layer, seu destino pode receber um evento em tempo real quando acontece no AgnosticData.
Casos de uso
- Você precisa sincronizar de forma leve dados ocorridos em um sistema para outro
- Você deseja receber eventos de múltiplos locais para criar um dashboard
- Você deseja um espelho de eventos ocorridos como criação de usuário, login, número de assinaturas, atendimento, agendamentos, etc
Registrando a Target Layer
Para registrar um novo alvo na Target Layer, você precisa ter uma URL de destino para o AgnosticData postar o conteúdo. É como um correio (AgnosticData), a carta (o evento) e a caixa de correio (o destino), neste caso, a URL refere-se a caixa de correio para onde o evento será depositado.
Você pode configurar um novo destino no painel AgnosticData em Target Layer ou gerando a partir do template (recomendado). Podemos dividir o registro de um alvo em 3 etapas:
- Obter a URL de destino
- Criar as regras para garantir que o conteúdo enviado esteja em conformidade com o destino
- Conectar ao evento personalizado
URL de destino
Geralmente, cada serviço de destino como Facebook, Google Analytics, UXcam ou sua API de destino contém uma URL com um identificador da seu acesso. Por exemplo, vejamos os padrões comuns de URL de destinos olhando para as URLs abaixo:
-
Destino Facebook: FACEBOOK_URL = https:// graph.facebook.com/v15.0/ YOUR_ACCOUNT_ID /events? access_token=ACCESS_TOKEN. Perceba que temos na própria URL, 2 atributos que irão identificar seu usuário e a chave de acesso, como YOUR_ACCOUNT_ID e ACCESS_TOKEN. Essas informações são solicitadas pelo destino para receber os eventos personalizados.
-
Destino Google Analytics: GOOGLE_ANALYTICS_URL = https:// www.google-analytics.com/mp/collect? measurement_id=MEASUREMENT_ID &api_secret=API_SECRET. Já no Google Analytics temos como atributos de identificação, o MEASUREMENT_ID e API_SECRET.
Criar as regras
Podemos enviar um evento "as-is" diretamente para o destino, mas não recomendamos essa abordagem, pois as regras de recebimento do envelope do destino podem rejeitá-los. Recomendamos criar a classe para preparar o evento especificamente para o destino.
A forma mais simples que temos é utilizar o template. Vejamos o exemplo, utilizando o modelo do Facebook. Para criá-lo é preciso entender como um evento do destino é composto ou quais campos requeridos. No exemplo a seguir, o Facebook é composto por event_name, event_time, action_source e custom_data.
O time do AgnosticData está continuamente implementando alvos para serem fáceis de consumir. O mais importante é que sua empresa não está presa as integrações disponibilizadas. A fácil forma de criar a partir de um template permite seu time com o mínimo de conhecimento implementar. Procure na comunidade uma integração pronta, existem milhares de desenvolvedores e integrações disponíveis. Em caso de dúvida entre em contato com nossa equipe.
Examplo Facebook
// usage this class to implement respective FacebookEvent
export class FacebookEvent {
event_name: string;
event_time: number;
action_source: ActionSourceType;
// CUSTOM DATA defined as `custom_data` must have attributes explains into Facebook Pixel
custom_data: any;
constructor(data: IEvent, customDataClass: any, eventName: string) {
// cleanup() and formatter()
...
}
/**
* `cleanup` useful for remove data
*/
cleanup(data: IEvent): any {
// Cleanup and rules specifics from Facebook
}
/**
* `formatter` useful for composite of the expected payload
*/
formatter(data: IEvent): any {
// ...
}
}
Conectar eventos personalizados ao destino
Podemos conectar o evento personalizado ao destino implementando e estendendo a classe das regras. Assim garantimos que apenas os campos e dados corretos são enviados para o destino sem expor os dados dos nossos usuários.
Connecting Custom Data with Target
class FacebookCustomData {
content_name: string // Nome da página ou do produto.
currency: Nullable<string> //A moeda do value especificado.
status: number // Usado com o evento CompleteRegistration para mostrar o status do registro
value: Nullable<number> // O valor de um usuário executando esse evento para o negócio.
constructor(item: EventData) {
this.content_name = item.content_name
this.currency = item.currency
this.status = item.status
this.value = item.value
}
}
/**
* `FacebookEventExtended` estendo da classe padrão de regras
* FacebookEvent. Somente 3 informações são necessárias
* @param {Class} customDataClass linkage class
* @param {String} eventName nome do evento no destino
* @param {Object} data payload do evento
*/
export class FacebookEventExtended extends FacebookEvent {
constructor(data: IEvent) {
const customDataClass = FacebookCustomData
const eventName = FACEBOOK_EVENT_NAME
super(data, customDataClass, eventName) // change this today estamos aqui
}
}
Agora, sempre que um evento de interesse acontecer, um POST é enviado pelo AgnosticData ao destino.