Additional configuration instructions for using Pangle SDK
Pangle SDK removed COPPA and CCPA settings in v7.1+ and unified PAConsent. Taku SDK added corresponding APIs in v6.4.56 and above to facilitate your own settings according to the situation.
Note: If not set, the default state of Pangle SDK is Consent.
#import <AnyThinkPangleAdapter/AnyThinkPangleAdapter.h>
typedef NS_ENUM(NSInteger, ATPAGPAConsentType) {
ATPAGPAConsentTypeConsent = 0, ///< User has granted the consent
ATPAGPAConsentTypeNoConsent = 1, ///< User doesn't grant consent
};
+ (void)setPAGPAConsentType:(ATPAGPAConsentType)consentType;
eg.
//Enable fill Ad
[ATPangleConfigure setPAGPAConsentType:ATPAGPAConsentTypeConsent];
//Disable fill Ad
[ATPangleConfigure setPAGPAConsentType:ATPAGPAConsentTypeNoConsent];
● GDPR
The General Data Protection Regulation (GDPR) issued by the European Union came into effect on May 25, 2018. To support the GDPR agreement, we have updated our privacy policy . Developers are requested to learn about the relevant content of the Privacy Policy from our official website . At the same time, in order to protect the data privacy security of users, Taku iOS SDK has added a data protection function. Please refer to the following content to learn how to configure it.
1. Use the pop-up window provided by Taku

- Present mode, please do not present your window at this time
- If the ViewController parameter is not passed in, it will be automatically obtained and displayed by default.
- Before using the following code , please remove the ATT application code in other locations. Please do not
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsbecause Apple requires that
applicationDidBecomeActiveThen call ATT to apply.
The above effect access code example is as follows:
#import <AnyThinkSDK/ATAPI.h>
#import <AppTrackingTransparency/AppTrackingTransparency.h>
- (void)initFlow {
[[ATAPI sharedInstance] showGDPRConsentDialogInViewController:[UIApplication sharedApplication].keyWindow.rootViewController dismissalCallback:^{
if (([ATAPI sharedInstance].dataConsentSet == ATDataConsentSetUnknown && ([[NSUserDefaults standardUserDefaults] boolForKey:@"GDPR_First_Flag"] == YES))
|| [ATAPI sharedInstance].dataConsentSet == ATDataConsentSetPersonalized) {
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
}];
}
}
//Init SDK
[[ATAPI sharedInstance] startWithAppID:kTakuAppID appKey:kTakuAppKey error:nil];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"GDPR_First_Flag"];
}];
//......Other code
}
2. Use your own logic to let the user choose and notify Taku of the DataConsent level
After the user selects, the GDPR level is set for Taku through the following method, where the consentString parameter is reserved for Flurry. We provide three levels of data protection:
typedef NS_ENUM(NSInteger, ATDataConsentSet) {
ATDataConsentSetUnknown = 0,
ATDataConsentSetPersonalized = 1,
ATDataConsentSetNonpersonalized = 2
};
[[ATAPI sharedInstance] setDataConsentSet:ATDataConsentSetUnknown consentString:[NSDictionary dictionary]];
● CCPA
The California Consumer Privacy Act (CCPA) provides California consumers with a variety of privacy rights. Businesses covered by the CCPA will have multiple obligations to those consumers, including disclosures, consumer rights similar to the EU General Data Protection Regulation (GDPR), the right to “opt-out” of certain data transfers, and the right to “opt-in” for requests from minors.
Please go to the Taku dashboard - Application page and click the " Edit " button to set up CCPA, as shown below:

● COPPA
The Children's Online Privacy Protection Act (COPPA) primarily regulates the online collection of personal information from children under 13 years of age. According to the FTC's Complying with COPPA: Frequently Asked Questions, developers are responsible for determining whether their app is directed to children under 13, taking into account factors including but not limited to: "the subject matter of the site or service, its visual content, the use of animated characters or child-oriented activities and incentives, music or other audio content, age of models, presence of child celebrities or celebrities who appeal to children, language of the Web site or online service or other characteristics, and whether advertising promoting or appearing on the Web site or online service is directed to children."
⚠️ IMPORTANT: Child Traffic Classification Rules (Both conditions must be met simultaneously):
- TopOn SDK enforces child privacy protection restrictions on corresponding ad requests in accordance with COPPA requirements only when both of the following conditions are met:
- Dashboard Configuration: The COPPA status of the application is set to "Yes" in the TopOn Dashboard.
- Code Implementation: Prior to SDK initialization, the developer explicitly marks the user as a child ("Yes") via the appropriate API (indicating that the user is under 13 years of age; see sample code in Step 2. Pass the Child Flag Prior to SDK Initialization).
- Developers must accurately configure the COPPA status and child flag based on app properties and actual user circumstances. The absence of a child flag does not automatically mean the traffic is exempt from child traffic classification; developers remain responsible for ensuring their setup complies with applicable legal requirements.
Configuration Steps
Step 1. Enable COPPA in the Dashboard
Go to the TaKu Dashboard - Apps page, locate the target application, click the Edit button, and set the COPPA option to "Yes".

Note: If set to "No", all traffic from this application will be globally treated as non-child traffic, and any child flags passed in Step 2 will no longer trigger COPPA restrictions.
Step 2. Pass the Child Flag Prior to SDK Initialization
// Accurately set the child flag based on app properties and actual user circumstances
// [ATSDKGlobalSetting sharedManager].customData = @{kATCustomDataAgeKey:@"10"}; // Child traffic flag
// [ATSDKGlobalSetting sharedManager].customData = @{kATCustomDataAgeKey:@"100"}; // Non-child traffic flag