Skip to content

Commit

Permalink
fix: advertising id being sent for Android application installed events
Browse files Browse the repository at this point in the history
  • Loading branch information
Sunita Prajapati committed Oct 23, 2024
1 parent a971498 commit 867e52a
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions packages/plugins/plugin-advertising-id/src/AdvertisingIdPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
getNativeModule,
ErrorType,
SegmentError,
SegmentEvent
} from '@segment/analytics-react-native';

import { Platform, NativeModule } from 'react-native';
Expand All @@ -15,6 +16,8 @@ type AdvertisingIDNativeModule = NativeModule & {

export class AdvertisingIdPlugin extends Plugin {
type = PluginType.enrichment;
queuedEvents: SegmentEvent[] = [];
advertisingId?: string = undefined;

configure(analytics: SegmentClient): void {
if (Platform.OS !== 'android') {
Expand All @@ -34,6 +37,7 @@ export class AdvertisingIdPlugin extends Plugin {
'LimitAdTrackingEnabled (Google Play Services) is enabled'
);
} else {
this.advertisingId = id
void this.setContext(id);
}
})
Expand All @@ -48,6 +52,16 @@ export class AdvertisingIdPlugin extends Plugin {
});
}

execute(event: SegmentEvent){

if (this.advertisingId === undefined) {
this.queuedEvents.push(event);
}else{
return event;
}
return;
}

async setContext(id: string): Promise<void> {
try {
await this.analytics?.context.set({
Expand All @@ -56,6 +70,7 @@ export class AdvertisingIdPlugin extends Plugin {
adTrackingEnabled: true,
},
});
this.sendQueued();
} catch (error) {
const message = 'AdvertisingID failed to set context';
this.analytics?.reportInternalError(
Expand All @@ -64,4 +79,11 @@ export class AdvertisingIdPlugin extends Plugin {
this.analytics?.logger.warn(`${message}: ${JSON.stringify(error)}`);
}
}

sendQueued() {
this.queuedEvents.forEach(event => {
void this.analytics?.process(event);
});
this.queuedEvents = [];
}
}

0 comments on commit 867e52a

Please sign in to comment.