How to Transfer Tags from Ads to Ad Comments via Rules
advertising
ad comment moderation
paid rules engine
Updated
1 day ago
, by [Redesign] Sprinklr Help Center
Get more insights into what people are saying about your products and prevent negative sentiments on your posts.
Social networks are the most influential medium for finding inspiration for purchases. However, negative reviews stop 40% of buyers from wanting to use a business, causing a decrease in demand for their products.
Most users start their purchase journey by checking others’ opinions. If they see many negative comments, they start to look for an alternative product. That’s why it’s so important to monitor comments under your ad posts and moderate them. Without doing so, you can lose not only the money invested in your Paid Initiatives but also potential customers. Plus, negative comments affect the overall brand reputation.
But Moderating comments on ads is not easy; responding to each comment is a very tedious process. This is where Sprinklr's comment moderation comes into play and helps you automate the process of detecting negative reviews and comments, helping you moderate them as needed.
Use Cases for Transferring Custom Fields
This article will explore how you can enrich your ad comments with ad Custom Fields, so that you can:
Help idenitfy which Paid Initiatives a comment originated from
Filter Engagement Dashboards by the ad Custom Fields
Help assign messages to the appropriate teams, i.e. by brand, country, or product.
Transferring Custom Fields via Rules
Internal Note: The configuration below can be set up by importing the "Ads Use Case | 8-2" Blueprint through Hyperdrive. Replace the "Ad Comment Placeholder" Custom Field with the relevant Field in each Rule.
The first step is to create a Custom Field with all assets (where you need the tags) selected.
Ad Variant, Ad Set or Paid Initiative asset class - required to apply the Custom Field on at least one Ad level.
Message asset class - required to copy CF from Ads to Inbound Messages
Case asset class - required to copy CF from Inbound Messages to Cases (if applicable)
Add the Values required for the Field, configure the other settings (such as visibility) as required then save the field.
Ensure that the Custom Field is applied to the Ads you want to monitor comments from, or it will not be able to transfer to the Inbound Messages. This can be done in several ways:
Manually while building the ads in Ads Composer or Ads Manager (you may want to make the Field Mandatory so it isn't missed)
By Paid Pre Publishing Rules while building the ads in Ads Composer
Manually while editing the ads in Ads Manager
By Paid Rules after the Ad is Published
Historic Ads can be tagged with Macros or Partial Imports
Paid Rules can be used to transfer Custom Field Values from the Ad Variant level to the Outbound Message level using the action "Map Ad Variant Custom Field Values to Post".
Note: if you cannot see this action available in Paid Rules, please reach out to your Success Manager.
Since values can only be mapped from the Ad Variant level if you have applied the Field at Paid Initiaitve or Ad Set level, they can be mapped down to Ad variant level by Paid Rules:
Set up the following Message level Customer Queues and make sure they are shared with the appropriate User Groups:
Queue Name | Queue Description | Hold Time |
Ad Comments: Tag Transfer 1 | Contains ad comments waiting to be tagged (first attempt). Any messages not tagged after this will be sent to the next (2/3) Queue below. | 10 mins |
Ad Comments: Tag Transfer 2 | Contains ad comments waiting to to be tagged (second attempt). Any messages not tagged after this will be sent to the next (3/3) Queue below. | 15 mins |
Ad Comments: Tag Transfer | Contains ad comments waiting to be tagged (third attempt). Any messages still not tagged after this will be sent to the "Ad Comments Untagged due to Untagged Parent" and "Ad Comments Untagged Hold" Queues below. | 25 mins |
Ad Comments: Untagged Parent | Contains ad comments that have not been tagged due to the parent post not being tagged at the outbound level. If the outbound post gets tagged within a certain time period the message will be sent back into the first attempt Queue, otherwise sent to the Failed Queue below. | 4 hours |
Ad Comments: Untagged Hold | A backup Queue in case the volume of untagged messages becomes too high. | 1 day |
Ad Comments: Tag Transfer Failed | Contains ad comments that have waited for too long to be tagged, and were hence removed from the other Queues to reduce load. | - |
Ad Comments: Tag Transfer Successful | Contains ad comments that have been successfully tagged. | - |
Ad Comments: Tag Transfer Not Possible | Contains ad comments from PAC / LAC / LocAC ads where tag transfer is not possible | - |
Notes
"Ad Comments" refers to inbound copies of posts used in ads, comments on those posts and replies to those comments.
"Tagged" is short hand for "had the custom field values from the parent ad variants copied to the inbound message".
There are 3 "Waiting to be Tagged" Queues by default to handle very large volumes of ad comments. Smaller brands may only need 1 such Queue.
If you want to transfer multiple Fields, these Queues will be needed for each Field. Your Success Manager can help you set this up quickly via the Configurator.
An Inbound Rule can be used to transfer the paid Custom Fields to the Inbound Message level. Note that this will only work for ads made from boosted posts that were published in Sprinklr, and won't cover dark post ads.
Go to Rule Engine > Customer > Inbound > Create New Rule
Give the Rule a name, such as "Copy Properties from Paid Initiatve to Inbound Message" and add it to a suitable Batch (ideally "Message Enrichment")
Add an initial condition if desired, such as filtering by Channel or Account
Add an action and go to "
Copy properties from source to destination".
Choose Paid Initiative (or Ad Set or Ad Variant) as the Source
Choose "Self Inbound Message" as the Destination
Choose the paid Custom Field, the operator (set, set if absent, merge) and the inbound Custom Field (ideally the same one)
As an alternative to using a copy action, create a condition-action tree to set values of the Custom Field individually.
In Conditions, go to "Conditions for Paid Entities" and select the relevant Paid Initiative / Ad Set / Ad Variant Custom Field, the operator (Is, Is Not, Is Empty) and the Value
In Actions, go to "Change properties of Message", select the Custom Field, the operator (set, Set if absent, unset, merge or remove) and the Value.
Finally, save and Enable the Rule.
Note: TikTok Videos vs TikTok Authorized Posts
When boosting a TikTok post, there will be the original organic post (the "TikTok Video") and a duplicate ad post (the "TikTok Authorized Post").
If the ad gets comments, the messages will be attached to the TikTok Video only. Outbound Fields applied to one version of the post will now be copied automatically to the other version.
For dark post ads, the outbound post will not normally be ingested to Sprinklr until the first comment is made on the post. This can cause delays in tagging but this can be solved for by using a equence of Inbound and Queue Rules. This is the setup for the first Inbound Rule:
First, check if the message is from a PAC ad by seeing if there is any associated ad variant name:
If it is, tag transfer is not possible. Add it to "Ad Comments: Tag Transfer Not Possible" Queue and remove it from all other ad comment tagging queues
If it isn't from a PAC ad, check if the outbound field is tagged.
First, check if the Outbound Field is empty:
If it is, no tag transfer can happen. Add the message to the "Ad Comments: Tag Transfer 1" Queue
If it isn't Empty, check if the Inbound Field is empty
If the Inbound Field is not empty:
Add the message to the "Ad Comments: Tag Transfer Sucessful" Queue
Remove the message from the "Ad Comments: Tag Transfer 1" Queue
If the Inbound Field is empty, check if the post is from the Brand or a Fan:
If the message is from the Brand, do a copy action from the Post to the Self Inbound Message
If the message is from a Fan, do a copy action from the Parent to the Self Inbound Message
Check if the Inbound Field is still empty:
If yes, add the message to the "Ad Comments: Tag Transfer 1" Queue
If Service is enabled, also trigger the rule to run via Scheduler Engine
Name | Type | Section | Entity | Operator | Value | Connections |
Message associated with an ad? | Condition | Conditions for Paid Entities | Ad Variant Name | REGEX | ([A-Za-z0-9]*)+ | Yes, Is Outbound Field Tagged? |
No, Ad to Not Possible Q | ||||||
Ad to Not Possible Q | Action | Assign a message to a User / Queue | Add to Partner Queue | | Ad Comments: Tag Transfer Not Possible: Field | - |
Assign a message to a User / Queue | Remove from Partner Queue | - | Ad Comments: Tag Transfer 1: Field | |||
Ad Comments: Tag Transfer 2: Field | ||||||
Ad Comments: Tag Transfer 3: Field | ||||||
Ad Comments: Tag Transfer Failed: Field | ||||||
Is Outbound Field Tagged? | Condition | Messages related to Brand Posts | CF: OB: Field | IS EMPTY | - | No, Is Inbound Field Tagged? |
Yes, Add to Waiting to be Tagged Q | ||||||
Is Inbound Field Tagged? | Condition | The properties of the Message | CF: OB: Field | IS EMPTY | - | No, Add to Success Q |
Yes, Post is from Brand | ||||||
Add to Success Q | Action | Assign a message to a User / Queue | Add to Partner Queue | - | Ad Comments: Tag Transfer Successful: Field | - |
Assign a message to a User / Queue | Remove from Partner Queue | - | Ad Comments: Tag Transfer 1: Field | |||
Post is from Brand | Condition | The properties of the Message | Post Type | IS | Brand Post | No, Message is from Fan |
Yes, Copy Field from Post to Self Inbound Message | ||||||
Message is from Fan | Condition | The properties of the Message | Post Type | IS | Fan Post | Yes, Copy from Post to Message |
Copy Field from Post to Self Inbound Message | Action | Copy properties from source to destination | Copy Action Source | SET | Post | Next, Check if Field is Still Empty |
Copy Action Destination | SET | Self Inbound Message | ||||
CF: OB: Field | SET | Partner CF:Message:Field | ||||
Copy from Post to Message | Action | Copy properties from source to destination | Copy Action Source | SET | Post | Next, Copy Field from Parent to Self Inbound Message |
Copy Action Destination | SET | Self Inbound Message | ||||
CF: OB: Field | SET | Partner CF:Message:Field | ||||
Copy Field from Parent to Self Inbound Message | Action | Copy properties from source to destination | Copy Action Source | SET | Parent | Next, Check if Field is Still Empty |
Copy Action Destination | SET | Self Inbound Message | ||||
CF: OB: Field | SET | Partner CF:Message:Field | ||||
Check if Field is Still Empty | Condition | The properties of the Message | CF: OB: Field | IS EMPTY | - | Yes, Add to Waiting to be Tagged Q |
Add to Waiting to be Tagged Q | Action | Assign a message to a User / Queue | Add to Partner Queue | - | Ad Comments: Tag Transfer 1: Field | - |
Any ad comments that are still untagged can be sent through 3 versions of this Queue Rule:
First, confirm that the message is untagged:
If it is tagged, remove from the "Ad Comments: Tag Transfer 1" Queue and add to the "Ad Comments: Tag Transfer Successful" Queue
If it is not tagged, check if it is an ad comment or not (i.e. if the Paid Status is Paid)
If the message is an Ad Comment, check if the post is from the Brand or a Fan:
If the message is from the Brand, do a copy action from the Post to the Self Inbound Message
If the message is from a Fan, do a copy action from the Parent to the Self Inbound Message
If the message is not an Ad Comment, remove from the "Ad Comments: Tag Transfer 1" Queue.
Then check if the Inbound Field is still empty:
If it is tagged, remove from the "Ad Comments: Tag Transfer 1" Queue and add to the "Ad Comments: Tag Transfer Successful" Queue
If it is untagged, check if it has been waiting in the Queue for more than 10 minutes*:
If yes, add the message to the "Ad Comments: Tag Transfer 2" Queue and remove from "Ad Comments: Tag Transfer 2" Queue
*The time in the second attempt is 15 minutes and the third attempt is 25 minutes.
These Queue Rules each have a time-agnostic Trigger, which checks for messages in their respective "Ad Comments: Tag Transfer n" Queue and runs every 5 seconds.
Name | Type | Section | Entity | Operator | Value | Connections |
Source Queue is "Ad Comments Waiting to be Tagged" | Condition | The source of the Message | Partner Queue | IS | Ad Comments: Tag Transfer 1: Field | Yes, Field is empty? |
The source of the Message | Partner Queue Assignment Time Duration | ≥ | 0 Seconds | |||
Field is empty? | Condition | The properties of the Message | CF: Message: Field | IS EMPTY | - | Yes, Paid Status Check |
No, Remove from "Ad Comments Waiting to be Tagged" Q | ||||||
Paid Status Check | Condition | The properties of the Message | CF: Message: Paid Status | IS | Paid | Yes, Post is from Brand |
No, Remove from "Ad Comments Waiting to be Tagged" Q | ||||||
Remove from "Ad Comments Waiting to be Tagged" Q | Action | Assign a message to a User / Queue | Remove from Partner Queue | - | Ad Comments: Tag Transfer 1: Field | - |
Add to Partner Queue | - | Ad Comments: Tag Transfer Successful: Field | ||||
Post is from Brand | Condition | The properties of the Message | Post Type | IS | Brand Post | No, Message is from Fan |
Yes, Map Properties from Outbound Post to Self Inbound Post | ||||||
Map Properties from Outbound Post to Self Inbound Post | Action | Copy properties from source to destination. | Copy Action Source | SET | Post | Next, Check if Field is Empty |
Copy Action Destination | SET | Self Inbound Message | ||||
CF: OB: Field | SET | CF: Message: Field | ||||
Message is from Fan | Condition | The properties of the Message | Post Type | IS | Fan Post | Yes, Copy Fields from Post to Inbound |
No, Remove from "Ad Comments Waiting to be Tagged" Q | ||||||
Copy Fields from Post to Inbound | Action | Copy properties from source to destination. | Copy Action Source | SET | Post | Next, Map Properties from Parent Post to Comment |
Copy Action Destination | SET | Self Inbound Message | ||||
CF: OB: Field | SET | CF: Message: Field | ||||
Map Properties from Parent Post to Comment | Action | Copy properties from source to destination. | Copy Action Source | SET | Parent | Next, Check if Field is Empty |
Copy Action Destination | SET | Self Inbound Message | ||||
CF: Message: Field | SET | CF: Message: Field | ||||
Check if Field is Empty | Condition | The properties of the Message | CF: Message: Field | IS EMPTY | - | No, Remove from "Ad Comments Waiting to be Tagged" Q |
Yes, Waiting more than 30 Mins? | ||||||
Waiting more than 30 Mins? | Condition | The source of the Message | Partner Queue | ≥ | 10 Minutes | Yes, Add to Wait Queue 2 |
Partner Queue | IS | Ad Comments: Tag Transfer 1: Field | ||||
Add to Wait Queue 2 | Action | Assign a message to a User / Queue | Add to Partner Queue |
| Ad Comments: Tag Transfer 2: Field | - |
Remove from Partner Queue |
| Ad Comments: Tag Transfer 1: Field |
The third version of the Queue Rule as described in the section above has an extra condition and different final action:
This checks if the Parent Outbound Post is empty; if yes then it removes such messages from the final "Ad Comments: Tag Transfer 3" Queue and adds them to the "Ad Comments: Untagged Parent" and "Ad Comments: Untagged Hold" Queues.
There is a final Queue Rule that looks at messages in these queues:
First, check if the message has been in the "Ad Comments: Untagged Parent" Queue for at least one hour
If yes, check if the Outbound Field is empty:
If no, add the message back into the Queue "Ad Comments: Tag Transfer 1" and remove from the "Ad Comments: Untagged Parent" and "Ad Comments: Untagged Hold" Queues
If yes, check if the message has been in the "Ad Comments: Untagged Hold" Queue for more than 4 hours
If yes, add the message to the "Ad Comments: Tag Transfer Failed" Queue and remove from the "Ad Comments: Untagged Parent" and "Ad Comments: Untagged Hold" Queues
Use these Triggers:
This forces the Queue rule to run once an hour for messages where the parent post is not tagged at the Outbound Level.
This is needed because the outbound post is only pulled into Sprinklr after the first message is made on the post, and the Paid rules to transfer tags from ad Variant to Outbound only run every 30 minutes.
If the "Ad Comments: Untagged Parent" Queue gets too full, the tigger will overload and stop running.
This acts as a final backup and runs once a day to empty the empty the "Ad Comments: Untagged Parent" & "Ad Comments: Untagged Hold" Queues.
Note: Enable the Rules described above in this order:
Paid Rules
Triggers on Queue Rules
Queue Rules
Inbound Rules
If you use Cases, create an Inbound Rule to copy the Custom Field from Self Inbound Message to Case. A single action should suffice.
Alternatively, this can be done in Queue and Case Update Rules.
Limitations
Tag Transfer will not work for:
Placement Asset Customization Ads
Location Asset Customization Ads
Dynamic Ads
Outbound Fields cannot be applied on:
Dark Post Ads where no comments have been made
Messenger / Conversation Ads
Channels such as Snapchat where there is no concept of a Post
Note: You can use Triggers in Sprinklr Social Rule Engine to tag existing Posts and Comments. This capability allows you to apply a rule on existing/past data. For more information, see Rule Triggers.