tinesoft/ngx-cookieconsent

How do I opt-in a session when cookie consent is not required?

bacongobbler opened this issue · 0 comments

Is your feature request related to a problem? Please describe

I do not know how to check whether the user is in a region where cookie consent is not required. I want users who are in a region where cookie consent is not required (USA) to opt-in by default, and users who are in a region where cookie consent is required (EU) to opt-out by default.

Currently, I have my cookie consent config set to something like this:

const cookieConfig: NgcCookieConsentConfig = {
  cookie: {
    domain: window.location.hostname,
  },
  type: 'opt-in',
  location: true,
};

And currently I have my app.component.ts set up like this:

import { Component, OnInit, OnDestroy } from '@angular/core';
import { NgcCookieConsentService } from 'ngx-cookieconsent';
import { Subscription }   from 'rxjs';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit, OnDestroy {

  //keep refs to subscriptions to be able to unsubscribe later
  private statusChangeSubscription!: Subscription;

  constructor(private ccService: NgcCookieConsentService){}

  ngOnInit() {

    this.statusChangeSubscription = this.ccService.statusChange$.subscribe(
      (event: NgcStatusChangeEvent) => {
        switch (event.status) {
          case 'allow':
            // when the user consents, we start collecting analytics.
            doSomething();
            break;
          case 'deny':
            // when the user declines, we stop collecting analytics.
            doSomething();
            break;
          default:
            // when the user dismisses the window, do nothing
            break;
  }

  ngOnDestroy() {
    // unsubscribe to cookieconsent observables to prevent memory leaks
    this.statusChangeSubscription.unsubscribe();
  }
}

With this logic, if the user is in a region like the US, they never "allowed" cookies, so we never start collecting analytics from the user.

Describe the idea you'd like

If the user is in a region where cookie consent law is not required, I'd like to disable the cookie consent component and opt-in the user to cookie consent. However if the user is in a region where cookie consent law is required, I'd like to enable the cookie consent component and provide them with the choice to allow or deny cookies (type: "opt-in").

Describe alternatives you've considered

Our current system does not use the location feature, which works around this issue by forcing every user to consent.

Additional context

No response