Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…ng sync application examples (MicrosoftEdge#851)

Expanding upon the description of the sync applications case by adding examples. 
Updating navigator.install usage example to match most recent requirements.
Fixes MicrosoftEdge#841, fixes MicrosoftEdge#840, fixes MicrosoftEdge#839
  • Loading branch information
kyerebo authored Sep 5, 2024
1 parent 6ae0013 commit 5cc7492
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion AcquisitionInfo/explainer.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ if ('install' in navigator) {
installVersion: "1.0.0.0"
};
// Web install with additional attribution information
const appInstalled = await navigator.install("foo.com", {"referral-info": referralInfo});
const appInstalled = await navigator.install("https://www.foo.com/app", "https://www.foo.com/install_url", {"referral-info": referralInfo});
}
```

Expand Down Expand Up @@ -265,6 +265,34 @@ the acquisition information that is recorded for the originally acquired applica
other installations. This applies to any and all other installation for the same user profile across any other device supported
by the UA.

For example, a user may discover App A through an ad campaign run on the Microsoft Store. The user proceeds to install App A on
Device A. Running `getDetails()` from the newly acquired app would return the following:

```js
details = {
installSource: "apps.microsoft.com",
attributionId: "adCampaign",
... // Additional attribution information
}
```

The same user logs in on Device B and logs into the profile that installed App A on Device A. Sync would install App A once again
but on Device B, at which point the `getDetails()` payload would return the following:

```js
details = {
installSource: "apps.microsoft.com",
attributionId: "adCampaign",
sync: true,
... // Additional attribution information
}
```

The `installSource`, `attributionId`, and *any other attribution information* that existed on Device A is passed on. Addtionally,
a boolean property called `sync` is added to the dictionary which indicates that the app in question is a synced application
brought over from a previous device. This ensures that we are able to accurately track which users were historically impacted
by which acquisition campaigns, even across devices.

## Considered Alternatives

### Flattening the API
Expand Down

0 comments on commit 5cc7492

Please sign in to comment.