iOS SDK API
SDK-Schnittstellen
- MTMAService: Enthält alle SDK-Schnittstellen.
- MTMAConfig: Klasse für die Anwendungskonfiguration.
- MTMAInitResult: Klasse für das SDK-Initialisierungsergebnis.
- MTMAUserID: Modell für Benutzerkennungen.
- MTMAUserContact: Modell für Benutzerkontaktinformationen.
- MTMACollectControl: Modell zur Steuerung der Datenerfassung.
MA-Funktionen starten
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
email- und phone-Kennungen unterstützt ab Version: 5.5.0
Unabhängige Initialisierung unterstützt ab Version: 5.5.0
Schnittstellendefinition
- + (void)start:(MTMAConfig * )config;
- Beschreibung:
- Aktiviert die EngageLab MA-Funktionen.
- start ist der Einstiegspunkt für die anderen Schnittstellen und muss vor allen anderen Schnittstellen aufgerufen werden.
- Die eigenständige Version benötigt einen MA AppKey. Die Initialisierung ist unabhängig vom Ergebnis der AppPush-Registrierung.
- Innerhalb desselben App-Prozesses können Sie die Initialisierung wiederholen oder den MA AppKey wechseln, ohne die App neu zu starten. Jeder gültige Aufruf wird separat ausgeführt und erhält einen eigenen Callback; Aufrufe werden nicht zusammengefasst.
start:undidentifyAccount:werden in Aufrufreihenfolge ausgeführt. Der nächste Aufruf beginnt erst, wenn der vorherige Aufruf und dessen Callback abgeschlossen sind. Änderungen am ursprünglichen Konfigurationsobjekt während der Wartezeit wirken sich nicht auf bereits übergebene Initialisierungsparameter aus.- Ein Wechsel des MA AppKey wird erst wirksam, wenn die entsprechende Initialisierung ausgeführt wird. Während der Wartezeit bleiben das aktuelle Projekt und die Identität unverändert.
- Jede Initialisierung benötigt eine Netzwerkverbindung zur Bestätigung der Benutzeridentität. Maßgeblich ist die EUID des aktuellen Callbacks. Ist das Gerät offline, wird der Vorgang bei wiederhergestellter Verbindung fortgesetzt; nachfolgende Aufrufe warten in ihrer Reihenfolge. Fehlerergebnisse siehe Fehlercodes.
- Parameter
- config: Konfigurationsklasse.
- Beschreibung:
Aufrufbeispiel
MTMAConfig *config = [[MTMAConfig alloc] init];
config.appKey = @"Ihr MA AppKey";
config.resultCompletion = ^(MTMAInitResult *result) {
if (result.isSuccess) {
NSLog(@"MTMA-Initialisierung erfolgreich");
} else {
NSLog(@"MTMA-Initialisierung fehlgeschlagen, code=%ld, message=%@", (long)result.code, result.message);
}
};
[MTMAService start:config];
Benutzerkontaktinformationen festlegen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- + (void)setUserContact:(MTMAUserContact * )contact;
- Beschreibung:
- Legt die Benutzerkontaktinformationen fest.
- Parameter
- contacts: Legt mehrere Kontaktinformationen fest; unterstützt derzeit email, mobile_phone, landline_phone und whatsapp_phone. Jeder Key muss eine Zeichenfolge mit 1–256 Zeichen sein. Jeder value muss eine Zeichenfolge sein;
""löscht die entsprechende Kontaktinformation. Eine nicht leere Zeichenfolge, die nur aus Leerraum besteht, ist ungültig.
- contacts: Legt mehrere Kontaktinformationen fest; unterstützt derzeit email, mobile_phone, landline_phone und whatsapp_phone. Jeder Key muss eine Zeichenfolge mit 1–256 Zeichen sein. Jeder value muss eine Zeichenfolge sein;
- Beschreibung:
Aufrufbeispiel
MTMAUserContact *contact = [[MTMAUserContact alloc] init];
contact.contacts = @{@"mobile_phone":@"13*********"};
contact.completion = ^(NSInteger code, NSString * _Nonnull message) { };
[MTMAService setUserContact:contact];
Ereignisse melden
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- **+ (void)eventRecord:(MTMAEventObject )event;*
- Beschreibung:
- Meldet ein Ereignis.
- Parameter
- Modell zur Ereignisübermittlung.
- eventName: Name des zu meldenden Ereignisses.
- property: Ereigniseigenschaften; Key ist der Eigenschaftsname, value der Eigenschaftswert.
- Beschreibung:
Aufrufbeispiel
MTMAEventObject *object = [[MTMAEventObject alloc] init];
object.eventName = @"sndefineevent2";
object.property = @{
@"key1":@"value1",
@"key2":@"value2",
};
[MTMAService eventRecord:object];
Benutzerkennungen festlegen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
email- und phone-Kennungen unterstützt ab Version: 5.5.0
Schnittstellendefinition
- + (void)identifyAccount:(MTMAUserID * )userID;
- Beschreibung:
- Legt Benutzerkennungen fest.
- Parameter
- Modell für Benutzerkennungen.
- userID: Legen Sie hier die eindeutige Kennung des angemeldeten Benutzers fest.
- anonymousID: Ist ein Benutzer nicht angemeldet, stellt aber andere identifizierende Informationen bereit, können diese als anonyme ID verwendet werden, etwa eine E-Mail-Adresse oder eine von einem Drittanbieter erzeugte Kennung.
- email: E-Mail-Adresse des Benutzers zur Identifikation.
- phone: Mobiltelefonnummer des Benutzers einschließlich Länder- oder Regionsvorwahl, zum Beispiel +8613800000000.
- Geben Sie mindestens eine gültige Kennung an; nicht alle Felder sind erforderlich. Details siehe Typen, Längen und Formate der Benutzerkennungen.
- Beschreibung:
Aufrufbeispiel
MTMAUserID *userid = [[MTMAUserID alloc] init];
userid.userID = @"member_10001";
userid.anonymousID = @"anonymous_10001";
userid.email = @"member_10001@example.com";
userid.phone = @"+8613800000000";
userid.completion = ^(NSInteger code, NSString *message) {
NSLog(@"result:%ld - %@", code, message);
};
[MTMAService identifyAccount:userid];
email und phone dienen hier dem Abgleich der Benutzeridentität und können zu einer neuen EUID führen. Sie sind nicht mit den über setUserContact: festgelegten Kontaktinformationen austauschbar.
Ein Callback mit code=0 bedeutet, dass eine verwendbare EUID ermittelt wurde, jedoch nicht, dass alle Kennungen erfolgreich gesetzt wurden. Das JSON in message enthält lokale und serverseitige Einzelergebnisse mit den Keys user_id, anonymous_id, email und phone. Prüfen Sie den code des jeweiligen Feldes; ein fehlendes Feld bedeutet keinen Erfolg.
Liefert der Server keine Einzelergebnisse, enthält message nur lokale Ablehnungen; liegen keine vor, lautet message success. Eine Fehlermeldung ist nicht zwingend JSON. Fehlercodes pro Feld siehe Einzelergebnisse der Benutzerkennungen.
Beispiel:
code=0
message={"email":{"code":0},"phone":{"code":3003,"msg":"Wert der Benutzerkennung überschreitet die zulässige Länge"}}
Kanal-Kontakt-IDs festlegen
Unterstützte Versionen
Unterstützt ab Version: 5.5.0
Schnittstellendefinition
- **+ (void)setChannelValueWithChannelId:(NSInteger)channelId values:(NSArray<NSString *> )values completion:(void (^)(NSInteger code, NSString message))completion;
- Beschreibung:
- Legt die RID oder das Token für einen Push-Drittanbieterkanal fest.
- Die Kanalzuordnung für EngageLab AppPush wird automatisch vom SDK verwaltet; dafür ist kein Aufruf dieser API erforderlich.
- Eine fehlende AppPush-Integration oder fehlgeschlagene AppPush-Registrierung beeinträchtigt die übrigen MA-Funktionen nicht.
- Bei aufeinanderfolgenden Aufrufen sendet das SDK die Anfragen in Aufrufreihenfolge und liefert für jedes Ergebnis einen eigenen Callback.
- Ändert sich der MA AppKey, das Projekt oder die Identität während der Wartezeit einer Anfrage, gibt diese Anfrage -2 zurück.
- Parameter
- channelId: ID des Push-Drittanbieterkanals in der MA-Konsole; muss größer als 0 sein.
- values: Array mit RIDs oder Tokens des aktuellen Kanals. Das SDK entfernt vor dem Senden führenden und nachfolgenden Leerraum aus jedem Wert. Weder das Array noch die bereinigten Elemente dürfen leer sein.
- completion: Callback für das Anfrageergebnis; code 0 bedeutet Erfolg.
- Beschreibung:
Aufrufbeispiel
[MTMAService setChannelValueWithChannelId:136
values:@[@"RID oder Token des Push-Drittanbieters"]
completion:^(NSInteger code, NSString *message) {
}];
Übermittlungsintervall festlegen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- + (void)setReportInterval:(NSInteger)interval;
- Beschreibung:
- Legt das Datenübermittlungsintervall fest. Ohne Aufruf dieser API werden Ereignisdaten standardmäßig alle 10 Sekunden übermittelt.
- Das Übermittlungsintervall wird im Arbeitsspeicher gespeichert. Rufen Sie diese API in jedem App-Lebenszyklus auf, damit die Einstellung wirksam ist.
- Parameter
- interval: Übermittlungsintervall in s (Sekunden).
- Beschreibung:
Aufrufbeispiel
[MTMAService setReportInterval:10];
Maximale Anzahl zwischengespeicherter Ereignisse festlegen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- + (void)setMaxEventCacheCount:(NSInteger)count;
- Beschreibung:
- Legt die maximale Anzahl zwischengespeicherter Ereignisse fest. Der Standardwert ist 50, der Höchstwert 500.
- Bei Überschreiten des Cache-Limits werden sämtliche Daten übermittelt.
- Parameter
- count: Maximale Anzahl zwischengespeicherter Ereignisse.
- Beschreibung:
Aufrufbeispiel
[MTMAService setMaxEventCacheCount:50];
Sitzungszeitlimit festlegen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- + (void)setNoActiveSessionEndDurationTime:(NSInteger)interval;
- Beschreibung:
- Legt das Sitzungszeitlimit fest. Der Standardwert ist 30 Minuten.
- Sobald die App in den Hintergrund wechselt, beginnt die Zeitmessung für das Sitzungszeitlimit. Ohne Aktivität innerhalb dieses Zeitraums endet die aktuelle Sitzung.
- Parameter
- interval: Zeitlimit in s (Sekunden).
- Beschreibung:
Aufrufbeispiel
[MTMAService setNoActiveSessionEndDurationTime:50];
EUID abrufen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- + (nullable NSString * )EUID;
- Beschreibung:
- Ruft die EUID von EngageLab MA ab.
- Gibt nil zurück, wenn das SDK noch nicht erfolgreich initialisiert wurde.
- Beschreibung:
Aufrufbeispiel
[MTMAService EUID];
UTM-Eigenschaften festlegen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- + (void)setUtmProperties:(NSDictionary * )property;
- Beschreibung:
- UTM-Eigenschaften sind standardisierte Ereigniseigenschaften. Wenn Sie erkennen können, über welche Anzeige ein Benutzer die App geöffnet hat, empfehlen wir, die UTM-Informationen festzulegen. Diese Parameter werden bei der Ereignisübermittlung mitgesendet. Unterstützt werden:
- utm_source: Kampagnenquelle.
- utm_medium: Kampagnenmedium.
- utm_term: Kampagnensuchbegriff.
- utm_content: Kampagneninhalt.
- utm_campaign: Kampagnenname.
- utm_id: Kampagnen-ID.
- UTM-Eigenschaften sind standardisierte Ereigniseigenschaften. Wenn Sie erkennen können, über welche Anzeige ein Benutzer die App geöffnet hat, empfehlen wir, die UTM-Informationen festzulegen. Diese Parameter werden bei der Ereignisübermittlung mitgesendet. Unterstützt werden:
- Beschreibung:
Aufrufbeispiel
[MTMAService setUtmProperties:@{@"utm_source":@"value"}];
Benutzereigenschaften festlegen
Benutzereigenschaften setzen und überschreiben
- + (void)setProperty:(NSDictionary * )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;
- Beschreibung:
- Setzt Benutzereigenschaften stapelweise, höchstens 100 pro Aufruf. Schlägt die SDK-Validierung einer Eigenschaft fehl, wird der gesamte Stapel nicht gesendet.
- Eigenschaftsnamen müssen vom Typ
NSStringsein, mit einem Kleinbuchstaben beginnen und dürfen nur Kleinbuchstaben, Ziffern und Unterstriche enthalten. Sie dürfen höchstens 50 UTF-8-Bytes lang sein und nicht mitel,engagelabodermetaversebeginnen. - Als Werte werden
NSString, endlicheNSNumber-Werte,NSSet/NSArraymit Zeichenfolgen,NSDictionary(object) undNSArray<NSDictionary *>(object_array) unterstützt. - Gewöhnliche Typen werden überschrieben, wenn sie vorhanden sind, andernfalls erstellt. Bei object werden Unterfelder zusammengeführt; bei object_array wird das gesamte Array unter Beibehaltung seiner Reihenfolge ersetzt.
- Aufrufbeispiel:
- Beschreibung:
[MTMAService setProperty:@{
@"level": @"gold",
@"profile": @{ @"city": @"Singapore", @"score": @100 },
@"addresses": @[
@{ @"id": @"home", @"city": @"Singapore" },
@{ @"id": @"office", @"city": @"Tokyo" }
]
} completion:^(NSInteger code, NSString * _Nonnull message) {
// code == 0 bedeutet erfolgreiche Verarbeitung auf dem Server
}];
- + (void)setProperty:(NSString * )key to:(id)value completion:(void (^)(NSInteger code, NSString * message))completion;
- Beschreibung:
- Setzt den Wert einer einzelnen Benutzereigenschaft.
- Eigenschaftsnamen, Werttypen und Aktualisierungsverhalten entsprechen exakt der Stapel-API.
- Aufrufbeispiel:
- Beschreibung:
[MTMAService setProperty:@"profile"
to:@{ @"city": @"Singapore", @"score": @100 }
completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Regeln für object / object_array
- object muss ein nicht leeres
NSDictionarysein. Unterfeldnamen müssen nicht leereNSString-Werte sein und dürfen weder.noch$enthalten. - Unterfelder von object unterstützen
NSString, endlicheNSNumber-Werte,NSSet/NSArraymit Zeichenfolgen undNSNull. Verschachtelte object- oder object_array-Werte werden nicht unterstützt. - Ein erneuter Aufruf von
setPropertyfür ein object führt nur die übergebenen Unterfelder zusammen. Nicht übergebene Unterfelder bleiben unverändert. Der WertNSNullentfernt das entsprechende Unterfeld. - object_array muss ein
NSArray<NSDictionary *>sein. Jedes Objekt muss nicht leer sein und denselben Unterfeldregeln entsprechen. Ein erneuter Aufruf vonsetPropertyersetzt das gesamte Array. - Jedes object_array-Element muss mindestens ein Unterfeld mit einem Wert ungleich
NSNullbehalten. Objekte, deren Unterfeldwerte sämtlichNSNullsind, sind unzulässig. - Ein leeres Array kann eine vorhandene Array-Eigenschaft leeren. Bei der erstmaligen Erstellung lässt sich anhand eines leeren Arrays allein nicht zwischen Zeichenfolgenliste und object_array unterscheiden. Übergeben Sie zur erstmaligen Erstellung eines object_array ein nicht leeres Objektarray.
NSNullist nur als Unterfeldwert innerhalb von object/object_array erlaubt. EinNSNullauf oberster Ebene kann keine vollständige Eigenschaft löschen; verwenden Sie dafürdeleteProperty:completion:.
Beispiele für die teilweise Aktualisierung eines object und das Entfernen eines Unterfelds:
// Nur profile.score aktualisieren; profile.city bleibt unverändert
[MTMAService setProperty:@"profile"
to:@{ @"score": @200 }
completion:completion];
// Nur profile.city entfernen
[MTMAService setProperty:@"profile"
to:@{ @"city": NSNull.null }
completion:completion];
Ein object_array-Element teilweise aktualisieren
Unterstützt ab Version: 5.5.0
- **+ (void)updateObjectArrayProperty:(NSString *)key identifierKey:(NSString )identifierKey identifierValue:(id)identifierValue values:(NSDictionary<NSString *, id> )values completion:(void (^)(NSInteger code, NSString * message))completion;
- Beschreibung:
- Findet ein Objekt in einem object_array anhand eines eindeutigen Unterfelds und führt anschließend die Unterfelder aus
valueszusammen. - Das durch
identifierKeybezeichnete Unterfeld muss bereits in den serverseitigen Metadaten definiert sein und den Typ string oder number haben.identifierValuemuss ein typgleichesNSStringoder ein endliches, nicht booleschesNSNumbersein und im aktuellen Array genau ein Element treffen. valuesmuss ein nicht leeres Dictionary sein und darf wederidentifierKeynoch verschachtelte object/object_array-Werte enthalten. Nicht übergebene Felder bleiben unverändert;NSNullentfernt das entsprechende Unterfeld.- Die Eigenschaft muss in den serverseitigen Metadaten bereits als object_array definiert sein, und der aktuelle Benutzer muss bereits einen Wert dafür haben. Für die erstmalige Erstellung übergeben Sie ein nicht leeres Objektarray an
setProperty:to:. - Ist die Eigenschaft nicht definiert oder definiert, aber für den aktuellen Benutzer noch ohne Wert, gibt der Server
code=0zurück, ohne etwas zu ändern.code=0bestätigt nur die erfolgreiche Anfrageverarbeitung; prüfen Sie das tatsächliche Ergebnis in der MA-Konsole oder in den serverseitigen Benutzereigenschaften. - Existiert das Array, aber es gibt keinen oder mehrere Treffer, stimmt der Typ des Kennungsfelds nicht überein oder entspricht ein Unterfeld nicht seiner Metadatendefinition, gibt der Server einen Fehlercode zurück. Andere Elemente werden weder erstellt noch geändert.
- Findet ein Objekt in einem object_array anhand eines eindeutigen Unterfelds und führt anschließend die Unterfelder aus
- Aufrufbeispiel:
- Beschreibung:
// Beim Objekt mit id == home city auf Tokyo setzen und zip entfernen
[MTMAService updateObjectArrayProperty:@"addresses"
identifierKey:@"id"
identifierValue:@"home"
values:@{
@"city": @"Tokyo",
@"zip": NSNull.null
}
completion:^(NSInteger code,
NSString *message) {
}];
Ein object_array-Element anhängen
Unterstützt ab Version: 5.5.0
- **+ (void)addObjectArrayProperty:(NSString )key object:(NSDictionary<NSString *, id> )object completion:(void (^)(NSInteger code, NSString * message))completion;
- Beschreibung:
- Hängt ein Objekt am Ende eines object_array an, ohne vorhandene Elemente zu beeinflussen. Im Gegensatz dazu ersetzt die Übergabe eines vollständigen Arrays an
setProperty:to:das gesamte Array. objectmuss ein nicht leeresNSDictionarymit mindestens einem Unterfeld ungleichNSNullsein. Es gelten dieselben Unterfeldregeln wie für object; verschachtelte object/object_array-Werte sind nicht zulässig.- Die Eigenschaft muss in den serverseitigen Metadaten bereits als object_array definiert sein. Andernfalls gibt der Server
code=0zurück, ohne etwas zu ändern. Erstellen Sie sie zunächst durch Übergabe eines nicht leeren Objektarrays ansetProperty:to:. - Ist die Eigenschaft definiert, hat der aktuelle Benutzer jedoch noch keinen Wert dafür, erstellt diese API ein Array mit diesem einen Element.
- Hängt ein Objekt am Ende eines object_array an, ohne vorhandene Elemente zu beeinflussen. Im Gegensatz dazu ersetzt die Übergabe eines vollständigen Arrays an
- Aufrufbeispiel:
- Beschreibung:
[MTMAService addObjectArrayProperty:@"addresses"
object:@{
@"id": @"school",
@"city": @"Osaka"
}
completion:^(NSInteger code,
NSString *message) {
}];
Ein object_array-Element entfernen
Unterstützt ab Version: 5.5.0
- **+ (void)removeObjectArrayProperty:(NSString )key identifierKey:(NSString )identifierKey identifierValue:(id)identifierValue completion:(void (^)(NSInteger code, NSString * message))completion;
- Beschreibung:
- Findet und entfernt ein vollständiges Array-Element anhand eines eindeutigen Unterfelds. Um nur ein Unterfeld eines Elements zu entfernen, übergeben Sie für dieses Unterfeld
NSNullanupdateObjectArrayProperty:. - Für
identifierKey/identifierValuegelten exakt dieselben Einschränkungen wie beiupdateObjectArrayProperty:: Das Unterfeld muss in den Metadaten definiert sein, den Typ string oder number haben und im aktuellen Array genau ein Element treffen. - Ist die Eigenschaft serverseitig nicht definiert, hat der aktuelle Benutzer keinen Wert dafür oder gibt es keinen Treffer, ignoriert der Server die Anfrage und gibt
code=0zurück. Prüfen Sie das tatsächliche Ergebnis in der MA-Konsole oder in den serverseitigen Benutzereigenschaften. - Bei mehreren Treffern oder abweichendem Typ des Kennungsfelds gibt der Server einen Fehlercode zurück und löscht keine anderen Elemente.
- Findet und entfernt ein vollständiges Array-Element anhand eines eindeutigen Unterfelds. Um nur ein Unterfeld eines Elements zu entfernen, übergeben Sie für dieses Unterfeld
- Aufrufbeispiel:
- Beschreibung:
// Die Adresse mit id == office löschen
[MTMAService removeObjectArrayProperty:@"addresses"
identifierKey:@"id"
identifierValue:@"office"
completion:^(NSInteger code,
NSString *message) {
}];
Benutzereigenschaften erhöhen
- **+ (void)increaseProperty:(NSString )key by:(NSNumber )amount completion:(void (^)(NSInteger code, NSString * message))completion;
- Beschreibung:
- Addiert einen Wert zu einer numerischen Benutzereigenschaft und summiert so die gemeldeten Werte, beispielsweise die Gesamtausgaben.
- Diese API gilt nur für Benutzereigenschaften vom Typ NSNumber; andernfalls wird der Aufruf ignoriert. Existiert die Eigenschaft noch nicht, wird ihr Anfangswert als 0 behandelt.
- Aufrufbeispiel:
- Beschreibung:
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {
}];
- **+ (void)increaseProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger code, NSString * message))completion;*
- Beschreibung:
- Addiert Werte zu mehreren numerischen Benutzereigenschaften und summiert so die gemeldeten Werte, beispielsweise die Gesamtausgaben.
- Diese API gilt nur für Benutzereigenschaften vom Typ NSNumber; andernfalls wird der Aufruf ignoriert. Existiert die Eigenschaft noch nicht, wird ihr Anfangswert als 0 behandelt.
- Aufrufbeispiel:
- Beschreibung:
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Werte an Benutzereigenschaften anhängen
- **+ (void)addProperty:(NSString )key by:(NSObject
)content completion:(void (^)(NSInteger code, NSString * message))completion - Beschreibung:
- Fügt einer Eigenschaft vom Typ NSSet oder NSArray Werte hinzu.
- Wie oben beschrieben müssen die Elemente des NSSet oder NSArray vom Typ NSString sein; andernfalls wird der Vorgang ignoriert. Existiert die Eigenschaft noch nicht, wird ein leeres NSSet oder NSArray initialisiert.
- Aufrufbeispiel:
- Beschreibung:
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
- **+ (void)addProperty:(NSDictionary )userinfo completion:(void (^)(NSInteger, NSString * _Nonnull))completion;*
- Beschreibung:
- Fügt mehreren Eigenschaften vom Typ NSSet oder NSArray Werte hinzu.
- Wie oben beschrieben müssen die Elemente des NSSet oder NSArray vom Typ NSString sein; andernfalls wird der Vorgang ignoriert. Existiert die Eigenschaft noch nicht, wird ein leeres NSSet oder NSArray initialisiert.
- Aufrufbeispiel:
- Beschreibung:
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Werte aus Benutzereigenschaften entfernen
- **+ (void)removeProperty:(NSString * )key by:(NSObject
)content completion:(void (^)(NSInteger code, NSString * message))completion;* - Beschreibung:
- Entfernt Werte aus einer Eigenschaft vom Typ NSSet oder NSArray.
- content muss ein NSSet oder NSArray mit Elementen vom Typ NSString sein.
- Aufrufbeispiel:
- Beschreibung:
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Benutzereigenschaften löschen
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- + (void)deleteProperty:(NSString * )key completion:(void (^)(NSInteger code, NSString * message))completion;
- Beschreibung:
- Löscht den gesamten Inhalt einer Benutzereigenschaft; gilt für gewöhnliche Typen, object und object_array.
- Existiert die Benutzereigenschaft nicht, wird der Vorgang ignoriert.
- Beschreibung:
Aufrufbeispiel
[MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) {
}];
Datenerfassung steuern
Unterstützte Versionen
Unterstützt ab Version: 5.0.0
Schnittstellendefinition
- **+ (void)setCollectControl:(MTMACollectControl )control;*
- Beschreibung:
- Steuert, ob die Datenelemente in MTMACollectControl erfasst werden.
- Beschreibung:
Aufrufbeispiel
MTMACollectControl *collectControl = [[MTMACollectControl alloc] init];
collectControl.idfa = YES;
collectControl.idfv = YES;
collectControl.carrier = YES;
[MTMAService setCollectControl:collectControl];
Klasse MTMAConfig
Klasse für die Anwendungskonfiguration. Die Eigenschaften sind nachfolgend beschrieben:
| Parameter | Typ | Beschreibung |
|---|---|---|
| appKey | NSString | MA AppKey; für die eigenständige Version erforderlich, muss aus genau 24 Buchstaben oder Ziffern bestehen und ist unabhängig vom Push AppKey |
| userID | MTMAUserID | Modell für Benutzerkennungen; wenn gesetzt, werden die Kennungen bei der Initialisierung übermittelt |
| resultCompletion | ^(MTMAInitResult *result) | Asynchroner Callback im Hauptthread; gibt MTMAInitResult zurück und hat Vorrang vor completion |
| completion | (^)(NSInteger code, NSString * message) | Bisheriger Callback für das Initialisierungsergebnis; veraltet, verwenden Sie resultCompletion |
Klasse MTMAInitResult
Von resultCompletion zurückgegebenes Objekt mit dem SDK-Initialisierungsergebnis. Es muss nicht separat erstellt oder aufgerufen werden. Die Eigenschaften sind nachfolgend beschrieben:
| Parameter | Typ | Beschreibung |
|---|---|---|
| code | NSInteger | Ergebniscode der Initialisierung, nur zur Diagnose; die Anwendungslogik sollte nicht anhand bestimmter serverseitiger Geschäftscodes verzweigen |
| message | NSString | Beschreibung des Initialisierungsergebnisses; bei unerwarteten Fehlern zusammen mit code an den technischen Support weitergeben |
| EUID | NSString | MA EUID nach erfolgreicher Initialisierung; bei einem Fehler nil |
| maRID | NSString | MA Registration ID nach erfolgreicher Initialisierung; bei einem Fehler nil |
| success | BOOL | Gibt an, ob die Initialisierung erfolgreich war; über isSuccess abrufen und zur Beurteilung des Ergebnisses verwenden |
Klasse MTMAUserID
Modell für Benutzerkennungen. Bei der Initialisierung wird es über MTMAConfig.userID, zur Laufzeit über identifyAccount: übergeben.
Alle vier Kennungen sind optional. Führende und nachfolgende Leerzeichen werden entfernt; leere Werte sowie 0/null/undefined/nan (ohne Beachtung der Groß-/Kleinschreibung) gelten als nicht übergeben. Sie werden weder für den Abgleich verwendet noch in Einzelergebnissen aufgeführt. Für die nach dieser Bereinigung verbleibenden Werte gelten folgende Einschränkungen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| userID | NSString | Höchstens 255 Unicode-Zeichen; für leere und reservierte Werte gelten die obigen gemeinsamen Regeln |
| anonymousID | NSString | Höchstens 256 Unicode-Zeichen; für leere und reservierte Werte gelten die obigen gemeinsamen Regeln |
| NSString | Nach Entfernen führender und nachfolgender Leerzeichen nicht leer; höchstens 256 Unicode-Zeichen; muss \A[^@\s]+@[^@\s]+\z entsprechen |
|
| phone | NSString | Muss dem E.164-Format \A\+[1-9]\d{1,14}\z entsprechen |
| completion | (^)(NSInteger code, NSString * message) | Asynchroner Callback im Hauptthread; liefert bei der Initialisierung das Initialisierungsergebnis, zur Laufzeit das Ergebnis der Identitätsverarbeitung von identifyAccount: |
Felder mit einem anderen Typ als NSString oder ungültigem Format werden mit 3013 ausgeschlossen, zu lange Felder mit 3003. Die Ergebnisse werden erfasst; die übrigen gültigen Felder werden weiterhin übermittelt. Bleibt kein gültiges Feld übrig, wird die Initialisierung ohne Kennungen fortgesetzt; identifyAccount: gibt hingegen -3 zurück und sendet keine Anfrage. Das SDK verändert das Objekt des Aufrufers nicht; email wird vom Server in Kleinbuchstaben umgewandelt.
Bei erfolgreicher Initialisierung gibt userID.completion code=0 zurück. message ist eine leere Zeichenfolge oder JSON mit ausschließlich lokal abgelehnten Feldern. Serverseitige Einzelergebnisse sind nicht enthalten; daraus lässt sich nicht ableiten, dass alle Kennungen gebunden wurden. Maßgeblich für das SDK-Initialisierungsergebnis ist config.resultCompletion; dieser Callback enthält kein JSON mit Einzelergebnissen der Kennungen. Laufzeit-Callbacks siehe Benutzerkennungen festlegen.
Klasse MTMACollectControl
Modell zur Steuerung der Erfassung von Benutzerdaten. Die Eigenschaften sind nachfolgend beschrieben:
| Parameter | Typ | Beschreibung |
|---|---|---|
| idfa | BOOL | Legt fest, ob idfa-Informationen erfasst werden. NO deaktiviert die Erfassung. Standardwert: NO |
| idfv | BOOL | Legt fest, ob idfv-Informationen erfasst werden. NO deaktiviert die Erfassung. Standardwert: NO |
| carrier | BOOL | Legt fest, ob Mobilfunkanbieterinformationen erfasst werden. NO deaktiviert die Erfassung. Standardwert: YES |
Klasse MTMAUserContact
Modell für Benutzerkanäle. Die Eigenschaften sind nachfolgend beschrieben.
Ein nicht gesetzter Wert oder nil lässt die Kontaktinformation unverändert. Die leere Zeichenfolge "" löscht sie. Eine nicht leere Zeichenfolge, die nur aus Leerraum besteht, ist ungültig.
| Parameter | Typ | Beschreibung |
|---|---|---|
| contacts | NSDictionary | Dictionary für Kontaktinformationen; unterstützt 4 Kontaktarten: email, mobile_phone, landline_phone und whatsapp_phone |
| completion | (^)(NSInteger code, NSString * message) | Callback für das Anfrageergebnis; code:0 bedeutet Erfolg |
Klasse MTMAEventObject
Klasse für benutzerdefinierte Ereignisobjekte. Die Eigenschaften sind nachfolgend beschrieben:
| Parameter | Typ | Beschreibung |
|---|---|---|
| eventName | NSString | Erforderliche, nicht leere Ereignis-ID. Muss mit einem Kleinbuchstaben beginnen, darf nur Kleinbuchstaben, Ziffern und Unterstriche enthalten und höchstens 50 UTF-8-Bytes lang sein. Darf nicht mit el, engagelab oder metaverse beginnen |
| property | NSDictionary<NSString *, id> | Benutzerdefinierte Eigenschaften (höchstens 100). Jeder Key ist ein NSString mit denselben Namensregeln wie eventName; jeder Wert kann NSString, NSNumber oder NSSet/NSArray mit NSString-Elementen sein |










