Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Issue #841 #840 #839] Expanding sync application examples #851

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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