iOS SDK API

SDK-Schnittstellen

  1. MTMAService: Enthält alle SDK-Schnittstellen.
  2. MTMAConfig: Klasse für die Anwendungskonfiguration.
  3. MTMAInitResult: Klasse für das SDK-Initialisierungsergebnis.
  4. MTMAUserID: Modell für Benutzerkennungen.
  5. MTMAUserContact: Modell für Benutzerkontaktinformationen.
  6. 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: und identifyAccount: 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.

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];
              
                  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];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

MTMAUserContact *contact = [[MTMAUserContact alloc] init]; contact.contacts = @{@"mobile_phone":@"13*********"}; contact.completion = ^(NSInteger code, NSString * _Nonnull message) { }; [MTMAService setUserContact:contact];
              
                  MTMAUserContact *contact = [[MTMAUserContact alloc] init];
    contact.contacts = @{@"mobile_phone":@"13*********"};
    contact.completion = ^(NSInteger code, NSString * _Nonnull message) { };
    [MTMAService setUserContact:contact];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

MTMAEventObject *object = [[MTMAEventObject alloc] init]; object.eventName = @"sndefineevent2"; object.property = @{ @"key1":@"value1", @"key2":@"value2", }; [MTMAService eventRecord:object];
              
                  MTMAEventObject *object = [[MTMAEventObject alloc] init];
    object.eventName = @"sndefineevent2";
    object.property = @{
        @"key1":@"value1",
        @"key2":@"value2",
    };
    [MTMAService eventRecord:object];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

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];
              
                  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];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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"}}
              
              code=0
message={"email":{"code":0},"phone":{"code":3003,"msg":"Wert der Benutzerkennung überschreitet die zulässige Länge"}}

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

[MTMAService setChannelValueWithChannelId:136 values:@[@"RID oder Token des Push-Drittanbieters"] completion:^(NSInteger code, NSString *message) { }];
              
                  [MTMAService setChannelValueWithChannelId:136
                                       values:@[@"RID oder Token des Push-Drittanbieters"]
                                   completion:^(NSInteger code, NSString *message) {
    }];

            
Diesen Codeblock im schwebenden Fenster anzeigen

Ü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).

Aufrufbeispiel

[MTMAService setReportInterval:10];
              
                  [MTMAService setReportInterval:10];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

[MTMAService setMaxEventCacheCount:50];
              
                  [MTMAService setMaxEventCacheCount:50];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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).

Aufrufbeispiel

[MTMAService setNoActiveSessionEndDurationTime:50];
              
                  [MTMAService setNoActiveSessionEndDurationTime:50];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

[MTMAService EUID];
              
                  [MTMAService EUID];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

[MTMAService setUtmProperties:@{@"utm_source":@"value"}];
              
                  [MTMAService setUtmProperties:@{@"utm_source":@"value"}];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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 NSString sein, 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 mit el, engagelab oder metaverse beginnen.
      • Als Werte werden NSString, endliche NSNumber-Werte, NSSet/NSArray mit Zeichenfolgen, NSDictionary (object) und NSArray<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:
[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 }];
              
                 [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
   }];

            
Diesen Codeblock im schwebenden Fenster anzeigen
  • + (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:
[MTMAService setProperty:@"profile" to:@{ @"city": @"Singapore", @"score": @100 } completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                 [MTMAService setProperty:@"profile"
                         to:@{ @"city": @"Singapore", @"score": @100 }
                 completion:^(NSInteger code, NSString * _Nonnull message) {
   }];

            
Diesen Codeblock im schwebenden Fenster anzeigen

Regeln für object / object_array

  • object muss ein nicht leeres NSDictionary sein. Unterfeldnamen müssen nicht leere NSString-Werte sein und dürfen weder . noch $ enthalten.
  • Unterfelder von object unterstützen NSString, endliche NSNumber-Werte, NSSet/NSArray mit Zeichenfolgen und NSNull. Verschachtelte object- oder object_array-Werte werden nicht unterstützt.
  • Ein erneuter Aufruf von setProperty für ein object führt nur die übergebenen Unterfelder zusammen. Nicht übergebene Unterfelder bleiben unverändert. Der Wert NSNull entfernt das entsprechende Unterfeld.
  • object_array muss ein NSArray<NSDictionary *> sein. Jedes Objekt muss nicht leer sein und denselben Unterfeldregeln entsprechen. Ein erneuter Aufruf von setProperty ersetzt das gesamte Array.
  • Jedes object_array-Element muss mindestens ein Unterfeld mit einem Wert ungleich NSNull behalten. Objekte, deren Unterfeldwerte sämtlich NSNull sind, 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.
  • NSNull ist nur als Unterfeldwert innerhalb von object/object_array erlaubt. Ein NSNull auf oberster Ebene kann keine vollständige Eigenschaft löschen; verwenden Sie dafür deleteProperty: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];
              
              // 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];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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 values zusammen.
      • Das durch identifierKey bezeichnete Unterfeld muss bereits in den serverseitigen Metadaten definiert sein und den Typ string oder number haben. identifierValue muss ein typgleiches NSString oder ein endliches, nicht boolesches NSNumber sein und im aktuellen Array genau ein Element treffen.
      • values muss ein nicht leeres Dictionary sein und darf weder identifierKey noch verschachtelte object/object_array-Werte enthalten. Nicht übergebene Felder bleiben unverändert; NSNull entfernt 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=0 zurück, ohne etwas zu ändern. code=0 bestä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.
    • Aufrufbeispiel:
// 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) { }];
              
              // 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) {
}];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.
      • object muss ein nicht leeres NSDictionary mit mindestens einem Unterfeld ungleich NSNull sein. 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=0 zurück, ohne etwas zu ändern. Erstellen Sie sie zunächst durch Übergabe eines nicht leeren Objektarrays an setProperty:to:.
      • Ist die Eigenschaft definiert, hat der aktuelle Benutzer jedoch noch keinen Wert dafür, erstellt diese API ein Array mit diesem einen Element.
    • Aufrufbeispiel:
[MTMAService addObjectArrayProperty:@"addresses" object:@{ @"id": @"school", @"city": @"Osaka" } completion:^(NSInteger code, NSString *message) { }];
              
              [MTMAService addObjectArrayProperty:@"addresses"
                                object:@{
                                    @"id": @"school",
                                    @"city": @"Osaka"
                                }
                            completion:^(NSInteger code,
                                         NSString *message) {
}];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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 NSNull an updateObjectArrayProperty:.
      • Für identifierKey / identifierValue gelten exakt dieselben Einschränkungen wie bei updateObjectArrayProperty:: 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=0 zurü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.
    • Aufrufbeispiel:
// Die Adresse mit id == office löschen [MTMAService removeObjectArrayProperty:@"addresses" identifierKey:@"id" identifierValue:@"office" completion:^(NSInteger code, NSString *message) { }];
              
              // Die Adresse mit id == office löschen
[MTMAService removeObjectArrayProperty:@"addresses"
                         identifierKey:@"id"
                       identifierValue:@"office"
                            completion:^(NSInteger code,
                                         NSString *message) {
}];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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:
[MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService increaseProperty:@"key" by:@(2) completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Diesen Codeblock im schwebenden Fenster anzeigen
  • **+ (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:
[MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService increaseProperty:@{@"key1":@(5),@"key2":@(3)} completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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:
[MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService addProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Diesen Codeblock im schwebenden Fenster anzeigen
  • **+ (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:
[MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService addProperty:@{@"key1":@[@"value"],@"key2":@[@"value"]} completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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:
[MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService removeProperty:@"key" by:@[@"value"] completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

[MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) { }];
              
                  [MTMAService deleteProperty:@"key" completion:^(NSInteger code, NSString * _Nonnull message) {

    }];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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.

Aufrufbeispiel

MTMACollectControl *collectControl = [[MTMACollectControl alloc] init]; collectControl.idfa = YES; collectControl.idfv = YES; collectControl.carrier = YES; [MTMAService setCollectControl:collectControl];
              
                  MTMACollectControl *collectControl = [[MTMACollectControl alloc] init];
    collectControl.idfa = YES;
    collectControl.idfv = YES;
    collectControl.carrier = YES;
    [MTMAService setCollectControl:collectControl];

            
Diesen Codeblock im schwebenden Fenster anzeigen

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
email 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
Icon Solid Transparent White Qiyu
Vertrieb kontaktieren