Send a custom ping for first install
#7295
Comments
See https://mozilla.github.io/glean/book/user/pings/custom.html for more info on implementing this. To make the campaign id "sticky" to the user: use |
Adding @Dexterp37 to this so he can follow 😄 |
We can probably reference the ActivationPing when creating this new ping, but we should not add this to the ActivationPing since we probably don't want to mix these ids. |
first install
first install
After investigating with Danica and George, we determined that Adjust actually has several fields of interest that we would like to include. To get the cleanest most complete insights we would like to include network, adgroup, creative in addition to campaign. Is this an easy add on when you make the call to Adjust? |
Danica mentioned we should try to include the Adjust install timestamp as well if possible. |
Please note that the |
Hope my patch helps, but I've never worked on Glean telemetry before, so I could use a review from someone who knows Glean. |
Hi @sblatz , as per our discussion, I've re-checked this matter on the latest Nightly Build #20630607 from 03/03 using Google Pixel 3a (Android 9) Performed the following steps:
Please re-view and share your thoughts. |
@AndiAJ I removed your device from the adjust dashboard. Can you please retest tomorrow with the steps we chatted about? If you run into issues, please ping me on Slack and we can sync up again when I'm online tomorrow morning 😄 |
Hi, verified as fixed on the latest Nightly Build #20650606 from 03/05 using a Google Pixel 3a (Android 9) ✔️ Installation ping (dropdown){
"metadata": {
"geo": {
"city": "Cluj-Napoca",
"subdivision1": "CJ",
"country": "RO",
"db_version": "2020-03-02T19:03:33Z"
},
"user_agent": {
"os": "Android"
},
"header": {
"date": "Thu, 05 Mar 2020 10:04:37 GMT",
"x_debug_id": "aj-t0503000"
},
"document_namespace": "org-mozilla-fenix-nightly",
"document_type": "installation",
"document_version": "1"
},
"submission_timestamp": "2020-03-05T10:04:37.755732Z",
"document_id": "1298c697-5f03-466e-9a0c-95f20aba343d",
"normalized_channel": "Other",
"normalized_os": "Android",
"normalized_os_version": "9",
"normalized_country_code": "RO",
"client_info": {
"android_sdk_version": "28",
"app_build": "20650606",
"app_channel": "fenixNightly",
"app_display_version": "Nightly 200305 06:01",
"architecture": "arm64-v8a",
"device_manufacturer": "Google",
"device_model": "Pixel 3a",
"first_run_date": "2020-03-05+02:00",
"locale": "en-US",
"os": "Android",
"os_version": "9",
"telemetry_sdk_build": "25.0.0"
},
"metrics": {
"datetime": {
"installation.timestamp": "2020-03-05T12:04:37.557+02:00"
},
"string": {
"installation.adgroup": "twitter",
"installation.campaign": "social",
"installation.creative": "fr-gtm",
"installation.network": "Product Marketing"
}
},
"ping_info": {
"end_time": "2020-03-05T12:04+02:00",
"seq": 0,
"start_time": "2020-03-05T12:04+02:00"
}
} ✔️ Metrics ping (dropdown){
"metadata": {
"geo": {
"city": "Cluj-Napoca",
"subdivision1": "CJ",
"country": "RO",
"db_version": "2020-03-02T19:03:33Z"
},
"user_agent": {
"os": "Android"
},
"header": {
"date": "Fri, 06 Mar 2020 02:00:00 GMT",
"x_debug_id": "aj-t0503000"
},
"document_namespace": "org-mozilla-fenix-nightly",
"document_type": "metrics",
"document_version": "1"
},
"submission_timestamp": "2020-03-05T10:06:21.024907Z",
"document_id": "61ffb84c-f271-457d-9a1d-c0dc81ff2fc4",
"normalized_channel": "Other",
"normalized_os": "Android",
"normalized_os_version": "9",
"normalized_country_code": "RO",
"sample_id": 4,
"client_info": {
"android_sdk_version": "28",
"app_build": "20650606",
"app_channel": "fenixNightly",
"app_display_version": "Nightly 200305 06:01",
"architecture": "arm64-v8a",
"client_id": "35829565-ebf4-4da0-aa9e-d48a6a4b0d5f",
"device_manufacturer": "Google",
"device_model": "Pixel 3a",
"first_run_date": "2020-03-05+02:00",
"locale": "en-US",
"os": "Android",
"os_version": "9",
"telemetry_sdk_build": "25.0.0"
},
"metrics": {
"boolean": {
"gfx.status.headless": false,
"metrics.default_browser": false
},
"quantity": {
"gfx.adapter.primary.ram": 0,
"gfx.display.count": 1,
"gfx.display.primary_height": 2220,
"gfx.display.primary_width": 1080
},
"string": {
"geckoview.build_id": "20200304084140",
"geckoview.version": "75.0a1",
"gfx.adapter.primary.description": "Model: Pixel 3a, Product: sargo, Manufacturer: Goo",
"gfx.adapter.primary.device_id": "Adreno (TM) 615",
"gfx.adapter.primary.driver_date": "",
"gfx.adapter.primary.driver_files": "",
"gfx.adapter.primary.driver_vendor": "",
"gfx.adapter.primary.driver_version": "OpenGL ES 3.2 V@331.0 (GIT@97eb455, I987d6683f9) (",
"gfx.adapter.primary.subsystem_id": "",
"gfx.adapter.primary.vendor_id": "Qualcomm",
"metrics.adjust_campaign": "social",
"metrics.toolbar_position": "BOTTOM"
},
"string_list": {
"metrics.mozilla_products": []
},
"timing_distribution": {
"geckoview.startup_runtime": {
"sum": 852000000,
"values": {
"827968132": 1,
"902905650": 0
}
}
}
},
"ping_info": {
"end_time": "2020-03-06T04:00+02:00",
"reason": "today",
"seq": 0,
"start_time": "2020-03-06T03:59+02:00"
}
} @sblatz - Many thanks! |
Given what this ping contains, there might be implications in doing that (maybe). At least that's the reasoning behind the similar choice for the 'activation' ping. This should be checked by data-stewards. |
@Dexterp37 @sblatz , the goal of including this ping was to help us do acquisition channel attribution for retention metrics. We needed this ping to ensure we weren't missing people that bounce or cases where the properties weren't returned in time by Adjust to make the ping schedule for the metrics ping. Context: Acquisition is complex and more than 1 property is needed to determine acquisition channel attribution. We need all of these properties on the pings that contain acquisition details (metrics and first install) Outstanding Questions:
4)When should I expect representative data to land? I only see ~30 rows of data in our database.
|
hey @magorlick, sorry about that - since this ping doesn't include the Google Ad ID [1, 2], there shouldn't be any reason we can't include the client id here. I think I misunderstood initially, so we should do that. As for [3] and including the additional properties, we should be able to add that, because those are just the missing fields there. So I'll file a bug for a) adding the client_id to the installation ping, and updating the metrics ping to include the new adjust campaign fields. EDIT: #9136 As for representative data, this change should have gone to release with 4.0.0 - this went to 100% 3/11 (and was first released at 1% on 3/9). |
Thanks for these details @liuche! I appreciate your prioritization of this work. |
After some discussion with the Glean team and mgorlick, we have decided that in order to have valid data for adjust campaign users in Glean, we need to send a custom ping for first install that would include the adjust campaign. This is because the campaign is not known when the first metrics ping is sent (we must wait to get it back from the Adjust servers). Because of this we will not get data on the user's marketing campaign in the following case:
In this case, we will not get that the user was on a campaign since it cannot be sent until the second metrics ping (on the next day)
Acceptance Criteria
┆Issue is synchronized with this Jira Task
The text was updated successfully, but these errors were encountered: