Coder Social home page Coder Social logo

docs's People

Contributors

barctic avatar divinedominion avatar markbattistella avatar skyeewers avatar voidedmain avatar winsmith avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

docs's Issues

Javascript SDK Documentation

The Documentation for the JavaScript SDK needs a bit more love

  • how to use the SDK in a static website (put in header)
  • how to install in an NPM project
  • how to use in an NPM project

Article on `floatValue`

The floatValue property in signals is pretty undocumented because I seem to have told almost no one about it. This is a ticket to write an article about it.

Goal: Tell people the floatValue property exists and give a few examples on how to use it

TOC

  • Intro: all payload dimensions you send to TD are typed as strings, but there's a special case
  • What is floatValue? FloatValue is a way that you send a metric – a numerical value – to TD
  • You can average it, sum it up, etc
  • Code example

Basically this but with a bit more content: TelemetryDeck/Issues#233 (comment)

How to invite users to join your organization

Reason:

  • if there are more people in your organization, they should have their own user account
  • share groups and insights
  • collaborate
  • show reports, dashboards, insights to other members of your team

Tags:

  • beginner
  • howto
  • user-cohorts
  • collaboration

Steps:

  • In the telemetrydeck dashboard, select the user menu by clicking on your name in the top right
  • select "organization settings"
  • in the list, enter the person's email address - we will send them an email with a registration link

Update articles based on recent UI/feature changes

!Important: Use images instead of text to show where features are located, this makes it easier to edit in the future, and it visualizes it for the website visitors.

Articles that need to be edited:

Create custom dashboards with Insight Groups

Reasoning

  • Groups are how you create dashboards
  • Groups help you combine thematically appropriate charts
  • you can make the charts regular sized or big and at the top

Tags

  • beginner
  • ...?

How to create a new group

How to add insights to a group

How to share a group: if someone is a member of your organization, you can send them a link

How to delete insights from a group

How to Rename a group

How to delete a group

Anonymization Article

from Mail:

Our SDKs optionally accept a custom user identifier such as an email address or an internal identifier. If you don’t supply that identifier, we generate a random one for you, or — depending on the platform — ask the operating system for one, such as the iOS „identifierForVendor“.

We salt and hash that identifier on device. You can optionally provide a salt string for that as well using the configuration object.

when a signal arrives on the server, we add our own salt to its user identifiers and hash it again. This way neither TelemetryDeck nor you can reconstruct the original identifier, preserving privacy.

if you use the same (custom) salt and provide the same original ID you’ll recognize the same user from different platforms.

How to find out if your users are upgrading to your newest app version

Reason

  • you need to know how fast your users update your app
  • if it's too slow, you need to be more urgent with security updates
  • you need to know if certain features are present so you can rely on them
  • especially in API driven apps, you'll know when you're able to deprecate an API endpoint
  • if almost no one is upgrading, something is wrong with your upgrade process
  • if a small number of people is stuck on an old version, consider investigating why

Use the Dashboard's app overview screen

(note to @voidedmain: App Overview is the screen you first see when clicking on the app. It currently has the users/signals/sessions chart, the "users in the last hour" chart, system versions chart and an app versions chart. Let me know if you want a different name for that screen)

  • App Overview shows a chart with the distribution of your app's versions by day
  • use the toggle to switch between app versions (e.g. 1.0.1) to build numbers (e.g. 583)
  • build numbers are helpful if you want to have an overview over different beta versions where version numbers are the same

Use a custom insight

you can use a custom insight to show app version distribution:

  • create a new insight
  • set display mode to e.g. donut chart
  • signal type: all signals
  • granularity: all
  • query type: top N
  • breakdown key: appVersion
  • filters: {}

@voidedmain here's an example insight: https://dashboard.telemetrydeck.com/apps/B97579B6-FFB8-4AC5-AAA7-DA5796CC5DCE/groups/699B49E7-51C8-4243-801B-0C0907360E90/insights/75125D04-7275-40EC-963E-E893DF2248D6/edit

How to find how many daily users are in your app

Reason:

  • Feels good to see people using your app
  • Shows your app is on track and growing
  • Link to TelemetryDeck/website#38

Tags:

  • beginner
  • howto
  • user-cohorts

Steps:

  • Navigate to your App
  • Select or Create a new group
  • Select "Create New Insight" (you might have to scroll)
  • Choose "Daily Active Users"

Insights Reference

Insight - An Insight is one of the primary building blocks of TelemetryDeck. In essence, you can think of an insight as one of the little cards with data in an insight group. They have a title, a Query, and a Display Mode. The query is used to retrieve data from the TelemetryDeck API, and the display mode is used to determine how the data is displayed, e.g. as a bar chart, or a line chart.

  • Insights as a concept
  • Use 'the insight's card' to distinguish between insights the concept and the UI

Todos:

  • Move api/insights-reference.md to articles/
  • Go through and remove things that are no longer relevant
    • Subtitle
    • "Raw" is now called table
    • "Group values by" is now called "Granularity"
    • Signal type doesn't need typing anymore -> dropdown
    • Rename "breakdown" to "Top N" query
    • Filters: remove note
  • Generated Query
    • you can optionally convert your insight into a "custom query insight". This allows you to edit the database query in the insight directly, giving you more control. (note: there is no going back)
    • a custom query is JSON object in the telemetrydeck query language, which is a superset of the Druid Query Language. See the Druid query documentation for a jump start.
    • In addition to the druid features custom queries in the telemetrydeck query language can contain a relative time interval https://blog.telemetrydack.com/docs/tql/time-intervals/
    • During execution, we will automatically wrap your query in a filter that makes it apply to all your organisation's apps. To query a single app, filter for that app's app ID.

Add Tips and Tricks for Web Sites

If you add this snippet, you can extract things like URL and utm source:

 const params = new URLSearchParams(window.location.search);
  td.push([
    'signal',
    {
      route: window.location.pathname,
      source: params.get('utm_source'),
    },
  ]);

and then filter by pages like so

{ "url": "https://www.fline.dev/remafox-beta1/" }

Feedback for articles/update-package.md

There is an additional situation some may be inquiring about with this question.

They could be asking "how do I change the configuration I setup for this package dependency".

If they do either or both of the items listed in your answer and don't get what they need, it's likely the way they've configured it. They could have said "only use version 1.2.3" or "user 1.2.3 up to the Next Minor release", this will not allow them to update to 2.0.0.

If they need to update their specification of the dependency, that is described here.

Please consider adding that to your answer.
Your SEO is very good, and it would be nice to get the complete answer.

Documentation: Typo in Javascript Setup Page

Typo in code snippet

In first code snipped under "Advanced usage as a Package for applications that use a bundler (like Webpack, Rollup, …)"

const queuedEvents = [
  ["app", YOUR_APP_ID],
  ["user", YOUR_USER_IDENTIFIER],
  ["signal"],
  ["signal", { route: "some/page/path" }],
];
td.ingest(qeuedEvents); // <--

The variable queuedEvents is misspelled.

Feedback for https://telemetrydeck.com/docs/guides/swift-setup/

Is your feedback related to a problem? Please describe.

The Swift Setup Guide ends with:

You’re all set!

You can now send signals! …

But there's a critical missing step. Before you can actually ship an iOS app that uses TelemetryDeck, you have to answer Apple's app privacy questions.

Describe the solution you'd like or the information you're missing

  • Let your iOS developers know that they have to answer Apple's app privacy questions; and
  • Provide a link to your guidance on how to answer.

TelemetryDeck for Open Source Projects

TelemetryDeck can work great with open source projects, but they need to know a few things:

  • How to inject the app ID at build time
  • how to only send analytics when an app id is present

Add 'title' and 'searchEngineTitle' for all docs

Internal titles, which are not meta-titles/searchEngineTitles, should better reflect the neutrality of a documentation. This will make it easier for viewers/visitors to find what they are looking for. Therefore, each article should have both titles.

Test Mode: How it works, what it does, how to send signals in test mode

Reason

  • While you develop and/or test your TelemetryDeck-enabled app, you'll also send signals
  • but these signals are not from actual users
  • so your analytics results are skewed, which is not cool.
  • But not sending any signals means you won't be able to find errors in the configuration of the TelemetryDeck SDK
  • not sending signals means you don't know if things work until you release the app
  • Not sending signals means you can't prepare your insights for any new signal types or payload types until you've released the app
  • So we've created Test Mode to distinguish between real signals and signals sent during development and testing

Tags

  • testmode
  • setup
  • quickstart

How it works

  • every signal has an isTestMode parameter that can either be true or false
  • in the dashboard use the "Test Mode" toggle to either only show signals with isTestMode == true or isTestMode == false

How to send signals in test mode

  • The SDKs try to infer the isTestMode parameter as best as they can, for example if a DEBUG parameter is present in your development environment, that is used as the value for isTestMode
  • You can also override the isTestMode parameter just as you would add any other payload parameter to a signal
  • Note: since signal payloads only support strings, the parameter needs to be either "true" or "false"

Manually set Test Mode in Swift SDK

// An example variable to manually set test mode.
// Set this to `true` or `false` depending on your app's configuration
// or environment or state
let customTestModeParameter = true

TelemetryManager.send(
    "pizzaModeActivated",
    for: "myUserIdentifier",
    with: ["isTestMode": customTestModeParameter ? "true" : "false"]
)

Manually set test mode in JavaScript SDK

// Example initialisation of TelemetryDeck SDK
td = new TelemetryDeck({
  app: ENV.APP.telemetryAppID,
  user: this.user.current?.email ?? 'anonymous',
});

// In our example, the app has a `send` function wrapping the TelemetryDeck SDK
send(payload) {
  // ENV.APP.telemetryIsDebug is an example variable that represents your app's
  // configuration or environment. Replace it with an implementation that fits your
  // app's needs.
  if (ENV.APP.telemetryIsDebug) {
    this.td.signal({...payload, isTestMode: "true"})
    return;
  }

  this.td.signal(payload);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.