{"_id":"@adstage/nbase-react-native-sdk","name":"@adstage/nbase-react-native-sdk","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.3":{"name":"@adstage/nbase-react-native-sdk","version":"1.0.3","description":"React Native SDK for AdStage","main":"lib/commonjs/index","module":"lib/module/index","types":"lib/typescript/index.d.ts","react-native":"src/index","source":"src/index","scripts":{"test":"jest","typecheck":"tsc --noEmit","lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli lib","prepare":"bob build","release":"release-it","example":"cd example && npm start","example:ios":"cd example && npx react-native run-ios","example:android":"cd example && npx react-native run-android","example:install":"cd example && npm install && cd ios && pod install && cd ..","bootstrap":"npm install && npm run example:install","clean:all":"npm run clean && rm -rf node_modules && rm -rf example/node_modules"},"keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/nbase-io/NBase-SDK-ReactNative.git"},"author":{"name":"NBase.io"},"license":"PROPRIETARY","bugs":{"url":"https://github.com/nbase-io/NBase-SDK-ReactNative/issues"},"homepage":"https://github.com/nbase-io/NBase-SDK-ReactNative#readme","publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@commitlint/config-conventional":"^17.0.2","@evilmartians/lefthook":"^1.5.0","@react-native/eslint-config":"^0.72.2","@release-it/conventional-changelog":"^5.0.0","@types/jest":"^28.1.2","@types/react":"~17.0.21","@types/react-native":"0.70.0","commitlint":"^17.0.2","del-cli":"^5.0.0","eslint":"^8.4.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","jest":"^28.1.1","pod-install":"^0.1.0","prettier":"^2.0.5","react":"18.2.0","react-native":"0.72.14","react-native-builder-bob":"^0.20.0","release-it":"^15.0.0","typescript":"^5.0.2"},"resolutions":{"@types/react":"17.0.21"},"peerDependencies":{"react":"*","react-native":"*"},"engines":{"node":">= 16.0.0"},"packageManager":"yarn@1.22.15","jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":"angular"}}},"eslintConfig":{"root":true,"extends":["@react-native","prettier"],"rules":{"prettier/prettier":["error",{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false}]}},"eslintIgnore":["node_modules/","lib/"],"prettier":{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false},"react-native-builder-bob":{"source":"src","output":"lib","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]},"_id":"@adstage/nbase-react-native-sdk@1.0.3","gitHead":"3abee19fb0b7e027be325a3067ef13d1bf2926b3","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-C1MEQKDA++JHHgFyVWZbHurByk0wT12FEcPNQhfIe+GbaYU2Vkd3e+7NVVdUiVrZStL/EsOiA6fdVQ1l6cg2wg==","shasum":"7c06a9736bbaec3017b056ea4d303231638d3ad9","tarball":"https://registry.npmjs.org/@adstage/nbase-react-native-sdk/-/nbase-react-native-sdk-1.0.3.tgz","fileCount":38,"unpackedSize":157478,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCvdXojmZDuCAMaifBA7Ew75y89MLVzjb3JEcdlB1CxDgIhAKs5XN2xSxmwSX+hBOc8Jrc34XtR+tLDpsusr2gZO7NH"}]},"_npmUser":{"name":"nbase","email":"dev@nbase.io"},"directories":{},"maintainers":[{"name":"nbase","email":"dev@nbase.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nbase-react-native-sdk_1.0.3_1757382303161_0.4132647715022584"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-09T01:45:03.077Z","1.0.3":"2025-09-09T01:45:03.345Z","modified":"2025-09-09T01:45:03.615Z"},"maintainers":[{"name":"nbase","email":"dev@nbase.io"}],"description":"React Native SDK for AdStage","homepage":"https://github.com/nbase-io/NBase-SDK-ReactNative#readme","keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/nbase-io/NBase-SDK-ReactNative.git"},"author":{"name":"NBase.io"},"bugs":{"url":"https://github.com/nbase-io/NBase-SDK-ReactNative/issues"},"license":"PROPRIETARY","readme":"# NBase AdStage React Native SDK\n\nReact Native SDK for NBase AdStage - Deep link and promotion management solution.\n\n## Installation\n\n```bash\nnpm install nbase-ad-react-native-sdk\n# or\nyarn add nbase-ad-react-native-sdk\n```\n\n## Platform Setup\n\n### iOS Setup\n\n1. Install iOS dependencies:\n```bash\ncd ios && pod install\n```\n\n2. Add to your `ios/Podfile`:\n```ruby\npod 'AdapterAdStage', '3.0.2'\n```\n\n### Android Setup\n\n1. Add to your `android/build.gradle` (project level):\n```gradle\nallprojects {\n    repositories {\n        // ... other repositories\n        maven { url \"https://repo.nbase.io/repository/nbase-releases\" }\n    }\n}\n```\n\n2. The SDK automatically includes the required dependencies.\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport AdStageSDK from 'nbase-ad-react-native-sdk';\n\n// Initialize the SDK using AdStageSDK unified class\nawait AdStageSDK.setApiKey('YOUR_API_KEY');\n\n// Optional: Set server URL\nawait AdStageSDK.setServerUrl('https://beta-api.adstage.app');\n```\n\n### Deep Link Handling\n\n```typescript\n// Setup unified deep link listener (uses AdStageSDK.setUnifiedListener internally)\nAdStageSDK.setUnifiedListener((event) => {\n  console.log('Deep link received:', event.deepLink);\n  console.log('Payload:', event.payload);\n});\n\n// Or use the automatic setup with options\nAdStageSDK.setupDeepLinkHandling((event) => {\n  console.log('Deep link received:', event.deepLink);\n  console.log('Payload:', event.payload);\n}, {\n  autoCheckPending: true,    // Check for pending deep links on app start\n  autoHandleAppState: true,  // Handle app foreground events\n  showAlert: false          // Show alert when deep link received\n});\n```\n\n### Create Deep Links\n\n```typescript\n// Using the unified AdStageSDK approach\nconst deepLinkConfig = {\n  name: 'My Campaign',\n  description: 'Campaign description',\n  shortPath: 'promo2024',\n  channel: 'social',\n  campaign: 'summer_sale',\n  parameters: {\n    product_id: '123',\n    discount: '20'\n  }\n};\n\n// Create deep link using AdStageSDK\nconst shortUrl = await AdStageSDK.createDeepLink().create(deepLinkConfig);\nconsole.log('Generated URL:', shortUrl);\n```\n\n### Promotion Management\n\n```typescript\n// Get promotion list using AdStageSDK.PromotionParams\nconst promotionParams = {\n  bannerType: 'POPUP',              // NATIVE, INTERSTITIAL, REWARDED_VIDEO, POPUP\n  targetAudience: 'new_users',      // Custom target audience\n  deviceType: 'HIGH_END',           // LOW_END, MID_END, HIGH_END\n  region: 'KR',                     // KR, JP, US, SEA, EU, GLOBAL\n  limit: 10,                        // Number of promotions to fetch\n  status: 'ACTIVE',                 // ACTIVE, PENDING, PAUSED, ENDED\n  partner: 'partner_name',          // Partner/advertiser filter\n  primaryInterest: 'GAMES',         // GAMES, SHOPPING, ENTERTAINMENT, etc.\n  primaryAgeGroup: '18-24',         // 13-17, 18-24, 25-34, 35-44, 45+\n  gameGenrePreference: 'RPG',       // RPG, STRATEGY, CASUAL, ACTION, PUZZLE\n  playerSpendingTier: 'WHALE',      // F2P, DOLPHIN, WHALE\n  playTimePattern: 'EVENING'        // MORNING, AFTERNOON, EVENING, NIGHT\n};\n\n// Get promotion list using AdStageSDK\nconst promotions = await AdStageSDK.getPromotionList(promotionParams);\nconsole.log('Promotions:', promotions);\n\n// Open promotion dialog using AdStageSDK\nawait AdStageSDK.openPromotion(promotionParams, true); // showTodayButton\n```\n\n### Event Tracking\n\n```typescript\n// Track custom events\nawait AdStageSDK.trackEvent('user_action', {\n  deeplinkId: 'abc123',\n  action_type: 'click',\n  value: 100\n});\n```\n\n### User Management\n\n```typescript\n// Set user ID\nawait AdStageSDK.setUserId('user_12345');\n\n// Get user ID\nconst userId = await AdStageSDK.getUserId();\n\n// Set custom attributes\nawait AdStageSDK.setCustomAttribute('user_level', '5');\n\n// Get all attributes\nconst attributes = await AdStageSDK.getAllCustomAttributes();\n```\n\n## API Reference\n\n### Methods\n\n- `initialize(apiKey: string): Promise<void>`\n- `setupDeepLinkHandling(callback, options?): void`\n- `createDeepLink(config: DeepLinkConfig): Promise<string>`\n- `getPromotionList(params: PromotionParams): Promise<PromotionListResult>`\n- `openPromotion(params: PromotionParams, showTodayButton?: boolean): Promise<string>`\n- `trackEvent(eventName: string, params?: EventParams): Promise<void>`\n- `setUserId(userId: string): Promise<void>`\n- `getUserId(): Promise<string>`\n- `setCustomAttribute(key: string, value: string): Promise<void>`\n- `getAllCustomAttributes(): Promise<Record<string, string>>`\n\n### Interfaces\n\n```typescript\ninterface DeepLinkConfig {\n  name: string;\n  description?: string;\n  shortPath?: string;\n  channel?: string;\n  campaign?: string;\n  parameters?: Record<string, string>;\n}\n\ninterface PromotionParams {\n  promotionId?: string;\n  bannerType?: string;\n  targetAudience?: string;\n  limit?: number;\n  status?: string;\n  showTodayButton?: boolean;\n}\n```\n\n## Requirements\n\n- React Native >= 0.60\n- iOS >= 15.0\n- Android API Level >= 24\n\n## License\n\nMIT\n\n## Support\n\nFor support, please visit [NBase.io](https://www.nbase.io) ","readmeFilename":"README.md","_rev":"1-b081539a369cacdbc6f2850a19301f2d"}