Dear Amplitude Community,
I have Kochava attribution solution in my app which forwards attribution event to Amplitude through the “Kochava] Install” event. In my case some events are being sent and others aren’t sent. I had contacted Kochava Support Team already, and they asked me to get a rep from you directly mentioning that “Our postbacks are formatted as requested by Amplitude” and “we'll need you to loop in your Amplitude rep so they can provide us with guidance on how we should update our postback template with them to prevent this issue”.
I provide you with examples of requests which are sent and which aren’t sent below. They are taken from Kochava account. Previously I removed all sensitive information with “<>”.
You can see that there are needless escape characters which are “\” (backslash). I suppose that they aren’t used in actual requests but are only shown as strings in Kochava account, but I can’t be sure. Otherwise, all requests would fail with 400 response code and “invalid_event_json” message.
Those type of requests which has only “kochava_device_id” as optional parameter are being sent. It is probably when this is an organic install (I’m checking with Kochava team). For example:
https://api.amplitude.com/attribution?api_key=<API_KEY>&event={\"event_type\":\"iKochava] install\",\"adid\":\"<AD_ID>\",\"user_properties\":{\"\Kochava] media source\":\"\",\"rKochava] campaign\":\"\",\"mKochava] creative\":\"\",\"vKochava] site\":\"\",\"oKochava] Network Name\":\"\",\"vKochava] Campaign Name\":\"\",\"rKochava] Campaign ID\":\"\",\"aKochava] Tracker ID\":\"\",\"kochava_device_id\":\"<KOCHAVA_DEVICE_ID>\"},\"platform\":\"android\"}
Other type of requests which has more optional parameters (from Google Ads) aren’t being sent. For example
https://api.amplitude.com/attribution?api_key=<API_KEY>&event={\"event_type\":\"?Kochava] install\",\"adid\":\"<AD_ID>\",\"user_properties\":{\"\Kochava] media source\":\"Google Ads\",\"rKochava] campaign\":\"Google Ads Slovopad MVP 2022-03-31 05:21:01:680\",\""Kochava] creative\":\"<KOCHAVA_CREATIVE>\",\""Kochava] site\":\"{\\\"campaign_name\\\":\\\"Словопад MVP\\\",\\\"campaignid\\\":\\\"<CAMPAIGNID>\\\",\\\"campaigntype\\\":\\\"ACI\\\",\\\"keyword\\\":\\\"\\\",\\\"matchtype\\\":\\\"\\\"}\",\"\Kochava] Network Name\":\"Google Ads\",\"\Kochava] Campaign Name\":\"Slovopad MVP 2022-03-31 05:21:08:493\",\"]Kochava] Campaign ID\":\"<KOCHAVA_CAMPAIGN_ID>\",\",Kochava] Tracker ID\":\"<KOCHAVA_TRACKER_ID>\",\"kochava_device_id\":\"<KOCHAVA_DEVICE_ID>\"},\"platform\":\"android\"}
I tried to call requests after unescaping characters (with this online tool) from browser (by just opening link), terminal (with curl as in your docs https://developers.amplitude.com/docs/attribution-api), Postman. I always get 200 response code and ‘success’ message. After that I see these events in my Amplitude’s User Activity. That’s why I suppose that there is issue from Kochava side.
Also, I asked Kochava to provide me with logs of these requests, especially with response codes and messages. I will add them here if/when I receive the response.
The question is why it doesn’t work from Kochava side? Is it maybe because they use “kochava_device_id” instead of “oKochava] Install” (however, it doesn’t explain why it does work in some cases and not in others)? Could you check “postback template” which you share with Kochava?